Skip to main content

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

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

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

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 "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/bin/chromedriver
    

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.

Source Distribution

Translation-Gummy-2.2.0.tar.gz (43.3 kB view hashes)

Uploaded Source

Built Distribution

Translation_Gummy-2.2.0-py3-none-any.whl (38.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page