Chris commited on
Commit
fdb2846
·
1 Parent(s): 1616574

minor refactoring and renamed cli.py to __main__ to reflect its true purpose

Browse files
deep_translator/__init__.py CHANGED
@@ -1,29 +1,28 @@
1
- """Top-level package for deep_translator."""
2
 
3
- from deep_translator.google_trans import GoogleTranslator
4
- from deep_translator.pons import PonsTranslator
5
- from deep_translator.linguee import LingueeTranslator
6
- from deep_translator.mymemory import MyMemoryTranslator
7
- from deep_translator.yandex import YandexTranslator
8
- from deep_translator.qcri import QCRI
9
- from deep_translator.deepl import DeepL
10
- from deep_translator.detection import single_detection, batch_detection
11
- from deep_translator.microsoft import MicrosoftTranslator
12
- from deep_translator.cli import main
13
 
 
 
 
 
14
 
15
- __author__ = """Nidhal Baccouri"""
16
- __email__ = '[email protected]'
17
- __version__ = '1.4.4'
18
-
19
- __all__ = [GoogleTranslator,
20
- PonsTranslator,
21
- LingueeTranslator,
22
- MyMemoryTranslator,
23
- YandexTranslator,
24
- MicrosoftTranslator,
25
- QCRI,
26
- DeepL,
27
- main,
28
- single_detection,
29
- batch_detection]
 
1
+ """Top-level package for Deep Translator"""
2
 
3
+ from google_trans import GoogleTranslator
4
+ from pons import PonsTranslator
5
+ from linguee import LingueeTranslator
6
+ from mymemory import MyMemoryTranslator
7
+ from yandex import YandexTranslator
8
+ from qcri import QCRI
9
+ from deepl import DeepL
10
+ from detection import single_detection, batch_detection
11
+ from microsoft import MicrosoftTranslator
 
12
 
13
+ # These should be declared in setup.cfg, setting them here is redundant
14
+ # __author__ = """Nidhal Baccouri"""
15
+ # __email__ = '[email protected]'
16
+ # __version__ = '1.4.4'
17
 
18
+ # __all__ = [GoogleTranslator,
19
+ # PonsTranslator,
20
+ # LingueeTranslator,
21
+ # MyMemoryTranslator,
22
+ # YandexTranslator,
23
+ # MicrosoftTranslator,
24
+ # QCRI,
25
+ # DeepL,
26
+ # main,
27
+ # single_detection,
28
+ # batch_detection]
 
 
 
 
deep_translator/{cli.py → __main__.py} RENAMED
@@ -13,63 +13,31 @@ from papago import PapagoTranslator
13
 
14
  CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"])
15
 
16
- def main(translator, source, target, text, api_key, languages):
17
- """
18
- Use TRANSLATOR to translate source material into another language.\n
19
- Available translators include: Google, MyMemory, QCRI, Linguee, Pons, Yandex, Microsoft (Bing), and Papago.\n
20
- \n
21
- \f
22
- function responsible for parsing terminal arguments and provide them for
23
- further use in the translation process
24
- """
25
- api_key_required = ["deepl", "qcri", "yandex", "microsoft", "papago"]
26
- if translator in api_key_required and not api_key:
27
- click.echo(
28
- "This translator requires an api key provided through --api-key"
29
- )
30
- elif languages:
31
- print_supported_languages(translator, api_key)
32
- else:
33
- translate(translator, source, target, text, api_key)
34
- # sys.exit()
35
-
36
- @click.command(context_settings=CONTEXT_SETTINGS)
37
- # @click.option(
38
- # "--translator",
39
- # "-trans",
40
- # default="google",
41
- # type=str,
42
- # help="name of the translator you want to use",
43
- # show_default=True,
44
- # )
45
-
46
  @click.argument(
47
- 'translator',
48
- required=True,
49
- default='google',
50
- type=str,
51
- )
52
-
53
  @click.option(
54
- "--source",
55
- "-src",
56
- required=True,
57
- type=str,
58
- help="source language to translate from"
59
- )
60
  @click.option(
61
- "--target",
62
- "-tgt",
63
- required=True,
64
- type=str,
65
- help="target language to translate to"
66
- )
67
  @click.option(
68
- "--text",
69
- "-txt",
70
  type=str,
71
- help="text you want to translate"
72
- )
 
