Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
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, writeScript 33, nix 34, git 35, nix-update 36}: 37 38buildPythonPackage rec { 39 pname = "spacy"; 40 version = "3.5.4"; 41 format = "setuptools"; 42 43 disabled = pythonOlder "3.6"; 44 45 src = fetchPypi { 46 inherit pname version; 47 hash = "sha256-mpwWfp3Ov++sx12sNKjnK+y+NI60W78GpsBSOuBaxCU="; 48 }; 49 50 pythonRelaxDeps = [ 51 "typer" 52 ]; 53 54 nativeBuildInputs = [ 55 pythonRelaxDepsHook 56 ]; 57 58 propagatedBuildInputs = [ 59 blis 60 catalogue 61 cymem 62 jinja2 63 jsonschema 64 langcodes 65 murmurhash 66 numpy 67 packaging 68 pathy 69 preshed 70 pydantic 71 requests 72 setuptools 73 spacy-legacy 74 spacy-loggers 75 srsly 76 thinc 77 tqdm 78 typer 79 wasabi 80 ] ++ lib.optionals (pythonOlder "3.8") [ 81 typing-extensions 82 ]; postPatch = '' 83 substituteInPlace setup.cfg \ 84 --replace "typer>=0.3.0,<0.5.0" "typer>=0.3.0" 85 ''; 86 87 nativeCheckInputs = [ 88 pytest 89 ]; 90 91 doCheck = false; 92 93 checkPhase = '' 94 ${python.interpreter} -m pytest spacy/tests --vectors --models --slow 95 ''; 96 97 pythonImportsCheck = [ 98 "spacy" 99 ]; 100 101 passthru = { 102 updateScript = writeScript "update-spacy" '' 103 #!${stdenv.shell} 104 set -eou pipefail 105 PATH=${lib.makeBinPath [ nix git nix-update ]} 106 107 nix-update python3Packages.spacy 108 109 # update spacy models as well 110 echo | nix-shell maintainers/scripts/update.nix --argstr package python3Packages.spacy_models.en_core_web_sm 111 ''; 112 tests.annotation = callPackage ./annotation-test { }; 113 }; 114 115 meta = with lib; { 116 description = "Industrial-strength Natural Language Processing (NLP)"; 117 homepage = "https://github.com/explosion/spaCy"; 118 changelog = "https://github.com/explosion/spaCy/releases/tag/v${version}"; 119 license = licenses.mit; 120 maintainers = with maintainers; [ ]; 121 }; 122}