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"
|