nidhal baccouri
commited on
Commit
·
d3c12a3
1
Parent(s):
c585ffe
updated cli in argparse
Browse files- deep_translator/__main__.py +48 -0
- deep_translator/cli.py +61 -0
- deep_translator/main.py +0 -132
- poetry.lock +89 -103
- pyproject.toml +3 -8
deep_translator/__main__.py
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
import argparse
|
| 3 |
+
from .cli import CLI
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
def main():
|
| 7 |
+
"""
|
| 8 |
+
function responsible for parsing terminal arguments and provide them for further use in the translation process
|
| 9 |
+
"""
|
| 10 |
+
parser = argparse.ArgumentParser(add_help=True,
|
| 11 |
+
description="Official CLI for deep-translator",
|
| 12 |
+
usage="dt --help")
|
| 13 |
+
|
| 14 |
+
parser.add_argument('--translator',
|
| 15 |
+
'-trans',
|
| 16 |
+
default='google',
|
| 17 |
+
type=str,
|
| 18 |
+
help="name of the translator you want to use",
|
| 19 |
+
required=True)
|
| 20 |
+
parser.add_argument('--source',
|
| 21 |
+
'-src',
|
| 22 |
+
type=str,
|
| 23 |
+
help="source language to translate from")
|
| 24 |
+
parser.add_argument('--target',
|
| 25 |
+
'-tg',
|
| 26 |
+
type=str,
|
| 27 |
+
help="target language to translate to")
|
| 28 |
+
parser.add_argument('--text',
|
| 29 |
+
'-txt',
|
| 30 |
+
type=str,
|
| 31 |
+
help="text you want to translate")
|
| 32 |
+
parser.add_argument('--languages',
|
| 33 |
+
'-lang',
|
| 34 |
+
action='store_true',
|
| 35 |
+
help="all the languages available with the translator"
|
| 36 |
+
"Run the command deep_translator -trans <translator service> -lang")
|
| 37 |
+
|
| 38 |
+
args = parser.parse_args()
|
| 39 |
+
|
| 40 |
+
cli = CLI()
|
| 41 |
+
if args.languages:
|
| 42 |
+
cli.get_supported_languages(args)
|
| 43 |
+
else:
|
| 44 |
+
cli.translate(args)
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
if __name__ == "__main__":
|
| 48 |
+
main()
|
deep_translator/cli.py
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Console script for deep_translator."""
|
| 2 |
+
import sys
|
| 3 |
+
|
| 4 |
+
from .google_trans import GoogleTranslator
|
| 5 |
+
from .mymemory import MyMemoryTranslator
|
| 6 |
+
from .pons import PonsTranslator
|
| 7 |
+
from .linguee import LingueeTranslator
|
| 8 |
+
from .yandex import YandexTranslator
|
| 9 |
+
from .deepl import DeepL
|
| 10 |
+
from .qcri import QCRI
|
| 11 |
+
from .papago import PapagoTranslator
|
| 12 |
+
from .microsoft import MicrosoftTranslator
|
| 13 |
+
from .libre import LibreTranslator
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
class CLI(object):
|
| 17 |
+
|
| 18 |
+
translators_dict = None
|
| 19 |
+
|
| 20 |
+
def __init__(self):
|
| 21 |
+
self.translators_dict = {
|
| 22 |
+
'google': GoogleTranslator,
|
| 23 |
+
'pons': PonsTranslator,
|
| 24 |
+
'linguee': LingueeTranslator,
|
| 25 |
+
'mymemory': MyMemoryTranslator,
|
| 26 |
+
'deepl': DeepL,
|
| 27 |
+
'libre': LibreTranslator,
|
| 28 |
+
'yandex': YandexTranslator,
|
| 29 |
+
'microsoft': MicrosoftTranslator,
|
| 30 |
+
'qcri': QCRI,
|
| 31 |
+
'papago': PapagoTranslator
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
def _get_translator(self, name):
|
| 35 |
+
return self.translators_dict[name]
|
| 36 |
+
|
| 37 |
+
def translate(self, args):
|
| 38 |
+
"""
|
| 39 |
+
function used to provide translations from the parsed terminal arguments
|
| 40 |
+
@param args: parsed terminal arguments
|
| 41 |
+
@return: None
|
| 42 |
+
"""
|
| 43 |
+
translator = self._get_translator(args.translator)
|
| 44 |
+
res = translator.translate(args.text)
|
| 45 |
+
print(" | Translation from {} to {} |".format(args.source, args.target))
|
| 46 |
+
print("Translated text: \n {}".format(res))
|
| 47 |
+
|
| 48 |
+
def get_supported_languages(self, args):
|
| 49 |
+
"""
|
| 50 |
+
function used to return the languages supported by the translator service from the parsed terminal arguments
|
| 51 |
+
@param args: parsed terminal arguments
|
| 52 |
+
@return: None
|
| 53 |
+
"""
|
| 54 |
+
translator = self._get_translator(args.translator)
|
| 55 |
+
translator_supported_languages = translator.get_supported_languages(as_dict=True)
|
| 56 |
+
print(f'Languages supported by \'{args.translator}\' are :\n')
|
| 57 |
+
print(translator_supported_languages)
|
| 58 |
+
sys.exit()
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
|
deep_translator/main.py
DELETED
|
@@ -1,132 +0,0 @@
|
|
| 1 |
-
"""Console script for deep_translator."""
|
| 2 |
-
|
| 3 |
-
import click
|
| 4 |
-
from .google_trans import GoogleTranslator
|
| 5 |
-
from .mymemory import MyMemoryTranslator
|
| 6 |
-
from .deepl import DeepL
|
| 7 |
-
from .qcri import QCRI
|
| 8 |
-
from .linguee import LingueeTranslator
|
| 9 |
-
from .pons import PonsTranslator
|
| 10 |
-
from .yandex import YandexTranslator
|
| 11 |
-
from .microsoft import MicrosoftTranslator
|
| 12 |
-
from .papago import PapagoTranslator
|
| 13 |
-
from .libre import LibreTranslator
|
| 14 |
-
|
| 15 |
-
CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"])
|
| 16 |
-
@click.group()
|
| 17 |
-
def cli():
|
| 18 |
-
pass
|
| 19 |
-
|
| 20 |
-
@cli.command(context_settings=CONTEXT_SETTINGS, no_args_is_help=True)
|
| 21 |
-
@click.argument('translator', required=True, default='google', type=str)
|
| 22 |
-
@click.option("--source", "-src", required=True, type=str, help="source language to translate from")
|
| 23 |
-
@click.option("--target", "-tgt", required=True, type=str, help="target language to translate to")
|
| 24 |
-
@click.option("--text", "-txt", type=str,required = True,prompt="Enter the text you want to translate",help="text you want to translate")
|
| 25 |
-
@click.option("--api-key",type=str,help="required for DeepL, QCRI, Yandex, Microsoft and Papago translators")
|
| 26 |
-
def translate(translator, source, target, text, api_key):
|
| 27 |
-
"""
|
| 28 |
-
Use TRANSLATOR to translate source material into another language.
|
| 29 |
-
\f
|
| 30 |
-
Directory function to send arguments to the correct translator.
|
| 31 |
-
@param translator: translator name parsed from terminal arguments
|
| 32 |
-
@return: None
|
| 33 |
-
"""
|
| 34 |
-
api_key_required = ["deepl", "qcri", "yandex", "microsoft", "papago"]
|
| 35 |
-
if translator in api_key_required and not api_key:
|
| 36 |
-
click.echo(
|
| 37 |
-
"This translator requires an api key provided through --api-key")
|
| 38 |
-
else:
|
| 39 |
-
pass
|
| 40 |
-
|
| 41 |
-
if translator == "google":
|
| 42 |
-
translator = GoogleTranslator(source=source, target=target)
|
| 43 |
-
elif translator == "mymemory":
|
| 44 |
-
translator = MyMemoryTranslator(source=source, target=target)
|
| 45 |
-
elif translator == "deepl":
|
| 46 |
-
translator = DeepL(source=source, target=target, api_key=api_key)
|
| 47 |
-
elif translator == "qcri":
|
| 48 |
-
translator = QCRI(source=source, target=target, api_key=api_key)
|
| 49 |
-
elif translator == "linguee":
|
| 50 |
-
translator = LingueeTranslator(source=source, target=target)
|
| 51 |
-
elif translator == "pons":
|
| 52 |
-
translator = PonsTranslator(source=source, target=target)
|
| 53 |
-
elif translator == "yandex":
|
| 54 |
-
translator = YandexTranslator(
|
| 55 |
-
source=source,
|
| 56 |
-
target=target,
|
| 57 |
-
api_key=api_key)
|
| 58 |
-
elif translator == "microsoft":
|
| 59 |
-
translator = MicrosoftTranslator(
|
| 60 |
-
source=source,
|
| 61 |
-
target=target,
|
| 62 |
-
api_key=api_key)
|
| 63 |
-
elif translator == "papago":
|
| 64 |
-
translator = PapagoTranslator(
|
| 65 |
-
source=source,
|
| 66 |
-
target=target,
|
| 67 |
-
api_key=api_key)
|
| 68 |
-
elif translator == "libre":
|
| 69 |
-
translator= LibreTranslator(
|
| 70 |
-
source=source,
|
| 71 |
-
target=target
|
| 72 |
-
)
|
| 73 |
-
else:
|
| 74 |
-
raise AttributeError("The given translator is not supported.")
|
| 75 |
-
|
| 76 |
-
res = translator.translate(text)
|
| 77 |
-
click.echo(f" | Translation from {source} to {target} |")
|
| 78 |
-
click.echo(f"Translated text: \n {res}")
|
| 79 |
-
return 0
|
| 80 |
-
|
| 81 |
-
@cli.command(context_settings=CONTEXT_SETTINGS, no_args_is_help=True)
|
| 82 |
-
@click.argument('translator')
|
| 83 |
-
@click.argument('api_key', required=False)
|
| 84 |
-
def languages(translator, api_key):
|
| 85 |
-
"""
|
| 86 |
-
Retrieve the list of available languages from the given translator.
|
| 87 |
-
@param translator: Translator given by the user.
|
| 88 |
-
@param api_key: Optional API key given by the user. Required for some translators.
|
| 89 |
-
@return: None
|
| 90 |
-
"""
|
| 91 |
-
translator = translator.lower()
|
| 92 |
-
api_key_required = ["deepl", "qcri", "yandex", "microsoft", "papago"]
|
| 93 |
-
if translator in api_key_required and not api_key:
|
| 94 |
-
click.echo("This translator requires an api key provided through --api-key")
|
| 95 |
-
else:
|
| 96 |
-
pass
|
| 97 |
-
|
| 98 |
-
if translator == "google":
|
| 99 |
-
translator = GoogleTranslator
|
| 100 |
-
elif translator == "mymemory":
|
| 101 |
-
translator = MyMemoryTranslator
|
| 102 |
-
elif translator == "qcri":
|
| 103 |
-
translator = QCRI(api_key=api_key)
|
| 104 |
-
elif translator == "linguee":
|
| 105 |
-
translator = LingueeTranslator
|
| 106 |
-
elif translator == "pons":
|
| 107 |
-
translator = PonsTranslator
|
| 108 |
-
elif translator == "yandex":
|
| 109 |
-
translator = YandexTranslator(api_key=api_key)
|
| 110 |
-
elif translator == "microsoft":
|
| 111 |
-
translator = MicrosoftTranslator(api_key=api_key)
|
| 112 |
-
elif translator == "papago":
|
| 113 |
-
translator = PapagoTranslator(api_key=api_key)
|
| 114 |
-
elif translator == "libre":
|
| 115 |
-
translator = LibreTranslator
|
| 116 |
-
else:
|
| 117 |
-
raise AttributeError("The given translator is not supported.")
|
| 118 |
-
|
| 119 |
-
supported_languages = translator.get_supported_languages(as_dict=True)
|
| 120 |
-
click.echo(f"Languages supported by '{translator}' are :")
|
| 121 |
-
for k, v in supported_languages.items():
|
| 122 |
-
click.echo(f"|- {k}: {v}")
|
| 123 |
-
return 0
|
| 124 |
-
|
| 125 |
-
@cli.command()
|
| 126 |
-
def list():
|
| 127 |
-
"""Lists available translators."""
|
| 128 |
-
click.echo("Available translators include: Google, MyMemory, QCRI, Linguee, Pons, Yandex, Microsoft (Bing), Papago and LibreTranslate.")
|
| 129 |
-
return 0
|
| 130 |
-
|
| 131 |
-
if __name__ == "__main__":
|
| 132 |
-
cli()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
poetry.lock
CHANGED
|
@@ -16,17 +16,17 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
|
| 16 |
|
| 17 |
[[package]]
|
| 18 |
name = "attrs"
|
| 19 |
-
version = "21.
|
| 20 |
description = "Classes Without Boilerplate"
|
| 21 |
category = "dev"
|
| 22 |
optional = false
|
| 23 |
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
| 24 |
|
| 25 |
[package.extras]
|
| 26 |
-
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"]
|
| 27 |
docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
|
| 28 |
-
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"]
|
| 29 |
-
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"]
|
| 30 |
|
| 31 |
[[package]]
|
| 32 |
name = "babel"
|
|
@@ -88,7 +88,7 @@ pycparser = "*"
|
|
| 88 |
|
| 89 |
[[package]]
|
| 90 |
name = "charset-normalizer"
|
| 91 |
-
version = "2.0.
|
| 92 |
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
|
| 93 |
category = "main"
|
| 94 |
optional = false
|
|
@@ -97,23 +97,11 @@ python-versions = ">=3.5.0"
|
|
| 97 |
[package.extras]
|
| 98 |
unicode_backport = ["unicodedata2"]
|
| 99 |
|
| 100 |
-
[[package]]
|
| 101 |
-
name = "click"
|
| 102 |
-
version = "8.0.3"
|
| 103 |
-
description = "Composable command line interface toolkit"
|
| 104 |
-
category = "main"
|
| 105 |
-
optional = false
|
| 106 |
-
python-versions = ">=3.6"
|
| 107 |
-
|
| 108 |
-
[package.dependencies]
|
| 109 |
-
colorama = {version = "*", markers = "platform_system == \"Windows\""}
|
| 110 |
-
importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
|
| 111 |
-
|
| 112 |
[[package]]
|
| 113 |
name = "colorama"
|
| 114 |
version = "0.4.4"
|
| 115 |
description = "Cross-platform colored terminal text."
|
| 116 |
-
category = "
|
| 117 |
optional = false
|
| 118 |
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
| 119 |
|
|
@@ -130,7 +118,7 @@ toml = ["toml"]
|
|
| 130 |
|
| 131 |
[[package]]
|
| 132 |
name = "cryptography"
|
| 133 |
-
version = "
|
| 134 |
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
|
| 135 |
category = "dev"
|
| 136 |
optional = false
|
|
@@ -141,7 +129,7 @@ cffi = ">=1.12"
|
|
| 141 |
|
| 142 |
[package.extras]
|
| 143 |
docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
|
| 144 |
-
docstest = ["
|
| 145 |
pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
|
| 146 |
sdist = ["setuptools_rust (>=0.11.4)"]
|
| 147 |
ssh = ["bcrypt (>=3.1.5)"]
|
|
@@ -173,11 +161,11 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
|
| 173 |
|
| 174 |
[[package]]
|
| 175 |
name = "importlib-metadata"
|
| 176 |
-
version = "4.
|
| 177 |
description = "Read metadata from Python packages"
|
| 178 |
-
category = "
|
| 179 |
optional = false
|
| 180 |
-
python-versions = ">=3.
|
| 181 |
|
| 182 |
[package.dependencies]
|
| 183 |
typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
|
|
@@ -186,7 +174,7 @@ zipp = ">=0.5"
|
|
| 186 |
[package.extras]
|
| 187 |
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
| 188 |
perf = ["ipython"]
|
| 189 |
-
testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "
|
| 190 |
|
| 191 |
[[package]]
|
| 192 |
name = "iniconfig"
|
|
@@ -224,11 +212,11 @@ i18n = ["Babel (>=2.7)"]
|
|
| 224 |
|
| 225 |
[[package]]
|
| 226 |
name = "keyring"
|
| 227 |
-
version = "23.
|
| 228 |
description = "Store and access your passwords safely."
|
| 229 |
category = "dev"
|
| 230 |
optional = false
|
| 231 |
-
python-versions = ">=3.
|
| 232 |
|
| 233 |
[package.dependencies]
|
| 234 |
importlib-metadata = ">=3.6"
|
|
@@ -237,8 +225,8 @@ pywin32-ctypes = {version = "<0.1.0 || >0.1.0,<0.1.1 || >0.1.1", markers = "sys_
|
|
| 237 |
SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""}
|
| 238 |
|
| 239 |
[package.extras]
|
| 240 |
-
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
| 241 |
-
testing = ["pytest (>=
|
| 242 |
|
| 243 |
[[package]]
|
| 244 |
name = "markupsafe"
|
|
@@ -261,14 +249,14 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
|
|
| 261 |
|
| 262 |
[[package]]
|
| 263 |
name = "pkginfo"
|
| 264 |
-
version = "1.
|
| 265 |
description = "Query metadatdata from sdists / bdists / installed packages."
|
| 266 |
category = "dev"
|
| 267 |
optional = false
|
| 268 |
python-versions = "*"
|
| 269 |
|
| 270 |
[package.extras]
|
| 271 |
-
testing = ["
|
| 272 |
|
| 273 |
[[package]]
|
| 274 |
name = "pluggy"
|
|
@@ -303,7 +291,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
|
| 303 |
|
| 304 |
[[package]]
|
| 305 |
name = "pygments"
|
| 306 |
-
version = "2.
|
| 307 |
description = "Pygments is a syntax highlighting package written in Python."
|
| 308 |
category = "dev"
|
| 309 |
optional = false
|
|
@@ -311,7 +299,7 @@ python-versions = ">=3.5"
|
|
| 311 |
|
| 312 |
[[package]]
|
| 313 |
name = "pyparsing"
|
| 314 |
-
version = "3.0.
|
| 315 |
description = "Python parsing module"
|
| 316 |
category = "dev"
|
| 317 |
optional = false
|
|
@@ -372,11 +360,11 @@ python-versions = "*"
|
|
| 372 |
|
| 373 |
[[package]]
|
| 374 |
name = "readme-renderer"
|
| 375 |
-
version = "
|
| 376 |
description = "readme_renderer is a library for rendering \"readme\" descriptions for Warehouse"
|
| 377 |
category = "dev"
|
| 378 |
optional = false
|
| 379 |
-
python-versions = "
|
| 380 |
|
| 381 |
[package.dependencies]
|
| 382 |
bleach = ">=2.1.0"
|
|
@@ -388,7 +376,7 @@ md = ["cmarkgfm (>=0.5.0,<0.7.0)"]
|
|
| 388 |
|
| 389 |
[[package]]
|
| 390 |
name = "requests"
|
| 391 |
-
version = "2.
|
| 392 |
description = "Python HTTP for Humans."
|
| 393 |
category = "main"
|
| 394 |
optional = false
|
|
@@ -417,11 +405,11 @@ requests = ">=2.0.1,<3.0.0"
|
|
| 417 |
|
| 418 |
[[package]]
|
| 419 |
name = "rfc3986"
|
| 420 |
-
version = "
|
| 421 |
description = "Validating URI References per RFC 3986"
|
| 422 |
category = "dev"
|
| 423 |
optional = false
|
| 424 |
-
python-versions = "
|
| 425 |
|
| 426 |
[package.extras]
|
| 427 |
idna2008 = ["idna"]
|
|
@@ -464,7 +452,7 @@ python-versions = ">=3.6"
|
|
| 464 |
|
| 465 |
[[package]]
|
| 466 |
name = "sphinx"
|
| 467 |
-
version = "4.
|
| 468 |
description = "Python documentation generator"
|
| 469 |
category = "dev"
|
| 470 |
optional = false
|
|
@@ -476,6 +464,7 @@ babel = ">=1.3"
|
|
| 476 |
colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""}
|
| 477 |
docutils = ">=0.14,<0.18"
|
| 478 |
imagesize = "*"
|
|
|
|
| 479 |
Jinja2 = ">=2.3"
|
| 480 |
packaging = "*"
|
| 481 |
Pygments = ">=2.0"
|
|
@@ -490,7 +479,7 @@ sphinxcontrib-serializinghtml = ">=1.1.5"
|
|
| 490 |
|
| 491 |
[package.extras]
|
| 492 |
docs = ["sphinxcontrib-websupport"]
|
| 493 |
-
lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.
|
| 494 |
test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
|
| 495 |
|
| 496 |
[[package]]
|
|
@@ -590,7 +579,7 @@ telegram = ["requests"]
|
|
| 590 |
|
| 591 |
[[package]]
|
| 592 |
name = "twine"
|
| 593 |
-
version = "3.
|
| 594 |
description = "Collection of utilities for publishing packages on PyPI"
|
| 595 |
category = "dev"
|
| 596 |
optional = false
|
|
@@ -600,24 +589,25 @@ python-versions = ">=3.6"
|
|
| 600 |
colorama = ">=0.4.3"
|
| 601 |
importlib-metadata = ">=3.6"
|
| 602 |
keyring = ">=15.1"
|
| 603 |
-
pkginfo = ">=1.
|
| 604 |
readme-renderer = ">=21.0"
|
| 605 |
requests = ">=2.20"
|
| 606 |
requests-toolbelt = ">=0.8.0,<0.9.0 || >0.9.0"
|
| 607 |
rfc3986 = ">=1.4.0"
|
| 608 |
tqdm = ">=4.14"
|
|
|
|
| 609 |
|
| 610 |
[[package]]
|
| 611 |
name = "typing-extensions"
|
| 612 |
-
version = "4.0.
|
| 613 |
description = "Backported and Experimental Type Hints for Python 3.6+"
|
| 614 |
-
category = "
|
| 615 |
optional = false
|
| 616 |
python-versions = ">=3.6"
|
| 617 |
|
| 618 |
[[package]]
|
| 619 |
name = "urllib3"
|
| 620 |
-
version = "1.26.
|
| 621 |
description = "HTTP library with thread-safe connection pooling, file post, and more."
|
| 622 |
category = "main"
|
| 623 |
optional = false
|
|
@@ -638,20 +628,20 @@ python-versions = "*"
|
|
| 638 |
|
| 639 |
[[package]]
|
| 640 |
name = "zipp"
|
| 641 |
-
version = "3.
|
| 642 |
description = "Backport of pathlib-compatible object wrapper for zip files"
|
| 643 |
-
category = "
|
| 644 |
optional = false
|
| 645 |
-
python-versions = ">=3.
|
| 646 |
|
| 647 |
[package.extras]
|
| 648 |
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
| 649 |
-
testing = ["pytest (>=
|
| 650 |
|
| 651 |
[metadata]
|
| 652 |
lock-version = "1.1"
|
| 653 |
python-versions = "^3.7"
|
| 654 |
-
content-hash = "
|
| 655 |
|
| 656 |
[metadata.files]
|
| 657 |
alabaster = [
|
|
@@ -663,8 +653,8 @@ atomicwrites = [
|
|
| 663 |
{file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"},
|
| 664 |
]
|
| 665 |
attrs = [
|
| 666 |
-
{file = "attrs-21.
|
| 667 |
-
{file = "attrs-21.
|
| 668 |
]
|
| 669 |
babel = [
|
| 670 |
{file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"},
|
|
@@ -735,12 +725,8 @@ cffi = [
|
|
| 735 |
{file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"},
|
| 736 |
]
|
| 737 |
charset-normalizer = [
|
| 738 |
-
{file = "charset-normalizer-2.0.
|
| 739 |
-
{file = "charset_normalizer-2.0.
|
| 740 |
-
]
|
| 741 |
-
click = [
|
| 742 |
-
{file = "click-8.0.3-py3-none-any.whl", hash = "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3"},
|
| 743 |
-
{file = "click-8.0.3.tar.gz", hash = "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"},
|
| 744 |
]
|
| 745 |
colorama = [
|
| 746 |
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
|
|
@@ -801,26 +787,26 @@ coverage = [
|
|
| 801 |
{file = "coverage-5.5.tar.gz", hash = "sha256:ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c"},
|
| 802 |
]
|
| 803 |
cryptography = [
|
| 804 |
-
{file = "cryptography-
|
| 805 |
-
{file = "cryptography-
|
| 806 |
-
{file = "cryptography-
|
| 807 |
-
{file = "cryptography-
|
| 808 |
-
{file = "cryptography-
|
| 809 |
-
{file = "cryptography-
|
| 810 |
-
{file = "cryptography-
|
| 811 |
-
{file = "cryptography-
|
| 812 |
-
{file = "cryptography-
|
| 813 |
-
{file = "cryptography-
|
| 814 |
-
{file = "cryptography-
|
| 815 |
-
{file = "cryptography-
|
| 816 |
-
{file = "cryptography-
|
| 817 |
-
{file = "cryptography-
|
| 818 |
-
{file = "cryptography-
|
| 819 |
-
{file = "cryptography-
|
| 820 |
-
{file = "cryptography-
|
| 821 |
-
{file = "cryptography-
|
| 822 |
-
{file = "cryptography-
|
| 823 |
-
{file = "cryptography-
|
| 824 |
]
|
| 825 |
docutils = [
|
| 826 |
{file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"},
|
|
@@ -835,8 +821,8 @@ imagesize = [
|
|
| 835 |
{file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"},
|
| 836 |
]
|
| 837 |
importlib-metadata = [
|
| 838 |
-
{file = "importlib_metadata-4.
|
| 839 |
-
{file = "importlib_metadata-4.
|
| 840 |
]
|
| 841 |
iniconfig = [
|
| 842 |
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
|
|
@@ -851,8 +837,8 @@ jinja2 = [
|
|
| 851 |
{file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"},
|
| 852 |
]
|
| 853 |
keyring = [
|
| 854 |
-
{file = "keyring-23.
|
| 855 |
-
{file = "keyring-23.
|
| 856 |
]
|
| 857 |
markupsafe = [
|
| 858 |
{file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
|
|
@@ -895,8 +881,8 @@ packaging = [
|
|
| 895 |
{file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
|
| 896 |
]
|
| 897 |
pkginfo = [
|
| 898 |
-
{file = "pkginfo-1.
|
| 899 |
-
{file = "pkginfo-1.
|
| 900 |
]
|
| 901 |
pluggy = [
|
| 902 |
{file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"},
|
|
@@ -911,12 +897,12 @@ pycparser = [
|
|
| 911 |
{file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
|
| 912 |
]
|
| 913 |
pygments = [
|
| 914 |
-
{file = "Pygments-2.
|
| 915 |
-
{file = "Pygments-2.
|
| 916 |
]
|
| 917 |
pyparsing = [
|
| 918 |
-
{file = "pyparsing-3.0.
|
| 919 |
-
{file = "pyparsing-3.0.
|
| 920 |
]
|
| 921 |
pytest = [
|
| 922 |
{file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"},
|
|
@@ -935,20 +921,20 @@ pywin32-ctypes = [
|
|
| 935 |
{file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"},
|
| 936 |
]
|
| 937 |
readme-renderer = [
|
| 938 |
-
{file = "readme_renderer-
|
| 939 |
-
{file = "readme_renderer-
|
| 940 |
]
|
| 941 |
requests = [
|
| 942 |
-
{file = "requests-2.
|
| 943 |
-
{file = "requests-2.
|
| 944 |
]
|
| 945 |
requests-toolbelt = [
|
| 946 |
{file = "requests-toolbelt-0.9.1.tar.gz", hash = "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0"},
|
| 947 |
{file = "requests_toolbelt-0.9.1-py2.py3-none-any.whl", hash = "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f"},
|
| 948 |
]
|
| 949 |
rfc3986 = [
|
| 950 |
-
{file = "rfc3986-
|
| 951 |
-
{file = "rfc3986-
|
| 952 |
]
|
| 953 |
secretstorage = [
|
| 954 |
{file = "SecretStorage-3.3.1-py3-none-any.whl", hash = "sha256:422d82c36172d88d6a0ed5afdec956514b189ddbfb72fefab0c8a1cee4eaf71f"},
|
|
@@ -967,8 +953,8 @@ soupsieve = [
|
|
| 967 |
{file = "soupsieve-2.3.1.tar.gz", hash = "sha256:b8d49b1cd4f037c7082a9683dfa1801aa2597fb11c3a1155b7a5b94829b4f1f9"},
|
| 968 |
]
|
| 969 |
sphinx = [
|
| 970 |
-
{file = "Sphinx-4.
|
| 971 |
-
{file = "Sphinx-4.
|
| 972 |
]
|
| 973 |
sphinxcontrib-applehelp = [
|
| 974 |
{file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"},
|
|
@@ -1003,22 +989,22 @@ tqdm = [
|
|
| 1003 |
{file = "tqdm-4.62.3.tar.gz", hash = "sha256:d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d"},
|
| 1004 |
]
|
| 1005 |
twine = [
|
| 1006 |
-
{file = "twine-3.
|
| 1007 |
-
{file = "twine-3.
|
| 1008 |
]
|
| 1009 |
typing-extensions = [
|
| 1010 |
-
{file = "typing_extensions-4.0.
|
| 1011 |
-
{file = "typing_extensions-4.0.
|
| 1012 |
]
|
| 1013 |
urllib3 = [
|
| 1014 |
-
{file = "urllib3-1.26.
|
| 1015 |
-
{file = "urllib3-1.26.
|
| 1016 |
]
|
| 1017 |
webencodings = [
|
| 1018 |
{file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"},
|
| 1019 |
{file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"},
|
| 1020 |
]
|
| 1021 |
zipp = [
|
| 1022 |
-
{file = "zipp-3.
|
| 1023 |
-
{file = "zipp-3.
|
| 1024 |
]
|
|
|
|
| 16 |
|
| 17 |
[[package]]
|
| 18 |
name = "attrs"
|
| 19 |
+
version = "21.4.0"
|
| 20 |
description = "Classes Without Boilerplate"
|
| 21 |
category = "dev"
|
| 22 |
optional = false
|
| 23 |
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
| 24 |
|
| 25 |
[package.extras]
|
| 26 |
+
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"]
|
| 27 |
docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
|
| 28 |
+
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"]
|
| 29 |
+
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"]
|
| 30 |
|
| 31 |
[[package]]
|
| 32 |
name = "babel"
|
|
|
|
| 88 |
|
| 89 |
[[package]]
|
| 90 |
name = "charset-normalizer"
|
| 91 |
+
version = "2.0.11"
|
| 92 |
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
|
| 93 |
category = "main"
|
| 94 |
optional = false
|
|
|
|
| 97 |
[package.extras]
|
| 98 |
unicode_backport = ["unicodedata2"]
|
| 99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 100 |
[[package]]
|
| 101 |
name = "colorama"
|
| 102 |
version = "0.4.4"
|
| 103 |
description = "Cross-platform colored terminal text."
|
| 104 |
+
category = "dev"
|
| 105 |
optional = false
|
| 106 |
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
| 107 |
|
|
|
|
| 118 |
|
| 119 |
[[package]]
|
| 120 |
name = "cryptography"
|
| 121 |
+
version = "36.0.1"
|
| 122 |
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
|
| 123 |
category = "dev"
|
| 124 |
optional = false
|
|
|
|
| 129 |
|
| 130 |
[package.extras]
|
| 131 |
docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
|
| 132 |
+
docstest = ["pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
|
| 133 |
pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
|
| 134 |
sdist = ["setuptools_rust (>=0.11.4)"]
|
| 135 |
ssh = ["bcrypt (>=3.1.5)"]
|
|
|
|
| 161 |
|
| 162 |
[[package]]
|
| 163 |
name = "importlib-metadata"
|
| 164 |
+
version = "4.10.1"
|
| 165 |
description = "Read metadata from Python packages"
|
| 166 |
+
category = "dev"
|
| 167 |
optional = false
|
| 168 |
+
python-versions = ">=3.7"
|
| 169 |
|
| 170 |
[package.dependencies]
|
| 171 |
typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
|
|
|
|
| 174 |
[package.extras]
|
| 175 |
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
| 176 |
perf = ["ipython"]
|
| 177 |
+
testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
|
| 178 |
|
| 179 |
[[package]]
|
| 180 |
name = "iniconfig"
|
|
|
|
| 212 |
|
| 213 |
[[package]]
|
| 214 |
name = "keyring"
|
| 215 |
+
version = "23.5.0"
|
| 216 |
description = "Store and access your passwords safely."
|
| 217 |
category = "dev"
|
| 218 |
optional = false
|
| 219 |
+
python-versions = ">=3.7"
|
| 220 |
|
| 221 |
[package.dependencies]
|
| 222 |
importlib-metadata = ">=3.6"
|
|
|
|
| 225 |
SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""}
|
| 226 |
|
| 227 |
[package.extras]
|
| 228 |
+
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"]
|
| 229 |
+
testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy"]
|
| 230 |
|
| 231 |
[[package]]
|
| 232 |
name = "markupsafe"
|
|
|
|
| 249 |
|
| 250 |
[[package]]
|
| 251 |
name = "pkginfo"
|
| 252 |
+
version = "1.8.2"
|
| 253 |
description = "Query metadatdata from sdists / bdists / installed packages."
|
| 254 |
category = "dev"
|
| 255 |
optional = false
|
| 256 |
python-versions = "*"
|
| 257 |
|
| 258 |
[package.extras]
|
| 259 |
+
testing = ["coverage", "nose"]
|
| 260 |
|
| 261 |
[[package]]
|
| 262 |
name = "pluggy"
|
|
|
|
| 291 |
|
| 292 |
[[package]]
|
| 293 |
name = "pygments"
|
| 294 |
+
version = "2.11.2"
|
| 295 |
description = "Pygments is a syntax highlighting package written in Python."
|
| 296 |
category = "dev"
|
| 297 |
optional = false
|
|
|
|
| 299 |
|
| 300 |
[[package]]
|
| 301 |
name = "pyparsing"
|
| 302 |
+
version = "3.0.7"
|
| 303 |
description = "Python parsing module"
|
| 304 |
category = "dev"
|
| 305 |
optional = false
|
|
|
|
| 360 |
|
| 361 |
[[package]]
|
| 362 |
name = "readme-renderer"
|
| 363 |
+
version = "32.0"
|
| 364 |
description = "readme_renderer is a library for rendering \"readme\" descriptions for Warehouse"
|
| 365 |
category = "dev"
|
| 366 |
optional = false
|
| 367 |
+
python-versions = ">=3.6"
|
| 368 |
|
| 369 |
[package.dependencies]
|
| 370 |
bleach = ">=2.1.0"
|
|
|
|
| 376 |
|
| 377 |
[[package]]
|
| 378 |
name = "requests"
|
| 379 |
+
version = "2.27.1"
|
| 380 |
description = "Python HTTP for Humans."
|
| 381 |
category = "main"
|
| 382 |
optional = false
|
|
|
|
| 405 |
|
| 406 |
[[package]]
|
| 407 |
name = "rfc3986"
|
| 408 |
+
version = "2.0.0"
|
| 409 |
description = "Validating URI References per RFC 3986"
|
| 410 |
category = "dev"
|
| 411 |
optional = false
|
| 412 |
+
python-versions = ">=3.7"
|
| 413 |
|
| 414 |
[package.extras]
|
| 415 |
idna2008 = ["idna"]
|
|
|
|
| 452 |
|
| 453 |
[[package]]
|
| 454 |
name = "sphinx"
|
| 455 |
+
version = "4.4.0"
|
| 456 |
description = "Python documentation generator"
|
| 457 |
category = "dev"
|
| 458 |
optional = false
|
|
|
|
| 464 |
colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""}
|
| 465 |
docutils = ">=0.14,<0.18"
|
| 466 |
imagesize = "*"
|
| 467 |
+
importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""}
|
| 468 |
Jinja2 = ">=2.3"
|
| 469 |
packaging = "*"
|
| 470 |
Pygments = ">=2.0"
|
|
|
|
| 479 |
|
| 480 |
[package.extras]
|
| 481 |
docs = ["sphinxcontrib-websupport"]
|
| 482 |
+
lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.931)", "docutils-stubs", "types-typed-ast", "types-requests"]
|
| 483 |
test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
|
| 484 |
|
| 485 |
[[package]]
|
|
|
|
| 579 |
|
| 580 |
[[package]]
|
| 581 |
name = "twine"
|
| 582 |
+
version = "3.8.0"
|
| 583 |
description = "Collection of utilities for publishing packages on PyPI"
|
| 584 |
category = "dev"
|
| 585 |
optional = false
|
|
|
|
| 589 |
colorama = ">=0.4.3"
|
| 590 |
importlib-metadata = ">=3.6"
|
| 591 |
keyring = ">=15.1"
|
| 592 |
+
pkginfo = ">=1.8.1"
|
| 593 |
readme-renderer = ">=21.0"
|
| 594 |
requests = ">=2.20"
|
| 595 |
requests-toolbelt = ">=0.8.0,<0.9.0 || >0.9.0"
|
| 596 |
rfc3986 = ">=1.4.0"
|
| 597 |
tqdm = ">=4.14"
|
| 598 |
+
urllib3 = ">=1.26.0"
|
| 599 |
|
| 600 |
[[package]]
|
| 601 |
name = "typing-extensions"
|
| 602 |
+
version = "4.0.1"
|
| 603 |
description = "Backported and Experimental Type Hints for Python 3.6+"
|
| 604 |
+
category = "dev"
|
| 605 |
optional = false
|
| 606 |
python-versions = ">=3.6"
|
| 607 |
|
| 608 |
[[package]]
|
| 609 |
name = "urllib3"
|
| 610 |
+
version = "1.26.8"
|
| 611 |
description = "HTTP library with thread-safe connection pooling, file post, and more."
|
| 612 |
category = "main"
|
| 613 |
optional = false
|
|
|
|
| 628 |
|
| 629 |
[[package]]
|
| 630 |
name = "zipp"
|
| 631 |
+
version = "3.7.0"
|
| 632 |
description = "Backport of pathlib-compatible object wrapper for zip files"
|
| 633 |
+
category = "dev"
|
| 634 |
optional = false
|
| 635 |
+
python-versions = ">=3.7"
|
| 636 |
|
| 637 |
[package.extras]
|
| 638 |
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
| 639 |
+
testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
|
| 640 |
|
| 641 |
[metadata]
|
| 642 |
lock-version = "1.1"
|
| 643 |
python-versions = "^3.7"
|
| 644 |
+
content-hash = "2877a59ad1ac817881dcea5583bd7f07310ab5da4301dda5dadbe598b9ec6511"
|
| 645 |
|
| 646 |
[metadata.files]
|
| 647 |
alabaster = [
|
|
|
|
| 653 |
{file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"},
|
| 654 |
]
|
| 655 |
attrs = [
|
| 656 |
+
{file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"},
|
| 657 |
+
{file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"},
|
| 658 |
]
|
| 659 |
babel = [
|
| 660 |
{file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"},
|
|
|
|
| 725 |
{file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"},
|
| 726 |
]
|
| 727 |
charset-normalizer = [
|
| 728 |
+
{file = "charset-normalizer-2.0.11.tar.gz", hash = "sha256:98398a9d69ee80548c762ba991a4728bfc3836768ed226b3945908d1a688371c"},
|
| 729 |
+
{file = "charset_normalizer-2.0.11-py3-none-any.whl", hash = "sha256:2842d8f5e82a1f6aa437380934d5e1cd4fcf2003b06fed6940769c164a480a45"},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 730 |
]
|
| 731 |
colorama = [
|
| 732 |
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
|
|
|
|
| 787 |
{file = "coverage-5.5.tar.gz", hash = "sha256:ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c"},
|
| 788 |
]
|
| 789 |
cryptography = [
|
| 790 |
+
{file = "cryptography-36.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:73bc2d3f2444bcfeac67dd130ff2ea598ea5f20b40e36d19821b4df8c9c5037b"},
|
| 791 |
+
{file = "cryptography-36.0.1-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:2d87cdcb378d3cfed944dac30596da1968f88fb96d7fc34fdae30a99054b2e31"},
|
| 792 |
+
{file = "cryptography-36.0.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74d6c7e80609c0f4c2434b97b80c7f8fdfaa072ca4baab7e239a15d6d70ed73a"},
|
| 793 |
+
{file = "cryptography-36.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:6c0c021f35b421ebf5976abf2daacc47e235f8b6082d3396a2fe3ccd537ab173"},
|
| 794 |
+
{file = "cryptography-36.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d59a9d55027a8b88fd9fd2826c4392bd487d74bf628bb9d39beecc62a644c12"},
|
| 795 |
+
{file = "cryptography-36.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a817b961b46894c5ca8a66b599c745b9a3d9f822725221f0e0fe49dc043a3a3"},
|
| 796 |
+
{file = "cryptography-36.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:94ae132f0e40fe48f310bba63f477f14a43116f05ddb69d6fa31e93f05848ae2"},
|
| 797 |
+
{file = "cryptography-36.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:7be0eec337359c155df191d6ae00a5e8bbb63933883f4f5dffc439dac5348c3f"},
|
| 798 |
+
{file = "cryptography-36.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:e0344c14c9cb89e76eb6a060e67980c9e35b3f36691e15e1b7a9e58a0a6c6dc3"},
|
| 799 |
+
{file = "cryptography-36.0.1-cp36-abi3-win32.whl", hash = "sha256:4caa4b893d8fad33cf1964d3e51842cd78ba87401ab1d2e44556826df849a8ca"},
|
| 800 |
+
{file = "cryptography-36.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:391432971a66cfaf94b21c24ab465a4cc3e8bf4a939c1ca5c3e3a6e0abebdbcf"},
|
| 801 |
+
{file = "cryptography-36.0.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bb5829d027ff82aa872d76158919045a7c1e91fbf241aec32cb07956e9ebd3c9"},
|
| 802 |
+
{file = "cryptography-36.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebc15b1c22e55c4d5566e3ca4db8689470a0ca2babef8e3a9ee057a8b82ce4b1"},
|
| 803 |
+
{file = "cryptography-36.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:596f3cd67e1b950bc372c33f1a28a0692080625592ea6392987dba7f09f17a94"},
|
| 804 |
+
{file = "cryptography-36.0.1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:30ee1eb3ebe1644d1c3f183d115a8c04e4e603ed6ce8e394ed39eea4a98469ac"},
|
| 805 |
+
{file = "cryptography-36.0.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec63da4e7e4a5f924b90af42eddf20b698a70e58d86a72d943857c4c6045b3ee"},
|
| 806 |
+
{file = "cryptography-36.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca238ceb7ba0bdf6ce88c1b74a87bffcee5afbfa1e41e173b1ceb095b39add46"},
|
| 807 |
+
{file = "cryptography-36.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:ca28641954f767f9822c24e927ad894d45d5a1e501767599647259cbf030b903"},
|
| 808 |
+
{file = "cryptography-36.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:39bdf8e70eee6b1c7b289ec6e5d84d49a6bfa11f8b8646b5b3dfe41219153316"},
|
| 809 |
+
{file = "cryptography-36.0.1.tar.gz", hash = "sha256:53e5c1dc3d7a953de055d77bef2ff607ceef7a2aac0353b5d630ab67f7423638"},
|
| 810 |
]
|
| 811 |
docutils = [
|
| 812 |
{file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"},
|
|
|
|
| 821 |
{file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"},
|
| 822 |
]
|
| 823 |
importlib-metadata = [
|
| 824 |
+
{file = "importlib_metadata-4.10.1-py3-none-any.whl", hash = "sha256:899e2a40a8c4a1aec681feef45733de8a6c58f3f6a0dbed2eb6574b4387a77b6"},
|
| 825 |
+
{file = "importlib_metadata-4.10.1.tar.gz", hash = "sha256:951f0d8a5b7260e9db5e41d429285b5f451e928479f19d80818878527d36e95e"},
|
| 826 |
]
|
| 827 |
iniconfig = [
|
| 828 |
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
|
|
|
|
| 837 |
{file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"},
|
| 838 |
]
|
| 839 |
keyring = [
|
| 840 |
+
{file = "keyring-23.5.0-py3-none-any.whl", hash = "sha256:b0d28928ac3ec8e42ef4cc227822647a19f1d544f21f96457965dc01cf555261"},
|
| 841 |
+
{file = "keyring-23.5.0.tar.gz", hash = "sha256:9012508e141a80bd1c0b6778d5c610dd9f8c464d75ac6774248500503f972fb9"},
|
| 842 |
]
|
| 843 |
markupsafe = [
|
| 844 |
{file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
|
|
|
|
| 881 |
{file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
|
| 882 |
]
|
| 883 |
pkginfo = [
|
| 884 |
+
{file = "pkginfo-1.8.2-py2.py3-none-any.whl", hash = "sha256:c24c487c6a7f72c66e816ab1796b96ac6c3d14d49338293d2141664330b55ffc"},
|
| 885 |
+
{file = "pkginfo-1.8.2.tar.gz", hash = "sha256:542e0d0b6750e2e21c20179803e40ab50598d8066d51097a0e382cba9eb02bff"},
|
| 886 |
]
|
| 887 |
pluggy = [
|
| 888 |
{file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"},
|
|
|
|
| 897 |
{file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
|
| 898 |
]
|
| 899 |
pygments = [
|
| 900 |
+
{file = "Pygments-2.11.2-py3-none-any.whl", hash = "sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65"},
|
| 901 |
+
{file = "Pygments-2.11.2.tar.gz", hash = "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"},
|
| 902 |
]
|
| 903 |
pyparsing = [
|
| 904 |
+
{file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"},
|
| 905 |
+
{file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"},
|
| 906 |
]
|
| 907 |
pytest = [
|
| 908 |
{file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"},
|
|
|
|
| 921 |
{file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"},
|
| 922 |
]
|
| 923 |
readme-renderer = [
|
| 924 |
+
{file = "readme_renderer-32.0-py3-none-any.whl", hash = "sha256:a50a0f2123a4c1145ac6f420e1a348aafefcc9211c846e3d51df05fe3d865b7d"},
|
| 925 |
+
{file = "readme_renderer-32.0.tar.gz", hash = "sha256:b512beafa6798260c7d5af3e1b1f097e58bfcd9a575da7c4ddd5e037490a5b85"},
|
| 926 |
]
|
| 927 |
requests = [
|
| 928 |
+
{file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"},
|
| 929 |
+
{file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"},
|
| 930 |
]
|
| 931 |
requests-toolbelt = [
|
| 932 |
{file = "requests-toolbelt-0.9.1.tar.gz", hash = "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0"},
|
| 933 |
{file = "requests_toolbelt-0.9.1-py2.py3-none-any.whl", hash = "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f"},
|
| 934 |
]
|
| 935 |
rfc3986 = [
|
| 936 |
+
{file = "rfc3986-2.0.0-py2.py3-none-any.whl", hash = "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd"},
|
| 937 |
+
{file = "rfc3986-2.0.0.tar.gz", hash = "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c"},
|
| 938 |
]
|
| 939 |
secretstorage = [
|
| 940 |
{file = "SecretStorage-3.3.1-py3-none-any.whl", hash = "sha256:422d82c36172d88d6a0ed5afdec956514b189ddbfb72fefab0c8a1cee4eaf71f"},
|
|
|
|
| 953 |
{file = "soupsieve-2.3.1.tar.gz", hash = "sha256:b8d49b1cd4f037c7082a9683dfa1801aa2597fb11c3a1155b7a5b94829b4f1f9"},
|
| 954 |
]
|
| 955 |
sphinx = [
|
| 956 |
+
{file = "Sphinx-4.4.0-py3-none-any.whl", hash = "sha256:5da895959511473857b6d0200f56865ed62c31e8f82dd338063b84ec022701fe"},
|
| 957 |
+
{file = "Sphinx-4.4.0.tar.gz", hash = "sha256:6caad9786055cb1fa22b4a365c1775816b876f91966481765d7d50e9f0dd35cc"},
|
| 958 |
]
|
| 959 |
sphinxcontrib-applehelp = [
|
| 960 |
{file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"},
|
|
|
|
| 989 |
{file = "tqdm-4.62.3.tar.gz", hash = "sha256:d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d"},
|
| 990 |
]
|
| 991 |
twine = [
|
| 992 |
+
{file = "twine-3.8.0-py3-none-any.whl", hash = "sha256:d0550fca9dc19f3d5e8eadfce0c227294df0a2a951251a4385797c8a6198b7c8"},
|
| 993 |
+
{file = "twine-3.8.0.tar.gz", hash = "sha256:8efa52658e0ae770686a13b675569328f1fba9837e5de1867bfe5f46a9aefe19"},
|
| 994 |
]
|
| 995 |
typing-extensions = [
|
| 996 |
+
{file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"},
|
| 997 |
+
{file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"},
|
| 998 |
]
|
| 999 |
urllib3 = [
|
| 1000 |
+
{file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"},
|
| 1001 |
+
{file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"},
|
| 1002 |
]
|
| 1003 |
webencodings = [
|
| 1004 |
{file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"},
|
| 1005 |
{file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"},
|
| 1006 |
]
|
| 1007 |
zipp = [
|
| 1008 |
+
{file = "zipp-3.7.0-py3-none-any.whl", hash = "sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375"},
|
| 1009 |
+
{file = "zipp-3.7.0.tar.gz", hash = "sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d"},
|
| 1010 |
]
|
pyproject.toml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
[tool.poetry]
|
| 2 |
name = "deep-translator"
|
| 3 |
-
version = "1.
|
| 4 |
description = "A flexible free and unlimited python tool to translate between different languages in a simple way using multiple translators"
|
| 5 |
license = "MIT"
|
| 6 |
authors = ["Nidhal Baccouri <[email protected]>"]
|
|
@@ -23,22 +23,17 @@ classifiers = [
|
|
| 23 |
"Topic :: Text Processing :: Linguistic",
|
| 24 |
"Operating System :: OS Independent"]
|
| 25 |
packages = [{include="deep_translator"}]
|
| 26 |
-
|
| 27 |
-
include = [ ]
|
| 28 |
-
|
| 29 |
[tool.poetry.scripts]
|
| 30 |
-
deep-translator = 'deep_translator.main
|
| 31 |
-
dt = 'deep_translator.main
|
| 32 |
|
| 33 |
[tool.poetry.dependencies]
|
| 34 |
python = "^3.7"
|
| 35 |
beautifulsoup4 = "^4.9.1"
|
| 36 |
requests = "^2.23.0"
|
| 37 |
-
click = "^8.0.1"
|
| 38 |
|
| 39 |
[tool.poetry.dev-dependencies]
|
| 40 |
wheel = "flake8"
|
| 41 |
-
#tox = "^3.24.0"
|
| 42 |
coverage = "^5.5"
|
| 43 |
Sphinx = "^4.1.1"
|
| 44 |
twine = "^3.4.2"
|
|
|
|
| 1 |
[tool.poetry]
|
| 2 |
name = "deep-translator"
|
| 3 |
+
version = "1.7.0"
|
| 4 |
description = "A flexible free and unlimited python tool to translate between different languages in a simple way using multiple translators"
|
| 5 |
license = "MIT"
|
| 6 |
authors = ["Nidhal Baccouri <[email protected]>"]
|
|
|
|
| 23 |
"Topic :: Text Processing :: Linguistic",
|
| 24 |
"Operating System :: OS Independent"]
|
| 25 |
packages = [{include="deep_translator"}]
|
|
|
|
|
|
|
|
|
|
| 26 |
[tool.poetry.scripts]
|
| 27 |
+
deep-translator = 'deep_translator.__main__:main'
|
| 28 |
+
dt = 'deep_translator.__main__:main'
|
| 29 |
|
| 30 |
[tool.poetry.dependencies]
|
| 31 |
python = "^3.7"
|
| 32 |
beautifulsoup4 = "^4.9.1"
|
| 33 |
requests = "^2.23.0"
|
|
|
|
| 34 |
|
| 35 |
[tool.poetry.dev-dependencies]
|
| 36 |
wheel = "flake8"
|
|
|
|
| 37 |
coverage = "^5.5"
|
| 38 |
Sphinx = "^4.1.1"
|
| 39 |
twine = "^3.4.2"
|