cloudlanguagetools 11.6.0__tar.gz → 11.6.2__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/PKG-INFO +1 -1
  2. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/alibaba.py +12 -6
  3. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/forvo.py +1 -1
  4. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools.egg-info/PKG-INFO +1 -1
  5. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/setup.py +1 -1
  6. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/tests/test_audio.py +2 -2
  7. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/LICENSE +0 -0
  8. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/README.rst +0 -0
  9. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/__init__.py +0 -0
  10. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/amazon.py +0 -0
  11. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/argostranslate.py +0 -0
  12. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/audio_processing.py +0 -0
  13. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/azure.py +0 -0
  14. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/cereproc.py +0 -0
  15. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/chatapi.py +0 -0
  16. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/constants.py +0 -0
  17. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/deepl.py +0 -0
  18. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/dictionarylookup.py +0 -0
  19. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/easypronunciation.py +0 -0
  20. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/elevenlabs.py +0 -0
  21. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/encryption.py +0 -0
  22. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/epitran.py +0 -0
  23. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/errors.py +0 -0
  24. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/fptai.py +0 -0
  25. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/google.py +0 -0
  26. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/keys.py +0 -0
  27. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/languages.py +0 -0
  28. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/libretranslate.py +0 -0
  29. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/mandarincantonese.py +0 -0
  30. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/naver.py +0 -0
  31. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/openai.py +0 -0
  32. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/options.py +0 -0
  33. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/pythainlp.py +0 -0
  34. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/service.py +0 -0
  35. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/servicemanager.py +0 -0
  36. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/spacy.py +0 -0
  37. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/test_services.py +0 -0
  38. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/tokenization.py +0 -0
  39. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/translationlanguage.py +0 -0
  40. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/transliterationlanguage.py +0 -0
  41. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/ttsvoice.py +0 -0
  42. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/vocalware.py +0 -0
  43. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/voicen.py +0 -0
  44. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/watson.py +0 -0
  45. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools/wenlin.py +0 -0
  46. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools.egg-info/SOURCES.txt +0 -0
  47. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools.egg-info/dependency_links.txt +0 -0
  48. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools.egg-info/requires.txt +0 -0
  49. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/cloudlanguagetools.egg-info/top_level.txt +0 -0
  50. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/setup.cfg +0 -0
  51. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/tests/test_breakdown.py +0 -0
  52. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/tests/test_chatapi.py +0 -0
  53. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/tests/test_dictionary_lookup.py +0 -0
  54. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/tests/test_llm.py +0 -0
  55. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/tests/test_mock_services.py +0 -0
  56. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/tests/test_servicemanager.py +0 -0
  57. {cloudlanguagetools-11.6.0 → cloudlanguagetools-11.6.2}/tests/test_translation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudlanguagetools
3
- Version: 11.6.0
3
+ Version: 11.6.2
4
4
  Summary: Interface with various cloud APIs for language processing such as translation, text to speech
5
5
  Home-page: https://github.com/Language-Tools/cloud-language-tools-core
6
6
  Author: Luc
@@ -8,6 +8,7 @@ import hmac
8
8
  import base64
9
9
  import logging
10
10
  import tempfile
11
+ import pprint
11
12
  from typing import List
12
13
 
13
14
  import cloudlanguagetools.service
@@ -96,6 +97,7 @@ class AlibabaService(cloudlanguagetools.service.Service):
96
97
  logger.info(f"Got access token: {self.access_token}")
97
98
 
98
99
  def get_tts_audio(self, text, voice_key, options):
100
+ logger.debug(f'get_tts_audio, text: {text} voice_key: {voice_key}')
99
101
  if not self.access_token or self.access_token["ExpireTime"] <= int(time.time()):
100
102
  self.refresh_token()
101
103
 
@@ -119,23 +121,27 @@ class AlibabaService(cloudlanguagetools.service.Service):
119
121
  timeout=cloudlanguagetools.constants.RequestTimeout
120
122
  )
121
123
 
124
+ logger.debug(f'response status code: {response.status_code} headers: {pprint.pformat(response.headers)} length of response: {len(response.content)}')
125
+
122
126
  if response.status_code != 200:
