Nidhal Baccouri commited on
Commit
e027272
·
unverified ·
2 Parent(s): 8593ca0 a1efbe8

Merge pull request #18 from nidhaloff/dev

Browse files
deep_translator/google_trans.py CHANGED
@@ -43,17 +43,17 @@ class GoogleTranslator(BaseTranslator):
43
  @return: mapped value of the language or raise an exception if the language is not supported
44
  """
45
  for language in languages:
46
- if language in GOOGLE_LANGUAGES_TO_CODES.values() or language == 'auto':
47
  yield language
48
- elif language in GOOGLE_LANGUAGES_TO_CODES.keys():
49
- yield GOOGLE_LANGUAGES_TO_CODES[language]
50
  else:
51
  raise LanguageNotSupportedException(language)
52
 
53
  def is_language_supported(self, *languages):
54
  for lang in languages:
55
- if lang != 'auto' and lang not in GOOGLE_LANGUAGES_TO_CODES.keys():
56
- if lang != 'auto' and lang not in GOOGLE_LANGUAGES_TO_CODES.values():
57
  raise LanguageNotSupportedException(lang)
58
  return True
59
 
 
43
  @return: mapped value of the language or raise an exception if the language is not supported
44
  """
45
  for language in languages:
46
+ if language in self._languages.values() or language == 'auto':
47
  yield language
48
+ elif language in self._languages.keys():
49
+ yield self._languages[language]
50
  else:
51
  raise LanguageNotSupportedException(language)
52
 
53
  def is_language_supported(self, *languages):
54
  for lang in languages:
55
+ if lang != 'auto' and lang not in self._languages.keys():
56
+ if lang != 'auto' and lang not in self._languages.values():
57
  raise LanguageNotSupportedException(lang)
58
  return True
59
 
deep_translator/linguee.py CHANGED
@@ -38,17 +38,17 @@ class LingueeTranslator(BaseTranslator):
38
  @return: mapped value of the language or raise an exception if the language is not supported
39
  """
40
  for language in languages:
41
- if language in LINGUEE_LANGUAGES_TO_CODES.values():
42
  yield LINGUEE_CODE_TO_LANGUAGE[language]
43
- elif language in LINGUEE_LANGUAGES_TO_CODES.keys():
44
  yield language
45
  else:
46
  raise LanguageNotSupportedException(language)
47
 
48
  def is_language_supported(self, *languages, **kwargs):
49
  for lang in languages:
50
- if lang not in LINGUEE_LANGUAGES_TO_CODES.keys():
51
- if lang not in LINGUEE_LANGUAGES_TO_CODES.values():
52
  raise LanguageNotSupportedException(lang)
53
  return True
54
 
@@ -86,4 +86,3 @@ class LingueeTranslator(BaseTranslator):
86
  translated_words.append(self.translate(payload=word))
87
  return translated_words
88
 
89
-
 
38
  @return: mapped value of the language or raise an exception if the language is not supported
39
  """
40
  for language in languages:
41
+ if language in self._languages.values():
42
  yield LINGUEE_CODE_TO_LANGUAGE[language]
43
+ elif language in self._languages.keys():
44
  yield language
45
  else:
46
  raise LanguageNotSupportedException(language)
47
 
48
  def is_language_supported(self, *languages, **kwargs):
49
  for lang in languages:
50
+ if lang not in self._languages.keys():
51
+ if lang not in self._languages.values():
52
  raise LanguageNotSupportedException(lang)
53
  return True
54
 
 
86
  translated_words.append(self.translate(payload=word))
87
  return translated_words
88
 
 
deep_translator/mymemory.py CHANGED
@@ -1,6 +1,6 @@
1
 
2
  from deep_translator.constants import BASE_URLS, GOOGLE_LANGUAGES_TO_CODES
3
- from deep_translator.exceptions import NotValidPayload, TranslationNotFound
4
  from deep_translator.parent import BaseTranslator
5
  import requests
6
 
