croc: 10.1.1 -> 10.1.3 (#364662)
[NixPkgs.git] / pkgs / development / python-modules / spacy / default.nix
blobdf9004d483ff6806b6b72412eccfbe4cca7e5e08
2   lib,
3   stdenv,
4   buildPythonPackage,
5   callPackage,
6   catalogue,
7   cymem,
8   cython_0,
9   fetchPypi,
10   hypothesis,
11   jinja2,
12   langcodes,
13   mock,
14   murmurhash,
15   numpy,
16   packaging,
17   preshed,
18   pydantic,
19   pytestCheckHook,
20   pythonOlder,
21   requests,
22   setuptools,
23   spacy-legacy,
24   spacy-loggers,
25   srsly,
26   thinc,
27   tqdm,
28   typer,
29   wasabi,
30   weasel,
31   writeScript,
32   nix,
33   git,
34   nix-update,
37 buildPythonPackage rec {
38   pname = "spacy";
39   version = "3.8.2";
40   pyproject = true;
42   disabled = pythonOlder "3.7";
44   src = fetchPypi {
45     inherit pname version;
46     hash = "sha256-Szfr0lraQFmw3J4Ik+cN3l34NIUymgaO8EWA5wiSpl0=";
47   };
49   postPatch = ''
50     # spaCy is compatible with NumPy v1 and v2
51     substituteInPlace pyproject.toml setup.cfg \
52       --replace-fail "numpy>=2.0.0,<2.1.0" numpy
53   '';
55   build-system = [
56     cymem
57     cython_0
58     murmurhash
59     numpy
60     thinc
61   ];
63   pythonRelaxDeps = [
64     "thinc"
65   ];
67   dependencies = [
68     catalogue
69     cymem
70     jinja2
71     langcodes
72     murmurhash
73     numpy
74     packaging
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   ];
89   nativeCheckInputs = [
90     pytestCheckHook
91     hypothesis
92     mock
93   ];
95   # Fixes ModuleNotFoundError when running tests on Cythonized code. See #255262
96   preCheck = ''
97     cd $out
98   '';
100   pytestFlagsArray = [ "-m 'slow'" ];
102   disabledTests = [
103     # touches network
104     "test_download_compatibility"
105     "test_validate_compatibility_table"
106     "test_project_assets"
107   ];
109   pythonImportsCheck = [ "spacy" ];
111   passthru = {
112     updateScript = writeScript "update-spacy" ''
113       #!${stdenv.shell}
114       set -eou pipefail
115       PATH=${
116         lib.makeBinPath [
117           nix
118           git
119           nix-update
120         ]
121       }
123       nix-update python3Packages.spacy
125       # update spacy models as well
126       echo | nix-shell maintainers/scripts/update.nix --argstr package python3Packages.spacy-models.en_core_web_sm
127     '';
128     tests.annotation = callPackage ./annotation-test { };
129   };
131   meta = with lib; {
132     description = "Industrial-strength Natural Language Processing (NLP)";
133     mainProgram = "spacy";
134     homepage = "https://github.com/explosion/spaCy";
135     changelog = "https://github.com/explosion/spaCy/releases/tag/release-v${version}";
136     license = licenses.mit;
137     maintainers = [ ];
138   };