Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / spacy / default.nix
blob32b78f40cdc1101c9ba0ca17c8585362b85aec08
1 { lib
2 , stdenv
3 , blis
4 , buildPythonPackage
5 , callPackage
6 , catalogue
7 , cymem
8 , cython_0
9 , fetchPypi
10 , hypothesis
11 , jinja2
12 , jsonschema
13 , langcodes
14 , mock
15 , murmurhash
16 , numpy
17 , packaging
18 , pathy
19 , preshed
20 , pydantic
21 , pytestCheckHook
22 , python
23 , pythonOlder
24 , pythonRelaxDepsHook
25 , requests
26 , setuptools
27 , spacy-legacy
28 , spacy-loggers
29 , srsly
30 , thinc
31 , tqdm
32 , typer
33 , typing-extensions
34 , wasabi
35 , weasel
36 , writeScript
37 , nix
38 , git
39 , nix-update
42 buildPythonPackage rec {
43   pname = "spacy";
44   version = "3.7.4";
45   pyproject = true;
47   disabled = pythonOlder "3.7";
49   src = fetchPypi {
50     inherit pname version;
51     hash = "sha256-Ul8s7S5AdhViyMrOk+9qHm6MSD8nvVZLwbFfYI776Fs=";
52   };
54   pythonRelaxDeps = [
55     "smart-open"
56     "typer"
57   ];
59   nativeBuildInputs = [
60     pythonRelaxDepsHook
61     cython_0
62   ];
64   propagatedBuildInputs = [
65     blis
66     catalogue
67     cymem
68     jinja2
69     jsonschema
70     langcodes
71     murmurhash
72     numpy
73     packaging
74     pathy
75     preshed
76     pydantic
77     requests
78     setuptools
79     spacy-legacy
80     spacy-loggers
81     srsly
82     thinc
83     tqdm
84     typer
85     wasabi
86     weasel
87   ] ++ lib.optionals (pythonOlder "3.8") [
88     typing-extensions
89   ];
91   nativeCheckInputs = [
92     pytestCheckHook
93     hypothesis
94     mock
95   ];
97   doCheck = true;
99   # Fixes ModuleNotFoundError when running tests on Cythonized code. See #255262
100   preCheck = ''
101     cd $out
102   '';
104   pytestFlagsArray = [
105     "-m 'slow'"
106   ];
108   disabledTests = [
109     # touches network
110     "test_download_compatibility"
111     "test_validate_compatibility_table"
112     "test_project_assets"
113   ];
115   pythonImportsCheck = [
116     "spacy"
117   ];
119   passthru = {
120     updateScript = writeScript "update-spacy" ''
121       #!${stdenv.shell}
122       set -eou pipefail
123       PATH=${lib.makeBinPath [ nix git nix-update ]}
125       nix-update python3Packages.spacy
127       # update spacy models as well
128       echo | nix-shell maintainers/scripts/update.nix --argstr package python3Packages.spacy-models.en_core_web_sm
129     '';
130     tests.annotation = callPackage ./annotation-test { };
131   };
133   meta = with lib; {
134     description = "Industrial-strength Natural Language Processing (NLP)";
135     mainProgram = "spacy";
136     homepage = "https://github.com/explosion/spaCy";
137     changelog = "https://github.com/explosion/spaCy/releases/tag/v${version}";
138     license = licenses.mit;
139     maintainers = with maintainers; [ ];
140   };