123
127
  data = response.json()
124
- error_message = data.get('message', str(data))
125
- logger.warning(error_message)
128
+ error_message = f'could not retrieve audio using Alibaba: {response.content}'
129
+ logger.error(error_message)
126
130
  raise cloudlanguagetools.errors.RequestError(text, voice, error_message)
127
131
 
128
132
  if response.headers['Content-Type'] != 'audio/mpeg':
129
- logger.warning(f'Unexpected response type. Response as text: {response.text}')
133
+ logger.error(f'Unexpected response type. Response as text: {response.text}')
130
134
  raise cloudlanguagetools.errors.RequestError(
131
135
  text, voice,
132
136
  f'Got bad content type in response: {response.headers["Content-Type"]}'
133
137
  )
134
-
138
+
135
139
  # Create a temporary file and write the audio content to it
136
140
  output_temp_file = tempfile.NamedTemporaryFile(prefix=f'cloudlanguage_tools_{self.__class__.__name__}_audio', suffix='.mp3')
137
- output_temp_file.write(response.content)
138
- output_temp_file.flush()
141
+ output_temp_filename = output_temp_file.name
142
+ with open(output_temp_filename, 'wb') as audio:
143
+ audio.write(response.content)
144
+ logger.debug(f'result temporary file name: {output_temp_file.name}')
139
145
  return output_temp_file
140
146
 
141
147
  def get_tts_voice_list(self):
@@ -60,7 +60,7 @@ class ForvoService(cloudlanguagetools.service.Service):
60
60
 
61
61
  # on 2024/07, forvo started throwing some errors with SSL verification, suspect an incorrect
62
62
  # setup on their side but they are taking too long to fix it.
63
- self.verify_ssl = False
63
+ self.verify_ssl = True
64
64
 
65
65
  def configure(self, config):
66
66
  self.key = config['key']
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudlanguagetools
3
- Version: 11.6.0
3
+ Version: 11.6.2
4
4
  Summary: Interface with various cloud APIs for language processing such as translation, text to speech
5
5
  Home-page: https://github.com/Language-Tools/cloud-language-tools-core
6
6
  Author: Luc
@@ -6,7 +6,7 @@ from setuptools.command.install import install
6
6
  # twine upload dist/*
7
7
 
8
8
  setup(name='cloudlanguagetools',
9
- version='11.6.0',
9
+ version='11.6.2',
10
10
  description='Interface with various cloud APIs for language processing such as translation, text to speech',
11
11
  long_description=open('README.rst', encoding='utf-8').read(),
12
12
  url='https://github.com/Language-Tools/cloud-language-tools-core',
@@ -213,7 +213,7 @@ class TestAudio(unittest.TestCase):
213
213
 
214
214
  xiaochen = [x for x in mandarin_azure_voices if 'Xiaochen' in x.name]
215
215
  logger.debug(f'xiaochen voices: {pprint.pformat(xiaochen)}')
216
- self.assertEqual(len(xiaochen), 4, str(xiaochen)) # there is a regular and a multilingual
216
+ self.assertIn(len(xiaochen), [3, 4], str(xiaochen)) # there is a regular and a multilingual
217
217
  # and also a DragonHD, and DragonHD V1
218
218
 
219
219
  xiaochen_single_language = [x for x in xiaochen if len(x.audio_languages) == 1][0]
@@ -292,7 +292,7 @@ class TestAudio(unittest.TestCase):
292
292
  mandarin_azure_voices = [x for x in azure_voices if AudioLanguage.zh_CN in x.audio_languages]
293
293
 
294
294
  xiaochen = [x for x in mandarin_azure_voices if 'Xiaochen' in x.name]
295
- self.assertEqual(len(xiaochen), 4) # there is a regular and a multilingual, and dragonhd,
295
+ self.assertIn(len(xiaochen), [3, 4]) # there is a regular and a multilingual, and dragonhd,
296
296
  # and dragonhd latest
297
297
 
298
298
  xiaochen_single_language = [x for x in xiaochen if len(x.audio_languages) == 1][0]