Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / layoutparser / default.nix
blob391cb7a235aeb0fe449321926416c30189d96846
1 { lib
2 , buildPythonPackage
3 , fetchFromGitHub
4 # build inputs
5 , numpy
6 , opencv4
7 , scipy
8 , pandas
9 , pillow
10 , pyyaml
11 , iopath
12 , pdfplumber
13 , pdf2image
14 , google-cloud-vision
15 , pytesseract
16 , torch
17 , torchvision
18 , effdet
19 # check inputs
20 , pytestCheckHook
22 let
23   pname = "layoutparser";
24   version = "0.3.4";
25   optional-dependencies = {
26     ocr = [ google-cloud-vision pytesseract ];
27     gcv = [ google-cloud-vision ];
28     tesseract = [ pytesseract ];
29     layoutmodels = [ torch torchvision effdet ];
30     effdet = [ torch torchvision effdet ];
31     # paddledetection = [ paddlepaddle ]
32   };
34 buildPythonPackage {
35   inherit pname version;
36   format = "setuptools";
38   src = fetchFromGitHub {
39     owner = "Layout-Parser";
40     repo = "layout-parser";
41     rev = "refs/tags/v${version}";
42     hash = "sha256-qBzcIUmgnGy/Xn/B+7UrLrRhCvCkapL+ymqGS2sMVgA=";
43   };
45   postPatch = ''
46     substituteInPlace setup.py \
47       --replace "opencv-python" "opencv"
48   '';
50   propagatedBuildInputs = [
51     numpy
52     opencv4
53     scipy
54     pandas
55     pillow
56     pyyaml
57     iopath
58     pdfplumber
59     pdf2image
60   ];
62   pythonImportsCheck = [
63     "layoutparser"
64   ];
66   nativeCheckInputs = [
67     pytestCheckHook
68   ] ++ optional-dependencies.ocr;
70   disabledTests = [
71     "test_PaddleDetectionModel" # requires paddlepaddle not yet packaged
72      # requires detectron2 not yet packaged
73     "test_Detectron2Model"
74     "test_AutoModel"
75      # requires effdet (disable for now until effdet builds on darwin)
76     "test_EffDetModel"
77     # problems with google-cloud-vision
78     # AttributeError: module 'google.cloud.vision' has no attribute 'types'
79     "test_gcv_agent"
80     "test_viz"
81     #  - Failed: DID NOT RAISE <class 'ImportError'>
82     "test_when_backends_are_not_loaded"
83   ];
85   disabledTestPaths = [
86     "tests_deps/test_only_detectron2.py" # requires detectron2 not yet packaged
87     "tests_deps/test_only_effdet.py" # requires effdet (disable for now until effdet builds on darwin)
88     "tests_deps/test_only_paddledetection.py" # requires paddlepaddle not yet packaged
89   ];
91   passthru.optional-dependencies = optional-dependencies;
93   meta = with lib; {
94     description = "A unified toolkit for Deep Learning Based Document Image Analysis";
95     homepage = "https://github.com/Layout-Parser/layout-parser";
96     changelog = "https://github.com/Layout-Parser/layout-parser/releases/tag/v${version}";
97     license = licenses.asl20;
98     maintainers = with maintainers; [ happysalada ];
99   };