at 24.05-pre 2.1 kB view raw
1{ lib 2, stdenv 3, blis 4, buildPythonPackage 5, callPackage 6, catalogue 7, cymem 8, fetchPypi 9, jinja2 10, jsonschema 11, langcodes 12, murmurhash 13, numpy 14, packaging 15, pathy 16, preshed 17, pydantic 18, pytest 19, python 20, pythonOlder 21, pythonRelaxDepsHook 22, requests 23, setuptools 24, spacy-legacy 25, spacy-loggers 26, srsly 27, thinc 28, tqdm 29, typer 30, typing-extensions 31, wasabi 32, weasel 33, writeScript 34, nix 35, git 36, nix-update 37}: 38 39buildPythonPackage rec { 40 pname = "spacy"; 41 version = "3.7.2"; 42 pyproject = true; 43 44 disabled = pythonOlder "3.7"; 45 46 src = fetchPypi { 47 inherit pname version; 48 hash = "sha256-zt9JJ78NP+x3OmzkjV0skb2wL+08fV7Ae9uHPxEm8aA="; 49 }; 50 51 pythonRelaxDeps = [ 52 "typer" 53 ]; 54 55 nativeBuildInputs = [ 56 pythonRelaxDepsHook 57 ]; 58 59 propagatedBuildInputs = [ 60 blis 61 catalogue 62 cymem 63 jinja2 64 jsonschema 65 langcodes 66 murmurhash 67 numpy 68 packaging 69 pathy 70 preshed 71 pydantic 72 requests 73 setuptools 74 spacy-legacy 75 spacy-loggers 76 srsly 77 thinc 78 tqdm 79 typer 80 wasabi 81 weasel 82 ] ++ lib.optionals (pythonOlder "3.8") [ 83 typing-extensions 84 ]; 85 86 postPatch = '' 87 substituteInPlace setup.cfg \ 88 --replace "thinc>=8.1.8,<8.2.0" "thinc>=8.1.8" 89 ''; 90 91 nativeCheckInputs = [ 92 pytest 93 ]; 94 95 doCheck = false; 96 97 checkPhase = '' 98 ${python.interpreter} -m pytest spacy/tests --vectors --models --slow 99 ''; 100 101 pythonImportsCheck = [ 102 "spacy" 103 ]; 104 105 passthru = { 106 updateScript = writeScript "update-spacy" '' 107 #!${stdenv.shell} 108 set -eou pipefail 109 PATH=${lib.makeBinPath [ nix git nix-update ]} 110 111 nix-update python3Packages.spacy 112 113 # update spacy models as well 114 echo | nix-shell maintainers/scripts/update.nix --argstr package python3Packages.spacy_models.en_core_web_sm 115 ''; 116 tests.annotation = callPackage ./annotation-test { }; 117 }; 118 119 meta = with lib; { 120 description = "Industrial-strength Natural Language Processing (NLP)"; 121 homepage = "https://github.com/explosion/spaCy"; 122 changelog = "https://github.com/explosion/spaCy/releases/tag/v${version}"; 123 license = licenses.mit; 124 maintainers = with maintainers; [ ]; 125 }; 126}