metamorph 0.0.14-37-g5534218 documentation

metamorph

IMG

First line is the input followed by colorized suggestions.

Metamorph easily fixes typos and suggests alternative wordings by repeatedly translating the text into different languages and in the end to the desired language.

Doc: metamorph --help

PyPI version downloads

Stable

Unstable

workflow

test

Coverage Status

Coverage Status

Codacy Badge

Codacy Badge

Codacy Badge

Codacy Badge

Documentation

Documentation

Documentation

Versions

Stable

pip install metamorph [--user] [--upgrade]

Dev

pip install --index-url https://test.pypi.org/simple/ metamorph [--user] [--upgrade]

Configuration

For a list of parameters run metamorph -h.

The root node flow can have multiple different starting languages (given start is None).

translator: "GoogleTranslator"
start: "de"
goal: "de"

flow:
  de:
    fr:
      es:
        fr:
    de:
      es:
      fr:
        sv:
  fr:
    en:
  en:
  fi:
    de:
      fr:
        es:
          fr:
      de:
        es:
        fr:
          sv:
  sv:

This exemplary configs/config.yaml will produce following results (note -sd for diagrams and -c for config, while most command line parameters take precedence over config (-gs here)). A list of translators can be found here https://github.com/nidhaloff/deep-translator.

metamorph -i -sd -gs en -c config.yaml

DIAG

(GoogleTranslate gets abbreviated to only capital letters GT)

API Reference

This page contains auto-generated API reference documentation [1].

metamorph

Submodules

metamorph.config
Module Contents
Classes

Config

Defines the language flow to generate alternative texts.

Functions

is_end(dic)

Returns True if dictionary is an end node.

no_extra(dic)

Returns keys of dictionary that are not 'extra'.

remove_lower(text)

Remove lowercase letters from text.

metamorph.config.is_end(dic)[source]

Returns True if dictionary is an end node.

metamorph.config.no_extra(dic)[source]

Returns keys of dictionary that are not ‘extra’.

metamorph.config.remove_lower(text: str)[source]

Remove lowercase letters from text.

Parameters:

text – Text to remove lowercase letters from.

Returns:

Text without lowercase letters.

Example::
>>> remove_lower("GoogleTranslate")
'GT'
>>> remove_lower({"GoogleTranslate":"XXX"})
{'GT': 'XXX'}
class metamorph.config.Config(file: str = None, start='en', goal='en', translator='GoogleTranslator', proxies=None, api_keys=None, flow=None, color='green', on_color='on_red')[source]

Defines the language flow to generate alternative texts.

get_api_key(translator)[source]

Returns the api key for translator.

load_file(file: str)[source]

Loads a configuration file.

default_extra(direct, k)[source]

Adds default keys to dictionary at direct[k].

fill_missing(direct)[source]

Sets default extras for missing elements in dictionary.

str_diagram(nodes='language', arrows=None)[source]

Prints a diagram of the language flow.

_recursive_get_str_max_length(sub, key)[source]
_recursive_str_diagram(sub, kk, depth=1, lines=None, nodes='language', arrows=None, len_nodes=None, len_arrows=None)[source]
metamorph.handler
Module Contents
Functions

generate_alternatives(text, conf)

Generate alternatives for text using Config conf.

recursive_translate(conf, sub, kk)

Recursively translate sub using Config conf.

translate(translator, source, target, text[, api_key, ...])

Translate text from source language to target language using translator translator.

metamorph.handler.generate_alternatives(text, conf)[source]

Generate alternatives for text using Config conf.

Parameters:
  • text – Text to generate alternatives for.

  • conf – Config to use.

Returns:

List of alternatives.

Example::
>>> from metamorph.config import Config
>>> "Hello World!" in generate_alternatives("Hallo world!",Config(flow={"de":None,"fr":None,"es":None}))
True
>>> "Hallo Welt!" in generate_alternatives("Hello world!",Config(start="de",goal="de",flow={"en":None,"fr":None,"es":None}))
True
>>> "Hello World!" in generate_alternatives("Hallo world!",Config("configs/default_config.yaml"))
True
metamorph.handler.recursive_translate(conf, sub, kk)[source]

Recursively translate sub using Config conf.

metamorph.handler.translate(translator, source, target, text, api_key=None, proxies=None, quiet=False, verbose=True)[source]

Translate text from source language to target language using translator translator. :param translator: Translator to use (from deep_translator).

Parameters:
  • source – Source language.

  • target – Target language.

  • text – Text to translate.

  • quiet – If True, don’t print anything.

  • verbose – If True, print error messages.

Returns:

Translated text.

Example::
>>> translate(GoogleTranslator, "en", "de", "Hello world!")
'Hallo Welt!'
metamorph.main
Module Contents
Functions

__main__()

Main function.

Attributes

get_edits_string

metamorph.main.get_edits_string[source]
metamorph.main.__main__()[source]

Main function.

metamorph.util
Module Contents
Functions

get_edits_string(old, new[, color, on_color])

Colorize the differences between two strings.

metamorph.util.get_edits_string(old: str, new: str, color: str = 'green', on_color: str = 'on_red')[source]

Colorize the differences between two strings.

Package Contents

Classes

Config

Defines the language flow to generate alternative texts.

Functions

generate_alternatives(text, conf)

Generate alternatives for text using Config conf.

translate(translator, source, target, text[, api_key, ...])

Translate text from source language to target language using translator translator.

class metamorph.Config(file: str = None, start='en', goal='en', translator='GoogleTranslator', proxies=None, api_keys=None, flow=None, color='green', on_color='on_red')[source]

Defines the language flow to generate alternative texts.

get_api_key(translator)[source]

Returns the api key for translator.

load_file(file: str)[source]

Loads a configuration file.

default_extra(direct, k)[source]

Adds default keys to dictionary at direct[k].

fill_missing(direct)[source]

Sets default extras for missing elements in dictionary.

str_diagram(nodes='language', arrows=None)[source]

Prints a diagram of the language flow.

_recursive_get_str_max_length(sub, key)[source]
_recursive_str_diagram(sub, kk, depth=1, lines=None, nodes='language', arrows=None, len_nodes=None, len_arrows=None)[source]
metamorph.generate_alternatives(text, conf)[source]

Generate alternatives for text using Config conf.

Parameters:
  • text – Text to generate alternatives for.

  • conf – Config to use.

Returns:

List of alternatives.

Example::
>>> from metamorph.config import Config
>>> "Hello World!" in generate_alternatives("Hallo world!",Config(flow={"de":None,"fr":None,"es":None}))
True
>>> "Hallo Welt!" in generate_alternatives("Hello world!",Config(start="de",goal="de",flow={"en":None,"fr":None,"es":None}))
True
>>> "Hello World!" in generate_alternatives("Hallo world!",Config("configs/default_config.yaml"))
True
metamorph.translate(translator, source, target, text, api_key=None, proxies=None, quiet=False, verbose=True)[source]

Translate text from source language to target language using translator translator. :param translator: Translator to use (from deep_translator).

Parameters:
  • source – Source language.

  • target – Target language.

  • text – Text to translate.

  • quiet – If True, don’t print anything.

  • verbose – If True, print error messages.

Returns:

Translated text.

Example::
>>> translate(GoogleTranslator, "en", "de", "Hello world!")
'Hallo Welt!'

Indices and tables