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