Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[add] Implementing a more stable Yandex Translate implementation #10

Merged
merged 5 commits into from Apr 27, 2021
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions test.py
Expand Up @@ -58,7 +58,7 @@ def test_imports():
from translatepy import translate
import translatepy

def test_yandex_sid():
def test_yandex_ucid():
print("[test] --> Testing Translator.yandex_translate._sid")
t = translatepy.Translator()
assert t.yandex_translate._sid == translatepy.Translator().yandex_translate._sid
assert t.yandex_translate._ucid() is not None
14 changes: 7 additions & 7 deletions translatepy/translate.py
Expand Up @@ -49,13 +49,14 @@ def __eq__(self, o: object) -> bool:
def __ne__(self, o: object) -> bool:
return str(o) != self.result


class Translator():
"""
A class which groups all of the APIs
"""
def __init__(self, use_google=True, use_yandex=True, use_bing=True, use_reverso=True, use_deepl=True, yandex_sid_refresh=False) -> None:
def __init__(self, use_google=True, use_yandex=True, use_bing=True, use_reverso=True, use_deepl=True) -> None:
self.google_translate = (GoogleTranslate() if use_google else Unselected())
self.yandex_translate = (YandexTranslate(sid_refresh=yandex_sid_refresh) if use_yandex else Unselected())
self.yandex_translate = (YandexTranslate() if use_yandex else Unselected())
self.bing_translate = (BingTranslate() if use_bing else Unselected())
self.reverso_translate = (ReversoTranslate() if use_reverso else Unselected())
self.deepl_translate = (DeepL() if use_deepl else Unselected())
Expand Down Expand Up @@ -115,7 +116,7 @@ def transliterate(self, text, source_language=None) -> Union[str, None]:
_cache_key = str({"t": str(text), "s": str(source_language)})
if _cache_key in TRANSLITERATION_CACHES:
return TRANSLITERATION_CACHES[_cache_key]

services = [self.google_translate, self.yandex_translate]
for service in services:
if not isinstance(service, Unselected):
Expand Down Expand Up @@ -152,7 +153,7 @@ def spellcheck(self, text, source_language=None) -> Union[str, None]:
services = [self.bing_translate, self.reverso_translate, self.yandex_translate]
for service in services:
if not isinstance(service, Unselected):
lang, response = self.bing_translate.spellcheck(text, source_language)
lang, response = service.spellcheck(text, source_language)
ZhymabekRoman marked this conversation as resolved.
Show resolved Hide resolved
if response is not None:
try:
lang = Language(lang)
Expand All @@ -162,7 +163,7 @@ def spellcheck(self, text, source_language=None) -> Union[str, None]:
SPELLCHECK_CACHES[str({"t": str(text), "s": str(lang)})] = response
return response
return None

def language(self, text) -> Union[Language, str, None]:
"""
Returns the language of the given text
Expand Down Expand Up @@ -192,7 +193,6 @@ def language(self, text) -> Union[Language, str, None]:
return response
return None


def example(self, text, destination_language=None, source_language=None) -> Union[List, None]:
"""
Returns a set of examples / use cases for the given word
Expand All @@ -205,7 +205,7 @@ def example(self, text, destination_language=None, source_language=None) -> Unio
return None

if destination_language is None:
destination_language = "Japanese" # could be anything
destination_language = "Japanese" # could be anything

## language handling
if not isinstance(destination_language, Language):
Expand Down
9 changes: 5 additions & 4 deletions translatepy/translators/bing.py
Expand Up @@ -17,7 +17,8 @@
"Content-Type": "application/x-www-form-urlencoded",
"Connection": "keep-alive"
}
PARAMS = {'IG' : '839D27F8277F4AA3B0EDB83C255D0D70', 'IID' : 'translator.5033.3'}

PARAMS = {'IG': '839D27F8277F4AA3B0EDB83C255D0D70', 'IID': 'translator.5033.3'}

class Example():
"""An Example"""
Expand Down Expand Up @@ -65,7 +66,7 @@ def translate(self, text, destination_language, source_language="auto-detect") -
Args:
text: param destination_language:
source_language: Default value = "auto-detect")
destination_language:
destination_language:

Returns:
Tuple(str, str) --> tuple with source_lang, translation
Expand Down Expand Up @@ -94,7 +95,7 @@ def example(self, text, destination_language, source_language=None, translation=
Args:
text: param destination_language:
source_language: Default value = "auto-detect")
destination_language:
destination_language:

Returns:
Tuple(str, list[str]) --> tuple with source_lang, [examples]
Expand Down Expand Up @@ -170,4 +171,4 @@ def language(self, text) -> Union[str, None]:
return None

def __repr__(self) -> str:
return "Microsoft Bing Translator"
return "Microsoft Bing Translator"