about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/pyocr/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/pyocr/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyocr/default.nix67
1 files changed, 67 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/pyocr/default.nix b/nixpkgs/pkgs/development/python-modules/pyocr/default.nix
new file mode 100644
index 000000000000..47a73c9c80af
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyocr/default.nix
@@ -0,0 +1,67 @@
+{ lib, fetchFromGitLab, buildPythonPackage, pillow, six
+, tesseract, cuneiform, isPy3k, substituteAll, pytest, tox
+}:
+
+buildPythonPackage rec {
+  pname = "pyocr";
+  version = "0.5.3";
+  name = pname + "-" + version;
+  disabled = !isPy3k;
+
+  # Don't fetch from PYPI because it doesn't contain tests.
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    group = "World";
+    owner = "OpenPaperwork";
+    repo = "pyocr";
+    rev = version;
+    sha256 = "1nihf0qmbpg3yj3yp11jp6hp5z5dqf39nz6j9lqbvgi1nqbs7x15";
+  };
+
+  patches = [ (substituteAll {
+    src = ./paths.patch;
+    inherit cuneiform tesseract;
+  })
+  ];
+
+  postPatch = ''
+    echo 'version = "${version}"' > src/pyocr/_version.py
+
+    # Disable specific tests that are probably failing because of this issue:
+    # https://github.com/jflesch/pyocr/issues/52
+    for test in $disabledTests; do
+      file="''${test%%:*}"
+      fun="''${test#*:}"
+      echo "import pytest" >> "tests/tests_$file.py"
+      echo "$fun = pytest.mark.skip($fun)" >> "tests/tests_$file.py"
+    done
+  '';
+
+  disabledTests = [
+    "cuneiform:TestTxt.test_basic"
+    "cuneiform:TestTxt.test_european"
+    "cuneiform:TestTxt.test_french"
+    "cuneiform:TestWordBox.test_basic"
+    "cuneiform:TestWordBox.test_european"
+    "cuneiform:TestWordBox.test_french"
+    "libtesseract:TestBasicDoc.test_basic"
+    "libtesseract:TestDigitLineBox.test_digits"
+    "libtesseract:TestLineBox.test_japanese"
+    "libtesseract:TestTxt.test_japanese"
+    "libtesseract:TestWordBox.test_japanese"
+    "libtesseract:TestTxt.test_multi"
+    "tesseract:TestTxt.test_multi"
+    "tesseract:TestDigitLineBox.test_digits"
+    "tesseract:TestTxt.test_japanese"
+  ];
+
+  propagatedBuildInputs = [ pillow six ];
+  checkInputs = [ pytest tox ];
+  checkPhase = "pytest";
+
+  meta = {
+    inherit (src.meta) homepage;
+    description = "A Python wrapper for Tesseract and Cuneiform";
+    license = lib.licenses.gpl3Plus;
+  };
+}