Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Translation Gummy is a magical gadget which enables user to be able to speak and understand other languages.

Project description

Translation Gummy

header PyPI version GitHub version Python package Upload Python Package license website Add to Slack twitter badge Qiita badge

Translation Gummy is a magical gadget which enables user to be able to speak and understand other languages. ※ Supported journals are listed here.

Installation

  1. Install Translation-Gummy (There are two ways to install):
    • Install from PyPI (recommended):
      $ sudo pip install Translation-Gummy
      
    • Alternatively: install PyGuitar from the GitHub source:
      $ git clone https://github.com/iwasakishuto/Translation-Gummy.git
      $ cd Translation-Gummy
      $ sudo python setup.py install
      
  2. Install wkhtmltopdf
    • Debian/Ubuntu:
      $ sudo apt-get install wkhtmltopdf
      
    • macOS:
      $ brew install Caskroom/cask/wkhtmltopdf
      
  3. Install driver for selenium: Selenium requires a driver to interface with the chosen browser, so please visit the documentation to install it.
    # Example: Chrome
    # visit "chrome://settings/help" to check your chrome version.
    # visit "https://chromedriver.chromium.org/downloads" to check <Suitable.Driver.Version> for your chrome.
    $ wget https://chromedriver.storage.googleapis.com/<Suitable.Driver.Version>/chromedriver_mac64.zip
    $ unzip chromedriver_mac64.zip
    $ mv chromedriver /usr/local/bin/chromedriver
    $ chmod +x /usr/local/bin/chromedriver
    

Quick example

  • example notebooks
  • Translation:
    • Python Module:
    >>> from gummy import TranslationGummy
    >>> gummy = TranslationGummy(translator="deepl")
    DRIVER_TYPE: local
    >>> gummy.en2ja("This is a pen.")
    DeepLTranslator query no.1 01/15 [#-------------------]  6.67% - 1.091[s]
    'これはペンです。'
    
    • Command line:
    $ gummy-translate "This is a pen."
    [success] local driver can be built.
    [failure] remote driver can't be built.
    DRIVER_TYPE: local
    DeepLTranslator query no.1 01/15 [#-------------------]  6.67% - 1.096[s]
    これはペンです。
    
    Output gummy-translate
  • Create PDF (with translation)
    • Python Module:
    >>> from gummy import TranslationGummy
    >>> gummy = TranslationGummy(gateway="utokyo", translator="deepl")
    >>> pdfpath = gummy.toPDF(url="https://doi.org/10.1038/171737a0", delete_html=True)
    
    • Command line:
    $ gummy-journal "https://doi.org/10.1038/171737a0"
    
    Output gummy-journal

Environment Variable

When you use gateways, you need to set environment variables in .env file, or call a function with keyword argument.

>>> from gummy import gateways
>>> from gummy.utils import get_driver
>>> gateway = gateways.get("utokyo")
TRANSLATION_GUMMY_UTOKYO_GATEWAY_USERNAME is not set.
TRANSLATION_GUMMY_UTOKYO_GATEWAY_PASSWORD is not set.
EnvVariableNotDefinedWarning: Please set environment variable in /Users/iwasakishuto/.gummy/.env
  1. Set environment variables in .env file.
    >>> from gummy.utils import where_is_envfile, show_environ, write_environ, read_environ
    >>> default_dotenv_path = where_is_envfile()
    >>> print(f"default dotenv path: '{default_dotenv_path}'")
    default dotenv path: '/Users/iwasakishuto/.gummy/.env'
    
    # Write and update `.env` file.
    >>> write_environ(
    ...    TRANSLATION_GUMMY_UTOKYO_GATEWAY_USERNAME="username",
    ...    TRANSLATION_GUMMY_UTOKYO_GATEWAY_PASSWORD="password",
    >>> )
    >>> show_environ(default_dotenv_path)
    TRANSLATION_GUMMY_UTOKYO_GATEWAY_USERNAM = "username"
    TRANSLATION_GUMMY_UTOKYO_GATEWAY_PASSWOR = "password"
    
    # Call with no kwargs.
    >>> gateway = gateways.get("utokyo")
    >>> with get_drive() as driver:
    ...    driver = gateway.passthrough(driver)
    ...    :
    
  2. Call a function with keyword argument.
    # Call with kwargs.
    >>> with get_drive() as driver:
    ...    driver = gateway.passthrough(driver, username="username", password="password")
    ...    :
    

Naming conventions

>>> ENV_VARNAMES = "{1}_{2}_GATEWAY_{3}"
# 1 = TRANSLATION_GUMMY_ENVNAME_PREFIX (Define @gummy.utils.environ_utils.py)
# 2 = Uppercase of class name without 'GateWay'
# 3 = varnames, which is also the key of `keywargs`
Example
# ==============================================================================
# @gummy.utils.environ_utils.py
TRANSLATION_GUMMY_ENVNAME_PREFIX = "TRANSLATION_GUMMY"
# @gummy.gateways.py
class GummyAbstGateWay(metaclass=ABCMeta):
   def __init__(self, url=None, verbose=1, env_varnames=[], dotenv_path=DOTENV_PATH):
        self.env_varnames = [
            TRANSLATION_GUMMY_ENVNAME_PREFIX + "_" + \
            self.__class__.__name__.replace('GateWay', '').upper() + "_" + \
            "GATEWAY_" + \
            v.upper() for v in env_varnames
        ]
# ==============================================================================
>>> from gummy.gateways import GummyAbstGateWay
>>> class Hoge(GummyAbstGateWay):
...     def __init__():
...         super().__init__(env_varnames=["username"])

>>> hoge = Hoge()
>>> hoge.envvarnames = ["{1}_{2}_GATEWAY_{3}"]
# 1 = TRANSLATION_GUMMY_ENVNAME_PREFIX = "TRANSLATION_GUMMY"
# 2 = HOGE (= Hoge.upper())
# 3 = USERNAME (= username.upper())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for Translation-Gummy, version 3.4.1
Filename, size File type Python version Upload date Hashes
Filename, size Translation_Gummy-3.4.1-py3-none-any.whl (45.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size Translation-Gummy-3.4.1.tar.gz (53.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page