├── docs ├── index.rst ├── _templates │ └── sidebardonations.html └── conf.py ├── tests └── __init__.py ├── .dcignore ├── lgtm.yml ├── jumpstarter └── __init__.py ├── .github ├── FUNDING.yml └── workflows │ └── unit-test.yml ├── .readthedocs.yml ├── .restyled.yaml ├── pyproject.toml ├── noxfile.py ├── LICENSE ├── README.rst ├── .gitignore └── poetry.lock /docs/index.rst: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.dcignore: -------------------------------------------------------------------------------- 1 | noxfile.py -------------------------------------------------------------------------------- /lgtm.yml: -------------------------------------------------------------------------------- 1 | queries: 2 | - exclude: ./noxfile.py -------------------------------------------------------------------------------- /jumpstarter/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "0.1.0" 2 | VERSION = (0, 1, 0) -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | open_collective: celery 2 | tidelift: "pypi/celery" 3 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | python: 4 | install: 5 | - method: pip 6 | path: . 7 | extra_requirements: 8 | - readthedocs -------------------------------------------------------------------------------- /.restyled.yaml: -------------------------------------------------------------------------------- 1 | enabled: true 2 | auto: true 3 | commit_template: | 4 | Fixed formatting (${restyler.name}) 5 | statuses: true 6 | request_review: 7 | origin: author 8 | forked: owner 9 | restylers: 10 | - name: whitespace 11 | - name: isort 12 | - name: black -------------------------------------------------------------------------------- /docs/_templates/sidebardonations.html: -------------------------------------------------------------------------------- 1 | 3 |