@@ -18,9 +18,11 @@ class MyMemoryTranslator(BaseTranslator):
18
  @param target: target language to translate to
19
  """
20
  self.__base_url = BASE_URLS.get("MYMEMORY")
21
- self._source = source if source != 'auto' else 'Lao'
22
- self._target = target
 
23
 
 
24
  self.email = kwargs.get('email', None)
25
  super(MyMemoryTranslator, self).__init__(base_url=self.__base_url,
26
  source=self._source,
@@ -32,10 +34,32 @@ class MyMemoryTranslator(BaseTranslator):
32
  def get_supported_languages(as_dict=False):
33
  return MyMemoryTranslator.supported_languages if not as_dict else MyMemoryTranslator._languages
34
 
35
- def translate(self, text, **kwargs):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  """
37
  main function that uses google translate to translate a text
38
  @param text: desired text to translate
 
39
  @return: str: translated text
40
  """
41
 
@@ -62,7 +86,7 @@ class MyMemoryTranslator(BaseTranslator):
62
  all_matches = data.get('matches')
63
  matches = (match['translation'] for match in all_matches)
64
  next_match = next(matches)
65
- return next_match if not kwargs.get('return_all') else list(all_matches)
66
 
67
  def translate_sentences(self, sentences=None, **kwargs):
68
  """
@@ -86,3 +110,4 @@ class MyMemoryTranslator(BaseTranslator):
86
 
87
  except Exception as e:
88
  raise e
 
 
1
 
2
  from deep_translator.constants import BASE_URLS, GOOGLE_LANGUAGES_TO_CODES
3
+ from deep_translator.exceptions import NotValidPayload, TranslationNotFound, LanguageNotSupportedException
4
  from deep_translator.parent import BaseTranslator
5
  import requests
6
 
 
18
  @param target: target language to translate to
19
  """
20
  self.__base_url = BASE_URLS.get("MYMEMORY")
21
+ if self.is_language_supported(source, target):
22
+ self._source, self._target = self._map_language_to_code(source.lower(), target.lower())
23
+ self._source = self._source if self._source != 'auto' else 'Lao'
24
 
25
+ print(self._source, self._target)
26
  self.email = kwargs.get('email', None)
27
  super(MyMemoryTranslator, self).__init__(base_url=self.__base_url,
28
  source=self._source,
 
34
  def get_supported_languages(as_dict=False):
35
  return MyMemoryTranslator.supported_languages if not as_dict else MyMemoryTranslator._languages
36
 
37
+ def _map_language_to_code(self, *languages):
38
+ """
39
+
40
+ @param language: type of language
41
+ @return: mapped value of the language or raise an exception if the language is not supported
42
+ """
43
+ for language in languages:
44
+ if language in self._languages.values() or language == 'auto':
45
+ yield language
46
+ elif language in self._languages.keys():
47
+ yield self._languages[language]
48
+ else:
49
+ raise LanguageNotSupportedException(language)
50
+
51
+ def is_language_supported(self, *languages):
52
+ for lang in languages:
53
+ if lang != 'auto' and lang not in self._languages.keys():
54
+ if lang != 'auto' and lang not in self._languages.values():
55
+ raise LanguageNotSupportedException(lang)
56
+ return True
57
+
58
+ def translate(self, text, return_all=False, **kwargs):
59
  """
60
  main function that uses google translate to translate a text
61
  @param text: desired text to translate
62
+ @param return_all: set True to return all synonyms
63
  @return: str: translated text
64
  """
65
 
 
86
  all_matches = data.get('matches')
87
  matches = (match['translation'] for match in all_matches)
88
  next_match = next(matches)
89
+ return next_match if not return_all else list(all_matches)
90
 
91
  def translate_sentences(self, sentences=None, **kwargs):
92
  """
 
110
 
111
  except Exception as e:
112
  raise e
113
+
deep_translator/pons.py CHANGED
@@ -38,22 +38,21 @@ class PonsTranslator(BaseTranslator):
38
 
39
  def _map_language_to_code(self, *languages, **kwargs):
