Chris commited on
Commit
92cc291
·
1 Parent(s): a48a547

started the refactoring & added a test_cli.py

Browse files
deep_translator/cli.py CHANGED
@@ -1,15 +1,15 @@
1
  """Console script for deep_translator."""
2
 
3
  import click
4
- from .google_trans import GoogleTranslator
5
- from .mymemory import MyMemoryTranslator
6
- from .deepl import DeepL
7
- from .qcri import QCRI
8
- from .linguee import LingueeTranslator
9
- from .pons import PonsTranslator
10
- from .yandex import YandexTranslator
11
- from .microsoft import MicrosoftTranslator
12
- from .papago import PapagoTranslator
13
 
14
  CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"])
15
 
@@ -104,23 +104,33 @@ def print_supported_languages(requested_translator, api_key):
104
 
105
 
106
  @click.command(context_settings=CONTEXT_SETTINGS)
107
- @click.option(
108
- "--translator",
109
- "-trans",
110
- default="google",
 
 
 
 
 
 
 
 
 
111
  type=str,
112
- help="name of the translator you want to use",
113
- show_default=True,
114
  )
 
115
  @click.option(
116
  "--source",
117
  "-src",
 
118
  type=str,
119
  help="source language to translate from"
120
  )
121
  @click.option(
122
  "--target",
123
  "-tg",
 
124
  type=str,
125
  help="target language to translate to"
126
  )
@@ -144,6 +154,8 @@ def print_supported_languages(requested_translator, api_key):
144
  )
145
  def main(translator, source, target, text, api_key, languages):
146
  """
 
 
147
  \f
148
  function responsible for parsing terminal arguments and provide them for
149
  further use in the translation process
 
1
  """Console script for deep_translator."""
2
 
3
  import click
4
+ from google_trans import GoogleTranslator
5
+ from mymemory import MyMemoryTranslator
6
+ from deepl import DeepL
7
+ from qcri import QCRI
8
+ from linguee import LingueeTranslator
9
+ from pons import PonsTranslator
10
+ from yandex import YandexTranslator
11
+ from microsoft import MicrosoftTranslator
12
+ from papago import PapagoTranslator
13
 
14
  CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"])
15
 
 
104
 
105
 
106
  @click.command(context_settings=CONTEXT_SETTINGS)
107
+ # @click.option(
108
+ # "--translator",
109
+ # "-trans",
110
+ # default="google",
111
+ # type=str,
112
+ # help="name of the translator you want to use",
113
+ # show_default=True,
114
+ # )
115
+
116
+ @click.argument(
117
+ 'translator',
118
+ required=True,
119
+ default='google',
120
  type=str,
 
 
121
  )
122
+
123
  @click.option(
124
  "--source",
125
  "-src",
126
+ required=True
127
  type=str,
128
  help="source language to translate from"
129
  )
130
  @click.option(
131
  "--target",
132
  "-tg",
133
+ required=True
134
  type=str,
135
  help="target language to translate to"
136
  )
 
154
  )
155
  def main(translator, source, target, text, api_key, languages):
156
  """
157
+ Use TRANSLATOR to translate source material into another language.
158
+ Available translators include: Google, MyMemory, QCRI, Linguee, Pons, Yandex, Microsoft (Bing), and Papago.
159
  \f
160
  function responsible for parsing terminal arguments and provide them for
161
  further use in the translation process
deep_translator/deepl.py CHANGED
@@ -1,6 +1,6 @@
1
  import requests
2
- from deep_translator.constants import BASE_URLS, DEEPL_LANGUAGE_TO_CODE
3
- from deep_translator.exceptions import (ServerException,
4
  TranslationNotFound,
5
  LanguageNotSupportedException,
6
  AuthorizationException)
 
1
  import requests
2
+ from constants import BASE_URLS, DEEPL_LANGUAGE_TO_CODE
3
+ from exceptions import (ServerException,
4
  TranslationNotFound,
5
  LanguageNotSupportedException,
6
  AuthorizationException)
deep_translator/detection.py CHANGED
@@ -2,7 +2,7 @@
2
  language detection API
