Merge branch 'master' of https://github.com/nidhaloff/deep-translator
Browse files- .github/workflows/build.yml +36 -0
- .readthedocs.yaml +14 -0
- .travis.yml +0 -34
- MANIFEST.in +0 -11
- deep_translator/__init__.py +12 -10
- deep_translator/deepl.py +4 -0
- deep_translator/main.py +1 -1
- deep_translator/qcri.py +4 -3
- deep_translator/tests/test_cli.py +22 -14
- deep_translator/yandex.py +8 -1
- docs/deep_translator.tests.rst +69 -0
- docs/ja/README.rst +12 -11
- docs/ja/contributing.rst +0 -123
- docs/ja/history.rst +0 -20
- docs/ja/installation.rst +2 -2
- docs/ja/usage.rst +2 -2
- docs/other_lang.rst +1 -1
- docs/requirements_docs.txt +15 -0
- poetry.lock +1010 -0
- pyproject.toml +51 -2
- pyvenv.cfg +0 -3
- requirements.txt +0 -2
- requirements_dev.txt +0 -9
- setup.cfg +0 -87
- setup.py +0 -17
- tox.ini +0 -28
.github/workflows/build.yml
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
name: build
|
2 |
+
|
3 |
+
on: [push, pull_request]
|
4 |
+
|
5 |
+
jobs:
|
6 |
+
build:
|
7 |
+
runs-on: ubuntu-latest
|
8 |
+
strategy:
|
9 |
+
matrix:
|
10 |
+
python-version: ["3.7", "3.8", "3.9"]
|
11 |
+
|
12 |
+
steps:
|
13 |
+
- uses: actions/checkout@v2
|
14 |
+
- name: Set up Python ${{ matrix.python-version }}
|
15 |
+
uses: actions/[email protected]
|
16 |
+
with:
|
17 |
+
python-version: ${{ matrix.python-version }}
|
18 |
+
|
19 |
+
- name: Install poetry
|
20 |
+
run: curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3
|
21 |
+
|
22 |
+
- name: Set up cache
|
23 |
+
uses: actions/[email protected]
|
24 |
+
with:
|
25 |
+
path: .venv
|
26 |
+
key: venv-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}-${{ hashFiles('poetry.lock') }}
|
27 |
+
- name: Install dependencies
|
28 |
+
run: |
|
29 |
+
source "$HOME/.poetry/env"
|
30 |
+
poetry config virtualenvs.in-project true
|
31 |
+
poetry install
|
32 |
+
|
33 |
+
- name: Run tests
|
34 |
+
run: |
|
35 |
+
source "$HOME/.poetry/env"
|
36 |
+
poetry run pytest
|
.readthedocs.yaml
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
# File: .readthedocs.yaml
|
3 |
+
|
4 |
+
version: 2
|
5 |
+
|
6 |
+
# Build from the docs/ directory with Sphinx
|
7 |
+
sphinx:
|
8 |
+
configuration: docs/conf.py
|
9 |
+
|
10 |
+
# Explicitly set the version of Python and its requirements
|
11 |
+
python:
|
12 |
+
version: 3.7
|
13 |
+
install:
|
14 |
+
- requirements: docs/requirements_docs.txt
|
.travis.yml
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
# Config file for automatic testing at travis-ci.com
|
2 |
-
|
3 |
-
language: python
|
4 |
-
python:
|
5 |
-
- 3.8
|
6 |
-
- 3.7
|
7 |
-
# - 3.6
|
8 |
-
#- 3.5
|
9 |
-
#- 3.4
|
10 |
-
before_install:
|
11 |
-
- "pip install -U pip"
|
12 |
-
- "python setup.py install"
|
13 |
-
|
14 |
-
dist: xenial
|
15 |
-
# Command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors
|
16 |
-
install: pip install -U tox-travis
|
17 |
-
|
18 |
-
# Command to run tests, e.g. python setup.py test
|
19 |
-
script: tox
|
20 |
-
|
21 |
-
# Assuming you have installed the travis-ci CLI tool, after you
|
22 |
-
# create the Github repo and add it to Travis, run the
|
23 |
-
# following command to finish PyPI deployment setup:
|
24 |
-
# $ travis encrypt --add deploy.password
|
25 |
-
deploy:
|
26 |
-
provider: pypi
|
27 |
-
distributions: sdist bdist_wheel
|
28 |
-
user: nidhaloff
|
29 |
-
password:
|
30 |
-
secure: __token__
|
31 |
-
on:
|
32 |
-
tags: true
|
33 |
-
repo: nidhaloff/deep_translator
|
34 |
-
python: 3.7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MANIFEST.in
DELETED
@@ -1,11 +0,0 @@
|
|
1 |
-
include AUTHORS.rst
|
2 |
-
include CONTRIBUTING.rst
|
3 |
-
include HISTORY.rst
|
4 |
-
include LICENSE
|
5 |
-
include README.rst
|
6 |
-
|
7 |
-
recursive-include tests *
|
8 |
-
recursive-exclude * __pycache__
|
9 |
-
recursive-exclude * *.py[co]
|
10 |
-
|
11 |
-
recursive-include docs *.rst conf.py Makefile make.bat *.jpg *.png *.gif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
deep_translator/__init__.py
CHANGED
@@ -17,13 +17,15 @@ __author__ = """Nidhal Baccouri"""
|
|
17 |
__email__ = '[email protected]'
|
18 |
__version__ = '1.5.0'
|
19 |
|
20 |
-
__all__ = [
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
|
|
|
|
|
17 |
__email__ = '[email protected]'
|
18 |
__version__ = '1.5.0'
|
19 |
|
20 |
+
__all__ = [
|
21 |
+
"GoogleTranslator",
|
22 |
+
"PonsTranslator",
|
23 |
+
"LingueeTranslator",
|
24 |
+
"MyMemoryTranslator",
|
25 |
+
"YandexTranslator",
|
26 |
+
"MicrosoftTranslator",
|
27 |
+
"QCRI",
|
28 |
+
"DeepL",
|
29 |
+
"single_detection",
|
30 |
+
"batch_detection"
|
31 |
+
]
|
deep_translator/deepl.py
CHANGED
@@ -67,6 +67,10 @@ class DeepL(object):
|
|
67 |
"""
|
68 |
return [self.translate(text, **kwargs) for text in batch]
|
69 |
|
|
|
|
|
|
|
|
|
70 |
def _is_language_supported(self, lang, **kwargs):
|
71 |
# The language is supported when is in the dicionary.
|
72 |
return lang == 'auto' or lang in self._languages.keys() or lang in self._languages.values()
|
|
|
67 |
"""
|
68 |
return [self.translate(text, **kwargs) for text in batch]
|
69 |
|
70 |
+
@staticmethod
|
71 |
+
def get_supported_languages(as_dict=False, **kwargs):
|
72 |
+
return [*DeepL._languages.keys()] if not as_dict else DeepL._languages
|
73 |
+
|
74 |
def _is_language_supported(self, lang, **kwargs):
|
75 |
# The language is supported when is in the dicionary.
|
76 |
return lang == 'auto' or lang in self._languages.keys() or lang in self._languages.values()
|
deep_translator/main.py
CHANGED
@@ -22,7 +22,7 @@ def cli():
|
|
22 |
@click.option("--target", "-tgt", required=True, type=str, help="target language to translate to")
|
23 |
@click.option("--text", "-txt", type=str,required = True,prompt="Enter the text you want to translate",help="text you want to translate")
|
24 |
@click.option("--api-key",type=str,help="required for DeepL, QCRI, Yandex, Microsoft and Papago translators")
|
25 |
-
def translate(translator, source, target, text, api_key
|
26 |
"""
|
27 |
Use TRANSLATOR to translate source material into another language.
|
28 |
\f
|
|
|
22 |
@click.option("--target", "-tgt", required=True, type=str, help="target language to translate to")
|
23 |
@click.option("--text", "-txt", type=str,required = True,prompt="Enter the text you want to translate",help="text you want to translate")
|
24 |
@click.option("--api-key",type=str,help="required for DeepL, QCRI, Yandex, Microsoft and Papago translators")
|
25 |
+
def translate(translator, source, target, text, api_key):
|
26 |
"""
|
27 |
Use TRANSLATOR to translate source material into another language.
|
28 |
\f
|
deep_translator/qcri.py
CHANGED
@@ -38,12 +38,13 @@ class QCRI(object):
|
|
38 |
except Exception as e:
|
39 |
raise e
|
40 |
|
41 |
-
|
|
|
42 |
# Have no use for this as the format is not what we need
|
43 |
# Save this for whenever
|
44 |
-
pairs = self._get("get_languages")
|
45 |
# Using a this one instead
|
46 |
-
return QCRI_LANGUAGE_TO_CODE
|
47 |
|
48 |
@property
|
49 |
def languages(self):
|
|
|
38 |
except Exception as e:
|
39 |
raise e
|
40 |
|
41 |
+
@staticmethod
|
42 |
+
def get_supported_languages(as_dict=False, **kwargs):
|
43 |
# Have no use for this as the format is not what we need
|
44 |
# Save this for whenever
|
45 |
+
# pairs = self._get("get_languages")
|
46 |
# Using a this one instead
|
47 |
+
return [*QCRI_LANGUAGE_TO_CODE.keys()] if not as_dict else QCRI_LANGUAGE_TO_CODE
|
48 |
|
49 |
@property
|
50 |
def languages(self):
|
deep_translator/tests/test_cli.py
CHANGED
@@ -3,20 +3,28 @@
|
|
3 |
"""Tests for the CLI interface."""
|
4 |
|
5 |
from click.testing import CliRunner
|
6 |
-
from deep_translator import
|
7 |
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
api_error = runner.invoke(main.translate, ['microsoft','auto','en','Zwei minimale Dellchen auf der Rückseite.'])
|
15 |
-
assert api_error.exit_code == 0
|
16 |
-
assert api_error == "This translator requires an api key provided through --api-key"
|
17 |
|
18 |
-
|
19 |
-
|
|
|
|
|
|
|
20 |
|
21 |
-
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
"""Tests for the CLI interface."""
|
4 |
|
5 |
from click.testing import CliRunner
|
6 |
+
from deep_translator.main import cli
|
7 |
|
8 |
+
class TestClass:
|
9 |
+
def test_translate(self):
|
10 |
+
runner = CliRunner()
|
11 |
+
result = runner.invoke(cli, ['translate', 'google', '-src=auto', '-tgt=en', '-txt=좋은'])
|
12 |
+
assert 'good' in result.output
|
13 |
+
assert result.exit_code == 0
|
|
|
|
|
|
|
14 |
|
15 |
+
def test_api_key_error(self):
|
16 |
+
runner = CliRunner()
|
17 |
+
result = runner.invoke(cli, ['translate', 'microsoft','-src=auto','-tgt=en','-txt=\'Zwei minimale Dellchen auf der Rückseite.\''])
|
18 |
+
assert "This translator requires an api key provided through --api-key" in result.output
|
19 |
+
assert result.exit_code == 1
|
20 |
|
21 |
+
def test_language_languages(self):
|
22 |
+
runner = CliRunner()
|
23 |
+
result = runner.invoke(cli, ['languages', 'google'])
|
24 |
+
assert result.exit_code == 0
|
25 |
+
|
26 |
+
def test_invalid_language_languages(self):
|
27 |
+
runner = CliRunner()
|
28 |
+
result = runner.invoke(cli, ['languages', 'notValidTranslator'])
|
29 |
+
assert 'The given translator is not supported.' in str(result.exception)
|
30 |
+
assert result.exit_code == 1
|
deep_translator/yandex.py
CHANGED
@@ -28,7 +28,14 @@ class YandexTranslator(object):
|
|
28 |
"translate": "translate",
|
29 |
}
|
30 |
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
return set(x.split("-")[0] for x in self.dirs)
|
33 |
|
34 |
@property
|
|
|
28 |
"translate": "translate",
|
29 |
}
|
30 |
|
31 |
+
@staticmethod
|
32 |
+
def get_supported_languages(as_dict=False, **kwargs):
|
33 |
+
""" this method is just for consistency."""
|
34 |
+
return """ this method is just for consistency. You need to create an instance of yandex and access
|
35 |
+
supported languages using the languages property or call _get_supported_languages
|
36 |
+
"""
|
37 |
+
|
38 |
+
def _get_supported_languages(self):
|
39 |
return set(x.split("-")[0] for x in self.dirs)
|
40 |
|
41 |
@property
|
docs/deep_translator.tests.rst
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
deep\_translator.tests package
|
2 |
+
==============================
|
3 |
+
|
4 |
+
Submodules
|
5 |
+
----------
|
6 |
+
|
7 |
+
deep\_translator.tests.test\_cli module
|
8 |
+
---------------------------------------
|
9 |
+
|
10 |
+
.. automodule:: deep_translator.tests.test_cli
|
11 |
+
:members:
|
12 |
+
:undoc-members:
|
13 |
+
:show-inheritance:
|
14 |
+
|
15 |
+
deep\_translator.tests.test\_deepl module
|
16 |
+
-----------------------------------------
|
17 |
+
|
18 |
+
.. automodule:: deep_translator.tests.test_deepl
|
19 |
+
:members:
|
20 |
+
:undoc-members:
|
21 |
+
:show-inheritance:
|
22 |
+
|
23 |
+
deep\_translator.tests.test\_google\_trans module
|
24 |
+
-------------------------------------------------
|
25 |
+
|
26 |
+
.. automodule:: deep_translator.tests.test_google_trans
|
27 |
+
:members:
|
28 |
+
:undoc-members:
|
29 |
+
:show-inheritance:
|
30 |
+
|
31 |
+
deep\_translator.tests.test\_linguee module
|
32 |
+
-------------------------------------------
|
33 |
+
|
34 |
+
.. automodule:: deep_translator.tests.test_linguee
|
35 |
+
:members:
|
36 |
+
:undoc-members:
|
37 |
+
:show-inheritance:
|
38 |
+
|
39 |
+
deep\_translator.tests.test\_microsoft\_trans module
|
40 |
+
----------------------------------------------------
|
41 |
+
|
42 |
+
.. automodule:: deep_translator.tests.test_microsoft_trans
|
43 |
+
:members:
|
44 |
+
:undoc-members:
|
45 |
+
:show-inheritance:
|
46 |
+
|
47 |
+
deep\_translator.tests.test\_mymemory module
|
48 |
+
--------------------------------------------
|
49 |
+
|
50 |
+
.. automodule:: deep_translator.tests.test_mymemory
|
51 |
+
:members:
|
52 |
+
:undoc-members:
|
53 |
+
:show-inheritance:
|
54 |
+
|
55 |
+
deep\_translator.tests.test\_pons module
|
56 |
+
----------------------------------------
|
57 |
+
|
58 |
+
.. automodule:: deep_translator.tests.test_pons
|
59 |
+
:members:
|
60 |
+
:undoc-members:
|
61 |
+
:show-inheritance:
|
62 |
+
|
63 |
+
Module contents
|
64 |
+
---------------
|
65 |
+
|
66 |
+
.. automodule:: deep_translator.tests
|
67 |
+
:members:
|
68 |
+
:undoc-members:
|
69 |
+
:show-inheritance:
|
docs/ja/README.rst
CHANGED
@@ -88,9 +88,9 @@ Pythonを使用してテキストを別の言語に翻訳するタスクがあ
|
|
88 |
* 異なる言語の異なる段落の翻訳を自動化する
|
89 |
* コマンドラインから直接翻訳する(バージョン1.1.0以上)
|
90 |
|
91 |
-
|
92 |
インストール方法
|
93 |
-
|
94 |
|
95 |
ツールの安定版をインストールする方法です:
|
96 |
|
@@ -100,14 +100,15 @@ Pythonを使用してテキストを別の言語に翻訳するタスクがあ
|
|
100 |
|
101 |
ソースからインストールを行いたい場合、ドキュメントを参照してください。
|
102 |
|
103 |
-
|
104 |
使い方
|
105 |
-
|
106 |
|
107 |
このセクションでは、このツールで様々な統合トランスレータを利用するデモを行います。このデモでは、google、pons、linguee、mymemoryの翻訳サービスを扱います(現時点)。将来的には、より多くの翻訳サービスを統合する予定です。
|
108 |
|
|
|
109 |
インポート
|
110 |
-
|
111 |
|
112 |
.. code-block:: python
|
113 |
|
@@ -119,7 +120,7 @@ Pythonを使用してテキストを別の言語に翻訳するタスクがあ
|
|
119 |
|
120 |
|
121 |
サポートされている言語を確認する
|
122 |
-
|
123 |
|
124 |
ポイント
|
125 |
|
@@ -295,9 +296,9 @@ deep_translatorの使用目的やpythonで翻訳をする方法を確認する
|
|
295 |
|
296 |
https://medium.com/@nidhalbacc/how-to-translate-text-with-python-9d203139dcf5
|
297 |
|
298 |
-
|
299 |
-
スマートフォンアプリ Translator++
|
300 |
-
|
301 |
|
302 |
.. image:: ../../assets/app-icon.png
|
303 |
:width: 100
|
@@ -340,9 +341,9 @@ Translator++はdeep_translatorパッケージがベースになっています
|
|
340 |
:height: 300
|
341 |
:alt: screenshot3
|
342 |
|
343 |
-
|
344 |
次のステップに進むためには
|
345 |
-
|
346 |
|
347 |
詳細は examples フォルダを確認してください。
|
348 |
コントリビュートはいつでも歓迎しています。このパッケージが便利だと感じた方や使っている方がいたら、遠慮なくプルリクエストをしてフィードバックをください!
|
|
|
88 |
* 異なる言語の異なる段落の翻訳を自動化する
|
89 |
* コマンドラインから直接翻訳する(バージョン1.1.0以上)
|
90 |
|
91 |
+
===============
|
92 |
インストール方法
|
93 |
+
===============
|
94 |
|
95 |
ツールの安定版をインストールする方法です:
|
96 |
|
|
|
100 |
|
101 |
ソースからインストールを行いたい場合、ドキュメントを参照してください。
|
102 |
|
103 |
+
=======
|
104 |
使い方
|
105 |
+
=======
|
106 |
|
107 |
このセクションでは、このツールで様々な統合トランスレータを利用するデモを行います。このデモでは、google、pons、linguee、mymemoryの翻訳サービスを扱います(現時点)。将来的には、より多くの翻訳サービスを統合する予定です。
|
108 |
|
109 |
+
==========
|
110 |
インポート
|
111 |
+
==========
|
112 |
|
113 |
.. code-block:: python
|
114 |
|
|
|
120 |
|
121 |
|
122 |
サポートされている言語を確認する
|
123 |
+
============================
|
124 |
|
125 |
ポイント
|
126 |
|
|
|
296 |
|
297 |
https://medium.com/@nidhalbacc/how-to-translate-text-with-python-9d203139dcf5
|
298 |
|
299 |
+
===============================
|
300 |
+
スマートフォンアプリ Translator++
|
301 |
+
===============================
|
302 |
|
303 |
.. image:: ../../assets/app-icon.png
|
304 |
:width: 100
|
|
|
341 |
:height: 300
|
342 |
:alt: screenshot3
|
343 |
|
344 |
+
=======================
|
345 |
次のステップに進むためには
|
346 |
+
=======================
|
347 |
|
348 |
詳細は examples フォルダを確認してください。
|
349 |
コントリビュートはいつでも歓迎しています。このパッケージが便利だと感じた方や使っている方がいたら、遠慮なくプルリクエストをしてフィードバックをください!
|
docs/ja/contributing.rst
DELETED
@@ -1,123 +0,0 @@
|
|
1 |
-
.. highlight:: shell
|
2 |
-
|
3 |
-
=======================
|
4 |
-
コントリビュートする方法
|
5 |
-
=======================
|
6 |
-
|
7 |
-
このプロジェクトではあなたのコントリビュートを歓迎します!どんなに小さい貢献でも、コントリビューターとしてプロジェクトを支援することができます。
|
8 |
-
|
9 |
-
次の方法でコントリビュートすることができます。
|
10 |
-
|
11 |
-
コントリビュートの種類
|
12 |
-
----------------------
|
13 |
-
|
14 |
-
バグの報告
|
15 |
-
~~~~~~~~~~~
|
16 |
-
|
17 |
-
もしバグを発見したらhttps://github.com/nidhaloff/deep_translator/issues でバクを報告してください。
|
18 |
-
|
19 |
-
バグを報告する際にはトラブルシューティングしやすいように、以下の項目を含めて投稿するようにしてください。
|
20 |
-
|
21 |
-
* バグの発生したOSの種類とOSバージョンの情報
|
22 |
-
* ソフトウェアの設定などのローカル環境の情報
|
23 |
-
* バグを再現するための詳細な手順
|
24 |
-
|
25 |
-
バグの修正
|
26 |
-
~~~~~~~~~~~
|
27 |
-
|
28 |
-
このリポジトリのイシューを見ることで、バグの情報を確認できます。
|
29 |
-
"bug" と "help wanted"でタグ付けされているものは、誰でもバグを修正にしてコントリビュートすることができます。
|
30 |
-
|
31 |
-
追加機能の実装
|
32 |
-
~~~~~~~~~~~~~~~~~~
|
33 |
-
|
34 |
-
このリポジトリのイシューを見ることで、実装待ちの機能が確認できます。
|
35 |
-
"enhancement" と "help wanted"でタグ付けされているものは、誰でも実装してコントリビュートすることができます。
|
36 |
-
|
37 |
-
ドキュメントの作成
|
38 |
-
~~~~~~~~~~~~~~~~~~~
|
39 |
-
|
40 |
-
deep_translator は、deep_translator の公式ドキュメントの一部、docstrings、あるいはウェブ上のブログ記事や記事など、常により多くのドキュメントを求めています。
|
41 |
-
|
42 |
-
|
43 |
-
新しい機能の提案
|
44 |
-
~~~~~~~~~~~~~~~~~~
|
45 |
-
|
46 |
-
新しい提案をするには https://github.com/nidhaloff/deep_translator/issues に投稿してください。
|
47 |
-
|
48 |
-
新しい機能を提案するときには、以下の項目を留意してください:
|
49 |
-
|
50 |
-
* 新しい機能の動作をできるだけ詳しく説明してください。
|
51 |
-
* 実装しやすいように機能の規模は限定するようにしてください。
|
52 |
-
* このプロジェクトがボランティアから成り立っていることと、コントリビュートを歓迎する精神を忘れないでください。
|
53 |
-
|
54 |
-
|
55 |
-
開発環境の構築
|
56 |
-
----------------
|
57 |
-
|
58 |
-
コントリビュートの準備はできましたか?ここからは deep_translator の開発環境を構築する方法について説明します。
|
59 |
-
|
60 |
-
1. GitHub で deep_translator をフォークする.
|
61 |
-
2. フォークしたものをローカルリポジトリとしてクローンする。::
|
62 |
-
|
63 |
-
$ git clone [email protected]:your_name_here/deep_translator.git
|
64 |
-
|
65 |
-
3. virtualenvの作成とインストールを行う。virtualenvwrapperがインストール済みとすると、以下のコマンドでローカルに開発環境を構築できる::
|
66 |
-
|
67 |
-
$ mkvirtualenv deep_translator
|
68 |
-
$ cd deep_translator /
|
69 |
-
$ python setup.py develop
|
70 |
-
|
71 |
-
4. ローカルで開発を行うために新しいブランチを作成する::
|
72 |
-
|
73 |
-
$ git checkout -b name-of-your-bugfix-or-feature
|
74 |
-
|
75 |
-
これでローカルリポジトリに変更を加えることができるようになります。
|
76 |
-
|
77 |
-
5. 変更が終わったらflake8のコードチェックとテストを通過するようにする。この時、toxで複数バージョンのPythonで動作することを確認する::
|
78 |
-
|
79 |
-
$ flake8 deep_translator tests
|
80 |
-
$ python setup.py test or pytest
|
81 |
-
$ tox
|
82 |
-
|
83 |
-
flake8とtoxのインストールは、virtualenvでpip installを行うことで可能です。
|
84 |
-
|
85 |
-
6. 変更をコミットし、自分のリモートリポジトリにプッシュする::
|
86 |
-
|
87 |
-
$ git add .
|
88 |
-
$ git commit -m "Your detailed description of your changes."
|
89 |
-
$ git push origin name-of-your-bugfix-or-feature
|
90 |
-
|
91 |
-
7. GitHub からプルリクエストを送る.
|
92 |
-
|
93 |
-
プルリクエストにあたって
|
94 |
-
----------------------------
|
95 |
-
|
96 |
-
プルリクエストを送る前に以下のガイドラインに従っているか確認してください:
|
97 |
-
|
98 |
-
1. プルリクエストにテストが含まれている。
|
99 |
-
|
100 |
-
2. プルリクエストで機能が追加された場合、ドキュメントを更新する必要があります。新しい機能について関数内にdocstringで記述し、それに加えてリストREADME.rstのリストに追加してください。
|
101 |
-
|
102 |
-
3. プルリクエストによる変更はPython 3.5、3.6、3.7、3.8またはPyPyで動作することが望まれます。https://travisci.com/nidhaloff/deep_translator/pull_requests を確認し、サポートされている全てのPythonバージョンでテストを通過することを確認してください。
|
103 |
-
|
104 |
-
|
105 |
-
ヒント
|
106 |
-
---------
|
107 |
-
|
108 |
-
テストのサブセットを実行するには以下のコマンドが利用できます::
|
109 |
-
|
110 |
-
$ pytest tests.test_deep_translator
|
111 |
-
|
112 |
-
|
113 |
-
デプロイの方法
|
114 |
-
------------------
|
115 |
-
|
116 |
-
メンテナンス担当者のためにデプロイの方法を記しておきます。まず、全ての変更がコミットされていることを確認してください。(HISTORY.rstのエントリを含む).
|
117 |
-
次に、以下のコマンドを実行します::
|
118 |
-
|
119 |
-
$ bump2version patch # possible: major / minor / patch
|
120 |
-
$ git push
|
121 |
-
$ git push --tags
|
122 |
-
|
123 |
-
Travisはテストを通過することを確認したら、PyPIにデプロイします。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
docs/ja/history.rst
DELETED
@@ -1,20 +0,0 @@
|
|
1 |
-
==================
|
2 |
-
重要な歴史
|
3 |
-
==================
|
4 |
-
|
5 |
-
-1.5.0は、合理化されたコマンドと多数のバグ修正により、cli機能を改善しました。
|
6 |
-
-1.4.4 papagoのサポートの追加、opt paramsの追加、deepl無料APIの修正
|
7 |
-
-1.4.3追加されたサポートdeepl無料API
|
8 |
-
-1.4.2追加されたプロキシサポート
|
9 |
-
-オランダ語の1.3.4バグ修正
|
10 |
-
-1.3.3グーグル翻訳のバグを修正
|
11 |
-
|
12 |
-
-1.2.5:DeepLトランスレータのサポートが追加されました
|
13 |
-
-1.2.4:QCRIトランスレータのサポートが追加されました
|
14 |
-
-1.2.1:yandexトランスレータのサポートが追加されました
|
15 |
-
-1.1.9:リクエストのバグを修正
|
16 |
-
-1.1.5:言語検出を追加
|
17 |
-
-1.1.3:mymemoryのサポートが追加されました
|
18 |
-
-1.0.4:橋のサポートが追加されました
|
19 |
-
-1.0.2:lingueeのサポートが追加されました
|
20 |
-
-1.0.0:googletranslateのサポートが追加されました
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
docs/ja/installation.rst
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
.. highlight:: shell
|
2 |
|
3 |
-
|
4 |
インストール方法
|
5 |
-
|
6 |
|
7 |
|
8 |
安定版
|
|
|
1 |
.. highlight:: shell
|
2 |
|
3 |
+
===============
|
4 |
インストール方法
|
5 |
+
===============
|
6 |
|
7 |
|
8 |
安定版
|
docs/ja/usage.rst
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
|
2 |
使い方
|
3 |
-
|
4 |
|
5 |
.. code-block:: python
|
6 |
|
|
|
1 |
+
=======
|
2 |
使い方
|
3 |
+
=======
|
4 |
|
5 |
.. code-block:: python
|
6 |
|
docs/other_lang.rst
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
Choose Languages
|
2 |
-
|
3 |
|
4 |
English
|
5 |
--------------
|
|
|
1 |
Choose Languages
|
2 |
+
=================
|
3 |
|
4 |
English
|
5 |
--------------
|
docs/requirements_docs.txt
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
pip==20.2.2
|
2 |
+
bump2version==1.0.0
|
3 |
+
wheel==0.35.1
|
4 |
+
argh
|
5 |
+
toml
|
6 |
+
watchdog==0.10.3
|
7 |
+
flake8==3.8.3
|
8 |
+
coverage==5.2.1
|
9 |
+
Sphinx==3.2.1
|
10 |
+
twine==3.2.0
|
11 |
+
Click==7.1.2
|
12 |
+
pytest==6.0.1
|
13 |
+
pytest-runner==5.2
|
14 |
+
sphinx-copybutton==0.3.1
|
15 |
+
importlib-metadata==1.6.0
|
poetry.lock
ADDED
@@ -0,0 +1,1010 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[[package]]
|
2 |
+
name = "alabaster"
|
3 |
+
version = "0.7.12"
|
4 |
+
description = "A configurable sidebar-enabled Sphinx theme"
|
5 |
+
category = "dev"
|
6 |
+
optional = false
|
7 |
+
python-versions = "*"
|
8 |
+
|
9 |
+
[[package]]
|
10 |
+
name = "atomicwrites"
|
11 |
+
version = "1.4.0"
|
12 |
+
description = "Atomic file writes."
|
13 |
+
category = "dev"
|
14 |
+
optional = false
|
15 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
16 |
+
|
17 |
+
[[package]]
|
18 |
+
name = "attrs"
|
19 |
+
version = "21.2.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"]
|
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"
|
33 |
+
version = "2.9.1"
|
34 |
+
description = "Internationalization utilities"
|
35 |
+
category = "dev"
|
36 |
+
optional = false
|
37 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
38 |
+
|
39 |
+
[package.dependencies]
|
40 |
+
pytz = ">=2015.7"
|
41 |
+
|
42 |
+
[[package]]
|
43 |
+
name = "beautifulsoup4"
|
44 |
+
version = "4.9.3"
|
45 |
+
description = "Screen-scraping library"
|
46 |
+
category = "main"
|
47 |
+
optional = false
|
48 |
+
python-versions = "*"
|
49 |
+
|
50 |
+
[package.dependencies]
|
51 |
+
soupsieve = {version = ">1.2", markers = "python_version >= \"3.0\""}
|
52 |
+
|
53 |
+
[package.extras]
|
54 |
+
html5lib = ["html5lib"]
|
55 |
+
lxml = ["lxml"]
|
56 |
+
|
57 |
+
[[package]]
|
58 |
+
name = "bleach"
|
59 |
+
version = "3.3.1"
|
60 |
+
description = "An easy safelist-based HTML-sanitizing tool."
|
61 |
+
category = "dev"
|
62 |
+
optional = false
|
63 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
64 |
+
|
65 |
+
[package.dependencies]
|
66 |
+
packaging = "*"
|
67 |
+
six = ">=1.9.0"
|
68 |
+
webencodings = "*"
|
69 |
+
|
70 |
+
[[package]]
|
71 |
+
name = "certifi"
|
72 |
+
version = "2021.5.30"
|
73 |
+
description = "Python package for providing Mozilla's CA Bundle."
|
74 |
+
category = "main"
|
75 |
+
optional = false
|
76 |
+
python-versions = "*"
|
77 |
+
|
78 |
+
[[package]]
|
79 |
+
name = "cffi"
|
80 |
+
version = "1.14.6"
|
81 |
+
description = "Foreign Function Interface for Python calling C code."
|
82 |
+
category = "dev"
|
83 |
+
optional = false
|
84 |
+
python-versions = "*"
|
85 |
+
|
86 |
+
[package.dependencies]
|
87 |
+
pycparser = "*"
|
88 |
+
|
89 |
+
[[package]]
|
90 |
+
name = "charset-normalizer"
|
91 |
+
version = "2.0.3"
|
92 |
+
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
|
93 |
+
category = "main"
|
94 |
+
optional = false
|
95 |
+
python-versions = ">=3.5.0"
|
96 |
+
|
97 |
+
[package.extras]
|
98 |
+
unicode_backport = ["unicodedata2"]
|
99 |
+
|
100 |
+
[[package]]
|
101 |
+
name = "click"
|
102 |
+
version = "8.0.1"
|
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 = "main"
|
117 |
+
optional = false
|
118 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
119 |
+
|
120 |
+
[[package]]
|
121 |
+
name = "coverage"
|
122 |
+
version = "5.5"
|
123 |
+
description = "Code coverage measurement for Python"
|
124 |
+
category = "dev"
|
125 |
+
optional = false
|
126 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
|
127 |
+
|
128 |
+
[package.extras]
|
129 |
+
toml = ["toml"]
|
130 |
+
|
131 |
+
[[package]]
|
132 |
+
name = "cryptography"
|
133 |
+
version = "3.4.7"
|
134 |
+
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
|
135 |
+
category = "dev"
|
136 |
+
optional = false
|
137 |
+
python-versions = ">=3.6"
|
138 |
+
|
139 |
+
[package.dependencies]
|
140 |
+
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 = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
|
145 |
+
pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
|
146 |
+
sdist = ["setuptools-rust (>=0.11.4)"]
|
147 |
+
ssh = ["bcrypt (>=3.1.5)"]
|
148 |
+
test = ["pytest (>=6.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
|
149 |
+
|
150 |
+
[[package]]
|
151 |
+
name = "docutils"
|
152 |
+
version = "0.17.1"
|
153 |
+
description = "Docutils -- Python Documentation Utilities"
|
154 |
+
category = "dev"
|
155 |
+
optional = false
|
156 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
157 |
+
|
158 |
+
[[package]]
|
159 |
+
name = "idna"
|
160 |
+
version = "3.2"
|
161 |
+
description = "Internationalized Domain Names in Applications (IDNA)"
|
162 |
+
category = "main"
|
163 |
+
optional = false
|
164 |
+
python-versions = ">=3.5"
|
165 |
+
|
166 |
+
[[package]]
|
167 |
+
name = "imagesize"
|
168 |
+
version = "1.2.0"
|
169 |
+
description = "Getting image size from png/jpeg/jpeg2000/gif file"
|
170 |
+
category = "dev"
|
171 |
+
optional = false
|
172 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
173 |
+
|
174 |
+
[[package]]
|
175 |
+
name = "importlib-metadata"
|
176 |
+
version = "4.6.1"
|
177 |
+
description = "Read metadata from Python packages"
|
178 |
+
category = "main"
|
179 |
+
optional = false
|
180 |
+
python-versions = ">=3.6"
|
181 |
+
|
182 |
+
[package.dependencies]
|
183 |
+
typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
|
184 |
+
zipp = ">=0.5"
|
185 |
+
|
186 |
+
[package.extras]
|
187 |
+
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
188 |
+
perf = ["ipython"]
|
189 |
+
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
|
190 |
+
|
191 |
+
[[package]]
|
192 |
+
name = "iniconfig"
|
193 |
+
version = "1.1.1"
|
194 |
+
description = "iniconfig: brain-dead simple config-ini parsing"
|
195 |
+
category = "dev"
|
196 |
+
optional = false
|
197 |
+
python-versions = "*"
|
198 |
+
|
199 |
+
[[package]]
|
200 |
+
name = "jeepney"
|
201 |
+
version = "0.7.0"
|
202 |
+
description = "Low-level, pure Python DBus protocol wrapper."
|
203 |
+
category = "dev"
|
204 |
+
optional = false
|
205 |
+
python-versions = ">=3.6"
|
206 |
+
|
207 |
+
[package.extras]
|
208 |
+
test = ["pytest", "pytest-trio", "pytest-asyncio", "testpath", "trio"]
|
209 |
+
trio = ["trio", "async-generator"]
|
210 |
+
|
211 |
+
[[package]]
|
212 |
+
name = "jinja2"
|
213 |
+
version = "3.0.1"
|
214 |
+
description = "A very fast and expressive template engine."
|
215 |
+
category = "dev"
|
216 |
+
optional = false
|
217 |
+
python-versions = ">=3.6"
|
218 |
+
|
219 |
+
[package.dependencies]
|
220 |
+
MarkupSafe = ">=2.0"
|
221 |
+
|
222 |
+
[package.extras]
|
223 |
+
i18n = ["Babel (>=2.7)"]
|
224 |
+
|
225 |
+
[[package]]
|
226 |
+
name = "keyring"
|
227 |
+
version = "23.0.1"
|
228 |
+
description = "Store and access your passwords safely."
|
229 |
+
category = "dev"
|
230 |
+
optional = false
|
231 |
+
python-versions = ">=3.6"
|
232 |
+
|
233 |
+
[package.dependencies]
|
234 |
+
importlib-metadata = ">=3.6"
|
235 |
+
jeepney = {version = ">=0.4.2", markers = "sys_platform == \"linux\""}
|
236 |
+
pywin32-ctypes = {version = "<0.1.0 || >0.1.0,<0.1.1 || >0.1.1", markers = "sys_platform == \"win32\""}
|
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 (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy"]
|
242 |
+
|
243 |
+
[[package]]
|
244 |
+
name = "markupsafe"
|
245 |
+
version = "2.0.1"
|
246 |
+
description = "Safely add untrusted strings to HTML/XML markup."
|
247 |
+
category = "dev"
|
248 |
+
optional = false
|
249 |
+
python-versions = ">=3.6"
|
250 |
+
|
251 |
+
[[package]]
|
252 |
+
name = "packaging"
|
253 |
+
version = "21.0"
|
254 |
+
description = "Core utilities for Python packages"
|
255 |
+
category = "dev"
|
256 |
+
optional = false
|
257 |
+
python-versions = ">=3.6"
|
258 |
+
|
259 |
+
[package.dependencies]
|
260 |
+
pyparsing = ">=2.0.2"
|
261 |
+
|
262 |
+
[[package]]
|
263 |
+
name = "pkginfo"
|
264 |
+
version = "1.7.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 = ["nose", "coverage"]
|
272 |
+
|
273 |
+
[[package]]
|
274 |
+
name = "pluggy"
|
275 |
+
version = "0.13.1"
|
276 |
+
description = "plugin and hook calling mechanisms for python"
|
277 |
+
category = "dev"
|
278 |
+
optional = false
|
279 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
280 |
+
|
281 |
+
[package.dependencies]
|
282 |
+
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
|
283 |
+
|
284 |
+
[package.extras]
|
285 |
+
dev = ["pre-commit", "tox"]
|
286 |
+
|
287 |
+
[[package]]
|
288 |
+
name = "py"
|
289 |
+
version = "1.10.0"
|
290 |
+
description = "library with cross-python path, ini-parsing, io, code, log facilities"
|
291 |
+
category = "dev"
|
292 |
+
optional = false
|
293 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
294 |
+
|
295 |
+
[[package]]
|
296 |
+
name = "pycparser"
|
297 |
+
version = "2.20"
|
298 |
+
description = "C parser in Python"
|
299 |
+
category = "dev"
|
300 |
+
optional = false
|
301 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
302 |
+
|
303 |
+
[[package]]
|
304 |
+
name = "pygments"
|
305 |
+
version = "2.9.0"
|
306 |
+
description = "Pygments is a syntax highlighting package written in Python."
|
307 |
+
category = "dev"
|
308 |
+
optional = false
|
309 |
+
python-versions = ">=3.5"
|
310 |
+
|
311 |
+
[[package]]
|
312 |
+
name = "pyparsing"
|
313 |
+
version = "2.4.7"
|
314 |
+
description = "Python parsing module"
|
315 |
+
category = "dev"
|
316 |
+
optional = false
|
317 |
+
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
318 |
+
|
319 |
+
[[package]]
|
320 |
+
name = "pytest"
|
321 |
+
version = "6.2.4"
|
322 |
+
description = "pytest: simple powerful testing with Python"
|
323 |
+
category = "dev"
|
324 |
+
optional = false
|
325 |
+
python-versions = ">=3.6"
|
326 |
+
|
327 |
+
[package.dependencies]
|
328 |
+
atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
|
329 |
+
attrs = ">=19.2.0"
|
330 |
+
colorama = {version = "*", markers = "sys_platform == \"win32\""}
|
331 |
+
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
|
332 |
+
iniconfig = "*"
|
333 |
+
packaging = "*"
|
334 |
+
pluggy = ">=0.12,<1.0.0a1"
|
335 |
+
py = ">=1.8.2"
|
336 |
+
toml = "*"
|
337 |
+
|
338 |
+
[package.extras]
|
339 |
+
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
|
340 |
+
|
341 |
+
[[package]]
|
342 |
+
name = "pytest-runner"
|
343 |
+
version = "5.3.1"
|
344 |
+
description = "Invoke py.test as distutils command with dependency resolution"
|
345 |
+
category = "dev"
|
346 |
+
optional = false
|
347 |
+
python-versions = ">=3.6"
|
348 |
+
|
349 |
+
[package.extras]
|
350 |
+
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
351 |
+
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-virtualenv", "pytest-black (>=0.3.7)", "pytest-mypy"]
|
352 |
+
|
353 |
+
[[package]]
|
354 |
+
name = "pytz"
|
355 |
+
version = "2021.1"
|
356 |
+
description = "World timezone definitions, modern and historical"
|
357 |
+
category = "dev"
|
358 |
+
optional = false
|
359 |
+
python-versions = "*"
|
360 |
+
|
361 |
+
[[package]]
|
362 |
+
name = "pywin32-ctypes"
|
363 |
+
version = "0.2.0"
|
364 |
+
description = ""
|
365 |
+
category = "dev"
|
366 |
+
optional = false
|
367 |
+
python-versions = "*"
|
368 |
+
|
369 |
+
[[package]]
|
370 |
+
name = "readme-renderer"
|
371 |
+
version = "29.0"
|
372 |
+
description = "readme_renderer is a library for rendering \"readme\" descriptions for Warehouse"
|
373 |
+
category = "dev"
|
374 |
+
optional = false
|
375 |
+
python-versions = "*"
|
376 |
+
|
377 |
+
[package.dependencies]
|
378 |
+
bleach = ">=2.1.0"
|
379 |
+
docutils = ">=0.13.1"
|
380 |
+
Pygments = ">=2.5.1"
|
381 |
+
six = "*"
|
382 |
+
|
383 |
+
[package.extras]
|
384 |
+
md = ["cmarkgfm (>=0.5.0,<0.6.0)"]
|
385 |
+
|
386 |
+
[[package]]
|
387 |
+
name = "requests"
|
388 |
+
version = "2.26.0"
|
389 |
+
description = "Python HTTP for Humans."
|
390 |
+
category = "main"
|
391 |
+
optional = false
|
392 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
|
393 |
+
|
394 |
+
[package.dependencies]
|
395 |
+
certifi = ">=2017.4.17"
|
396 |
+
charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""}
|
397 |
+
idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""}
|
398 |
+
urllib3 = ">=1.21.1,<1.27"
|
399 |
+
|
400 |
+
[package.extras]
|
401 |
+
socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
|
402 |
+
use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"]
|
403 |
+
|
404 |
+
[[package]]
|
405 |
+
name = "requests-toolbelt"
|
406 |
+
version = "0.9.1"
|
407 |
+
description = "A utility belt for advanced users of python-requests"
|
408 |
+
category = "dev"
|
409 |
+
optional = false
|
410 |
+
python-versions = "*"
|
411 |
+
|
412 |
+
[package.dependencies]
|
413 |
+
requests = ">=2.0.1,<3.0.0"
|
414 |
+
|
415 |
+
[[package]]
|
416 |
+
name = "rfc3986"
|
417 |
+
version = "1.5.0"
|
418 |
+
description = "Validating URI References per RFC 3986"
|
419 |
+
category = "dev"
|
420 |
+
optional = false
|
421 |
+
python-versions = "*"
|
422 |
+
|
423 |
+
[package.extras]
|
424 |
+
idna2008 = ["idna"]
|
425 |
+
|
426 |
+
[[package]]
|
427 |
+
name = "secretstorage"
|
428 |
+
version = "3.3.1"
|
429 |
+
description = "Python bindings to FreeDesktop.org Secret Service API"
|
430 |
+
category = "dev"
|
431 |
+
optional = false
|
432 |
+
python-versions = ">=3.6"
|
433 |
+
|
434 |
+
[package.dependencies]
|
435 |
+
cryptography = ">=2.0"
|
436 |
+
jeepney = ">=0.6"
|
437 |
+
|
438 |
+
[[package]]
|
439 |
+
name = "six"
|
440 |
+
version = "1.16.0"
|
441 |
+
description = "Python 2 and 3 compatibility utilities"
|
442 |
+
category = "dev"
|
443 |
+
optional = false
|
444 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
445 |
+
|
446 |
+
[[package]]
|
447 |
+
name = "snowballstemmer"
|
448 |
+
version = "2.1.0"
|
449 |
+
description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
|
450 |
+
category = "dev"
|
451 |
+
optional = false
|
452 |
+
python-versions = "*"
|
453 |
+
|
454 |
+
[[package]]
|
455 |
+
name = "soupsieve"
|
456 |
+
version = "2.2.1"
|
457 |
+
description = "A modern CSS selector implementation for Beautiful Soup."
|
458 |
+
category = "main"
|
459 |
+
optional = false
|
460 |
+
python-versions = ">=3.6"
|
461 |
+
|
462 |
+
[[package]]
|
463 |
+
name = "sphinx"
|
464 |
+
version = "4.1.1"
|
465 |
+
description = "Python documentation generator"
|
466 |
+
category = "dev"
|
467 |
+
optional = false
|
468 |
+
python-versions = ">=3.6"
|
469 |
+
|
470 |
+
[package.dependencies]
|
471 |
+
alabaster = ">=0.7,<0.8"
|
472 |
+
babel = ">=1.3"
|
473 |
+
colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""}
|
474 |
+
docutils = ">=0.14,<0.18"
|
475 |
+
imagesize = "*"
|
476 |
+
Jinja2 = ">=2.3"
|
477 |
+
packaging = "*"
|
478 |
+
Pygments = ">=2.0"
|
479 |
+
requests = ">=2.5.0"
|
480 |
+
snowballstemmer = ">=1.1"
|
481 |
+
sphinxcontrib-applehelp = "*"
|
482 |
+
sphinxcontrib-devhelp = "*"
|
483 |
+
sphinxcontrib-htmlhelp = ">=2.0.0"
|
484 |
+
sphinxcontrib-jsmath = "*"
|
485 |
+
sphinxcontrib-qthelp = "*"
|
486 |
+
sphinxcontrib-serializinghtml = ">=1.1.5"
|
487 |
+
|
488 |
+
[package.extras]
|
489 |
+
docs = ["sphinxcontrib-websupport"]
|
490 |
+
lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.900)", "docutils-stubs", "types-typed-ast", "types-pkg-resources", "types-requests"]
|
491 |
+
test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
|
492 |
+
|
493 |
+
[[package]]
|
494 |
+
name = "sphinxcontrib-applehelp"
|
495 |
+
version = "1.0.2"
|
496 |
+
description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books"
|
497 |
+
category = "dev"
|
498 |
+
optional = false
|
499 |
+
python-versions = ">=3.5"
|
500 |
+
|
501 |
+
[package.extras]
|
502 |
+
lint = ["flake8", "mypy", "docutils-stubs"]
|
503 |
+
test = ["pytest"]
|
504 |
+
|
505 |
+
[[package]]
|
506 |
+
name = "sphinxcontrib-devhelp"
|
507 |
+
version = "1.0.2"
|
508 |
+
description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."
|
509 |
+
category = "dev"
|
510 |
+
optional = false
|
511 |
+
python-versions = ">=3.5"
|
512 |
+
|
513 |
+
[package.extras]
|
514 |
+
lint = ["flake8", "mypy", "docutils-stubs"]
|
515 |
+
test = ["pytest"]
|
516 |
+
|
517 |
+
[[package]]
|
518 |
+
name = "sphinxcontrib-htmlhelp"
|
519 |
+
version = "2.0.0"
|
520 |
+
description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
|
521 |
+
category = "dev"
|
522 |
+
optional = false
|
523 |
+
python-versions = ">=3.6"
|
524 |
+
|
525 |
+
[package.extras]
|
526 |
+
lint = ["flake8", "mypy", "docutils-stubs"]
|
527 |
+
test = ["pytest", "html5lib"]
|
528 |
+
|
529 |
+
[[package]]
|
530 |
+
name = "sphinxcontrib-jsmath"
|
531 |
+
version = "1.0.1"
|
532 |
+
description = "A sphinx extension which renders display math in HTML via JavaScript"
|
533 |
+
category = "dev"
|
534 |
+
optional = false
|
535 |
+
python-versions = ">=3.5"
|
536 |
+
|
537 |
+
[package.extras]
|
538 |
+
test = ["pytest", "flake8", "mypy"]
|
539 |
+
|
540 |
+
[[package]]
|
541 |
+
name = "sphinxcontrib-qthelp"
|
542 |
+
version = "1.0.3"
|
543 |
+
description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document."
|
544 |
+
category = "dev"
|
545 |
+
optional = false
|
546 |
+
python-versions = ">=3.5"
|
547 |
+
|
548 |
+
[package.extras]
|
549 |
+
lint = ["flake8", "mypy", "docutils-stubs"]
|
550 |
+
test = ["pytest"]
|
551 |
+
|
552 |
+
[[package]]
|
553 |
+
name = "sphinxcontrib-serializinghtml"
|
554 |
+
version = "1.1.5"
|
555 |
+
description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)."
|
556 |
+
category = "dev"
|
557 |
+
optional = false
|
558 |
+
python-versions = ">=3.5"
|
559 |
+
|
560 |
+
[package.extras]
|
561 |
+
lint = ["flake8", "mypy", "docutils-stubs"]
|
562 |
+
test = ["pytest"]
|
563 |
+
|
564 |
+
[[package]]
|
565 |
+
name = "toml"
|
566 |
+
version = "0.10.2"
|
567 |
+
description = "Python Library for Tom's Obvious, Minimal Language"
|
568 |
+
category = "dev"
|
569 |
+
optional = false
|
570 |
+
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
571 |
+
|
572 |
+
[[package]]
|
573 |
+
name = "tqdm"
|
574 |
+
version = "4.61.2"
|
575 |
+
description = "Fast, Extensible Progress Meter"
|
576 |
+
category = "dev"
|
577 |
+
optional = false
|
578 |
+
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
|
579 |
+
|
580 |
+
[package.dependencies]
|
581 |
+
colorama = {version = "*", markers = "platform_system == \"Windows\""}
|
582 |
+
|
583 |
+
[package.extras]
|
584 |
+
dev = ["py-make (>=0.1.0)", "twine", "wheel"]
|
585 |
+
notebook = ["ipywidgets (>=6)"]
|
586 |
+
telegram = ["requests"]
|
587 |
+
|
588 |
+
[[package]]
|
589 |
+
name = "twine"
|
590 |
+
version = "3.4.2"
|
591 |
+
description = "Collection of utilities for publishing packages on PyPI"
|
592 |
+
category = "dev"
|
593 |
+
optional = false
|
594 |
+
python-versions = ">=3.6"
|
595 |
+
|
596 |
+
[package.dependencies]
|
597 |
+
colorama = ">=0.4.3"
|
598 |
+
importlib-metadata = ">=3.6"
|
599 |
+
keyring = ">=15.1"
|
600 |
+
pkginfo = ">=1.4.2"
|
601 |
+
readme-renderer = ">=21.0"
|
602 |
+
requests = ">=2.20"
|
603 |
+
requests-toolbelt = ">=0.8.0,<0.9.0 || >0.9.0"
|
604 |
+
rfc3986 = ">=1.4.0"
|
605 |
+
tqdm = ">=4.14"
|
606 |
+
|
607 |
+
[[package]]
|
608 |
+
name = "typing-extensions"
|
609 |
+
version = "3.10.0.0"
|
610 |
+
description = "Backported and Experimental Type Hints for Python 3.5+"
|
611 |
+
category = "main"
|
612 |
+
optional = false
|
613 |
+
python-versions = "*"
|
614 |
+
|
615 |
+
[[package]]
|
616 |
+
name = "urllib3"
|
617 |
+
version = "1.26.6"
|
618 |
+
description = "HTTP library with thread-safe connection pooling, file post, and more."
|
619 |
+
category = "main"
|
620 |
+
optional = false
|
621 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
|
622 |
+
|
623 |
+
[package.extras]
|
624 |
+
brotli = ["brotlipy (>=0.6.0)"]
|
625 |
+
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
|
626 |
+
socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
|
627 |
+
|
628 |
+
[[package]]
|
629 |
+
name = "webencodings"
|
630 |
+
version = "0.5.1"
|
631 |
+
description = "Character encoding aliases for legacy web content"
|
632 |
+
category = "dev"
|
633 |
+
optional = false
|
634 |
+
python-versions = "*"
|
635 |
+
|
636 |
+
[[package]]
|
637 |
+
name = "zipp"
|
638 |
+
version = "3.5.0"
|
639 |
+
description = "Backport of pathlib-compatible object wrapper for zip files"
|
640 |
+
category = "main"
|
641 |
+
optional = false
|
642 |
+
python-versions = ">=3.6"
|
643 |
+
|
644 |
+
[package.extras]
|
645 |
+
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
646 |
+
testing = ["pytest (>=4.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"]
|
647 |
+
|
648 |
+
[metadata]
|
649 |
+
lock-version = "1.1"
|
650 |
+
python-versions = "^3.7"
|
651 |
+
content-hash = "b07152dec26ab024bb88d96ed0662e0d575390d70ef05ca6c03c9468cf22d699"
|
652 |
+
|
653 |
+
[metadata.files]
|
654 |
+
alabaster = [
|
655 |
+
{file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"},
|
656 |
+
{file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"},
|
657 |
+
]
|
658 |
+
atomicwrites = [
|
659 |
+
{file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"},
|
660 |
+
{file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"},
|
661 |
+
]
|
662 |
+
attrs = [
|
663 |
+
{file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"},
|
664 |
+
{file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"},
|
665 |
+
]
|
666 |
+
babel = [
|
667 |
+
{file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"},
|
668 |
+
{file = "Babel-2.9.1.tar.gz", hash = "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"},
|
669 |
+
]
|
670 |
+
beautifulsoup4 = [
|
671 |
+
{file = "beautifulsoup4-4.9.3-py2-none-any.whl", hash = "sha256:4c98143716ef1cb40bf7f39a8e3eec8f8b009509e74904ba3a7b315431577e35"},
|
672 |
+
{file = "beautifulsoup4-4.9.3-py3-none-any.whl", hash = "sha256:fff47e031e34ec82bf17e00da8f592fe7de69aeea38be00523c04623c04fb666"},
|
673 |
+
{file = "beautifulsoup4-4.9.3.tar.gz", hash = "sha256:84729e322ad1d5b4d25f805bfa05b902dd96450f43842c4e99067d5e1369eb25"},
|
674 |
+
]
|
675 |
+
bleach = [
|
676 |
+
{file = "bleach-3.3.1-py2.py3-none-any.whl", hash = "sha256:ae976d7174bba988c0b632def82fdc94235756edfb14e6558a9c5be555c9fb78"},
|
677 |
+
{file = "bleach-3.3.1.tar.gz", hash = "sha256:306483a5a9795474160ad57fce3ddd1b50551e981eed8e15a582d34cef28aafa"},
|
678 |
+
]
|
679 |
+
certifi = [
|
680 |
+
{file = "certifi-2021.5.30-py2.py3-none-any.whl", hash = "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"},
|
681 |
+
{file = "certifi-2021.5.30.tar.gz", hash = "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee"},
|
682 |
+
]
|
683 |
+
cffi = [
|
684 |
+
{file = "cffi-1.14.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c"},
|
685 |
+
{file = "cffi-1.14.6-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99"},
|
686 |
+
{file = "cffi-1.14.6-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819"},
|
687 |
+
{file = "cffi-1.14.6-cp27-cp27m-win32.whl", hash = "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20"},
|
688 |
+
{file = "cffi-1.14.6-cp27-cp27m-win_amd64.whl", hash = "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224"},
|
689 |
+
{file = "cffi-1.14.6-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7"},
|
690 |
+
{file = "cffi-1.14.6-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33"},
|
691 |
+
{file = "cffi-1.14.6-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:aedb15f0a5a5949ecb129a82b72b19df97bbbca024081ed2ef88bd5c0a610534"},
|
692 |
+
{file = "cffi-1.14.6-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:48916e459c54c4a70e52745639f1db524542140433599e13911b2f329834276a"},
|
693 |
+
{file = "cffi-1.14.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f627688813d0a4140153ff532537fbe4afea5a3dffce1f9deb7f91f848a832b5"},
|
694 |
+
{file = "cffi-1.14.6-cp35-cp35m-win32.whl", hash = "sha256:f0010c6f9d1a4011e429109fda55a225921e3206e7f62a0c22a35344bfd13cca"},
|
695 |
+
{file = "cffi-1.14.6-cp35-cp35m-win_amd64.whl", hash = "sha256:57e555a9feb4a8460415f1aac331a2dc833b1115284f7ded7278b54afc5bd218"},
|
696 |
+
{file = "cffi-1.14.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f"},
|
697 |
+
{file = "cffi-1.14.6-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872"},
|
698 |
+
{file = "cffi-1.14.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195"},
|
699 |
+
{file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d"},
|
700 |
+
{file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b"},
|
701 |
+
{file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb"},
|
702 |
+
{file = "cffi-1.14.6-cp36-cp36m-win32.whl", hash = "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a"},
|
703 |
+
{file = "cffi-1.14.6-cp36-cp36m-win_amd64.whl", hash = "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e"},
|
704 |
+
{file = "cffi-1.14.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5"},
|
705 |
+
{file = "cffi-1.14.6-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf"},
|
706 |
+
{file = "cffi-1.14.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69"},
|
707 |
+
{file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56"},
|
708 |
+
{file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c"},
|
709 |
+
{file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762"},
|
710 |
+
{file = "cffi-1.14.6-cp37-cp37m-win32.whl", hash = "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771"},
|
711 |
+
{file = "cffi-1.14.6-cp37-cp37m-win_amd64.whl", hash = "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a"},
|
712 |
+
{file = "cffi-1.14.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0"},
|
713 |
+
{file = "cffi-1.14.6-cp38-cp38-manylinux1_i686.whl", hash = "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e"},
|
714 |
+
{file = "cffi-1.14.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346"},
|
715 |
+
{file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc"},
|
716 |
+
{file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd"},
|
717 |
+
{file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc"},
|
718 |
+
{file = "cffi-1.14.6-cp38-cp38-win32.whl", hash = "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548"},
|
719 |
+
{file = "cffi-1.14.6-cp38-cp38-win_amd64.whl", hash = "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156"},
|
720 |
+
{file = "cffi-1.14.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d"},
|
721 |
+
{file = "cffi-1.14.6-cp39-cp39-manylinux1_i686.whl", hash = "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e"},
|
722 |
+
{file = "cffi-1.14.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c"},
|
723 |
+
{file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202"},
|
724 |
+
{file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f"},
|
725 |
+
{file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87"},
|
726 |
+
{file = "cffi-1.14.6-cp39-cp39-win32.whl", hash = "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728"},
|
727 |
+
{file = "cffi-1.14.6-cp39-cp39-win_amd64.whl", hash = "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2"},
|
728 |
+
{file = "cffi-1.14.6.tar.gz", hash = "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd"},
|
729 |
+
]
|
730 |
+
charset-normalizer = [
|
731 |
+
{file = "charset-normalizer-2.0.3.tar.gz", hash = "sha256:c46c3ace2d744cfbdebceaa3c19ae691f53ae621b39fd7570f59d14fb7f2fd12"},
|
732 |
+
{file = "charset_normalizer-2.0.3-py3-none-any.whl", hash = "sha256:88fce3fa5b1a84fdcb3f603d889f723d1dd89b26059d0123ca435570e848d5e1"},
|
733 |
+
]
|
734 |
+
click = [
|
735 |
+
{file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"},
|
736 |
+
{file = "click-8.0.1.tar.gz", hash = "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"},
|
737 |
+
]
|
738 |
+
colorama = [
|
739 |
+
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
|
740 |
+
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
|
741 |
+
]
|
742 |
+
coverage = [
|
743 |
+
{file = "coverage-5.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:b6d534e4b2ab35c9f93f46229363e17f63c53ad01330df9f2d6bd1187e5eaacf"},
|
744 |
+
{file = "coverage-5.5-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:b7895207b4c843c76a25ab8c1e866261bcfe27bfaa20c192de5190121770672b"},
|
745 |
+
{file = "coverage-5.5-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:c2723d347ab06e7ddad1a58b2a821218239249a9e4365eaff6649d31180c1669"},
|
746 |
+
{file = "coverage-5.5-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:900fbf7759501bc7807fd6638c947d7a831fc9fdf742dc10f02956ff7220fa90"},
|
747 |
+
{file = "coverage-5.5-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c"},
|
748 |
+
{file = "coverage-5.5-cp27-cp27m-win32.whl", hash = "sha256:06191eb60f8d8a5bc046f3799f8a07a2d7aefb9504b0209aff0b47298333302a"},
|
749 |
+
{file = "coverage-5.5-cp27-cp27m-win_amd64.whl", hash = "sha256:7501140f755b725495941b43347ba8a2777407fc7f250d4f5a7d2a1050ba8e82"},
|
750 |
+
{file = "coverage-5.5-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:372da284cfd642d8e08ef606917846fa2ee350f64994bebfbd3afb0040436905"},
|
751 |
+
{file = "coverage-5.5-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:8963a499849a1fc54b35b1c9f162f4108017b2e6db2c46c1bed93a72262ed083"},
|
752 |
+
{file = "coverage-5.5-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:869a64f53488f40fa5b5b9dcb9e9b2962a66a87dab37790f3fcfb5144b996ef5"},
|
753 |
+
{file = "coverage-5.5-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:4a7697d8cb0f27399b0e393c0b90f0f1e40c82023ea4d45d22bce7032a5d7b81"},
|
754 |
+
{file = "coverage-5.5-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:8d0a0725ad7c1a0bcd8d1b437e191107d457e2ec1084b9f190630a4fb1af78e6"},
|
755 |
+
{file = "coverage-5.5-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:51cb9476a3987c8967ebab3f0fe144819781fca264f57f89760037a2ea191cb0"},
|
756 |
+
{file = "coverage-5.5-cp310-cp310-win_amd64.whl", hash = "sha256:c0891a6a97b09c1f3e073a890514d5012eb256845c451bd48f7968ef939bf4ae"},
|
757 |
+
{file = "coverage-5.5-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:3487286bc29a5aa4b93a072e9592f22254291ce96a9fbc5251f566b6b7343cdb"},
|
758 |
+
{file = "coverage-5.5-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:deee1077aae10d8fa88cb02c845cfba9b62c55e1183f52f6ae6a2df6a2187160"},
|
759 |
+
{file = "coverage-5.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f11642dddbb0253cc8853254301b51390ba0081750a8ac03f20ea8103f0c56b6"},
|
760 |
+
{file = "coverage-5.5-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:6c90e11318f0d3c436a42409f2749ee1a115cd8b067d7f14c148f1ce5574d701"},
|
761 |
+
{file = "coverage-5.5-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:30c77c1dc9f253283e34c27935fded5015f7d1abe83bc7821680ac444eaf7793"},
|
762 |
+
{file = "coverage-5.5-cp35-cp35m-win32.whl", hash = "sha256:9a1ef3b66e38ef8618ce5fdc7bea3d9f45f3624e2a66295eea5e57966c85909e"},
|
763 |
+
{file = "coverage-5.5-cp35-cp35m-win_amd64.whl", hash = "sha256:972c85d205b51e30e59525694670de6a8a89691186012535f9d7dbaa230e42c3"},
|
764 |
+
{file = "coverage-5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:af0e781009aaf59e25c5a678122391cb0f345ac0ec272c7961dc5455e1c40066"},
|
765 |
+
{file = "coverage-5.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:74d881fc777ebb11c63736622b60cb9e4aee5cace591ce274fb69e582a12a61a"},
|
766 |
+
{file = "coverage-5.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:92b017ce34b68a7d67bd6d117e6d443a9bf63a2ecf8567bb3d8c6c7bc5014465"},
|
767 |
+
{file = "coverage-5.5-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:d636598c8305e1f90b439dbf4f66437de4a5e3c31fdf47ad29542478c8508bbb"},
|
768 |
+
{file = "coverage-5.5-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:41179b8a845742d1eb60449bdb2992196e211341818565abded11cfa90efb821"},
|
769 |
+
{file = "coverage-5.5-cp36-cp36m-win32.whl", hash = "sha256:040af6c32813fa3eae5305d53f18875bedd079960822ef8ec067a66dd8afcd45"},
|
770 |
+
{file = "coverage-5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:5fec2d43a2cc6965edc0bb9e83e1e4b557f76f843a77a2496cbe719583ce8184"},
|
771 |
+
{file = "coverage-5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:18ba8bbede96a2c3dde7b868de9dcbd55670690af0988713f0603f037848418a"},
|
772 |
+
{file = "coverage-5.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:2910f4d36a6a9b4214bb7038d537f015346f413a975d57ca6b43bf23d6563b53"},
|
773 |
+
{file = "coverage-5.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:f0b278ce10936db1a37e6954e15a3730bea96a0997c26d7fee88e6c396c2086d"},
|
774 |
+
{file = "coverage-5.5-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:796c9c3c79747146ebd278dbe1e5c5c05dd6b10cc3bcb8389dfdf844f3ead638"},
|
775 |
+
{file = "coverage-5.5-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:53194af30d5bad77fcba80e23a1441c71abfb3e01192034f8246e0d8f99528f3"},
|
776 |
+
{file = "coverage-5.5-cp37-cp37m-win32.whl", hash = "sha256:184a47bbe0aa6400ed2d41d8e9ed868b8205046518c52464fde713ea06e3a74a"},
|
777 |
+
{file = "coverage-5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:2949cad1c5208b8298d5686d5a85b66aae46d73eec2c3e08c817dd3513e5848a"},
|
778 |
+
{file = "coverage-5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:217658ec7187497e3f3ebd901afdca1af062b42cfe3e0dafea4cced3983739f6"},
|
779 |
+
{file = "coverage-5.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1aa846f56c3d49205c952d8318e76ccc2ae23303351d9270ab220004c580cfe2"},
|
780 |
+
{file = "coverage-5.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:24d4a7de75446be83244eabbff746d66b9240ae020ced65d060815fac3423759"},
|
781 |
+
{file = "coverage-5.5-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d1f8bf7b90ba55699b3a5e44930e93ff0189aa27186e96071fac7dd0d06a1873"},
|
782 |
+
{file = "coverage-5.5-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:970284a88b99673ccb2e4e334cfb38a10aab7cd44f7457564d11898a74b62d0a"},
|
783 |
+
{file = "coverage-5.5-cp38-cp38-win32.whl", hash = "sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6"},
|
784 |
+
{file = "coverage-5.5-cp38-cp38-win_amd64.whl", hash = "sha256:2e0d881ad471768bf6e6c2bf905d183543f10098e3b3640fc029509530091502"},
|
785 |
+
{file = "coverage-5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d1f9ce122f83b2305592c11d64f181b87153fc2c2bbd3bb4a3dde8303cfb1a6b"},
|
786 |
+
{file = "coverage-5.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:13c4ee887eca0f4c5a247b75398d4114c37882658300e153113dafb1d76de529"},
|
787 |
+
{file = "coverage-5.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:52596d3d0e8bdf3af43db3e9ba8dcdaac724ba7b5ca3f6358529d56f7a166f8b"},
|
788 |
+
{file = "coverage-5.5-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:2cafbbb3af0733db200c9b5f798d18953b1a304d3f86a938367de1567f4b5bff"},
|
789 |
+
{file = "coverage-5.5-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:44d654437b8ddd9eee7d1eaee28b7219bec228520ff809af170488fd2fed3e2b"},
|
790 |
+
{file = "coverage-5.5-cp39-cp39-win32.whl", hash = "sha256:d314ed732c25d29775e84a960c3c60808b682c08d86602ec2c3008e1202e3bb6"},
|
791 |
+
{file = "coverage-5.5-cp39-cp39-win_amd64.whl", hash = "sha256:13034c4409db851670bc9acd836243aeee299949bd5673e11844befcb0149f03"},
|
792 |
+
{file = "coverage-5.5-pp36-none-any.whl", hash = "sha256:f030f8873312a16414c0d8e1a1ddff2d3235655a2174e3648b4fa66b3f2f1079"},
|
793 |
+
{file = "coverage-5.5-pp37-none-any.whl", hash = "sha256:2a3859cb82dcbda1cfd3e6f71c27081d18aa251d20a17d87d26d4cd216fb0af4"},
|
794 |
+
{file = "coverage-5.5.tar.gz", hash = "sha256:ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c"},
|
795 |
+
]
|
796 |
+
cryptography = [
|
797 |
+
{file = "cryptography-3.4.7-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:3d8427734c781ea5f1b41d6589c293089704d4759e34597dce91014ac125aad1"},
|
798 |
+
{file = "cryptography-3.4.7-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:8e56e16617872b0957d1c9742a3f94b43533447fd78321514abbe7db216aa250"},
|
799 |
+
{file = "cryptography-3.4.7-cp36-abi3-manylinux2010_x86_64.whl", hash = "sha256:37340614f8a5d2fb9aeea67fd159bfe4f5f4ed535b1090ce8ec428b2f15a11f2"},
|
800 |
+
{file = "cryptography-3.4.7-cp36-abi3-manylinux2014_aarch64.whl", hash = "sha256:240f5c21aef0b73f40bb9f78d2caff73186700bf1bc6b94285699aff98cc16c6"},
|
801 |
+
{file = "cryptography-3.4.7-cp36-abi3-manylinux2014_x86_64.whl", hash = "sha256:1e056c28420c072c5e3cb36e2b23ee55e260cb04eee08f702e0edfec3fb51959"},
|
802 |
+
{file = "cryptography-3.4.7-cp36-abi3-win32.whl", hash = "sha256:0f1212a66329c80d68aeeb39b8a16d54ef57071bf22ff4e521657b27372e327d"},
|
803 |
+
{file = "cryptography-3.4.7-cp36-abi3-win_amd64.whl", hash = "sha256:de4e5f7f68220d92b7637fc99847475b59154b7a1b3868fb7385337af54ac9ca"},
|
804 |
+
{file = "cryptography-3.4.7-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:26965837447f9c82f1855e0bc8bc4fb910240b6e0d16a664bb722df3b5b06873"},
|
805 |
+
{file = "cryptography-3.4.7-pp36-pypy36_pp73-manylinux2014_x86_64.whl", hash = "sha256:eb8cc2afe8b05acbd84a43905832ec78e7b3873fb124ca190f574dca7389a87d"},
|
806 |
+
{file = "cryptography-3.4.7-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:7ec5d3b029f5fa2b179325908b9cd93db28ab7b85bb6c1db56b10e0b54235177"},
|
807 |
+
{file = "cryptography-3.4.7-pp37-pypy37_pp73-manylinux2014_x86_64.whl", hash = "sha256:ee77aa129f481be46f8d92a1a7db57269a2f23052d5f2433b4621bb457081cc9"},
|
808 |
+
{file = "cryptography-3.4.7.tar.gz", hash = "sha256:3d10de8116d25649631977cb37da6cbdd2d6fa0e0281d014a5b7d337255ca713"},
|
809 |
+
]
|
810 |
+
docutils = [
|
811 |
+
{file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"},
|
812 |
+
{file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"},
|
813 |
+
]
|
814 |
+
idna = [
|
815 |
+
{file = "idna-3.2-py3-none-any.whl", hash = "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a"},
|
816 |
+
{file = "idna-3.2.tar.gz", hash = "sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3"},
|
817 |
+
]
|
818 |
+
imagesize = [
|
819 |
+
{file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
|
820 |
+
{file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"},
|
821 |
+
]
|
822 |
+
importlib-metadata = [
|
823 |
+
{file = "importlib_metadata-4.6.1-py3-none-any.whl", hash = "sha256:9f55f560e116f8643ecf2922d9cd3e1c7e8d52e683178fecd9d08f6aa357e11e"},
|
824 |
+
{file = "importlib_metadata-4.6.1.tar.gz", hash = "sha256:079ada16b7fc30dfbb5d13399a5113110dab1aa7c2bc62f66af75f0b717c8cac"},
|
825 |
+
]
|
826 |
+
iniconfig = [
|
827 |
+
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
|
828 |
+
{file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"},
|
829 |
+
]
|
830 |
+
jeepney = [
|
831 |
+
{file = "jeepney-0.7.0-py3-none-any.whl", hash = "sha256:71335e7a4e93817982f473f3507bffc2eff7a544119ab9b73e089c8ba1409ba3"},
|
832 |
+
{file = "jeepney-0.7.0.tar.gz", hash = "sha256:1237cd64c8f7ac3aa4b3f332c4d0fb4a8216f39eaa662ec904302d4d77de5a54"},
|
833 |
+
]
|
834 |
+
jinja2 = [
|
835 |
+
{file = "Jinja2-3.0.1-py3-none-any.whl", hash = "sha256:1f06f2da51e7b56b8f238affdd6b4e2c61e39598a378cc49345bc1bd42a978a4"},
|
836 |
+
{file = "Jinja2-3.0.1.tar.gz", hash = "sha256:703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4"},
|
837 |
+
]
|
838 |
+
keyring = [
|
839 |
+
{file = "keyring-23.0.1-py3-none-any.whl", hash = "sha256:8f607d7d1cc502c43a932a275a56fe47db50271904513a379d39df1af277ac48"},
|
840 |
+
{file = "keyring-23.0.1.tar.gz", hash = "sha256:045703609dd3fccfcdb27da201684278823b72af515aedec1a8515719a038cb8"},
|
841 |
+
]
|
842 |
+
markupsafe = [
|
843 |
+
{file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
|
844 |
+
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"},
|
845 |
+
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"},
|
846 |
+
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"},
|
847 |
+
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"},
|
848 |
+
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"},
|
849 |
+
{file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"},
|
850 |
+
{file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"},
|
851 |
+
{file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"},
|
852 |
+
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"},
|
853 |
+
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"},
|
854 |
+
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"},
|
855 |
+
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"},
|
856 |
+
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"},
|
857 |
+
{file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"},
|
858 |
+
{file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"},
|
859 |
+
{file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"},
|
860 |
+
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"},
|
861 |
+
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"},
|
862 |
+
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"},
|
863 |
+
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"},
|
864 |
+
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"},
|
865 |
+
{file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"},
|
866 |
+
{file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"},
|
867 |
+
{file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"},
|
868 |
+
{file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"},
|
869 |
+
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"},
|
870 |
+
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"},
|
871 |
+
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"},
|
872 |
+
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"},
|
873 |
+
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"},
|
874 |
+
{file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"},
|
875 |
+
{file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"},
|
876 |
+
{file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
|
877 |
+
]
|
878 |
+
packaging = [
|
879 |
+
{file = "packaging-21.0-py3-none-any.whl", hash = "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14"},
|
880 |
+
{file = "packaging-21.0.tar.gz", hash = "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7"},
|
881 |
+
]
|
882 |
+
pkginfo = [
|
883 |
+
{file = "pkginfo-1.7.1-py2.py3-none-any.whl", hash = "sha256:37ecd857b47e5f55949c41ed061eb51a0bee97a87c969219d144c0e023982779"},
|
884 |
+
{file = "pkginfo-1.7.1.tar.gz", hash = "sha256:e7432f81d08adec7297633191bbf0bd47faf13cd8724c3a13250e51d542635bd"},
|
885 |
+
]
|
886 |
+
pluggy = [
|
887 |
+
{file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"},
|
888 |
+
{file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"},
|
889 |
+
]
|
890 |
+
py = [
|
891 |
+
{file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"},
|
892 |
+
{file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"},
|
893 |
+
]
|
894 |
+
pycparser = [
|
895 |
+
{file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
|
896 |
+
{file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
|
897 |
+
]
|
898 |
+
pygments = [
|
899 |
+
{file = "Pygments-2.9.0-py3-none-any.whl", hash = "sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e"},
|
900 |
+
{file = "Pygments-2.9.0.tar.gz", hash = "sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f"},
|
901 |
+
]
|
902 |
+
pyparsing = [
|
903 |
+
{file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
|
904 |
+
{file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
|
905 |
+
]
|
906 |
+
pytest = [
|
907 |
+
{file = "pytest-6.2.4-py3-none-any.whl", hash = "sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890"},
|
908 |
+
{file = "pytest-6.2.4.tar.gz", hash = "sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b"},
|
909 |
+
]
|
910 |
+
pytest-runner = [
|
911 |
+
{file = "pytest-runner-5.3.1.tar.gz", hash = "sha256:0fce5b8dc68760f353979d99fdd6b3ad46330b6b1837e2077a89ebcf204aac91"},
|
912 |
+
{file = "pytest_runner-5.3.1-py3-none-any.whl", hash = "sha256:85f93af814438ee322b4ea08fe3f5c2ad53b253577f3bd84b2ad451fee450ac5"},
|
913 |
+
]
|
914 |
+
pytz = [
|
915 |
+
{file = "pytz-2021.1-py2.py3-none-any.whl", hash = "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"},
|
916 |
+
{file = "pytz-2021.1.tar.gz", hash = "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da"},
|
917 |
+
]
|
918 |
+
pywin32-ctypes = [
|
919 |
+
{file = "pywin32-ctypes-0.2.0.tar.gz", hash = "sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942"},
|
920 |
+
{file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"},
|
921 |
+
]
|
922 |
+
readme-renderer = [
|
923 |
+
{file = "readme_renderer-29.0-py2.py3-none-any.whl", hash = "sha256:63b4075c6698fcfa78e584930f07f39e05d46f3ec97f65006e430b595ca6348c"},
|
924 |
+
{file = "readme_renderer-29.0.tar.gz", hash = "sha256:92fd5ac2bf8677f310f3303aa4bce5b9d5f9f2094ab98c29f13791d7b805a3db"},
|
925 |
+
]
|
926 |
+
requests = [
|
927 |
+
{file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"},
|
928 |
+
{file = "requests-2.26.0.tar.gz", hash = "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"},
|
929 |
+
]
|
930 |
+
requests-toolbelt = [
|
931 |
+
{file = "requests-toolbelt-0.9.1.tar.gz", hash = "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0"},
|
932 |
+
{file = "requests_toolbelt-0.9.1-py2.py3-none-any.whl", hash = "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f"},
|
933 |
+
]
|
934 |
+
rfc3986 = [
|
935 |
+
{file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"},
|
936 |
+
{file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"},
|
937 |
+
]
|
938 |
+
secretstorage = [
|
939 |
+
{file = "SecretStorage-3.3.1-py3-none-any.whl", hash = "sha256:422d82c36172d88d6a0ed5afdec956514b189ddbfb72fefab0c8a1cee4eaf71f"},
|
940 |
+
{file = "SecretStorage-3.3.1.tar.gz", hash = "sha256:fd666c51a6bf200643495a04abb261f83229dcb6fd8472ec393df7ffc8b6f195"},
|
941 |
+
]
|
942 |
+
six = [
|
943 |
+
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
|
944 |
+
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
945 |
+
]
|
946 |
+
snowballstemmer = [
|
947 |
+
{file = "snowballstemmer-2.1.0-py2.py3-none-any.whl", hash = "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2"},
|
948 |
+
{file = "snowballstemmer-2.1.0.tar.gz", hash = "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"},
|
949 |
+
]
|
950 |
+
soupsieve = [
|
951 |
+
{file = "soupsieve-2.2.1-py3-none-any.whl", hash = "sha256:c2c1c2d44f158cdbddab7824a9af8c4f83c76b1e23e049479aa432feb6c4c23b"},
|
952 |
+
{file = "soupsieve-2.2.1.tar.gz", hash = "sha256:052774848f448cf19c7e959adf5566904d525f33a3f8b6ba6f6f8f26ec7de0cc"},
|
953 |
+
]
|
954 |
+
sphinx = [
|
955 |
+
{file = "Sphinx-4.1.1-py3-none-any.whl", hash = "sha256:3d513088236eef51e5b0adb78b0492eb22cc3b8ccdb0b36dd021173b365d4454"},
|
956 |
+
{file = "Sphinx-4.1.1.tar.gz", hash = "sha256:23c846a1841af998cb736218539bb86d16f5eb95f5760b1966abcd2d584e62b8"},
|
957 |
+
]
|
958 |
+
sphinxcontrib-applehelp = [
|
959 |
+
{file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"},
|
960 |
+
{file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"},
|
961 |
+
]
|
962 |
+
sphinxcontrib-devhelp = [
|
963 |
+
{file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"},
|
964 |
+
{file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"},
|
965 |
+
]
|
966 |
+
sphinxcontrib-htmlhelp = [
|
967 |
+
{file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"},
|
968 |
+
{file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"},
|
969 |
+
]
|
970 |
+
sphinxcontrib-jsmath = [
|
971 |
+
{file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"},
|
972 |
+
{file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"},
|
973 |
+
]
|
974 |
+
sphinxcontrib-qthelp = [
|
975 |
+
{file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"},
|
976 |
+
{file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"},
|
977 |
+
]
|
978 |
+
sphinxcontrib-serializinghtml = [
|
979 |
+
{file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"},
|
980 |
+
{file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"},
|
981 |
+
]
|
982 |
+
toml = [
|
983 |
+
{file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
|
984 |
+
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
|
985 |
+
]
|
986 |
+
tqdm = [
|
987 |
+
{file = "tqdm-4.61.2-py2.py3-none-any.whl", hash = "sha256:5aa445ea0ad8b16d82b15ab342de6b195a722d75fc1ef9934a46bba6feafbc64"},
|
988 |
+
{file = "tqdm-4.61.2.tar.gz", hash = "sha256:8bb94db0d4468fea27d004a0f1d1c02da3cdedc00fe491c0de986b76a04d6b0a"},
|
989 |
+
]
|
990 |
+
twine = [
|
991 |
+
{file = "twine-3.4.2-py3-none-any.whl", hash = "sha256:087328e9bb405e7ce18527a2dca4042a84c7918658f951110b38bc135acab218"},
|
992 |
+
{file = "twine-3.4.2.tar.gz", hash = "sha256:4caec0f1ed78dc4c9b83ad537e453d03ce485725f2aea57f1bb3fdde78dae936"},
|
993 |
+
]
|
994 |
+
typing-extensions = [
|
995 |
+
{file = "typing_extensions-3.10.0.0-py2-none-any.whl", hash = "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497"},
|
996 |
+
{file = "typing_extensions-3.10.0.0-py3-none-any.whl", hash = "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84"},
|
997 |
+
{file = "typing_extensions-3.10.0.0.tar.gz", hash = "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342"},
|
998 |
+
]
|
999 |
+
urllib3 = [
|
1000 |
+
{file = "urllib3-1.26.6-py2.py3-none-any.whl", hash = "sha256:39fb8672126159acb139a7718dd10806104dec1e2f0f6c88aab05d17df10c8d4"},
|
1001 |
+
{file = "urllib3-1.26.6.tar.gz", hash = "sha256:f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f"},
|
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.5.0-py3-none-any.whl", hash = "sha256:957cfda87797e389580cb8b9e3870841ca991e2125350677b2ca83a0e99390a3"},
|
1009 |
+
{file = "zipp-3.5.0.tar.gz", hash = "sha256:f5812b1e007e48cff63449a5e9f4e7ebea716b4111f9c4f9a645f91d579bf0c4"},
|
1010 |
+
]
|
pyproject.toml
CHANGED
@@ -1,3 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
[build-system]
|
2 |
-
requires = ["
|
3 |
-
build-backend = "
|
|
|
1 |
+
[tool.poetry]
|
2 |
+
name = "deep-translator"
|
3 |
+
version = "1.5.2"
|
4 |
+
description = ""
|
5 |
+
license = "MIT"
|
6 |
+
authors = ["Nidhal Baccouri <[email protected]>"]
|
7 |
+
maintainers = ["Chris Trenthem <[email protected]>"]
|
8 |
+
readme = "README.rst"
|
9 |
+
homepage = "https://github.com/nidhaloff/deep_translator"
|
10 |
+
repository = "https://github.com/nidhaloff/deep_translator"
|
11 |
+
documentation = "https://deep-translator.readthedocs.io/en/latest/"
|
12 |
+
keywords = ["deep_translator", "deepL", "DeepL", "translator", "translation", "automation", "web scraping", "google translator", "google translation", "google trans", "PONS", "YANDEX", "MyMemory translator", "Linguee", "QCRI", "Language", "Language detection", "detect language", "free translation", "unlimited translation", "translate for free"]
|
13 |
+
classifiers = [
|
14 |
+
"Development Status :: 5 - Production/Stable",
|
15 |
+
"Intended Audience :: Developers",
|
16 |
+
"Intended Audience :: Education",
|
17 |
+
"Intended Audience :: Information Technology",
|
18 |
+
"License :: OSI Approved :: MIT License",
|
19 |
+
"Topic :: Education",
|
20 |
+
"Topic :: Software Development",
|
21 |
+
"Topic :: Communications",
|
22 |
+
"Topic :: Text Processing",
|
23 |
+
"Topic :: Text Processing :: Linguistic",
|
24 |
+
"Operating System :: OS Independent"]
|
25 |
+
packages = [{include="deep_translator"}]
|
26 |
+
# TODO: Add whatever additional documentation to be added here.
|
27 |
+
include = [ ]
|
28 |
+
|
29 |
+
[tool.poetry.scripts]
|
30 |
+
deep-translator = 'deep_translator.main:cli'
|
31 |
+
dt = 'deep_translator.main:cli'
|
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 |
+
#pandas = {version = "^1.3.0", optional = true}
|
39 |
+
|
40 |
+
[tool.poetry.dev-dependencies]
|
41 |
+
wheel = "flake8"
|
42 |
+
#tox = "^3.24.0"
|
43 |
+
coverage = "^5.5"
|
44 |
+
Sphinx = "^4.1.1"
|
45 |
+
twine = "^3.4.2"
|
46 |
+
pytest = "^6.2.4"
|
47 |
+
pytest-runner = "^5.3.1"
|
48 |
+
toml = "^0.10.2"
|
49 |
+
|
50 |
[build-system]
|
51 |
+
requires = ["poetry-core>=1.0.0"]
|
52 |
+
build-backend = "poetry.core.masonry.api"
|
pyvenv.cfg
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
home = /usr/bin
|
2 |
-
include-system-site-packages = false
|
3 |
-
version = 3.7.7
|
|
|
|
|
|
|
|
requirements.txt
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
beautifulsoup4==4.9.1
|
2 |
-
requests==2.23.0
|
|
|
|
|
|
requirements_dev.txt
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
bump2version
|
2 |
-
wheel
|
3 |
-
flake8
|
4 |
-
tox
|
5 |
-
coverage
|
6 |
-
Sphinx
|
7 |
-
twine
|
8 |
-
pytest
|
9 |
-
pytest-runner
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setup.cfg
DELETED
@@ -1,87 +0,0 @@
|
|
1 |
-
#main config
|
2 |
-
[metadata]
|
3 |
-
name = deep-translator
|
4 |
-
version = 1.5.0
|
5 |
-
url = https://github.com/nidhaloff/deep_translator
|
6 |
-
author = Nidhal Baccouri
|
7 |
-
author_email = [email protected]
|
8 |
-
maintainer = Nidhal Baccouri
|
9 |
-
maintainer_email = [email protected]
|
10 |
-
classifiers =
|
11 |
-
Development Status :: 5 - Production/Stable
|
12 |
-
Intended Audience :: Developers
|
13 |
-
Intended Audience :: Education
|
14 |
-
Intended Audience :: Information Technology
|
15 |
-
License :: OSI Approved :: MIT License
|
16 |
-
Topic :: Education
|
17 |
-
Topic :: Software Development
|
18 |
-
Topic :: Communications
|
19 |
-
Topic :: Text Processing
|
20 |
-
Topic :: Text Processing :: Linguistic
|
21 |
-
Operating System :: OS Independent
|
22 |
-
Programming Language :: Python :: 3
|
23 |
-
Programming Language :: Python :: 3.5
|
24 |
-
Programming Language :: Python :: 3.6
|
25 |
-
Programming Language :: Python :: 3.7
|
26 |
-
Programming Language :: Python :: 3.8
|
27 |
-
license = MIT
|
28 |
-
license_files = file:LICENSE
|
29 |
-
description = A flexible python tool to translate between different languages in a simple way.
|
30 |
-
long_description = file:README.rst
|
31 |
-
long_description_content_type = text/x-rst
|
32 |
-
keywords = deep_translator, deepL, DeepL, translator, translation, automation,
|
33 |
-
web scraping, google translator, google translation, google trans, PONS,
|
34 |
-
YANDEX, MyMemory translator, Linguee, QCRI, Language, Language detection,
|
35 |
-
detect language, free translation, unlimited translation, translate for free
|
36 |
-
|
37 |
-
[build_sphinx]
|
38 |
-
version = 1.5.0
|
39 |
-
release = 1.5.0
|
40 |
-
|
41 |
-
# TODO: These can be switched back on if the CI platform changes from Travis. Travis still requires setup.py to function properly.
|
42 |
-
# [options]
|
43 |
-
# zip_safe = 0
|
44 |
-
# setup_requires = pytest-runner
|
45 |
-
# install_requires = requests; beautifulsoup4; click
|
46 |
-
# python_requires = >=3.0
|
47 |
-
# tests_require = pytest>=3
|
48 |
-
# include_package_data = 1
|
49 |
-
# packages = find:
|
50 |
-
# package_dir = =deep_translator
|
51 |
-
|
52 |
-
# [options.entry_points]
|
53 |
-
# console_scripts = deep-translator = deep_translator.__main__:deep_translator
|
54 |
-
# dt = deep_translator.__main__:deep_translator
|
55 |
-
|
56 |
-
# [options.packages.find]
|
57 |
-
# where = deep_translator
|
58 |
-
|
59 |
-
# TODO: This can be removed once Sphinx confirms it reads the version tags from here. The tags might be simplified by referencing metadata.version
|
60 |
-
# bumpversion config
|
61 |
-
# [bumpversion]
|
62 |
-
# current_version = 1.4.4
|
63 |
-
# commit = True
|
64 |
-
# tag = True
|
65 |
-
|
66 |
-
# [bumpversion:file:setup.py]
|
67 |
-
# search = version='{current_version}'
|
68 |
-
# replace = version='{new_version}'
|
69 |
-
|
70 |
-
# [bumpversion:file:deep_translator/__init__.py]
|
71 |
-
# search = __version__ = '{current_version}'
|
72 |
-
# replace = __version__ = '{new_version}'
|
73 |
-
|
74 |
-
|
75 |
-
# TODO: These are all optional settings, turned on for now since they exist already.
|
76 |
-
[bdist_wheel]
|
77 |
-
universal = 1
|
78 |
-
|
79 |
-
[flake8]
|
80 |
-
exclude = docs
|
81 |
-
|
82 |
-
[aliases]
|
83 |
-
# Define setup.py command aliases here
|
84 |
-
test = pytest
|
85 |
-
|
86 |
-
[tool:pytest]
|
87 |
-
collect_ignore = [setup.py]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setup.py
DELETED
@@ -1,17 +0,0 @@
|
|
1 |
-
# #!/usr/bin/env python
|
2 |
-
"""The setup script."""
|
3 |
-
from setuptools import setup, find_packages
|
4 |
-
|
5 |
-
setup(
|
6 |
-
zip_safe=False,
|
7 |
-
setup_requires=['pytest-runner',],
|
8 |
-
install_requires=['requests','beautifulsoup4','click'],
|
9 |
-
python_requires='>=3',
|
10 |
-
tests_require=['pytest>=3',],
|
11 |
-
include_package_data=True,
|
12 |
-
packages=find_packages(include=['deep_translator'],),
|
13 |
-
entry_points={'console_scripts':[
|
14 |
-
'deep-translator=deep_translator.main:cli',
|
15 |
-
'dt=deep_translator.main:cli',
|
16 |
-
],},
|
17 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tox.ini
DELETED
@@ -1,28 +0,0 @@
|
|
1 |
-
[tox]
|
2 |
-
envlist = py37, py38, flake8
|
3 |
-
|
4 |
-
[travis]
|
5 |
-
python =
|
6 |
-
3.8: py38
|
7 |
-
3.7: py37
|
8 |
-
#3.5: py35
|
9 |
-
#3.4: py34
|
10 |
-
|
11 |
-
|
12 |
-
[testenv:flake8]
|
13 |
-
basepython = python
|
14 |
-
deps = flake8
|
15 |
-
commands = flake8 deep_translator tests
|
16 |
-
|
17 |
-
[testenv]
|
18 |
-
setenv =
|
19 |
-
PYTHONPATH = {toxinidir}
|
20 |
-
deps =
|
21 |
-
-r{toxinidir}/requirements_dev.txt
|
22 |
-
; If you want to make tox run the tests with the same versions, create a
|
23 |
-
; requirements.txt with the pinned versions and uncomment the following line:
|
24 |
-
; -r{toxinidir}/requirements.txt
|
25 |
-
commands =
|
26 |
-
pip install -U pip
|
27 |
-
pytest --basetemp={envtmpdir}
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|