diff options
Diffstat (limited to 'pkgs/development/python-modules/gruut/default.nix')
-rw-r--r-- | pkgs/development/python-modules/gruut/default.nix | 99 |
1 files changed, 63 insertions, 36 deletions
diff --git a/pkgs/development/python-modules/gruut/default.nix b/pkgs/development/python-modules/gruut/default.nix index 8d18dee9cd8e6..e5ad36e1b19b5 100644 --- a/pkgs/development/python-modules/gruut/default.nix +++ b/pkgs/development/python-modules/gruut/default.nix @@ -1,22 +1,35 @@ -{ lib -, buildPythonPackage -, callPackage -, fetchFromGitHub -, babel -, gruut-ipa -, dateparser -, jsonlines -, num2words -, python-crfsuite -, python -, networkx -, glibcLocales -, pytestCheckHook +{ + lib, + buildPythonPackage, + callPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + babel, + dateparser, + gruut-ipa, + jsonlines, + networkx, + num2words, + numpy, + python-crfsuite, + + # optional dependencies + pydub, + rapidfuzz, + + # checks + glibcLocales, + pytestCheckHook, }: let langPkgs = [ "ar" + "ca" "cs" "de" "en" @@ -34,36 +47,53 @@ let in buildPythonPackage rec { pname = "gruut"; - version = "2.3.4"; - format = "setuptools"; + version = "2.4.0"; + pyproject = true; src = fetchFromGitHub { owner = "rhasspy"; - repo = pname; + repo = "gruut"; rev = "refs/tags/v${version}"; - hash = "sha256-DD7gnvH9T2R6E19+exWE7Si+XEpfh0Iy5FYbycjgzgM="; + hash = "sha256-iwde6elsAbICZ+Rc7CPgcZTOux1hweVZc/gf4K+hP9M="; }; - postPatch = '' - substituteInPlace requirements.txt \ - --replace "gruut_lang_en~=2.0.0" "gruut_lang_en" \ - --replace "jsonlines~=1.2.0" "jsonlines" \ - --replace "networkx>=2.5.0,<3.0.0" "networkx" - ''; + pythonRelaxDeps = true; + + build-system = [ setuptools ]; - propagatedBuildInputs = [ + dependencies = [ babel + dateparser gruut-ipa jsonlines + networkx num2words + numpy python-crfsuite - dateparser - networkx - ] ++ (map (lang: callPackage ./language-pack.nix { - inherit lang version format src; - }) langPkgs); + ] ++ optional-dependencies.en; + + optional-dependencies = + { + train = [ + pydub + rapidfuzz + ]; + } + // lib.genAttrs langPkgs (lang: [ + (callPackage ./language-pack.nix { + inherit + lang + version + src + build-system + ; + }) + ]); - nativeCheckInputs = [ glibcLocales pytestCheckHook ]; + nativeCheckInputs = [ + glibcLocales + pytestCheckHook + ] ++ lib.flatten (lib.attrValues optional-dependencies); disabledTests = [ # https://github.com/rhasspy/gruut/issues/25 @@ -72,19 +102,16 @@ buildPythonPackage rec { # requires mishkal library "test_fa" "test_ar" - "test_lb" ]; preCheck = '' export LC_ALL=en_US.utf-8 ''; - pythonImportsCheck = [ - "gruut" - ]; + pythonImportsCheck = [ "gruut" ]; meta = with lib; { - description = "A tokenizer, text cleaner, and phonemizer for many human languages"; + description = "Tokenizer, text cleaner, and phonemizer for many human languages"; mainProgram = "gruut"; homepage = "https://github.com/rhasspy/gruut"; license = licenses.mit; |