diff --git a/flake.nix b/flake.nix index 160bccc..b7d6fe2 100644 --- a/flake.nix +++ b/flake.nix @@ -331,6 +331,7 @@ brassica = pkgs.callPackage packages/brassica.nix {}; cheat-sh = pkgs.callPackage packages/cheat-sh.nix {}; closest = pkgs.callPackage packages/closest {}; + cltk = pkgs.python3Packages.callPackage packages/cltk.nix {}; cro = pkgs.callPackage packages/cro.nix {}; cyberlocker-tools = pkgs.callPackage packages/cyberlocker-tools.nix {}; default-gateway = pkgs.callPackage packages/default-gateway.nix {}; diff --git a/packages/cltk.nix b/packages/cltk.nix new file mode 100644 index 0000000..4a96ed5 --- /dev/null +++ b/packages/cltk.nix @@ -0,0 +1,61 @@ +{ buildPythonPackage, lib, fetchPypi, gitpython, gensim, tqdm, torch, stringcase, stanza, spacy, scipy, scikit-learn, requests, rapidfuzz, pyyaml, nltk, boltons, poetry-core }: +let + greek-accentuation = buildPythonPackage rec { + pname = "greek-accentuation"; + version = "1.2.0"; + src = fetchPypi { + inherit pname version; + hash = "sha256-l2HZXdqlLubvy2bWhhZVYGMpF0DXVKTDFehkcGF5xdk="; + }; + meta = with lib; { + description = "Python 3 library for accenting (and analyzing the accentuation of) Ancient Greek words"; + homepage = "https://github.com/jtauber/greek-accentuation"; + license = licenses.mit; + maintainers = with maintainers; [ kmein ]; + }; + }; +in +buildPythonPackage rec { + pname = "cltk"; + format = "pyproject"; + version = "1.3.0"; + src = fetchPypi { + inherit pname version; + hash = "sha256-jAxvToUIo333HSVQDYVyUBY3YP+m1RnlNGelcvktp6s="; + }; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace "poetry>=1.1.13" poetry-core \ + --replace "poetry.masonry.api" "poetry.core.masonry.api" \ + --replace 'scipy = "<1.13.0"' 'scipy = "^1"' \ + --replace 'boltons = "^21.0.0"' 'boltons = "^24.0.0"' + ''; + + propagatedBuildInputs = [ + gitpython + gensim + boltons + greek-accentuation + pyyaml + nltk + rapidfuzz + requests + scikit-learn + scipy + spacy + stanza + stringcase + torch + tqdm + ]; + + nativeBuildInputs = [ poetry-core ]; + + meta = with lib; { + description = "Natural language processing (NLP) framework for pre-modern languages"; + homepage = "https://cltk.org"; + license = licenses.mit; + maintainers = with maintainers; [ kmein ]; + }; +}