phonemizer: init at 2.2.1

wip/yesman
Martin Weinelt 4 years ago
parent eb64d1518f
commit 8578fb3144
No known key found for this signature in database
GPG Key ID: BD4AA0528F63F17E
  1. 29
      pkgs/development/python-modules/phonemizer/backend-paths.patch
  2. 73
      pkgs/development/python-modules/phonemizer/default.nix
  3. 12
      pkgs/development/python-modules/phonemizer/drop-readme-festival-test.patch
  4. 22
      pkgs/development/python-modules/phonemizer/remove-intertwined-festival-test.patch
  5. 2
      pkgs/top-level/python-packages.nix

@ -0,0 +1,29 @@
diff --git a/phonemizer/backend/espeak.py b/phonemizer/backend/espeak.py
index 387c11c..ceb5e7e 100644
--- a/phonemizer/backend/espeak.py
+++ b/phonemizer/backend/espeak.py
@@ -81,10 +81,7 @@ class BaseEspeakBackend(BaseBackend):
if _ESPEAK_DEFAULT_PATH:
return _ESPEAK_DEFAULT_PATH
- espeak = distutils.spawn.find_executable('espeak-ng')
- if not espeak: # pragma: nocover
- espeak = distutils.spawn.find_executable('espeak')
- return espeak
+ return "@espeak@"
@classmethod
def is_available(cls):
diff --git a/phonemizer/backend/festival.py b/phonemizer/backend/festival.py
index b5bc56d..0833160 100644
--- a/phonemizer/backend/festival.py
+++ b/phonemizer/backend/festival.py
@@ -78,7 +78,7 @@ class FestivalBackend(BaseBackend):
if _FESTIVAL_DEFAULT_PATH:
return _FESTIVAL_DEFAULT_PATH
- return distutils.spawn.find_executable('festival')
+ return "@festival@"
@classmethod
def is_available(cls):

@ -0,0 +1,73 @@
{ lib
, substituteAll
, buildPythonApplication
, fetchPypi
, python3Packages
, pkgs
, joblib
, segments
, attrs
, espeak-ng
, pytestCheckHook
, pytestrunner
, pytestcov
}:
buildPythonApplication rec {
pname = "phonemizer";
version = "2.2.1";
src = fetchPypi {
inherit pname version;
sha256 = "127n4f10zxq60qd8xvlc1amji4wbghqb90rfp25rzdk716kvgwab";
};
postPatch = ''
sed -i -e '/\'pytest-runner\'/d setup.py
'';
patches = [
(substituteAll {
src = ./backend-paths.patch;
espeak = "${lib.getBin espeak-ng}/bin/espeak";
# override festival path should you try to integrate it
festival = "";
})
./remove-intertwined-festival-test.patch
];
propagatedBuildInputs = [
joblib
segments
attrs
];
preCheck = ''
export HOME=$TMPDIR
'';
checkInputs = [
pytestCheckHook
pytestcov
];
# We tried to package festvial, but were unable to get the backend running,
# so let's disable related tests.
pytestFlagsArray = [
"--ignore=test/test_festival.py"
];
disabledTests = [
"test_festival"
"test_relative"
"test_absolute"
"test_readme_festival_syll"
];
meta = with lib; {
homepage = "https://github.com/bootphon/phonemizer";
description = "Simple text to phones converter for multiple languages";
license = licenses.gpl3;
maintainers = with maintainers; [ hexa ];
};
}

@ -0,0 +1,12 @@
diff --git a/test/test_main.py b/test/test_main.py
index 71d605a..d137cd7 100644
--- a/test/test_main.py
+++ b/test/test_main.py
@@ -63,7 +63,6 @@ def test_readme():
_test(u'hello world', u'həloʊ wɜːld ')
_test(u'hello world', u'həloʊ wɜːld ', '--verbose')
_test(u'hello world', u'həloʊ wɜːld ', '--quiet')
- _test(u'hello world', u'hhaxlow werld', '-b festival --strip')
_test(u'hello world', u'həloʊ wɜːld ', '-l en-us')
_test(u'bonjour le monde', u'bɔ̃ʒuʁ lə mɔ̃d ', '-l fr-fr')
_test(u'bonjour le monde', u'b ɔ̃ ʒ u ʁ ;eword l ə ;eword m ɔ̃ d ;eword ',

@ -0,0 +1,22 @@
diff --git a/test/test_main.py b/test/test_main.py
index 71d605a..0ea3c74 100644
--- a/test/test_main.py
+++ b/test/test_main.py
@@ -63,17 +63,12 @@ def test_readme():
_test(u'hello world', u'həloʊ wɜːld ')
_test(u'hello world', u'həloʊ wɜːld ', '--verbose')
_test(u'hello world', u'həloʊ wɜːld ', '--quiet')
- _test(u'hello world', u'hhaxlow werld', '-b festival --strip')
_test(u'hello world', u'həloʊ wɜːld ', '-l en-us')
_test(u'bonjour le monde', u'bɔ̃ʒuʁ lə mɔ̃d ', '-l fr-fr')
_test(u'bonjour le monde', u'b ɔ̃ ʒ u ʁ ;eword l ə ;eword m ɔ̃ d ;eword ',
'-l fr-fr -p " " -w ";eword "')
-@pytest.mark.skipif(
- '2.1' in backend.FestivalBackend.version(),
- reason='festival-2.1 gives different results than further versions '
- 'for syllable boundaries')
def test_readme_festival_syll():
_test(u'hello world',
u'hh ax ;esyll l ow ;esyll ;eword w er l d ;esyll ;eword ',

@ -5290,6 +5290,8 @@ in {
pyomo = callPackage ../development/python-modules/pyomo { };
phonemizer = callPackage ../development/python-modules/phonemizer { };
pyopencl = callPackage ../development/python-modules/pyopencl { };
pyopengl = callPackage ../development/python-modules/pyopengl { };

Loading…
Cancel
Save