40
  """
41
-
42
  @param language: type of language
43
  @return: mapped value of the language or raise an exception if the language is not supported
44
  """
45
  for language in languages:
46
- if language in PONS_LANGUAGES_TO_CODES.values():
47
  yield PONS_CODES_TO_LANGUAGES[language]
48
- elif language in PONS_LANGUAGES_TO_CODES.keys():
49
  yield language
50
  else:
51
  raise LanguageNotSupportedException(language)
52
 
53
  def is_language_supported(self, *languages, **kwargs):
54
  for lang in languages:
55
- if lang not in PONS_LANGUAGES_TO_CODES.keys():
56
- if lang not in PONS_LANGUAGES_TO_CODES.values():
57
  raise LanguageNotSupportedException(lang)
58
  return True
59
 
 
38
 
39
  def _map_language_to_code(self, *languages, **kwargs):
40
  """
 
41
  @param language: type of language
42
  @return: mapped value of the language or raise an exception if the language is not supported
43
  """
44
  for language in languages:
45
+ if language in self._languages.values():
46
  yield PONS_CODES_TO_LANGUAGES[language]
47
+ elif language in self._languages.keys():
48
  yield language
49
  else:
50
  raise LanguageNotSupportedException(language)
51
 
52
  def is_language_supported(self, *languages, **kwargs):
53
  for lang in languages:
54
+ if lang not in self._languages.keys():
55
+ if lang not in self._languages.values():
56
  raise LanguageNotSupportedException(lang)
57
  return True
58
 
deep_translator/tests/{test_deep_translator.py → test_google_trans.py} RENAMED
@@ -29,11 +29,22 @@ def test_inputs():
29
  with pytest.raises(exceptions.LanguageNotSupportedException):
30
  GoogleTranslator(source="auto", target="nothing")
31
 
 
 
 
 
 
32
 
33
  def test_payload(google_translator):
 
34
  with pytest.raises(exceptions.NotValidPayload):
35
  google_translator.translate(text="")
 
36
  with pytest.raises(exceptions.NotValidPayload):
37
  google_translator.translate(text=123)
38
 
 
 
39
 
 
 
 
29
  with pytest.raises(exceptions.LanguageNotSupportedException):
30
  GoogleTranslator(source="auto", target="nothing")
31
 
32
+ g1 = GoogleTranslator("en", "fr")
33
+ g2 = GoogleTranslator("english", "french")
34
+ assert g1._source == g2._source
35
+ assert g1._target == g2._target
36
+
37
 
38
  def test_payload(google_translator):
39
+
40
  with pytest.raises(exceptions.NotValidPayload):
41
  google_translator.translate(text="")
42
+
43
  with pytest.raises(exceptions.NotValidPayload):
44
  google_translator.translate(text=123)
45
 
46
+ with pytest.raises(exceptions.NotValidPayload):
47
+ google_translator.translate(text={})
48
 
