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