From 3cfa733a9e47d10be5bc8e9618b12e70848214dc Mon Sep 17 00:00:00 2001 From: Vineeth Sai Date: Mon, 1 Jul 2024 09:48:30 -0700 Subject: [PATCH] Added NewTranslator class and tests --- deep_translator/__init__.py | 1 + deep_translator/new_translator.py | 42 +++++++++++++++++++++++++++++++ tests/test_translator.py | 13 ++++++++++ 3 files changed, 56 insertions(+) create mode 100644 deep_translator/new_translator.py create mode 100644 tests/test_translator.py diff --git a/deep_translator/__init__.py b/deep_translator/__init__.py index 2b0c9e0..3d8d396 100644 --- a/deep_translator/__init__.py +++ b/deep_translator/__init__.py @@ -16,6 +16,7 @@ from deep_translator.qcri import QcriTranslator from deep_translator.tencent import TencentTranslator from deep_translator.yandex import YandexTranslator +from .new_translator import NewTranslator __author__ = """Nidhal Baccouri""" __email__ = "nidhalbacc@gmail.com" diff --git a/deep_translator/new_translator.py b/deep_translator/new_translator.py new file mode 100644 index 0000000..977694d --- /dev/null +++ b/deep_translator/new_translator.py @@ -0,0 +1,42 @@ +from deep_translator.base import BaseTranslator + +class NewTranslator(BaseTranslator): + """ + Implements a new translator using the example translation service. + """ + def __init__(self, source='auto', target='en'): + base_url = "https://api.example.com/translate" # Example URL + languages = { + 'auto': 'auto', + 'en': 'English', + # Add more language mappings if needed + } + super().__init__(base_url=base_url, languages=languages, source=source, target=target) + + def translate(self, text): + """ + Translate the provided text. + :param text: Text to be translated + :return: Translated text + """ + response = self._make_request(text) + return self._parse_response(response) + + def _make_request(self, text): + params = { + 'q': text, + 'source': self.source, + 'target': self.target + } + # Mocking an API response for demonstration + response = { + 'data': { + 'translations': [{ + 'translatedText': f"Translated {text}" + }] + } + } + return response + + def _parse_response(self, response): + return response['data']['translations'][0]['translatedText'] diff --git a/tests/test_translator.py b/tests/test_translator.py new file mode 100644 index 0000000..f0b898b --- /dev/null +++ b/tests/test_translator.py @@ -0,0 +1,13 @@ +import unittest +from deep_translator.new_translator import NewTranslator + +class TestNewTranslator(unittest.TestCase): + def setUp(self): + self.translator = NewTranslator() + + def test_translation(self): + result = self.translator.translate("Hello") + self.assertEqual(result, "Translated Hello") + +if __name__ == '__main__': + unittest.main()