Source code for hoshi.translators.gcloud

#!/usr/bin/env python
# encoding: utf-8

"""

Google Cloud Translator Adapter (:mod:`hoshi.translators.gcloud`)
=================================================================

This module provides the the adapter for the integration Google Cloud
Translate's Basic (v2) API. Note that this translator requires that you
have a valid API key.

"""


import os
import logging
from google.cloud import translate_v2 as translate
from .base import TranslatorBase


[docs]class GoogleCloudTranslator(TranslatorBase): _name = 'gcloud translate v2' def __init__(self, credentials=None): super(GoogleCloudTranslator, self).__init__() self._silence_logging() if credentials: os.environ.setdefault('GOOGLE_APPLICATION_CREDENTIALS', credentials) self._client = translate.Client() _upstream_loggers = [ 'urllib3.util.retry', 'urllib3.connectionpool', 'google.auth.transport.requests', 'google.auth._default' ] @property def name(self): return self._name
[docs] def _silence_logging(self): for logger in self._upstream_loggers: logging.getLogger(logger).setLevel(logging.INFO)
[docs] def translate(self, source_language, target_language, string): source = source_language.language target = target_language.language result = self._client.translate(string, target_language=target, source_language=source) return result['translatedText']