3
  """
4
  import requests
5
- from deep_translator.configs import config
6
  from requests.exceptions import HTTPError
7
 
8
 
 
2
  language detection API
3
  """
4
  import requests
5
+ from configs import config
6
  from requests.exceptions import HTTPError
7
 
8
 
deep_translator/exceptions.py CHANGED
@@ -82,7 +82,7 @@ class NotValidLength(BaseError):
82
 
83
  class RequestError(Exception):
84
  """
85
- exception thrown if an error occured during the request call, e.g a connection problem.
86
  """
87
 
88
  def __init__(self, message="Request exception can happen due to an api connection error. "
@@ -108,7 +108,7 @@ class MicrosoftAPIerror(Exception):
108
 
109
  class TooManyRequests(Exception):
110
  """
111
- exception thrown if an error occured during the request call, e.g a connection problem.
112
  """
113
 
114
  def __init__(self, message="Server Error: You made too many requests to the server. According to google, you are allowed to make 5 requests per second and up to 200k requests per day. You can wait and try again later or you can try the translate_batch function"):
 
82
 
83
  class RequestError(Exception):
84
  """
85
+ exception thrown if an error occurred during the request call, e.g a connection problem.
86
  """
87
 
88
  def __init__(self, message="Request exception can happen due to an api connection error. "
 
108
 
109
  class TooManyRequests(Exception):
110
  """
111
+ exception thrown if an error occurred during the request call, e.g a connection problem.
112
  """
113
 
114
  def __init__(self, message="Server Error: You made too many requests to the server. According to google, you are allowed to make 5 requests per second and up to 200k requests per day. You can wait and try again later or you can try the translate_batch function"):
deep_translator/google_trans.py CHANGED
@@ -2,9 +2,9 @@
2
  google translator API
3
  """
4
 
5
- from deep_translator.constants import BASE_URLS, GOOGLE_LANGUAGES_TO_CODES
6
- from deep_translator.exceptions import TooManyRequests, LanguageNotSupportedException, TranslationNotFound, NotValidPayload, RequestError
7
- from deep_translator.parent import BaseTranslator
8
  from bs4 import BeautifulSoup
9
  import requests
10
  from time import sleep
 
2
  google translator API
3
  """
4
 
5
+ from constants import BASE_URLS, GOOGLE_LANGUAGES_TO_CODES
6
+ from exceptions import TooManyRequests, LanguageNotSupportedException, TranslationNotFound, NotValidPayload, RequestError
7
+ from parent import BaseTranslator
8
  from bs4 import BeautifulSoup
9
  import requests
10
  from time import sleep
deep_translator/linguee.py CHANGED
@@ -2,14 +2,14 @@
2
  linguee translator API
3
  """
4
 
5
- from deep_translator.constants import BASE_URLS, LINGUEE_LANGUAGES_TO_CODES, LINGUEE_CODE_TO_LANGUAGE
6
- from deep_translator.exceptions import (LanguageNotSupportedException,
7
  TranslationNotFound,
8
  NotValidPayload,
9
  ElementNotFoundInGetRequest,
10
  RequestError,
11
  TooManyRequests)
12
- from deep_translator.parent import BaseTranslator
13
  from bs4 import BeautifulSoup
14
  import requests
15
  from requests.utils import requote_uri
 
2
  linguee translator API
3
  """
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
15
  from requests.utils import requote_uri
deep_translator/microsoft.py CHANGED
@@ -4,8 +4,8 @@ import requests
4
  import logging
5
  import sys
6
 
7
- from deep_translator.constants import BASE_URLS, MICROSOFT_CODES_TO_LANGUAGES
8
- from deep_translator.exceptions import LanguageNotSupportedException, ServerException, MicrosoftAPIerror
9
 
10
 
11
  class MicrosoftTranslator:
 
4
  import logging
5
  import sys
6
 
7
+ from constants import BASE_URLS, MICROSOFT_CODES_TO_LANGUAGES
8
+ from exceptions import LanguageNotSupportedException, ServerException, MicrosoftAPIerror
9
 
10
 
11
  class MicrosoftTranslator:
deep_translator/mymemory.py CHANGED
@@ -4,13 +4,13 @@ mymemory translator API
4
  import logging
5
  import warnings
6
 
7
- from deep_translator.constants import BASE_URLS, GOOGLE_LANGUAGES_TO_CODES
8
- from deep_translator.exceptions import (NotValidPayload,
9
  TranslationNotFound,
10
  LanguageNotSupportedException,
11
  RequestError,
12
  TooManyRequests)
13
- from deep_translator.parent import BaseTranslator
14
  import requests
15
  from time import sleep
16
 
 
4
  import logging
5
  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
16
 
deep_translator/papago.py CHANGED
@@ -2,8 +2,8 @@
2
  google translator API
3
  """
4
  import json
5
- from deep_translator.constants import BASE_URLS, PAPAGO_LANGUAGE_TO_CODE
6
- from deep_translator.exceptions import LanguageNotSupportedException, TranslationNotFound, NotValidPayload
7
  import requests
8
  import warnings
9
  import logging
 
2
  google translator API
3
  """
4
  import json
5
+ from constants import BASE_URLS, PAPAGO_LANGUAGE_TO_CODE
6
+ from exceptions import LanguageNotSupportedException, TranslationNotFound, NotValidPayload
7
  import requests
8
  import warnings
9
  import logging
deep_translator/parent.py CHANGED
@@ -1,6 +1,6 @@
1
  """parent translator class"""
2
 
3
- from deep_translator.exceptions import NotValidPayload, NotValidLength, InvalidSourceOrTargetLanguage
4
  from abc import ABC, abstractmethod
5
  import string
6
 
 
1
  """parent translator class"""
2
 
3
+ from exceptions import NotValidPayload, NotValidLength, InvalidSourceOrTargetLanguage
4
  from abc import ABC, abstractmethod
5
  import string
6
 
deep_translator/pons.py CHANGED
@@ -3,14 +3,14 @@ pons translator API
3
  """
4
  from bs4 import BeautifulSoup
5
  import requests
6
- from deep_translator.constants import BASE_URLS, PONS_LANGUAGES_TO_CODES, PONS_CODES_TO_LANGUAGES
7
- from deep_translator.exceptions import (LanguageNotSupportedException,
8
  TranslationNotFound,
9
  NotValidPayload,
10
  ElementNotFoundInGetRequest,
11
  RequestError,
12
  TooManyRequests)
13
- from deep_translator.parent import BaseTranslator
14
  from requests.utils import requote_uri
15
 
16
 
 
3
  """
4
  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
 
16
 
deep_translator/qcri.py CHANGED
@@ -1,9 +1,7 @@
1
 
2
  import requests
3
- from deep_translator.constants import BASE_URLS, QCRI_LANGUAGE_TO_CODE
4
- from deep_translator.exceptions import (
5
- ServerException, TranslationNotFound)
6
-
7
 
8
  class QCRI(object):
9
  """
 
1
 
2
  import requests
3
+ from constants import BASE_URLS, QCRI_LANGUAGE_TO_CODE
4
+ from exceptions import (ServerException, TranslationNotFound)
 
 
5
 
6
  class QCRI(object):
7
  """
deep_translator/tests/test_cli.py ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+
3
+ """Tests for `deep_translator` package."""
4
+
5
+ from click.testing import CliRunner
6
+ import cli
7
+
8
+ def cli():
9
+ runner = CliRunner()
10
+ result = runner.invoke(cli.translate, [ 'google', 'auto', 'en', '좋은'])
11
+ assert result.exit_code == 0
12
+ assert result == 'good'
deep_translator/yandex.py CHANGED
@@ -2,9 +2,9 @@
2
  Yandex translator API
3
  """
4
  import requests
5
- from deep_translator.constants import BASE_URLS
6
- from deep_translator.exceptions import (RequestError,
7
- ServerException, TranslationNotFound, TooManyRequests)
8
 
9
 
10
  class YandexTranslator(object):
 
2
  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):