nidhal baccouri commited on
Commit
71d8e8b
·
1 Parent(s): 219958c

fixed bug in libre

Browse files
deep_translator/base.py CHANGED
@@ -4,7 +4,7 @@ from abc import ABC, abstractmethod
4
  from typing import List, Optional, Union
5
 
6
  from deep_translator.constants import GOOGLE_LANGUAGES_TO_CODES
7
- from deep_translator.exceptions import InvalidSourceOrTargetLanguage
8
 
9
 
10
  class BaseTranslator(ABC):
@@ -56,6 +56,12 @@ class BaseTranslator(ABC):
56
  yield language
57
  elif language in self.languages.keys():
58
  yield self.languages[language]
 
 
 
 
 
 
59
 
60
  def _same_source_target(self) -> bool:
61
  return self._source == self._target
 
4
  from typing import List, Optional, Union
5
 
6
  from deep_translator.constants import GOOGLE_LANGUAGES_TO_CODES
7
+ from deep_translator.exceptions import InvalidSourceOrTargetLanguage, LanguageNotSupportedException
8
 
9
 
10
  class BaseTranslator(ABC):
 
56
  yield language
57
  elif language in self.languages.keys():
58
  yield self.languages[language]
59
+ else:
60
+ raise LanguageNotSupportedException(
61
+ language,
62
+ message=f"No support for the provided language.\n"
63
+ f"Please select on of the supported languages:\n"
64
+ f"{self.languages}")
65
 
66
  def _same_source_target(self) -> bool:
67
  return self._source == self._target
deep_translator/libre.py CHANGED
@@ -24,21 +24,25 @@ class LibreTranslator(BaseTranslator):
24
  def __init__(
25
  self,
26
  api_key: Optional[str] = None,
27
- source: str = "auto",
28
- target: str = "en",
 
 
29
  **kwargs
30
  ):
31
  """
 
32
  @param source: source language to translate from
33
- List of LibreTranslate nedpoints can be found at : https://github.com/LibreTranslate/LibreTranslate#mirrors
34
  Some require an API key
35
  @param target: target language to translate to
 
 
36
  """
37
- if not api_key:
38
- raise ServerException(401)
39
  self.api_key = api_key
 
40
  super().__init__(
41
- base_url=BASE_URLS.get("LIBRE"),
42
  source=source,
43
  target=target,
44
  languages=LIBRE_LANGUAGES_TO_CODES,
@@ -101,3 +105,9 @@ class LibreTranslator(BaseTranslator):
101
  @return: list of translations
102
  """
103
  return self._translate_batch(batch, **kwargs)
 
 
 
 
 
 
 
24
  def __init__(
25
  self,
26
  api_key: Optional[str] = None,
27
+ source: str = "en",
28
+ target: str = "es",
29
+ use_free_api: bool = True,
30
+ custom_url: Optional[str] = None,
31
  **kwargs
32
  ):
33
  """
34
+ @param api_key: your api key
35
  @param source: source language to translate from
36
+ List of LibreTranslate endpoint can be found at : https://github.com/LibreTranslate/LibreTranslate#mirrors
37
  Some require an API key
38
  @param target: target language to translate to
39
+ @param use_free_api: set True if you want to use the free api. This means a url that does not require and api key would be used
40
+ @param custom_url: you can use a custom endpoint
41
  """
 
 
42
  self.api_key = api_key
43
+ url = BASE_URLS.get("LIBRE") if not use_free_api else BASE_URLS.get('LIBRE_FREE')
44
  super().__init__(
45
+ base_url=url if not custom_url else custom_url,
46
  source=source,
47
  target=target,
48
  languages=LIBRE_LANGUAGES_TO_CODES,
 
105
  @return: list of translations
106
  """
107
  return self._translate_batch(batch, **kwargs)
108
+
109
+
110
+ if __name__ == '__main__':
111
+ l = LibreTranslator(source="en", target="de")
112
+ res = l.translate("good")
113
+ print("res: ", res)