4 | -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- 1 | from sphinx_celery import conf 2 | 3 | globals().update(conf.build_config( 4 | 'jumpstarter', __file__, 5 | project='jumpstarter', 6 | version_dev='0.2', 7 | version_stable='0.1', 8 | canonical_url='http://docs.celeryproject.org', 9 | webdomain='celeryproject.org', 10 | github_project='celery/jumpstarter', 11 | author='Omer Katz & contributors', 12 | author_name='Omer Katz', 13 | copyright='2021', 14 | publisher='Celery Project', 15 | html_prepend_sidebars=['sidebardonations.html'], 16 | )) 17 | -------------------------------------------------------------------------------- /.github/workflows/unit-test.yml: -------------------------------------------------------------------------------- 1 | name: Unit Test 2 | on: [push] 3 | jobs: 4 | build: 5 | runs-on: ubuntu-latest 6 | strategy: 7 | matrix: 8 | python-version: [ 3.7, 3.8, 3.9 ] 9 | steps: 10 | - uses: actions/checkout@v2 11 | - name: Set up Python ${{ matrix.python-version }} 12 | uses: actions/setup-python@v2 13 | with: 14 | python-version: ${{ matrix.python-version }} 15 | - name: Install CI dependencies 16 | run: pip install poetry nox nox-poetry 17 | - name: Run unit tests 18 | run: nox -s test-${{ matrix.python-version }} -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["poetry-core>=1.0.0"] 3 | build-backend = "poetry.core.masonry.api" 4 | 5 | [tool.poetry] 6 | name = "jumpstarter" 7 | version = "0.1.0" 8 | description = "" 9 | authors = ["Omer Katz "] 10 | 11 | [tool.poetry.dependencies] 12 | python = "^3.7.0" 13 | transitions-anyio = "^0.1.0" 14 | sphinx-celery = {version = "^2.0.0", optional = true} 15 | 16 | [tool.poetry.dev-dependencies] 17 | pytest = "^6.0" 18 | pytest-subtests = "^0.3" 19 | pytest-randomly = "^3.4" 20 | trio = "^0.17" 21 | curio = "^1.4" 22 | black = "^20.8b1" 23 | 24 | [tool.poetry.extras] 25 | readthedocs = ["sphinx-celery"] 26 | -------------------------------------------------------------------------------- /noxfile.py: -------------------------------------------------------------------------------- 1 | import nox 2 | import nox_poetry.patch 3 | from nox.sessions import Session 4 | 5 | 6 | @nox.session 7 | def build_docs(session: Session): 8 | session.install(".") 9 | session.run("poetry", "install", external=True) 10 | session.run("sphinx-build", "-b", "html", "-j", "auto", "docs/", "docs/_build/_html") 11 | 12 | 13 | @nox.session(python=("3.7", "3.8", "3.9")) 14 | def test(session: Session) -> None: 15 | """Run the test suite.""" 16 | session.install(".") 17 | session.install("pytest") 18 | session.run("pytest") 19 | 20 | 21 | @nox.session 22 | def format(session: Session) -> None: 23 | session.install("black", "isort") 24 | session.run("black", "jumpstarter/", "tests/") 25 | session.run("isort", "jumpstarter/", "tests/") 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Omer Katz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | =========== 2 | Jumpstarter 3 | =========== 4 | 5 | |build-status| |documentation| |coverage| |license| |wheel| |pyversion| |pyimp| |ocbackerbadge| |ocsponsorbadge| 6 | 7 | .. |build-status| image:: https://github.com/celery/jumpstarter/workflows/Unit%20Test/badge.svg 8 | :alt: Unit Test Status 9 | :target: https://github.com/celery/jumpstarter/actions?query=workflow%3A%22Unit+Test%22+branch%3Amain 10 | 11 | .. |documentation| image:: https://readthedocs.org/projects/jumpstarter/badge/?version=latest 12 | :target: https://jumpstarter.readthedocs.io/en/latest/?badge=latest 13 | :alt: Documentation Status 14 | 15 | .. |coverage| image:: https://codecov.io/github/celery/jumpstarter/coverage.svg?branch=main 16 | :target: https://codecov.io/github/celery/jumpstarter?branch=main 17 | 18 | .. |license| image:: https://img.shields.io/pypi/l/jumpstarter.svg 19 | :alt: BSD License 20 | :target: https://opensource.org/licenses/BSD-3-Clause 21 | 22 | .. |wheel| image:: https://img.shields.io/pypi/wheel/jumpstarter.svg 23 | :alt: Celery can be installed via wheel 24 | :target: https://pypi.org/project/celery/ 25 | 26 | .. |pyversion| image:: https://img.shields.io/pypi/pyversions/jumpstarter.svg 27 | :alt: Supported Python versions. 28 | :target: https://pypi.org/project/celery/ 29 | 30 | .. |pyimp| image:: https://img.shields.io/pypi/implementation/jumpstarter.svg 31 | :alt: Supported Python implementations. 32 | :target: https://pypi.org/project/celery/ 33 | 34 | .. |ocbackerbadge| image:: https://opencollective.com/celery/backers/badge.svg 35 | :alt: Backers on Open Collective 36 | :target: #backers 37 | 38 | .. |ocsponsorbadge| image:: https://opencollective.com/celery/sponsors/badge.svg 39 | :alt: Sponsors on Open Collective 40 | :target: #sponsors 41 | 42 | .. |downloads| image:: https://pepy.tech/badge/jumpstarter 43 | :alt: Downloads 44 | :target: https://pepy.tech/project/celery -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Python template 3 | # Byte-compiled / optimized / DLL files 4 | __pycache__/ 5 | *.py[cod] 6 | *$py.class 7 | 8 | # C extensions 9 | *.so 10 | 11 | # Distribution / packaging 12 | .Python 13 | build/ 14 | develop-eggs/ 15 | dist/ 16 | downloads/ 17 | eggs/ 18 | .eggs/ 19 | lib/ 20 | lib64/ 21 | parts/ 22 | sdist/ 23 | var/ 24 | wheels/ 25 | share/python-wheels/ 26 | *.egg-info/ 27 | .installed.cfg 28 | *.egg 29 | MANIFEST 30 | 31 | # PyInstaller 32 | # Usually these files are written by a python script from a template 33 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 34 | *.manifest 35 | *.spec 36 | 37 | # Installer logs 38 | pip-log.txt 39 | pip-delete-this-directory.txt 40 | 41 | # Unit test / coverage reports 42 | htmlcov/ 43 | .tox/ 44 | .nox/ 45 | .coverage 46 | .coverage.* 47 | .cache 48 | nosetests.xml 49 | coverage.xml 50 | *.cover 51 | *.py,cover 52 | .hypothesis/ 53 | .pytest_cache/ 54 | cover/ 55 | 56 | # Translations 57 | *.mo 58 | *.pot 59 | 60 | # Django stuff: 61 | *.log 62 | local_settings.py 63 | db.sqlite3 64 | db.sqlite3-journal 65 | 66 | # Flask stuff: 67 | instance/ 68 | .webassets-cache 69 | 70 | # Scrapy stuff: 71 | .scrapy 72 | 73 | # Sphinx documentation 74 | docs/_build/ 75 | 76 | # PyBuilder 77 | .pybuilder/ 78 | target/ 79 | 80 | # Jupyter Notebook 81 | .ipynb_checkpoints 82 | 83 | # IPython 84 | profile_default/ 85 | ipython_config.py 86 | 87 | # pyenv 88 | # For a library or package, you might want to ignore these files since the code is 89 | # intended to run in multiple environments; otherwise, check them in: 90 | # .python-version 91 | 92 | # pipenv 93 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 94 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 95 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 96 | # install all needed dependencies. 97 | #Pipfile.lock 98 | 99 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 100 | __pypackages__/ 101 | 102 | # Celery stuff 103 | celerybeat-schedule 104 | celerybeat.pid 105 | 106 | # SageMath parsed files 107 | *.sage.py 108 | 109 | # Environments 110 | .env 111 | .venv 112 | env/ 113 | venv/ 114 | ENV/ 115 | env.bak/ 116 | venv.bak/ 117 | 118 | # Spyder project settings 119 | .spyderproject 120 | .spyproject 121 | 122 | # Rope project settings 123 | .ropeproject 124 | 125 | # mkdocs documentation 126 | /site 127 | 128 | # mypy 129 | .mypy_cache/ 130 | .dmypy.json 131 | dmypy.json 132 | 133 | # Pyre type checker 134 | .pyre/ 135 | 136 | # pytype static type analyzer 137 | .pytype/ 138 | 139 | # Cython debug symbols 140 | cython_debug/ 141 | 142 | .idea/ -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "alabaster" 3 | version = "0.7.12" 4 | description = "A configurable sidebar-enabled Sphinx theme" 5 | category = "main" 6 | optional = true 7 | python-versions = "*" 8 | 9 | [[package]] 10 | name = "anyio" 11 | version = "2.2.0" 12 | description = "High level compatibility layer for multiple asynchronous event loop implementations" 13 | category = "main" 14 | optional = false 15 | python-versions = ">=3.6.2" 16 | 17 | [package.dependencies] 18 | idna = ">=2.8" 19 | sniffio = ">=1.1" 20 | typing-extensions = {version = "*", markers = "python_version < \"3.8\""} 21 | 22 | [package.extras] 23 | curio = ["curio (>=1.4)"] 24 | doc = ["sphinx-rtd-theme", "sphinx-autodoc-typehints (>=1.2.0)"] 25 | test = ["coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "pytest (>=6.0)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] 26 | trio = ["trio (>=0.16)"] 27 | 28 | [[package]] 29 | name = "appdirs" 30 | version = "1.4.4" 31 | description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." 32 | category = "dev" 33 | optional = false 34 | python-versions = "*" 35 | 36 | [[package]] 37 | name = "async-generator" 38 | version = "1.10" 39 | description = "Async generators and context managers for Python 3.5+" 40 | category = "dev" 41 | optional = false 42 | python-versions = ">=3.5" 43 | 44 | [[package]] 45 | name = "atomicwrites" 46 | version = "1.4.0" 47 | description = "Atomic file writes." 48 | category = "dev" 49 | optional = false 50 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 51 | 52 | [[package]] 53 | name = "attrs" 54 | version = "20.3.0" 55 | description = "Classes Without Boilerplate" 56 | category = "dev" 57 | optional = false 58 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 59 | 60 | [package.extras] 61 | dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"] 62 | docs = ["furo", "sphinx", "zope.interface"] 63 | tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] 64 | tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"] 65 | 66 | [[package]] 67 | name = "babel" 68 | version = "2.9.0" 69 | description = "Internationalization utilities" 70 | category = "main" 71 | optional = true 72 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 73 | 74 | [package.dependencies] 75 | pytz = ">=2015.7" 76 | 77 | [[package]] 78 | name = "black" 79 | version = "20.8b1" 80 | description = "The uncompromising code formatter." 81 | category = "dev" 82 | optional = false 83 | python-versions = ">=3.6" 84 | 85 | [package.dependencies] 86 | appdirs = "*" 87 | click = ">=7.1.2" 88 | mypy-extensions = ">=0.4.3" 89 | pathspec = ">=0.6,<1" 90 | regex = ">=2020.1.8" 91 | toml = ">=0.10.1" 92 | typed-ast = ">=1.4.0" 93 | typing-extensions = ">=3.7.4" 94 | 95 | [package.extras] 96 | colorama = ["colorama (>=0.4.3)"] 97 | d = ["aiohttp (>=3.3.2)", "aiohttp-cors"] 98 | 99 | [[package]] 100 | name = "cffi" 101 | version = "1.14.5" 102 | description = "Foreign Function Interface for Python calling C code." 103 | category = "dev" 104 | optional = false 105 | python-versions = "*" 106 | 107 | [package.dependencies] 108 | pycparser = "*" 109 | 110 | [[package]] 111 | name = "click" 112 | version = "7.1.2" 113 | description = "Composable command line interface toolkit" 114 | category = "dev" 115 | optional = false 116 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 117 | 118 | [[package]] 119 | name = "colorama" 120 | version = "0.4.4" 121 | description = "Cross-platform colored terminal text." 122 | category = "main" 123 | optional = false 124 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 125 | 126 | [[package]] 127 | name = "curio" 128 | version = "1.5" 129 | description = "Curio" 130 | category = "dev" 131 | optional = false 132 | python-versions = ">= 3.7" 133 | 134 | [package.extras] 135 | test = ["pytest", "sphinx"] 136 | 137 | [[package]] 138 | name = "docutils" 139 | version = "0.16" 140 | description = "Docutils -- Python Documentation Utilities" 141 | category = "main" 142 | optional = true 143 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 144 | 145 | [[package]] 146 | name = "idna" 147 | version = "3.1" 148 | description = "Internationalized Domain Names in Applications (IDNA)" 149 | category = "main" 150 | optional = false 151 | python-versions = ">=3.4" 152 | 153 | [[package]] 154 | name = "imagesize" 155 | version = "1.2.0" 156 | description = "Getting image size from png/jpeg/jpeg2000/gif file" 157 | category = "main" 158 | optional = true 159 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 160 | 161 | [[package]] 162 | name = "importlib-metadata" 163 | version = "3.7.2" 164 | description = "Read metadata from Python packages" 165 | category = "dev" 166 | optional = false 167 | python-versions = ">=3.6" 168 | 169 | [package.dependencies] 170 | typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} 171 | zipp = ">=0.5" 172 | 173 | [package.extras] 174 | docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] 175 | testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] 176 | 177 | [[package]] 178 | name = "iniconfig" 179 | version = "1.1.1" 180 | description = "iniconfig: brain-dead simple config-ini parsing" 181 | category = "dev" 182 | optional = false 183 | python-versions = "*" 184 | 185 | [[package]] 186 | name = "jinja2" 187 | version = "2.11.3" 188 | description = "A very fast and expressive template engine." 189 | category = "main" 190 | optional = true 191 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 192 | 193 | [package.dependencies] 194 | MarkupSafe = ">=0.23" 195 | 196 | [package.extras] 197 | i18n = ["Babel (>=0.8)"] 198 | 199 | [[package]] 200 | name = "markupsafe" 201 | version = "1.1.1" 202 | description = "Safely add untrusted strings to HTML/XML markup." 203 | category = "main" 204 | optional = true 205 | python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" 206 | 207 | [[package]] 208 | name = "mypy-extensions" 209 | version = "0.4.3" 210 | description = "Experimental type system extensions for programs checked with the mypy typechecker." 211 | category = "dev" 212 | optional = false 213 | python-versions = "*" 214 | 215 | [[package]] 216 | name = "outcome" 217 | version = "1.1.0" 218 | description = "Capture the outcome of Python function calls." 219 | category = "dev" 220 | optional = false 221 | python-versions = ">=3.6" 222 | 223 | [package.dependencies] 224 | attrs = ">=19.2.0" 225 | 226 | [[package]] 227 | name = "packaging" 228 | version = "20.9" 229 | description = "Core utilities for Python packages" 230 | category = "main" 231 | optional = false 232 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 233 | 234 | [package.dependencies] 235 | pyparsing = ">=2.0.2" 236 | 237 | [[package]] 238 | name = "pathspec" 239 | version = "0.8.1" 240 | description = "Utility library for gitignore style pattern matching of file paths." 241 | category = "dev" 242 | optional = false 243 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 244 | 245 | [[package]] 246 | name = "pluggy" 247 | version = "0.13.1" 248 | description = "plugin and hook calling mechanisms for python" 249 | category = "dev" 250 | optional = false 251 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 252 | 253 | [package.dependencies] 254 | importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} 255 | 256 | [package.extras] 257 | dev = ["pre-commit", "tox"] 258 | 259 | [[package]] 260 | name = "py" 261 | version = "1.10.0" 262 | description = "library with cross-python path, ini-parsing, io, code, log facilities" 263 | category = "dev" 264 | optional = false 265 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 266 | 267 | [[package]] 268 | name = "pycparser" 269 | version = "2.20" 270 | description = "C parser in Python" 271 | category = "dev" 272 | optional = false 273 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 274 | 275 | [[package]] 276 | name = "pygments" 277 | version = "2.8.1" 278 | description = "Pygments is a syntax highlighting package written in Python." 279 | category = "main" 280 | optional = true 281 | python-versions = ">=3.5" 282 | 283 | [[package]] 284 | name = "pyparsing" 285 | version = "2.4.7" 286 | description = "Python parsing module" 287 | category = "main" 288 | optional = false 289 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" 290 | 291 | [[package]] 292 | name = "pytest" 293 | version = "6.2.2" 294 | description = "pytest: simple powerful testing with Python" 295 | category = "dev" 296 | optional = false 297 | python-versions = ">=3.6" 298 | 299 | [package.dependencies] 300 | atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} 301 | attrs = ">=19.2.0" 302 | colorama = {version = "*", markers = "sys_platform == \"win32\""} 303 | importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} 304 | iniconfig = "*" 305 | packaging = "*" 306 | pluggy = ">=0.12,<1.0.0a1" 307 | py = ">=1.8.2" 308 | toml = "*" 309 | 310 | [package.extras] 311 | testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] 312 | 313 | [[package]] 314 | name = "pytest-randomly" 315 | version = "3.5.0" 316 | description = "Pytest plugin to randomly order tests and control random.seed." 317 | category = "dev" 318 | optional = false 319 | python-versions = ">=3.5" 320 | 321 | [package.dependencies] 322 | importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} 323 | pytest = "*" 324 | 325 | [[package]] 326 | name = "pytest-subtests" 327 | version = "0.3.2" 328 | description = "unittest subTest() support and subtests fixture" 329 | category = "dev" 330 | optional = false 331 | python-versions = ">=3.5" 332 | 333 | [package.dependencies] 334 | pytest = ">=4.4.0" 335 | 336 | [[package]] 337 | name = "pytz" 338 | version = "2021.1" 339 | description = "World timezone definitions, modern and historical" 340 | category = "main" 341 | optional = true 342 | python-versions = "*" 343 | 344 | [[package]] 345 | name = "regex" 346 | version = "2020.11.13" 347 | description = "Alternative regular expression module, to replace re." 348 | category = "dev" 349 | optional = false 350 | python-versions = "*" 351 | 352 | [[package]] 353 | name = "requests" 354 | version = "2.15.1" 355 | description = "Python HTTP for Humans." 356 | category = "main" 357 | optional = true 358 | python-versions = "*" 359 | 360 | [package.extras] 361 | security = ["cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)"] 362 | socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] 363 | 364 | [[package]] 365 | name = "six" 366 | version = "1.15.0" 367 | description = "Python 2 and 3 compatibility utilities" 368 | category = "main" 369 | optional = false 370 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" 371 | 372 | [[package]] 373 | name = "sniffio" 374 | version = "1.2.0" 375 | description = "Sniff out which async library your code is running under" 376 | category = "main" 377 | optional = false 378 | python-versions = ">=3.5" 379 | 380 | [[package]] 381 | name = "snowballstemmer" 382 | version = "2.1.0" 383 | description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." 384 | category = "main" 385 | optional = true 386 | python-versions = "*" 387 | 388 | [[package]] 389 | name = "sortedcontainers" 390 | version = "2.3.0" 391 | description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" 392 | category = "dev" 393 | optional = false 394 | python-versions = "*" 395 | 396 | [[package]] 397 | name = "sphinx" 398 | version = "3.5.2" 399 | description = "Python documentation generator" 400 | category = "main" 401 | optional = true 402 | python-versions = ">=3.5" 403 | 404 | [package.dependencies] 405 | alabaster = ">=0.7,<0.8" 406 | babel = ">=1.3" 407 | colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} 408 | docutils = ">=0.12" 409 | imagesize = "*" 410 | Jinja2 = ">=2.3" 411 | packaging = "*" 412 | Pygments = ">=2.0" 413 | requests = ">=2.5.0" 414 | snowballstemmer = ">=1.1" 415 | sphinxcontrib-applehelp = "*" 416 | sphinxcontrib-devhelp = "*" 417 | sphinxcontrib-htmlhelp = "*" 418 | sphinxcontrib-jsmath = "*" 419 | sphinxcontrib-qthelp = "*" 420 | sphinxcontrib-serializinghtml = "*" 421 | 422 | [package.extras] 423 | docs = ["sphinxcontrib-websupport"] 424 | lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.800)", "docutils-stubs"] 425 | test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"] 426 | 427 | [[package]] 428 | name = "sphinx-celery" 429 | version = "2.0.0" 430 | description = "Sphinx Celery Theme." 431 | category = "main" 432 | optional = true 433 | python-versions = "*" 434 | 435 | [package.dependencies] 436 | Sphinx = ">=2.0.0" 437 | 438 | [[package]] 439 | name = "sphinxcontrib-applehelp" 440 | version = "1.0.2" 441 | description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" 442 | category = "main" 443 | optional = true 444 | python-versions = ">=3.5" 445 | 446 | [package.extras] 447 | lint = ["flake8", "mypy", "docutils-stubs"] 448 | test = ["pytest"] 449 | 450 | [[package]] 451 | name = "sphinxcontrib-devhelp" 452 | version = "1.0.2" 453 | description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." 454 | category = "main" 455 | optional = true 456 | python-versions = ">=3.5" 457 | 458 | [package.extras] 459 | lint = ["flake8", "mypy", "docutils-stubs"] 460 | test = ["pytest"] 461 | 462 | [[package]] 463 | name = "sphinxcontrib-htmlhelp" 464 | version = "1.0.3" 465 | description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" 466 | category = "main" 467 | optional = true 468 | python-versions = ">=3.5" 469 | 470 | [package.extras] 471 | lint = ["flake8", "mypy", "docutils-stubs"] 472 | test = ["pytest", "html5lib"] 473 | 474 | [[package]] 475 | name = "sphinxcontrib-jsmath" 476 | version = "1.0.1" 477 | description = "A sphinx extension which renders display math in HTML via JavaScript" 478 | category = "main" 479 | optional = true 480 | python-versions = ">=3.5" 481 | 482 | [package.extras] 483 | test = ["pytest", "flake8", "mypy"] 484 | 485 | [[package]] 486 | name = "sphinxcontrib-qthelp" 487 | version = "1.0.3" 488 | description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." 489 | category = "main" 490 | optional = true 491 | python-versions = ">=3.5" 492 | 493 | [package.extras] 494 | lint = ["flake8", "mypy", "docutils-stubs"] 495 | test = ["pytest"] 496 | 497 | [[package]] 498 | name = "sphinxcontrib-serializinghtml" 499 | version = "1.1.4" 500 | description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." 501 | category = "main" 502 | optional = true 503 | python-versions = ">=3.5" 504 | 505 | [package.extras] 506 | lint = ["flake8", "mypy", "docutils-stubs"] 507 | test = ["pytest"] 508 | 509 | [[package]] 510 | name = "toml" 511 | version = "0.10.2" 512 | description = "Python Library for Tom's Obvious, Minimal Language" 513 | category = "dev" 514 | optional = false 515 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" 516 | 517 | [[package]] 518 | name = "transitions" 519 | version = "0.8.7" 520 | description = "A lightweight, object-oriented Python state machine implementation with many extensions." 521 | category = "main" 522 | optional = false 523 | python-versions = "*" 524 | 525 | [package.dependencies] 526 | six = "*" 527 | 528 | [package.extras] 529 | diagrams = ["pygraphviz"] 530 | test = ["pytest"] 531 | 532 | [[package]] 533 | name = "transitions-anyio" 534 | version = "0.1.0" 535 | description = "An extension for the transitions state machine library which runs asynchronous state machines using anyio." 536 | category = "main" 537 | optional = false 538 | python-versions = ">=3.6.2,<4.0.0" 539 | 540 | [package.dependencies] 541 | anyio = ">=2.0.2,<3.0.0" 542 | transitions = ">=0.8.6,<0.9.0" 543 | 544 | [[package]] 545 | name = "trio" 546 | version = "0.17.0" 547 | description = "A friendly Python library for async concurrency and I/O" 548 | category = "dev" 549 | optional = false 550 | python-versions = ">=3.6" 551 | 552 | [package.dependencies] 553 | async-generator = ">=1.9" 554 | attrs = ">=19.2.0" 555 | cffi = {version = ">=1.14", markers = "os_name == \"nt\" and implementation_name != \"pypy\""} 556 | idna = "*" 557 | outcome = "*" 558 | sniffio = "*" 559 | sortedcontainers = "*" 560 | 561 | [[package]] 562 | name = "typed-ast" 563 | version = "1.4.2" 564 | description = "a fork of Python 2 and 3 ast modules with type comment support" 565 | category = "dev" 566 | optional = false 567 | python-versions = "*" 568 | 569 | [[package]] 570 | name = "typing-extensions" 571 | version = "3.7.4.3" 572 | description = "Backported and Experimental Type Hints for Python 3.5+" 573 | category = "main" 574 | optional = false 575 | python-versions = "*" 576 | 577 | [[package]] 578 | name = "zipp" 579 | version = "3.4.1" 580 | description = "Backport of pathlib-compatible object wrapper for zip files" 581 | category = "dev" 582 | optional = false 583 | python-versions = ">=3.6" 584 | 585 | [package.extras] 586 | docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] 587 | testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] 588 | 589 | [extras] 590 | readthedocs = ["sphinx-celery"] 591 | 592 | [metadata] 593 | lock-version = "1.1" 594 | python-versions = "^3.7.0" 595 | content-hash = "172cf2517b52191fc4180b411829a6f5964662b0f29f7b426fbed22cff750435" 596 | 597 | [metadata.files] 598 | alabaster = [ 599 | {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, 600 | {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, 601 | ] 602 | anyio = [ 603 | {file = "anyio-2.2.0-py3-none-any.whl", hash = "sha256:aa3da546ed17f097ca876c78024dea380a3b7fa80759abfdda59f12176a3dac8"}, 604 | {file = "anyio-2.2.0.tar.gz", hash = "sha256:4a41c5b3a65ed92e469d51b6fba3779301850ea2e352afcf9e36c46f21ee14a9"}, 605 | ] 606 | appdirs = [ 607 | {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, 608 | {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, 609 | ] 610 | async-generator = [ 611 | {file = "async_generator-1.10-py3-none-any.whl", hash = "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b"}, 612 | {file = "async_generator-1.10.tar.gz", hash = "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144"}, 613 | ] 614 | atomicwrites = [ 615 | {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, 616 | {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, 617 | ] 618 | attrs = [ 619 | {file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"}, 620 | {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"}, 621 | ] 622 | babel = [ 623 | {file = "Babel-2.9.0-py2.py3-none-any.whl", hash = "sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5"}, 624 | {file = "Babel-2.9.0.tar.gz", hash = "sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"}, 625 | ] 626 | black = [ 627 | {file = "black-20.8b1.tar.gz", hash = "sha256:1c02557aa099101b9d21496f8a914e9ed2222ef70336404eeeac8edba836fbea"}, 628 | ] 629 | cffi = [ 630 | {file = "cffi-1.14.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:bb89f306e5da99f4d922728ddcd6f7fcebb3241fc40edebcb7284d7514741991"}, 631 | {file = "cffi-1.14.5-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:34eff4b97f3d982fb93e2831e6750127d1355a923ebaeeb565407b3d2f8d41a1"}, 632 | {file = "cffi-1.14.5-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99cd03ae7988a93dd00bcd9d0b75e1f6c426063d6f03d2f90b89e29b25b82dfa"}, 633 | {file = "cffi-1.14.5-cp27-cp27m-win32.whl", hash = "sha256:65fa59693c62cf06e45ddbb822165394a288edce9e276647f0046e1ec26920f3"}, 634 | {file = "cffi-1.14.5-cp27-cp27m-win_amd64.whl", hash = "sha256:51182f8927c5af975fece87b1b369f722c570fe169f9880764b1ee3bca8347b5"}, 635 | {file = "cffi-1.14.5-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:43e0b9d9e2c9e5d152946b9c5fe062c151614b262fda2e7b201204de0b99e482"}, 636 | {file = "cffi-1.14.5-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:cbde590d4faaa07c72bf979734738f328d239913ba3e043b1e98fe9a39f8b2b6"}, 637 | {file = "cffi-1.14.5-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:5de7970188bb46b7bf9858eb6890aad302577a5f6f75091fd7cdd3ef13ef3045"}, 638 | {file = "cffi-1.14.5-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:a465da611f6fa124963b91bf432d960a555563efe4ed1cc403ba5077b15370aa"}, 639 | {file = "cffi-1.14.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:d42b11d692e11b6634f7613ad8df5d6d5f8875f5d48939520d351007b3c13406"}, 640 | {file = "cffi-1.14.5-cp35-cp35m-win32.whl", hash = "sha256:72d8d3ef52c208ee1c7b2e341f7d71c6fd3157138abf1a95166e6165dd5d4369"}, 641 | {file = "cffi-1.14.5-cp35-cp35m-win_amd64.whl", hash = "sha256:29314480e958fd8aab22e4a58b355b629c59bf5f2ac2492b61e3dc06d8c7a315"}, 642 | {file = "cffi-1.14.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:3d3dd4c9e559eb172ecf00a2a7517e97d1e96de2a5e610bd9b68cea3925b4892"}, 643 | {file = "cffi-1.14.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:48e1c69bbacfc3d932221851b39d49e81567a4d4aac3b21258d9c24578280058"}, 644 | {file = "cffi-1.14.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:69e395c24fc60aad6bb4fa7e583698ea6cc684648e1ffb7fe85e3c1ca131a7d5"}, 645 | {file = "cffi-1.14.5-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:9e93e79c2551ff263400e1e4be085a1210e12073a31c2011dbbda14bda0c6132"}, 646 | {file = "cffi-1.14.5-cp36-cp36m-win32.whl", hash = "sha256:58e3f59d583d413809d60779492342801d6e82fefb89c86a38e040c16883be53"}, 647 | {file = "cffi-1.14.5-cp36-cp36m-win_amd64.whl", hash = "sha256:005a36f41773e148deac64b08f233873a4d0c18b053d37da83f6af4d9087b813"}, 648 | {file = "cffi-1.14.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2894f2df484ff56d717bead0a5c2abb6b9d2bf26d6960c4604d5c48bbc30ee73"}, 649 | {file = "cffi-1.14.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:0857f0ae312d855239a55c81ef453ee8fd24136eaba8e87a2eceba644c0d4c06"}, 650 | {file = "cffi-1.14.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:cd2868886d547469123fadc46eac7ea5253ea7fcb139f12e1dfc2bbd406427d1"}, 651 | {file = "cffi-1.14.5-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:35f27e6eb43380fa080dccf676dece30bef72e4a67617ffda586641cd4508d49"}, 652 | {file = "cffi-1.14.5-cp37-cp37m-win32.whl", hash = "sha256:9ff227395193126d82e60319a673a037d5de84633f11279e336f9c0f189ecc62"}, 653 | {file = "cffi-1.14.5-cp37-cp37m-win_amd64.whl", hash = "sha256:9cf8022fb8d07a97c178b02327b284521c7708d7c71a9c9c355c178ac4bbd3d4"}, 654 | {file = "cffi-1.14.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8b198cec6c72df5289c05b05b8b0969819783f9418e0409865dac47288d2a053"}, 655 | {file = "cffi-1.14.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:ad17025d226ee5beec591b52800c11680fca3df50b8b29fe51d882576e039ee0"}, 656 | {file = "cffi-1.14.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6c97d7350133666fbb5cf4abdc1178c812cb205dc6f41d174a7b0f18fb93337e"}, 657 | {file = "cffi-1.14.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8ae6299f6c68de06f136f1f9e69458eae58f1dacf10af5c17353eae03aa0d827"}, 658 | {file = "cffi-1.14.5-cp38-cp38-win32.whl", hash = "sha256:b85eb46a81787c50650f2392b9b4ef23e1f126313b9e0e9013b35c15e4288e2e"}, 659 | {file = "cffi-1.14.5-cp38-cp38-win_amd64.whl", hash = "sha256:1f436816fc868b098b0d63b8920de7d208c90a67212546d02f84fe78a9c26396"}, 660 | {file = "cffi-1.14.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1071534bbbf8cbb31b498d5d9db0f274f2f7a865adca4ae429e147ba40f73dea"}, 661 | {file = "cffi-1.14.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:9de2e279153a443c656f2defd67769e6d1e4163952b3c622dcea5b08a6405322"}, 662 | {file = "cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:6e4714cc64f474e4d6e37cfff31a814b509a35cb17de4fb1999907575684479c"}, 663 | {file = "cffi-1.14.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:158d0d15119b4b7ff6b926536763dc0714313aa59e320ddf787502c70c4d4bee"}, 664 | {file = "cffi-1.14.5-cp39-cp39-win32.whl", hash = "sha256:afb29c1ba2e5a3736f1c301d9d0abe3ec8b86957d04ddfa9d7a6a42b9367e396"}, 665 | {file = "cffi-1.14.5-cp39-cp39-win_amd64.whl", hash = "sha256:f2d45f97ab6bb54753eab54fffe75aaf3de4ff2341c9daee1987ee1837636f1d"}, 666 | {file = "cffi-1.14.5.tar.gz", hash = "sha256:fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c"}, 667 | ] 668 | click = [ 669 | {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, 670 | {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"}, 671 | ] 672 | colorama = [ 673 | {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, 674 | ] 675 | curio = [ 676 | {file = "curio-1.5.tar.gz", hash = "sha256:af08212e590bb7da8e4cc39c42012711494dc20d622f162155ba296cc2e3bc10"}, 677 | ] 678 | docutils = [ 679 | {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"}, 680 | {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"}, 681 | ] 682 | idna = [ 683 | {file = "idna-3.1-py3-none-any.whl", hash = "sha256:5205d03e7bcbb919cc9c19885f9920d622ca52448306f2377daede5cf3faac16"}, 684 | {file = "idna-3.1.tar.gz", hash = "sha256:c5b02147e01ea9920e6b0a3f1f7bb833612d507592c837a6c49552768f4054e1"}, 685 | ] 686 | imagesize = [ 687 | {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"}, 688 | {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"}, 689 | ] 690 | importlib-metadata = [ 691 | {file = "importlib_metadata-3.7.2-py3-none-any.whl", hash = "sha256:407d13f55dc6f2a844e62325d18ad7019a436c4bfcaee34cda35f2be6e7c3e34"}, 692 | {file = "importlib_metadata-3.7.2.tar.gz", hash = "sha256:18d5ff601069f98d5d605b6a4b50c18a34811d655c55548adc833e687289acde"}, 693 | ] 694 | iniconfig = [ 695 | {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, 696 | {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, 697 | ] 698 | jinja2 = [ 699 | {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"}, 700 | {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"}, 701 | ] 702 | markupsafe = [ 703 | {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, 704 | {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, 705 | {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"}, 706 | {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"}, 707 | {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"}, 708 | {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"}, 709 | {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"}, 710 | {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"}, 711 | {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"}, 712 | {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"}, 713 | {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"}, 714 | {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"}, 715 | {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"}, 716 | {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"}, 717 | {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"}, 718 | {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"}, 719 | {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"}, 720 | {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"}, 721 | {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"}, 722 | {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"}, 723 | {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"}, 724 | {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"}, 725 | {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"}, 726 | {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"}, 727 | {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"}, 728 | {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"}, 729 | {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"}, 730 | {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"}, 731 | {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"}, 732 | {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"}, 733 | {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"}, 734 | {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"}, 735 | {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"}, 736 | ] 737 | mypy-extensions = [ 738 | {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, 739 | {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, 740 | ] 741 | outcome = [ 742 | {file = "outcome-1.1.0-py2.py3-none-any.whl", hash = "sha256:c7dd9375cfd3c12db9801d080a3b63d4b0a261aa996c4c13152380587288d958"}, 743 | {file = "outcome-1.1.0.tar.gz", hash = "sha256:e862f01d4e626e63e8f92c38d1f8d5546d3f9cce989263c521b2e7990d186967"}, 744 | ] 745 | packaging = [ 746 | {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, 747 | {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"}, 748 | ] 749 | pathspec = [ 750 | {file = "pathspec-0.8.1-py2.py3-none-any.whl", hash = "sha256:aa0cb481c4041bf52ffa7b0d8fa6cd3e88a2ca4879c533c9153882ee2556790d"}, 751 | {file = "pathspec-0.8.1.tar.gz", hash = "sha256:86379d6b86d75816baba717e64b1a3a3469deb93bb76d613c9ce79edc5cb68fd"}, 752 | ] 753 | pluggy = [ 754 | {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, 755 | {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, 756 | ] 757 | py = [ 758 | {file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"}, 759 | {file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"}, 760 | ] 761 | pycparser = [ 762 | {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, 763 | {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, 764 | ] 765 | pygments = [ 766 | {file = "Pygments-2.8.1-py3-none-any.whl", hash = "sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"}, 767 | {file = "Pygments-2.8.1.tar.gz", hash = "sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94"}, 768 | ] 769 | pyparsing = [ 770 | {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, 771 | {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, 772 | ] 773 | pytest = [ 774 | {file = "pytest-6.2.2-py3-none-any.whl", hash = "sha256:b574b57423e818210672e07ca1fa90aaf194a4f63f3ab909a2c67ebb22913839"}, 775 | {file = "pytest-6.2.2.tar.gz", hash = "sha256:9d1edf9e7d0b84d72ea3dbcdfd22b35fb543a5e8f2a60092dd578936bf63d7f9"}, 776 | ] 777 | pytest-randomly = [ 778 | {file = "pytest-randomly-3.5.0.tar.gz", hash = "sha256:440cec143fd9b0adeb072006c71e0294402a2bc2ccd08079c2341087ba4cf2d1"}, 779 | {file = "pytest_randomly-3.5.0-py3-none-any.whl", hash = "sha256:9db10d160237f3f8ee60cef72e4cb9ea88d2893c9dd5c8aa334b060cdeb67c3a"}, 780 | ] 781 | pytest-subtests = [ 782 | {file = "pytest-subtests-0.3.2.tar.gz", hash = "sha256:677281a196092c06d3da8e6408f0c1362b3f7b180e3c0e9113c7209b6b48afd7"}, 783 | {file = "pytest_subtests-0.3.2-py3-none-any.whl", hash = "sha256:ec2634b303339dc4582912fb7bd669627f2cc20b23fc277f1076b3cc69a9eb9e"}, 784 | ] 785 | pytz = [ 786 | {file = "pytz-2021.1-py2.py3-none-any.whl", hash = "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"}, 787 | {file = "pytz-2021.1.tar.gz", hash = "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da"}, 788 | ] 789 | regex = [ 790 | {file = "regex-2020.11.13-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8b882a78c320478b12ff024e81dc7d43c1462aa4a3341c754ee65d857a521f85"}, 791 | {file = "regex-2020.11.13-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a63f1a07932c9686d2d416fb295ec2c01ab246e89b4d58e5fa468089cab44b70"}, 792 | {file = "regex-2020.11.13-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:6e4b08c6f8daca7d8f07c8d24e4331ae7953333dbd09c648ed6ebd24db5a10ee"}, 793 | {file = "regex-2020.11.13-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:bba349276b126947b014e50ab3316c027cac1495992f10e5682dc677b3dfa0c5"}, 794 | {file = "regex-2020.11.13-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:56e01daca75eae420bce184edd8bb341c8eebb19dd3bce7266332258f9fb9dd7"}, 795 | {file = "regex-2020.11.13-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:6a8ce43923c518c24a2579fda49f093f1397dad5d18346211e46f134fc624e31"}, 796 | {file = "regex-2020.11.13-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:1ab79fcb02b930de09c76d024d279686ec5d532eb814fd0ed1e0051eb8bd2daa"}, 797 | {file = "regex-2020.11.13-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:9801c4c1d9ae6a70aeb2128e5b4b68c45d4f0af0d1535500884d644fa9b768c6"}, 798 | {file = "regex-2020.11.13-cp36-cp36m-win32.whl", hash = "sha256:49cae022fa13f09be91b2c880e58e14b6da5d10639ed45ca69b85faf039f7a4e"}, 799 | {file = "regex-2020.11.13-cp36-cp36m-win_amd64.whl", hash = "sha256:749078d1eb89484db5f34b4012092ad14b327944ee7f1c4f74d6279a6e4d1884"}, 800 | {file = "regex-2020.11.13-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b2f4007bff007c96a173e24dcda236e5e83bde4358a557f9ccf5e014439eae4b"}, 801 | {file = "regex-2020.11.13-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:38c8fd190db64f513fe4e1baa59fed086ae71fa45083b6936b52d34df8f86a88"}, 802 | {file = "regex-2020.11.13-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5862975b45d451b6db51c2e654990c1820523a5b07100fc6903e9c86575202a0"}, 803 | {file = "regex-2020.11.13-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:262c6825b309e6485ec2493ffc7e62a13cf13fb2a8b6d212f72bd53ad34118f1"}, 804 | {file = "regex-2020.11.13-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:bafb01b4688833e099d79e7efd23f99172f501a15c44f21ea2118681473fdba0"}, 805 | {file = "regex-2020.11.13-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:e32f5f3d1b1c663af7f9c4c1e72e6ffe9a78c03a31e149259f531e0fed826512"}, 806 | {file = "regex-2020.11.13-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:3bddc701bdd1efa0d5264d2649588cbfda549b2899dc8d50417e47a82e1387ba"}, 807 | {file = "regex-2020.11.13-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:02951b7dacb123d8ea6da44fe45ddd084aa6777d4b2454fa0da61d569c6fa538"}, 808 | {file = "regex-2020.11.13-cp37-cp37m-win32.whl", hash = "sha256:0d08e71e70c0237883d0bef12cad5145b84c3705e9c6a588b2a9c7080e5af2a4"}, 809 | {file = "regex-2020.11.13-cp37-cp37m-win_amd64.whl", hash = "sha256:1fa7ee9c2a0e30405e21031d07d7ba8617bc590d391adfc2b7f1e8b99f46f444"}, 810 | {file = "regex-2020.11.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:baf378ba6151f6e272824b86a774326f692bc2ef4cc5ce8d5bc76e38c813a55f"}, 811 | {file = "regex-2020.11.13-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e3faaf10a0d1e8e23a9b51d1900b72e1635c2d5b0e1bea1c18022486a8e2e52d"}, 812 | {file = "regex-2020.11.13-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2a11a3e90bd9901d70a5b31d7dd85114755a581a5da3fc996abfefa48aee78af"}, 813 | {file = "regex-2020.11.13-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d1ebb090a426db66dd80df8ca85adc4abfcbad8a7c2e9a5ec7513ede522e0a8f"}, 814 | {file = "regex-2020.11.13-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:b2b1a5ddae3677d89b686e5c625fc5547c6e492bd755b520de5332773a8af06b"}, 815 | {file = "regex-2020.11.13-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:2c99e97d388cd0a8d30f7c514d67887d8021541b875baf09791a3baad48bb4f8"}, 816 | {file = "regex-2020.11.13-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:c084582d4215593f2f1d28b65d2a2f3aceff8342aa85afd7be23a9cad74a0de5"}, 817 | {file = "regex-2020.11.13-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:a3d748383762e56337c39ab35c6ed4deb88df5326f97a38946ddd19028ecce6b"}, 818 | {file = "regex-2020.11.13-cp38-cp38-win32.whl", hash = "sha256:7913bd25f4ab274ba37bc97ad0e21c31004224ccb02765ad984eef43e04acc6c"}, 819 | {file = "regex-2020.11.13-cp38-cp38-win_amd64.whl", hash = "sha256:6c54ce4b5d61a7129bad5c5dc279e222afd00e721bf92f9ef09e4fae28755683"}, 820 | {file = "regex-2020.11.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1862a9d9194fae76a7aaf0150d5f2a8ec1da89e8b55890b1786b8f88a0f619dc"}, 821 | {file = "regex-2020.11.13-cp39-cp39-manylinux1_i686.whl", hash = "sha256:4902e6aa086cbb224241adbc2f06235927d5cdacffb2425c73e6570e8d862364"}, 822 | {file = "regex-2020.11.13-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7a25fcbeae08f96a754b45bdc050e1fb94b95cab046bf56b016c25e9ab127b3e"}, 823 | {file = "regex-2020.11.13-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:d2d8ce12b7c12c87e41123997ebaf1a5767a5be3ec545f64675388970f415e2e"}, 824 | {file = "regex-2020.11.13-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:f7d29a6fc4760300f86ae329e3b6ca28ea9c20823df123a2ea8693e967b29917"}, 825 | {file = "regex-2020.11.13-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:717881211f46de3ab130b58ec0908267961fadc06e44f974466d1887f865bd5b"}, 826 | {file = "regex-2020.11.13-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:3128e30d83f2e70b0bed9b2a34e92707d0877e460b402faca908c6667092ada9"}, 827 | {file = "regex-2020.11.13-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:8f6a2229e8ad946e36815f2a03386bb8353d4bde368fdf8ca5f0cb97264d3b5c"}, 828 | {file = "regex-2020.11.13-cp39-cp39-win32.whl", hash = "sha256:f8f295db00ef5f8bae530fc39af0b40486ca6068733fb860b42115052206466f"}, 829 | {file = "regex-2020.11.13-cp39-cp39-win_amd64.whl", hash = "sha256:a15f64ae3a027b64496a71ab1f722355e570c3fac5ba2801cafce846bf5af01d"}, 830 | {file = "regex-2020.11.13.tar.gz", hash = "sha256:83d6b356e116ca119db8e7c6fc2983289d87b27b3fac238cfe5dca529d884562"}, 831 | ] 832 | requests = [ 833 | {file = "requests-2.15.1-py2.py3-none-any.whl", hash = "sha256:ff753b2196cd18b1bbeddc9dcd5c864056599f7a7d9a4fb5677e723efa2b7fb9"}, 834 | {file = "requests-2.15.1.tar.gz", hash = "sha256:e5659b9315a0610505e050bb7190bf6fa2ccee1ac295f2b760ef9d8a03ebbb2e"}, 835 | ] 836 | six = [ 837 | {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, 838 | {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, 839 | ] 840 | sniffio = [ 841 | {file = "sniffio-1.2.0-py3-none-any.whl", hash = "sha256:471b71698eac1c2112a40ce2752bb2f4a4814c22a54a3eed3676bc0f5ca9f663"}, 842 | {file = "sniffio-1.2.0.tar.gz", hash = "sha256:c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de"}, 843 | ] 844 | snowballstemmer = [ 845 | {file = "snowballstemmer-2.1.0-py2.py3-none-any.whl", hash = "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2"}, 846 | {file = "snowballstemmer-2.1.0.tar.gz", hash = "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"}, 847 | ] 848 | sortedcontainers = [ 849 | {file = "sortedcontainers-2.3.0-py2.py3-none-any.whl", hash = "sha256:37257a32add0a3ee490bb170b599e93095eed89a55da91fa9f48753ea12fd73f"}, 850 | {file = "sortedcontainers-2.3.0.tar.gz", hash = "sha256:59cc937650cf60d677c16775597c89a960658a09cf7c1a668f86e1e4464b10a1"}, 851 | ] 852 | sphinx = [ 853 | {file = "Sphinx-3.5.2-py3-none-any.whl", hash = "sha256:ef64a814576f46ec7de06adf11b433a0d6049be007fefe7fd0d183d28b581fac"}, 854 | {file = "Sphinx-3.5.2.tar.gz", hash = "sha256:672cfcc24b6b69235c97c750cb190a44ecd72696b4452acaf75c2d9cc78ca5ff"}, 855 | ] 856 | sphinx-celery = [ 857 | {file = "sphinx_celery-2.0.0-py2.py3-none-any.whl", hash = "sha256:9326c150600e2c8299f356283e6397f15493370368c4b68697edd98beac9f868"}, 858 | {file = "sphinx_celery-2.0.0.tar.gz", hash = "sha256:d8e440b5b0c3bb015a3404586bcec4f1a3e9aaee9fa0073511c32c8d4cd3d3dd"}, 859 | ] 860 | sphinxcontrib-applehelp = [ 861 | {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, 862 | {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, 863 | ] 864 | sphinxcontrib-devhelp = [ 865 | {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, 866 | {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, 867 | ] 868 | sphinxcontrib-htmlhelp = [ 869 | {file = "sphinxcontrib-htmlhelp-1.0.3.tar.gz", hash = "sha256:e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b"}, 870 | {file = "sphinxcontrib_htmlhelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:3c0bc24a2c41e340ac37c85ced6dafc879ab485c095b1d65d2461ac2f7cca86f"}, 871 | ] 872 | sphinxcontrib-jsmath = [ 873 | {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, 874 | {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, 875 | ] 876 | sphinxcontrib-qthelp = [ 877 | {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, 878 | {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, 879 | ] 880 | sphinxcontrib-serializinghtml = [ 881 | {file = "sphinxcontrib-serializinghtml-1.1.4.tar.gz", hash = "sha256:eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc"}, 882 | {file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"}, 883 | ] 884 | toml = [ 885 | {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, 886 | {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, 887 | ] 888 | transitions = [ 889 | {file = "transitions-0.8.7-py2.py3-none-any.whl", hash = "sha256:626229df01ea91dc0b28491bf5af7cc0aba6c2aa7289658e55ea77288258fa49"}, 890 | {file = "transitions-0.8.7.tar.gz", hash = "sha256:8c60ec0828cd037820726283cad5d4d77a5e31514e058b51250420e9873e9bc7"}, 891 | ] 892 | transitions-anyio = [ 893 | {file = "transitions-anyio-0.1.0.tar.gz", hash = "sha256:f2e569f9a0eab895ebfd65646f4078ec5e56e8a2ce18227550d8fdafeeb1f7ba"}, 894 | {file = "transitions_anyio-0.1.0-py3-none-any.whl", hash = "sha256:f30cd608765964230723f9a5b5826d024d860a05bea6a6b81f952a0385f52e39"}, 895 | ] 896 | trio = [ 897 | {file = "trio-0.17.0-py3-none-any.whl", hash = "sha256:fc70c74e8736d1105b3c05cc2e49b30c58755733740f9c51ae6d88a4d6d0a291"}, 898 | {file = "trio-0.17.0.tar.gz", hash = "sha256:e85cf9858e445465dfbb0e3fdf36efe92082d2df87bfe9d62585eedd6e8e9d7d"}, 899 | ] 900 | typed-ast = [ 901 | {file = "typed_ast-1.4.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:7703620125e4fb79b64aa52427ec192822e9f45d37d4b6625ab37ef403e1df70"}, 902 | {file = "typed_ast-1.4.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c9aadc4924d4b5799112837b226160428524a9a45f830e0d0f184b19e4090487"}, 903 | {file = "typed_ast-1.4.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:9ec45db0c766f196ae629e509f059ff05fc3148f9ffd28f3cfe75d4afb485412"}, 904 | {file = "typed_ast-1.4.2-cp35-cp35m-win32.whl", hash = "sha256:85f95aa97a35bdb2f2f7d10ec5bbdac0aeb9dafdaf88e17492da0504de2e6400"}, 905 | {file = "typed_ast-1.4.2-cp35-cp35m-win_amd64.whl", hash = "sha256:9044ef2df88d7f33692ae3f18d3be63dec69c4fb1b5a4a9ac950f9b4ba571606"}, 906 | {file = "typed_ast-1.4.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c1c876fd795b36126f773db9cbb393f19808edd2637e00fd6caba0e25f2c7b64"}, 907 | {file = "typed_ast-1.4.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:5dcfc2e264bd8a1db8b11a892bd1647154ce03eeba94b461effe68790d8b8e07"}, 908 | {file = "typed_ast-1.4.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8db0e856712f79c45956da0c9a40ca4246abc3485ae0d7ecc86a20f5e4c09abc"}, 909 | {file = "typed_ast-1.4.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:d003156bb6a59cda9050e983441b7fa2487f7800d76bdc065566b7d728b4581a"}, 910 | {file = "typed_ast-1.4.2-cp36-cp36m-win32.whl", hash = "sha256:4c790331247081ea7c632a76d5b2a265e6d325ecd3179d06e9cf8d46d90dd151"}, 911 | {file = "typed_ast-1.4.2-cp36-cp36m-win_amd64.whl", hash = "sha256:d175297e9533d8d37437abc14e8a83cbc68af93cc9c1c59c2c292ec59a0697a3"}, 912 | {file = "typed_ast-1.4.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf54cfa843f297991b7388c281cb3855d911137223c6b6d2dd82a47ae5125a41"}, 913 | {file = "typed_ast-1.4.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:b4fcdcfa302538f70929eb7b392f536a237cbe2ed9cba88e3bf5027b39f5f77f"}, 914 | {file = "typed_ast-1.4.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:987f15737aba2ab5f3928c617ccf1ce412e2e321c77ab16ca5a293e7bbffd581"}, 915 | {file = "typed_ast-1.4.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:37f48d46d733d57cc70fd5f30572d11ab8ed92da6e6b28e024e4a3edfb456e37"}, 916 | {file = "typed_ast-1.4.2-cp37-cp37m-win32.whl", hash = "sha256:36d829b31ab67d6fcb30e185ec996e1f72b892255a745d3a82138c97d21ed1cd"}, 917 | {file = "typed_ast-1.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:8368f83e93c7156ccd40e49a783a6a6850ca25b556c0fa0240ed0f659d2fe496"}, 918 | {file = "typed_ast-1.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:963c80b583b0661918718b095e02303d8078950b26cc00b5e5ea9ababe0de1fc"}, 919 | {file = "typed_ast-1.4.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e683e409e5c45d5c9082dc1daf13f6374300806240719f95dc783d1fc942af10"}, 920 | {file = "typed_ast-1.4.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:84aa6223d71012c68d577c83f4e7db50d11d6b1399a9c779046d75e24bed74ea"}, 921 | {file = "typed_ast-1.4.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:a38878a223bdd37c9709d07cd357bb79f4c760b29210e14ad0fb395294583787"}, 922 | {file = "typed_ast-1.4.2-cp38-cp38-win32.whl", hash = "sha256:a2c927c49f2029291fbabd673d51a2180038f8cd5a5b2f290f78c4516be48be2"}, 923 | {file = "typed_ast-1.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:c0c74e5579af4b977c8b932f40a5464764b2f86681327410aa028a22d2f54937"}, 924 | {file = "typed_ast-1.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:07d49388d5bf7e863f7fa2f124b1b1d89d8aa0e2f7812faff0a5658c01c59aa1"}, 925 | {file = "typed_ast-1.4.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:240296b27397e4e37874abb1df2a608a92df85cf3e2a04d0d4d61055c8305ba6"}, 926 | {file = "typed_ast-1.4.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:d746a437cdbca200622385305aedd9aef68e8a645e385cc483bdc5e488f07166"}, 927 | {file = "typed_ast-1.4.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:14bf1522cdee369e8f5581238edac09150c765ec1cb33615855889cf33dcb92d"}, 928 | {file = "typed_ast-1.4.2-cp39-cp39-win32.whl", hash = "sha256:cc7b98bf58167b7f2db91a4327da24fb93368838eb84a44c472283778fc2446b"}, 929 | {file = "typed_ast-1.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:7147e2a76c75f0f64c4319886e7639e490fee87c9d25cb1d4faef1d8cf83a440"}, 930 | {file = "typed_ast-1.4.2.tar.gz", hash = "sha256:9fc0b3cb5d1720e7141d103cf4819aea239f7d136acf9ee4a69b047b7986175a"}, 931 | ] 932 | typing-extensions = [ 933 | {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, 934 | {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"}, 935 | {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"}, 936 | ] 937 | zipp = [ 938 | {file = "zipp-3.4.1-py3-none-any.whl", hash = "sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea5a63edc3e03098"}, 939 | {file = "zipp-3.4.1.tar.gz", hash = "sha256:3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76"}, 940 | ] 941 | --------------------------------------------------------------------------------