49
+ with pytest.raises(exceptions.NotValidPayload):
50
+ google_translator.translate(text=[])
deep_translator/tests/test_linguee.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+
3
+ """Tests for `deep_translator` package."""
4
+
5
+ import pytest
6
+ from deep_translator import exceptions, LingueeTranslator
7
+
8
+
9
+ @pytest.fixture
10
+ def linguee():
11
+ return LingueeTranslator(source="english", target='french')
12
+
13
+
14
+ def test_content(linguee):
15
+ """Sample pytest test function with the pytest fixture as an argument."""
16
+ # from bs4 import BeautifulSoup
17
+ # assert 'GitHub' in BeautifulSoup(response.content).title.string
18
+ assert linguee.translate(word='good') is not None
19
+
20
+
21
+ def test_inputs():
22
+ with pytest.raises(exceptions.LanguageNotSupportedException):
23
+ LingueeTranslator(source="", target="")
24
+
25
+ with pytest.raises(exceptions.LanguageNotSupportedException):
26
+ LingueeTranslator(source="auto", target="nothing")
27
+
28
+ l1 = LingueeTranslator("en", "fr")
29
+ l2 = LingueeTranslator("english", "french")
30
+ assert l1._source == l2._source
31
+ assert l1._target == l2._target
32
+
33
+
34
+ def test_payload(linguee):
35
+
36
+ with pytest.raises(exceptions.NotValidPayload):
37
+ linguee.translate("")
38
+
39
+ with pytest.raises(exceptions.NotValidPayload):
40
+ linguee.translate(123)
41
+
42
+ with pytest.raises(exceptions.NotValidPayload):
43
+ linguee.translate({})
44
+
45
+ with pytest.raises(exceptions.NotValidPayload):
46
+ linguee.translate([])
deep_translator/tests/test_mymemory.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+
3
+ """Tests for `deep_translator` package."""
4
+
5
+ import pytest
6
+ from deep_translator import exceptions, MyMemoryTranslator
7
+
8
+
9
+ @pytest.fixture
10
+ def mymemory():
11
+ return MyMemoryTranslator(source="en", target='fr')
12
+
13
+
14
+ def test_content(mymemory):
15
+ """Sample pytest test function with the pytest fixture as an argument."""
16
+ # from bs4 import BeautifulSoup
17
+ # assert 'GitHub' in BeautifulSoup(response.content).title.string
18
+ assert mymemory.translate(text='good') is not None
19
+
20
+
21
+ def test_inputs():
22
+ with pytest.raises(exceptions.LanguageNotSupportedException):
23
+ MyMemoryTranslator(source="", target="")
24
+
25
+ with pytest.raises(exceptions.LanguageNotSupportedException):
26
+ MyMemoryTranslator(source="auto", target="nothing")
27
+ m1 = MyMemoryTranslator("en", "fr")
28
+ m2 = MyMemoryTranslator("english", "french")
29
+ assert m1._source == m2._source
30
+ assert m1._target == m2._target
31
+
32
+ def test_payload(mymemory):
33
+
34
+ with pytest.raises(exceptions.NotValidPayload):
35
+ mymemory.translate(text="")
36
+
37
+ with pytest.raises(exceptions.NotValidPayload):
38
+ mymemory.translate(text=123)
39
+
40
+ with pytest.raises(exceptions.NotValidPayload):
41
+ mymemory.translate(text={})
42
+
43
+ with pytest.raises(exceptions.NotValidPayload):
44
+ mymemory.translate(text=[])
deep_translator/tests/test_pons.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+
3
+ """Tests for `deep_translator` package."""
4
+
5
+ import pytest
6
+ from deep_translator import exceptions, PonsTranslator
7
+
8
+
9
+ @pytest.fixture
10
+ def pons():
11
+ return PonsTranslator(source="english", target='french')
12
+
13
+
14
+ def test_content(pons):
15
+ """Sample pytest test function with the pytest fixture as an argument."""
16
+ # from bs4 import BeautifulSoup
17
+ # assert 'GitHub' in BeautifulSoup(response.content).title.string
18
+ assert pons.translate(word='good') is not None
19
+
20
+
21
+ def test_inputs():
22
+ with pytest.raises(exceptions.LanguageNotSupportedException):
23
+ PonsTranslator(source="", target="")
24
+
25
+ with pytest.raises(exceptions.LanguageNotSupportedException):
26
+ PonsTranslator(source="auto", target="nothing")
27
+ l1 = PonsTranslator("en", "fr")
28
+ l2 = PonsTranslator("english", "french")
29
+ assert l1._source == l2._source
30
+ assert l1._target == l2._target
31
+
32
+ def test_payload(pons):
33
+
34
+ with pytest.raises(exceptions.NotValidPayload):
35
+ pons.translate("")
36
+
37
+ with pytest.raises(exceptions.NotValidPayload):
38
+ pons.translate(123)
39
+
40
+ with pytest.raises(exceptions.NotValidPayload):
41
+ pons.translate({})
42
+
43
+ with pytest.raises(exceptions.NotValidPayload):
44
+ pons.translate([])