at 23.11-beta 1.6 kB view raw
1{ lib 2, buildPythonPackage 3, callPackage 4, fetchFromGitHub 5, babel 6, gruut-ipa 7, dateparser 8, jsonlines 9, num2words 10, python-crfsuite 11, python 12, networkx 13, glibcLocales 14, pytestCheckHook 15}: 16 17let 18 langPkgs = [ 19 "ar" 20 "cs" 21 "de" 22 "en" 23 "es" 24 "fa" 25 "fr" 26 "it" 27 "lb" 28 "nl" 29 "pt" 30 "ru" 31 "sv" 32 "sw" 33 ]; 34in 35buildPythonPackage rec { 36 pname = "gruut"; 37 version = "2.3.4"; 38 format = "setuptools"; 39 40 src = fetchFromGitHub { 41 owner = "rhasspy"; 42 repo = pname; 43 rev = "refs/tags/v${version}"; 44 hash = "sha256-DD7gnvH9T2R6E19+exWE7Si+XEpfh0Iy5FYbycjgzgM="; 45 }; 46 47 postPatch = '' 48 substituteInPlace requirements.txt \ 49 --replace "gruut_lang_en~=2.0.0" "gruut_lang_en" \ 50 --replace "jsonlines~=1.2.0" "jsonlines" \ 51 --replace "networkx>=2.5.0,<3.0.0" "networkx" 52 ''; 53 54 propagatedBuildInputs = [ 55 babel 56 gruut-ipa 57 jsonlines 58 num2words 59 python-crfsuite 60 dateparser 61 networkx 62 ] ++ (map (lang: callPackage ./language-pack.nix { 63 inherit lang version format src; 64 }) langPkgs); 65 66 nativeCheckInputs = [ glibcLocales pytestCheckHook ]; 67 68 disabledTests = [ 69 # https://github.com/rhasspy/gruut/issues/25 70 "test_lexicon_external" 71 72 # requires mishkal library 73 "test_fa" 74 "test_ar" 75 "test_lb" 76 ]; 77 78 preCheck = '' 79 export LC_ALL=en_US.utf-8 80 ''; 81 82 pythonImportsCheck = [ 83 "gruut" 84 ]; 85 86 meta = with lib; { 87 description = "A tokenizer, text cleaner, and phonemizer for many human languages"; 88 homepage = "https://github.com/rhasspy/gruut"; 89 license = licenses.mit; 90 maintainers = teams.tts.members; 91 }; 92}