73
  @click.option(
74
  "--api-key",
75
  type=str,
@@ -82,6 +50,23 @@ def main(translator, source, target, text, api_key, languages):
82
  help="list all the languages available with the translator."
83
  " Run with deep_translator <translator service> -lang",
84
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
 
86
  def translate(translator, source, target, text, api_key):
87
  """
@@ -171,4 +156,4 @@ def print_supported_languages(requested_translator, api_key):
171
  click.echo(f"|- {k}: {v}")
172
 
173
  if __name__ == "__main__":
174
- main()
 
13
 
14
  CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"])
15
 
16
+ @click.command(name='Deep Translator', context_settings=CONTEXT_SETTINGS, no_args_is_help=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  @click.argument(
18
+ 'translator',
19
+ required=True,
20
+ default='google',
21
+ type=str)
 
 
22
  @click.option(
23
+ "--source",
24
+ "-src",
25
+ required=True,
26
+ type=str,
27
+ help="source language to translate from")
 
28
  @click.option(
29
+ "--target",
30
+ "-tgt",
31
+ required=True,
32
+ type=str,
33
+ help="target language to translate to")
 
34
  @click.option(
35
+ "--text",
36
+ "-txt",
37
  type=str,
38
+ required = True,
39
+ prompt="Enter the text you want to translate",
40
+ help="text you want to translate")
41
  @click.option(
42
  "--api-key",
43
  type=str,
 
50
  help="list all the languages available with the translator."
51
  " Run with deep_translator <translator service> -lang",
52
  )
53
+ def deep_translator(translator, source, target, text, api_key, languages):
54
+ """
55
+ Use TRANSLATOR to translate source material into another language.\n
56
+ Available translators include: Google, MyMemory, QCRI, Linguee, Pons, Yandex, Microsoft (Bing), and Papago.\n
57
+ \f
58
+ function responsible for parsing terminal arguments and provide them for
59
+ further use in the translation process
60
+ """
61
+ api_key_required = ["deepl", "qcri", "yandex", "microsoft", "papago"]
62
+ if translator in api_key_required and not api_key:
63
+ click.echo(
64
+ "This translator requires an api key provided through --api-key"
65
+ )
66
+ elif languages:
67
+ print_supported_languages(translator, api_key)
68
+ else:
69
+ translate(translator, source, target, text, api_key)
70
 
71
  def translate(translator, source, target, text, api_key):
72
  """
 
156
  click.echo(f"|- {k}: {v}")
157
 
158
  if __name__ == "__main__":
159
+ deep_translator()
deep_translator/deepl.py CHANGED
@@ -1,9 +1,9 @@
1
  import requests
2
  from constants import BASE_URLS, DEEPL_LANGUAGE_TO_CODE
3
  from exceptions import (ServerException,
4
- TranslationNotFound,
5
- LanguageNotSupportedException,
6
- AuthorizationException)
7
 
8
 
9
  class DeepL(object):
 
1
  import requests
2
  from constants import BASE_URLS, DEEPL_LANGUAGE_TO_CODE
3
  from exceptions import (ServerException,
4
+ TranslationNotFound,
5
+ LanguageNotSupportedException,
6
+ AuthorizationException)
7
 
8
 
9
  class DeepL(object):
deep_translator/linguee.py CHANGED
@@ -4,11 +4,11 @@ linguee translator API
4
 
5
  from constants import BASE_URLS, LINGUEE_LANGUAGES_TO_CODES, LINGUEE_CODE_TO_LANGUAGE
6
  from exceptions import (LanguageNotSupportedException,
7
- TranslationNotFound,
8
- NotValidPayload,
9
- ElementNotFoundInGetRequest,
10
- RequestError,
11
- TooManyRequests)
12
  from parent import BaseTranslator
13
  from bs4 import BeautifulSoup
14
  import requests
 
4
 
5
  from constants import BASE_URLS, LINGUEE_LANGUAGES_TO_CODES, LINGUEE_CODE_TO_LANGUAGE
6
  from exceptions import (LanguageNotSupportedException,
7
+ TranslationNotFound,
8
+ NotValidPayload,
9
+ ElementNotFoundInGetRequest,
10
+ RequestError,
11
+ TooManyRequests)
12
  from parent import BaseTranslator
13
  from bs4 import BeautifulSoup
14
  import requests
deep_translator/mymemory.py CHANGED
@@ -6,10 +6,10 @@ import warnings
6
 
7
  from constants import BASE_URLS, GOOGLE_LANGUAGES_TO_CODES
8
  from exceptions import (NotValidPayload,
9
- TranslationNotFound,
10
- LanguageNotSupportedException,
11
- RequestError,
12
- TooManyRequests)
13
  from parent import BaseTranslator
14
  import requests
15
  from time import sleep
 
6
 
7
  from constants import BASE_URLS, GOOGLE_LANGUAGES_TO_CODES
8
  from exceptions import (NotValidPayload,
9
+ TranslationNotFound,
10
+ LanguageNotSupportedException,
11
+ RequestError,
12
+ TooManyRequests)
13
  from parent import BaseTranslator
14
  import requests
15
  from time import sleep
deep_translator/parent.py CHANGED
@@ -3,8 +3,6 @@
3
  from exceptions import NotValidPayload, NotValidLength, InvalidSourceOrTargetLanguage
4
  from abc import ABC, abstractmethod
5
  import string
6
-
7
-
8
  class BaseTranslator(ABC):
9
  """
10
  Abstract class that serve as a parent translator for other different translators
 
3
  from exceptions import NotValidPayload, NotValidLength, InvalidSourceOrTargetLanguage
4
  from abc import ABC, abstractmethod
5
  import string
 
 
6
  class BaseTranslator(ABC):
7
  """
8
  Abstract class that serve as a parent translator for other different translators
deep_translator/pons.py CHANGED
@@ -5,11 +5,11 @@ from bs4 import BeautifulSoup
5
  import requests
6
  from constants import BASE_URLS, PONS_LANGUAGES_TO_CODES, PONS_CODES_TO_LANGUAGES
7
  from exceptions import (LanguageNotSupportedException,
8
- TranslationNotFound,
9
- NotValidPayload,
10
- ElementNotFoundInGetRequest,
11
- RequestError,
12
- TooManyRequests)
13
  from parent import BaseTranslator
14
  from requests.utils import requote_uri
15
 
 
5
  import requests
6
  from constants import BASE_URLS, PONS_LANGUAGES_TO_CODES, PONS_CODES_TO_LANGUAGES
7
  from exceptions import (LanguageNotSupportedException,
8
+ TranslationNotFound,
9
+ NotValidPayload,
10
+ ElementNotFoundInGetRequest,
11
+ RequestError,
12
+ TooManyRequests)
13
  from parent import BaseTranslator
14
  from requests.utils import requote_uri
15
 
deep_translator/yandex.py CHANGED
@@ -3,9 +3,7 @@ Yandex translator API
3
  """
4
  import requests
5
  from constants import BASE_URLS
6
- from exceptions import (RequestError,
7
- ServerException, TranslationNotFound, TooManyRequests)
8
-
9
 
10
  class YandexTranslator(object):
11
  """
 
3
  """
4
  import requests
5
  from constants import BASE_URLS
6
+ from exceptions import (RequestError, ServerException, TranslationNotFound, TooManyRequests)
 
 
7
 
8
  class YandexTranslator(object):
9
  """