at 22.05-pre 1.3 kB view raw
1{ lib 2, buildPythonPackage 3, callPackage 4, pythonOlder 5, fetchFromGitHub 6, Babel 7, gruut-ipa 8, jsonlines 9, num2words 10, python-crfsuite 11, dataclasses 12, python 13}: 14 15let 16 langPkgs = [ 17 "cs" 18 "de" 19 "es" 20 "fr" 21 "it" 22 "nl" 23 "pt" 24 "ru" 25 "sv" 26 "sw" 27 ]; 28in 29buildPythonPackage rec { 30 pname = "gruut"; 31 version = "1.2.3"; 32 format = "setuptools"; 33 34 src = fetchFromGitHub { 35 owner = "rhasspy"; 36 repo = pname; 37 rev = "v${version}"; 38 sha256 = "sha256-qY4xsoVk1hyY9dYmVXaqDRjcShUQmp8VZOzAQNiC6EM="; 39 }; 40 41 postPatch = '' 42 substituteInPlace requirements.txt \ 43 --replace "Babel~=2.8.0" "Babel" 44 ''; 45 46 propagatedBuildInputs = [ 47 Babel 48 gruut-ipa 49 jsonlines 50 num2words 51 python-crfsuite 52 ] ++ lib.optionals (pythonOlder "3.7") [ 53 dataclasses 54 ] ++ (map (lang: callPackage ./language-pack.nix { 55 inherit lang version format src; 56 }) langPkgs); 57 58 checkPhase = '' 59 runHook preCheck 60 ${python.interpreter} -m unittest discover 61 runHook postCheck 62 ''; 63 64 pythonImportsCheck = [ 65 "gruut" 66 ]; 67 68 meta = with lib; { 69 description = "A tokenizer, text cleaner, and phonemizer for many human languages"; 70 homepage = "https://github.com/rhasspy/gruut"; 71 license = licenses.mit; 72 maintainers = teams.tts.members; 73 }; 74}