From f4199c0784c5644dc8350d24e8b066b216f21cdc Mon Sep 17 00:00:00 2001 From: Josef Fuchs Date: Thu, 15 Sep 2022 08:03:52 +0200 Subject: [PATCH 01/19] Update Thycotic to Delinea --- development/creds.example.env | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/development/creds.example.env b/development/creds.example.env index f313a88..f359646 100644 --- a/development/creds.example.env +++ b/development/creds.example.env @@ -17,8 +17,8 @@ REDIS_PASSWORD=notverysecurepwd # NAUTOBOT_ROOT=./development ############################################################################# -# Settings for Thycotic Secret-Server-Reader -# https://github.com/thycotic/python-tss-sdk +# Settings for Delinea/Thycotic Secret-Server-Reader +# https://github.com/DelineaXPM/python-tss-sdk SECRET_SERVER_BASE_URL='https://pw.example.local/SecretServer' From 9a063dc25e425450d27948d74d46166d835275f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Sep 2022 12:02:13 -0400 Subject: [PATCH 02/19] Bump oauthlib from 3.2.0 to 3.2.1 (#46) * Bump oauthlib from 3.2.0 to 3.2.1 Bumps [oauthlib](https://github.com/oauthlib/oauthlib) from 3.2.0 to 3.2.1. - [Release notes](https://github.com/oauthlib/oauthlib/releases) - [Changelog](https://github.com/oauthlib/oauthlib/blob/master/CHANGELOG.rst) - [Commits](https://github.com/oauthlib/oauthlib/compare/v3.2.0...v3.2.1) --- updated-dependencies: - dependency-name: oauthlib dependency-type: indirect ... Signed-off-by: dependabot[bot] * Make sure latest Poetry version is used; make sure correct Nautobot version is used * Use 1.3.10 in CI instead of 1.3.0 Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Glenn Matthews --- .github/workflows/ci.yml | 4 +- development/Dockerfile | 5 +- poetry.lock | 336 ++++++++++++++++++++++++++++++--------- 3 files changed, 270 insertions(+), 75 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f0d20af..b6ab3e6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -75,7 +75,7 @@ jobs: fail-fast: true matrix: python-version: ["3.10"] - nautobot-version: ["1.3"] + nautobot-version: ["1.3.10"] env: INVOKE_NAUTOBOT_SECRETS_PROVIDERS_PYTHON_VER: "${{ matrix.python-version }}" INVOKE_NAUTOBOT_SECRETS_PROVIDERS_NAUTOBOT_VER: "${{ matrix.nautobot-version }}" @@ -112,7 +112,7 @@ jobs: fail-fast: true matrix: python-version: ["3.7", "3.8", "3.9", "3.10"] - nautobot-version: ["1.2.11", "1.3"] + nautobot-version: ["1.2.11", "1.3.10"] exclude: - python-version: "3.10" nautobot-version: "1.2.11" diff --git a/development/Dockerfile b/development/Dockerfile index 80a20b2..f9e5283 100644 --- a/development/Dockerfile +++ b/development/Dockerfile @@ -1,6 +1,8 @@ ARG NAUTOBOT_VER="1.2.1" ARG PYTHON_VER=3.8 + FROM ghcr.io/nautobot/nautobot-dev:${NAUTOBOT_VER}-py${PYTHON_VER} +ARG NAUTOBOT_VER="1.2.1" ENV prometheus_multiproc_dir=/prom_cache @@ -23,7 +25,8 @@ WORKDIR /tmp COPY poetry.lock pyproject.toml /tmp/ # --no-root declares not to install the project package since we're wanting to take advantage of caching dependency installation # and the project is copied in and installed after this step -RUN poetry add nautobot=$NAUTOBOT_VER && \ +RUN poetry self update && \ + poetry add nautobot=$NAUTOBOT_VER && \ poetry update --lock && \ poetry install --no-interaction --no-ansi --no-root diff --git a/poetry.lock b/poetry.lock index c465149..7023e66 100644 --- a/poetry.lock +++ b/poetry.lock @@ -29,7 +29,7 @@ python-versions = ">=3.7" typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] -tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"] +tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] [[package]] name = "astroid" @@ -41,6 +41,7 @@ python-versions = ">=3.6.2" [package.dependencies] lazy-object-proxy = ">=1.4.0" +setuptools = ">=20.0" typed-ast = {version = ">=1.4.0,<2.0", markers = "implementation_name == \"cpython\" and python_version < \"3.8\""} typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} wrapt = ">=1.11,<2" @@ -65,10 +66,10 @@ optional = false python-versions = ">=3.5" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] -docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"] +dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] +docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] +tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] +tests_no_zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] [[package]] name = "bandit" @@ -85,9 +86,9 @@ PyYAML = ">=5.3.1" stevedore = ">=1.20.0" [package.extras] -test = ["coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "toml", "beautifulsoup4 (>=4.8.0)", "pylint (==1.9.4)"] +test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "toml"] toml = ["toml"] -yaml = ["pyyaml"] +yaml = ["PyYAML"] [[package]] name = "billiard" @@ -206,7 +207,7 @@ s3 = ["boto3 (>=1.9.125)"] slmq = ["softlayer-messaging (>=1.0.3)"] solar = ["ephem"] sqlalchemy = ["sqlalchemy"] -sqs = ["kombu"] +sqs = ["kombu[sqs]"] tblib = ["tblib (>=1.3.0)", "tblib (>=1.5.0)"] yaml = ["PyYAML (>=3.10)"] zookeeper = ["kazoo (>=1.3.1)"] @@ -277,7 +278,7 @@ python-versions = "*" click = ">=4.0" [package.extras] -dev = ["pytest (>=3.6)", "pytest-cov", "wheel", "coveralls"] +dev = ["coveralls", "pytest (>=3.6)", "pytest-cov", "wheel"] [[package]] name = "click-repl" @@ -348,12 +349,12 @@ python-versions = ">=3.6" cffi = ">=1.12" [package.extras] -docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"] -docstest = ["pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"] +docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx_rtd_theme"] +docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] sdist = ["setuptools_rust (>=0.11.4)"] ssh = ["bcrypt (>=3.1.5)"] -test = ["pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"] +test = ["hypothesis (>=1.11.4,!=3.79.2)", "iso8601", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-subtests", "pytest-xdist", "pytz"] [[package]] name = "defusedxml" @@ -375,7 +376,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" wrapt = ">=1.10,<2" [package.extras] -dev = ["tox", "bump2version (<1)", "sphinx (<2)", "importlib-metadata (<3)", "importlib-resources (<4)", "configparser (<5)", "sphinxcontrib-websupport (<2)", "zipp (<2)", "PyTest (<5)", "PyTest-Cov (<2.6)", "pytest", "pytest-cov"] +dev = ["PyTest", "PyTest (<5)", "PyTest-Cov", "PyTest-Cov (<2.6)", "bump2version (<1)", "configparser (<5)", "importlib-metadata (<3)", "importlib-resources (<4)", "sphinx (<2)", "sphinxcontrib-websupport (<2)", "tox", "zipp (<2)"] [[package]] name = "dill" @@ -695,7 +696,7 @@ Django = "*" [package.extras] gunicorn = ["gunicorn"] pyuwsgi = ["pyuwsgi"] -test = ["pytest", "mock"] +test = ["mock", "pytest"] uvicorn = ["uvicorn (>0.6)"] waitress = ["waitress"] @@ -767,7 +768,7 @@ python-versions = "*" python-dateutil = ">=2.8.1" [package.extras] -dev = ["twine", "markdown", "flake8", "wheel"] +dev = ["flake8", "markdown", "twine", "wheel"] [[package]] name = "gitdb" @@ -809,7 +810,7 @@ six = ">=1.10.0,<2" [package.extras] django = ["graphene-django"] sqlalchemy = ["graphene-sqlalchemy"] -test = ["pytest", "pytest-benchmark", "pytest-cov", "pytest-mock", "fastdiff (==0.2.0)", "snapshottest", "coveralls", "promise", "six", "mock", "pytz", "iso8601"] +test = ["coveralls", "fastdiff (==0.2.0)", "iso8601", "mock", "promise", "pytest", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytz", "six", "snapshottest"] [[package]] name = "graphene-django" @@ -829,9 +830,9 @@ six = ">=1.10.0" text-unidecode = "*" [package.extras] -dev = ["black (==19.10b0)", "flake8 (==3.7.9)", "flake8-black (==0.1.1)", "flake8-bugbear (==20.1.4)", "pytest (>=3.6.3)", "pytest-cov", "coveralls", "mock", "pytz", "pytest-django (>=3.3.2)", "djangorestframework (>=3.6.3)", "django-filter (<2)", "django-filter (>=2)"] +dev = ["black (==19.10b0)", "coveralls", "django-filter (<2)", "django-filter (>=2)", "djangorestframework (>=3.6.3)", "flake8 (==3.7.9)", "flake8-black (==0.1.1)", "flake8-bugbear (==20.1.4)", "mock", "pytest (>=3.6.3)", "pytest-cov", "pytest-django (>=3.3.2)", "pytz"] rest_framework = ["djangorestframework (>=3.6.3)"] -test = ["pytest (>=3.6.3)", "pytest-cov", "coveralls", "mock", "pytz", "pytest-django (>=3.3.2)", "djangorestframework (>=3.6.3)", "django-filter (<2)", "django-filter (>=2)"] +test = ["coveralls", "django-filter (<2)", "django-filter (>=2)", "djangorestframework (>=3.6.3)", "mock", "pytest (>=3.6.3)", "pytest-cov", "pytest-django (>=3.3.2)", "pytz"] [[package]] name = "graphene-django-optimizer" @@ -856,7 +857,7 @@ six = ">=1.10.0" [package.extras] gevent = ["gevent (>=1.1)"] -test = ["six (==1.14.0)", "pyannotate (==1.2.0)", "pytest (==4.6.10)", "pytest-django (==3.9.0)", "pytest-cov (==2.8.1)", "coveralls (==1.11.1)", "cython (==0.29.17)", "gevent (==1.5.0)", "pytest-benchmark (==3.2.3)", "pytest-mock (==2.0.0)"] +test = ["coveralls (==1.11.1)", "cython (==0.29.17)", "gevent (==1.5.0)", "pyannotate (==1.2.0)", "pytest (==4.6.10)", "pytest-benchmark (==3.2.3)", "pytest-cov (==2.8.1)", "pytest-django (==3.9.0)", "pytest-mock (==2.0.0)", "six (==1.14.0)"] [[package]] name = "graphql-relay" @@ -907,8 +908,8 @@ typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] +docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pep517", "pyfakefs", "pytest (>=4.6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy"] [[package]] name = "inflection" @@ -935,10 +936,10 @@ optional = false python-versions = ">=3.6.1,<4.0" [package.extras] -pipfile_deprecated_finder = ["pipreqs", "requirementslib"] -requirements_deprecated_finder = ["pipreqs", "pip-api"] colors = ["colorama (>=0.4.3,<0.5.0)"] +pipfile_deprecated_finder = ["pipreqs", "requirementslib"] plugins = ["setuptools"] +requirements_deprecated_finder = ["pip-api", "pipreqs"] [[package]] name = "itypes" @@ -982,11 +983,12 @@ python-versions = "*" attrs = ">=17.4.0" importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} pyrsistent = ">=0.14.0" +setuptools = "*" six = ">=1.11.0" [package.extras] format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] -format_nongpl = ["idna", "jsonpointer (>1.13)", "webcolors", "rfc3986-validator (>0.1.0)", "rfc3339-validator"] +format_nongpl = ["idna", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "webcolors"] [[package]] name = "kombu" @@ -1110,12 +1112,12 @@ werkzeug = "*" xmltodict = "*" [package.extras] -all = ["PyYAML (>=5.1)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "ecdsa (!=0.15)", "docker (>=2.5.1)", "jsondiff (>=1.1.2)", "aws-xray-sdk (>=0.93,!=0.96)", "idna (>=2.5,<4)", "cfn-lint (>=0.4.0)", "sshpubkeys (>=3.1.0)", "setuptools"] -apigateway = ["python-jose[cryptography] (>=3.1.0,<4.0.0)", "ecdsa (!=0.15)"] +all = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.4.0)", "docker (>=2.5.1)", "ecdsa (!=0.15)", "idna (>=2.5,<4)", "jsondiff (>=1.1.2)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] +apigateway = ["ecdsa (!=0.15)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"] awslambda = ["docker (>=2.5.1)"] batch = ["docker (>=2.5.1)"] -cloudformation = ["docker (>=2.5.1)", "PyYAML (>=5.1)", "cfn-lint (>=0.4.0)"] -cognitoidp = ["python-jose[cryptography] (>=3.1.0,<4.0.0)", "ecdsa (!=0.15)"] +cloudformation = ["PyYAML (>=5.1)", "cfn-lint (>=0.4.0)", "docker (>=2.5.1)"] +cognitoidp = ["ecdsa (!=0.15)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"] ds = ["sshpubkeys (>=3.1.0)"] dynamodb2 = ["docker (>=2.5.1)"] dynamodbstreams = ["docker (>=2.5.1)"] @@ -1124,7 +1126,7 @@ efs = ["sshpubkeys (>=3.1.0)"] iotdata = ["jsondiff (>=1.1.2)"] route53resolver = ["sshpubkeys (>=3.1.0)"] s3 = ["PyYAML (>=5.1)"] -server = ["PyYAML (>=5.1)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "ecdsa (!=0.15)", "docker (>=2.5.1)", "jsondiff (>=1.1.2)", "aws-xray-sdk (>=0.93,!=0.96)", "idna (>=2.5,<4)", "cfn-lint (>=0.4.0)", "sshpubkeys (>=3.1.0)", "setuptools", "flask", "flask-cors"] +server = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.4.0)", "docker (>=2.5.1)", "ecdsa (!=0.15)", "flask", "flask-cors", "idna (>=2.5,<4)", "jsondiff (>=1.1.2)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] ssm = ["PyYAML (>=5.1)", "dataclasses"] xray = ["aws-xray-sdk (>=0.93,!=0.96)", "setuptools"] @@ -1189,9 +1191,9 @@ svgwrite = ">=1.4.1,<1.5.0" [package.extras] all = ["django-auth-ldap (>=3.0.0,<3.1.0)", "django-storages (>=1.12.3,<1.13.0)", "mysqlclient (>=2.0.3,<2.1.0)", "napalm (>=3.3.1,<4.0.0)", "social-auth-core[openidconnect,saml] (>=4.1.0,<4.2.0)"] ldap = ["django-auth-ldap (>=3.0.0,<3.1.0)"] -remote_storage = ["django-storages (>=1.12.3,<1.13.0)"] mysql = ["mysqlclient (>=2.0.3,<2.1.0)"] napalm = ["napalm (>=3.3.1,<4.0.0)"] +remote_storage = ["django-storages (>=1.12.3,<1.13.0)"] sso = ["social-auth-core[openidconnect,saml] (>=4.1.0,<4.2.0)"] [[package]] @@ -1212,7 +1214,7 @@ python-versions = ">=3.6,<4.0" [[package]] name = "oauthlib" -version = "3.2.0" +version = "3.2.1" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" category = "main" optional = false @@ -1267,8 +1269,8 @@ optional = false python-versions = ">=3.7" [package.extras] -docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"] -test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"] +docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"] +test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] [[package]] name = "prometheus-client" @@ -1293,7 +1295,7 @@ python-versions = "*" six = "*" [package.extras] -test = ["pytest (>=2.7.3)", "pytest-cov", "coveralls", "futures", "pytest-benchmark", "mock"] +test = ["coveralls", "futures", "mock", "pytest (>=2.7.3)", "pytest-benchmark", "pytest-cov"] [[package]] name = "prompt-toolkit" @@ -1370,9 +1372,9 @@ python-versions = ">=3.6" [package.extras] crypto = ["cryptography (>=3.3.1)"] -dev = ["sphinx", "sphinx-rtd-theme", "zope.interface", "cryptography (>=3.3.1)", "pytest (>=6.0.0,<7.0.0)", "coverage[toml] (==5.0.4)", "mypy", "pre-commit"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.3.1)", "mypy", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] -tests = ["pytest (>=6.0.0,<7.0.0)", "coverage[toml] (==5.0.4)"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] [[package]] name = "pylint" @@ -1408,8 +1410,8 @@ pylint = ">=2.0,<3" pylint-plugin-utils = ">=0.7" [package.extras] -for_tests = ["django-tables2", "factory-boy", "coverage", "pytest", "wheel", "django-tastypie", "pylint (>=2.13)"] -with_django = ["django"] +for_tests = ["coverage", "django-tables2", "django-tastypie", "factory-boy", "pylint (>=2.13)", "pytest", "wheel"] +with_django = ["Django"] [[package]] name = "pylint-plugin-utils" @@ -1431,7 +1433,7 @@ optional = false python-versions = ">=3.6.8" [package.extras] -diagrams = ["railroad-diagrams", "jinja2"] +diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pyrsistent" @@ -1610,7 +1612,7 @@ typing-extensions = {version = "*", markers = "python_version < \"3.8\""} urllib3 = ">=1.25.10" [package.extras] -tests = ["pytest (>=7.0.0)", "coverage (>=6.0.0)", "pytest-cov", "pytest-asyncio", "pytest-localserver", "flake8", "types-mock", "types-requests", "mypy"] +tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asyncio", "pytest-cov", "pytest-localserver", "types-mock", "types-requests"] [[package]] name = "rq" @@ -1669,6 +1671,19 @@ botocore = ">=1.12.36,<2.0a.0" [package.extras] crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] +[[package]] +name = "setuptools" +version = "65.3.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mock", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + [[package]] name = "singledispatch" version = "3.7.0" @@ -1681,8 +1696,8 @@ python-versions = ">=2.6" six = "*" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=4.6)", "pytest-flake8", "pytest-cov", "pytest-black (>=0.3.7)", "unittest2", "pytest-checkdocs (>=2.4)"] +docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] +testing = ["pytest (>=4.6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-flake8", "unittest2"] [[package]] name = "six" @@ -1738,11 +1753,11 @@ requests = ">=2.9.1" requests-oauthlib = ">=0.6.1" [package.extras] -all = ["python-jose (>=3.0.0)", "python3-saml (>=1.2.1)", "lxml (<4.7)", "cryptography (>=2.1.1)"] -allpy3 = ["python-jose (>=3.0.0)", "python3-saml (>=1.2.1)", "lxml (<4.7)", "cryptography (>=2.1.1)"] +all = ["cryptography (>=2.1.1)", "lxml (<4.7)", "python-jose (>=3.0.0)", "python3-saml (>=1.2.1)"] +allpy3 = ["cryptography (>=2.1.1)", "lxml (<4.7)", "python-jose (>=3.0.0)", "python3-saml (>=1.2.1)"] azuread = ["cryptography (>=2.1.1)"] openidconnect = ["python-jose (>=3.0.0)"] -saml = ["python3-saml (>=1.2.1)", "lxml (<4.7)"] +saml = ["lxml (<4.7)", "python3-saml (>=1.2.1)"] [[package]] name = "sqlparse" @@ -1834,8 +1849,8 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" [package.extras] -brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "urllib3-secure-extra", "ipaddress"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] @@ -1903,6 +1918,7 @@ python-versions = ">=3.6" [package.dependencies] pathspec = ">=0.5.3" pyyaml = "*" +setuptools = "*" [[package]] name = "zipp" @@ -1913,8 +1929,8 @@ optional = false python-versions = ">=3.7" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] +docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] +testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [extras] all = ["boto3", "hvac", "python-tss-sdk"] @@ -1941,12 +1957,18 @@ asgiref = [ {file = "asgiref-3.5.2-py3-none-any.whl", hash = "sha256:1d2880b792ae8757289136f1db2b7b99100ce959b2aa57fd69dab783d05afac4"}, {file = "asgiref-3.5.2.tar.gz", hash = "sha256:4a29362a6acebe09bf1d6640db38c1dc3d9217c68e6f9f6204d72667fc19a424"}, ] -astroid = [] +astroid = [ + {file = "astroid-2.11.7-py3-none-any.whl", hash = "sha256:86b0a340a512c65abf4368b80252754cda17c02cdbbd3f587dddf98112233e7b"}, + {file = "astroid-2.11.7.tar.gz", hash = "sha256:bb24615c77f4837c707669d16907331374ae8a964650a66999da3f5ca68dc946"}, +] async-timeout = [ {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, ] -attrs = [] +attrs = [ + {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, + {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, +] bandit = [ {file = "bandit-1.7.4-py3-none-any.whl", hash = "sha256:412d3f259dab4077d0e7f0c11f50f650cc7d10db905d98f6520a95a18049658a"}, {file = "bandit-1.7.4.tar.gz", hash = "sha256:2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"}, @@ -1955,7 +1977,31 @@ billiard = [ {file = "billiard-3.6.4.0-py3-none-any.whl", hash = "sha256:87103ea78fa6ab4d5c751c4909bcff74617d985de7fa8b672cf8618afd5a875b"}, {file = "billiard-3.6.4.0.tar.gz", hash = "sha256:299de5a8da28a783d51b197d496bef4f1595dd023a93a4f59dde1886ae905547"}, ] -black = [] +black = [ + {file = "black-22.6.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f586c26118bc6e714ec58c09df0157fe2d9ee195c764f630eb0d8e7ccce72e69"}, + {file = "black-22.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b270a168d69edb8b7ed32c193ef10fd27844e5c60852039599f9184460ce0807"}, + {file = "black-22.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6797f58943fceb1c461fb572edbe828d811e719c24e03375fd25170ada53825e"}, + {file = "black-22.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c85928b9d5f83b23cee7d0efcb310172412fbf7cb9d9ce963bd67fd141781def"}, + {file = "black-22.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:f6fe02afde060bbeef044af7996f335fbe90b039ccf3f5eb8f16df8b20f77666"}, + {file = "black-22.6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cfaf3895a9634e882bf9d2363fed5af8888802d670f58b279b0bece00e9a872d"}, + {file = "black-22.6.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94783f636bca89f11eb5d50437e8e17fbc6a929a628d82304c80fa9cd945f256"}, + {file = "black-22.6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2ea29072e954a4d55a2ff58971b83365eba5d3d357352a07a7a4df0d95f51c78"}, + {file = "black-22.6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e439798f819d49ba1c0bd9664427a05aab79bfba777a6db94fd4e56fae0cb849"}, + {file = "black-22.6.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:187d96c5e713f441a5829e77120c269b6514418f4513a390b0499b0987f2ff1c"}, + {file = "black-22.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:074458dc2f6e0d3dab7928d4417bb6957bb834434516f21514138437accdbe90"}, + {file = "black-22.6.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a218d7e5856f91d20f04e931b6f16d15356db1c846ee55f01bac297a705ca24f"}, + {file = "black-22.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:568ac3c465b1c8b34b61cd7a4e349e93f91abf0f9371eda1cf87194663ab684e"}, + {file = "black-22.6.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6c1734ab264b8f7929cef8ae5f900b85d579e6cbfde09d7387da8f04771b51c6"}, + {file = "black-22.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9a3ac16efe9ec7d7381ddebcc022119794872abce99475345c5a61aa18c45ad"}, + {file = "black-22.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:b9fd45787ba8aa3f5e0a0a98920c1012c884622c6c920dbe98dbd05bc7c70fbf"}, + {file = "black-22.6.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7ba9be198ecca5031cd78745780d65a3f75a34b2ff9be5837045dce55db83d1c"}, + {file = "black-22.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a3db5b6409b96d9bd543323b23ef32a1a2b06416d525d27e0f67e74f1446c8f2"}, + {file = "black-22.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:560558527e52ce8afba936fcce93a7411ab40c7d5fe8c2463e279e843c0328ee"}, + {file = "black-22.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b154e6bbde1e79ea3260c4b40c0b7b3109ffcdf7bc4ebf8859169a6af72cd70b"}, + {file = "black-22.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:4af5bc0e1f96be5ae9bd7aaec219c901a94d6caa2484c21983d043371c733fc4"}, + {file = "black-22.6.0-py3-none-any.whl", hash = "sha256:ac609cf8ef5e7115ddd07d85d988d074ed00e10fbc3445aee393e70164a2219c"}, + {file = "black-22.6.0.tar.gz", hash = "sha256:6c6d39e28aed379aec40da1c65434c77d75e65bb59a1e1c283de545fb4e7c6c9"}, +] boto3 = [ {file = "boto3-1.19.12-py3-none-any.whl", hash = "sha256:b9105554477978e80fda1103ff21ecf07502080667730e45383e1d3951c87954"}, {file = "boto3-1.19.12.tar.gz", hash = "sha256:182a2b756a2c2180b473bc8452227062394a24e3701548be23ebc30d85976c64"}, @@ -2042,7 +2088,10 @@ cffi = [ {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, ] -charset-normalizer = [] +charset-normalizer = [ + {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, + {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, +] click = [ {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, @@ -2120,7 +2169,30 @@ coverage = [ {file = "coverage-6.2-pp36.pp37.pp38-none-any.whl", hash = "sha256:5829192582c0ec8ca4a2532407bc14c2f338d9878a10442f5d03804a95fac9de"}, {file = "coverage-6.2.tar.gz", hash = "sha256:e2cad8093172b7d1595b4ad66f24270808658e11acf43a8f95b41276162eb5b8"}, ] -cryptography = [] +cryptography = [ + {file = "cryptography-37.0.4-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:549153378611c0cca1042f20fd9c5030d37a72f634c9326e225c9f666d472884"}, + {file = "cryptography-37.0.4-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:a958c52505c8adf0d3822703078580d2c0456dd1d27fabfb6f76fe63d2971cd6"}, + {file = "cryptography-37.0.4-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f721d1885ecae9078c3f6bbe8a88bc0786b6e749bf32ccec1ef2b18929a05046"}, + {file = "cryptography-37.0.4-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:3d41b965b3380f10e4611dbae366f6dc3cefc7c9ac4e8842a806b9672ae9add5"}, + {file = "cryptography-37.0.4-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80f49023dd13ba35f7c34072fa17f604d2f19bf0989f292cedf7ab5770b87a0b"}, + {file = "cryptography-37.0.4-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2dcb0b3b63afb6df7fd94ec6fbddac81b5492513f7b0436210d390c14d46ee8"}, + {file = "cryptography-37.0.4-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:b7f8dd0d4c1f21759695c05a5ec8536c12f31611541f8904083f3dc582604280"}, + {file = "cryptography-37.0.4-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:30788e070800fec9bbcf9faa71ea6d8068f5136f60029759fd8c3efec3c9dcb3"}, + {file = "cryptography-37.0.4-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:190f82f3e87033821828f60787cfa42bff98404483577b591429ed99bed39d59"}, + {file = "cryptography-37.0.4-cp36-abi3-win32.whl", hash = "sha256:b62439d7cd1222f3da897e9a9fe53bbf5c104fff4d60893ad1355d4c14a24157"}, + {file = "cryptography-37.0.4-cp36-abi3-win_amd64.whl", hash = "sha256:f7a6de3e98771e183645181b3627e2563dcde3ce94a9e42a3f427d2255190327"}, + {file = "cryptography-37.0.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc95ed67b6741b2607298f9ea4932ff157e570ef456ef7ff0ef4884a134cc4b"}, + {file = "cryptography-37.0.4-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:f8c0a6e9e1dd3eb0414ba320f85da6b0dcbd543126e30fcc546e7372a7fbf3b9"}, + {file = "cryptography-37.0.4-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:e007f052ed10cc316df59bc90fbb7ff7950d7e2919c9757fd42a2b8ecf8a5f67"}, + {file = "cryptography-37.0.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bc997818309f56c0038a33b8da5c0bfbb3f1f067f315f9abd6fc07ad359398d"}, + {file = "cryptography-37.0.4-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:d204833f3c8a33bbe11eda63a54b1aad7aa7456ed769a982f21ec599ba5fa282"}, + {file = "cryptography-37.0.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:75976c217f10d48a8b5a8de3d70c454c249e4b91851f6838a4e48b8f41eb71aa"}, + {file = "cryptography-37.0.4-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:7099a8d55cd49b737ffc99c17de504f2257e3787e02abe6d1a6d136574873441"}, + {file = "cryptography-37.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2be53f9f5505673eeda5f2736bea736c40f051a739bfae2f92d18aed1eb54596"}, + {file = "cryptography-37.0.4-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:91ce48d35f4e3d3f1d83e29ef4a9267246e6a3be51864a5b7d2247d5086fa99a"}, + {file = "cryptography-37.0.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4c590ec31550a724ef893c50f9a97a0c14e9c851c85621c5650d699a7b88f7ab"}, + {file = "cryptography-37.0.4.tar.gz", hash = "sha256:63f9c17c0e2474ccbebc9302ce2f07b55b3b3fcb211ded18a42d5764f5c10a82"}, +] defusedxml = [ {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, @@ -2232,7 +2304,10 @@ djangorestframework = [ {file = "djangorestframework-3.12.4-py3-none-any.whl", hash = "sha256:6d1d59f623a5ad0509fe0d6bfe93cbdfe17b8116ebc8eda86d45f6e16e819aaf"}, {file = "djangorestframework-3.12.4.tar.gz", hash = "sha256:f747949a8ddac876e879190df194b925c177cdeb725a099db1460872f7c0a7f2"}, ] -drf-yasg = [] +drf-yasg = [ + {file = "drf-yasg-1.20.3.tar.gz", hash = "sha256:1c66929fba56724c477951ab07266e69bbd0cb280e84b675957df19e3b567958"}, + {file = "drf_yasg-1.20.3-py2.py3-none-any.whl", hash = "sha256:915a16dae564143ebcbc1787e4aaad38062ccd95d1e6f97c2d33086575335bb8"}, +] flake8 = [ {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, @@ -2360,12 +2435,28 @@ markdown = [ {file = "Markdown-3.3.7.tar.gz", hash = "sha256:cbb516f16218e643d8e0a95b309f77eb118cb138d39a4f27851e6a63581db874"}, ] markupsafe = [ + {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, @@ -2374,14 +2465,27 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, @@ -2391,6 +2495,12 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"}, {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"}, {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, @@ -2403,7 +2513,10 @@ mergedeep = [ {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, ] -mkdocs = [] +mkdocs = [ + {file = "mkdocs-1.3.1-py3-none-any.whl", hash = "sha256:fda92466393127d2da830bc6edc3a625a14b436316d1caf347690648e774c4f0"}, + {file = "mkdocs-1.3.1.tar.gz", hash = "sha256:a41a2ff25ce3bbacc953f9844ba07d106233cd76c88bac1f59cb1564ac0d87ed"}, +] moto = [ {file = "moto-2.2.20-py2.py3-none-any.whl", hash = "sha256:20f06e51dbdeb3ed76989f733e4e51472cbfe39dda031a49da66fc8df1bcefa4"}, {file = "moto-2.2.20.tar.gz", hash = "sha256:aa6479df35b47d4df0c3214e118c328df67d9f4e157ec5523ce87a23fecf93f6"}, @@ -2425,8 +2538,8 @@ netutils = [ {file = "netutils-1.0.0.tar.gz", hash = "sha256:ead1d927374a76a9ff78867b5f72b66cd26eaa9ec9e8d00e12e8085694a0275a"}, ] oauthlib = [ - {file = "oauthlib-3.2.0-py3-none-any.whl", hash = "sha256:6db33440354787f9b7f3a6dbd4febf5d0f93758354060e802f6c06cb493022fe"}, - {file = "oauthlib-3.2.0.tar.gz", hash = "sha256:23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2"}, + {file = "oauthlib-3.2.1-py3-none-any.whl", hash = "sha256:88e912ca1ad915e1dcc1c06fc9259d19de8deacd6fd17cc2df266decc2e49066"}, + {file = "oauthlib-3.2.1.tar.gz", hash = "sha256:1565237372795bf6ee3e5aba5e2a85bd5a65d0e2aa5c628b9a97b7d7a0da3721"}, ] packaging = [ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, @@ -2436,8 +2549,14 @@ pathspec = [ {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, ] -pbr = [] +pbr = [ + {file = "pbr-5.10.0-py2.py3-none-any.whl", hash = "sha256:da3e18aac0a3c003e9eea1a81bd23e5a3a75d745670dcf736317b7d966887fdf"}, + {file = "pbr-5.10.0.tar.gz", hash = "sha256:cfcc4ff8e698256fc17ea3ff796478b050852585aa5bae79ecd05b2ab7b39b9a"}, +] pillow = [ + {file = "Pillow-9.0.1-1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a5d24e1d674dd9d72c66ad3ea9131322819ff86250b30dc5821cbafcfa0b96b4"}, + {file = "Pillow-9.0.1-1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2632d0f846b7c7600edf53c48f8f9f1e13e62f66a6dbc15191029d950bfed976"}, + {file = "Pillow-9.0.1-1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b9618823bd237c0d2575283f2939655f54d51b4527ec3972907a927acbcc5bfc"}, {file = "Pillow-9.0.1-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:9bfdb82cdfeccec50aad441afc332faf8606dfa5e8efd18a6692b5d6e79f00fd"}, {file = "Pillow-9.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5100b45a4638e3c00e4d2320d3193bdabb2d75e79793af7c3eb139e4f569f16f"}, {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:528a2a692c65dd5cafc130de286030af251d2ee0483a5bf50c9348aefe834e8a"}, @@ -2621,12 +2740,18 @@ python-dateutil = [ {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, ] -python-tss-sdk = [] +python-tss-sdk = [ + {file = "python-tss-sdk-1.2.0.tar.gz", hash = "sha256:5d28ede8a00cd121e03c97b2eef3f966415ca53f3af9754d13c1e15af6497676"}, + {file = "python_tss_sdk-1.2.0-py3-none-any.whl", hash = "sha256:5c4f36ed9d70f9c4c2b549710845f1ba4fd99fd7dad859dc8b813854125e78f6"}, +] python3-openid = [ {file = "python3-openid-3.2.0.tar.gz", hash = "sha256:33fbf6928f401e0b790151ed2b5290b02545e8775f982485205a066f874aaeaf"}, {file = "python3_openid-3.2.0-py3-none-any.whl", hash = "sha256:6626f771e0417486701e0b4daff762e7212e820ca5b29fcc0d05f6f8736dfa6b"}, ] -pytz = [] +pytz = [ + {file = "pytz-2022.2.1-py2.py3-none-any.whl", hash = "sha256:220f481bdafa09c3955dfbdddb7b57780e9a94f5127e35456a48589b9e0c0197"}, + {file = "pytz-2022.2.1.tar.gz", hash = "sha256:cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5"}, +] pyuwsgi = [ {file = "pyuwsgi-2.0.20-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd09a7328558728f6e38f77609f44d16f18d8b4dc5f8b8776f657c8892b70337"}, {file = "pyuwsgi-2.0.20-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:210ad768b8af02bbfd3c0345a51c6d2c56a2333ac268d9a97ecf2d4209f78ef8"}, @@ -2704,7 +2829,10 @@ redis = [ {file = "redis-4.3.4-py3-none-any.whl", hash = "sha256:a52d5694c9eb4292770084fa8c863f79367ca19884b329ab574d5cb2036b3e54"}, {file = "redis-4.3.4.tar.gz", hash = "sha256:ddf27071df4adf3821c4f2ca59d67525c3a82e5f268bed97b813cb4fabf87880"}, ] -requests = [] +requests = [ + {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, + {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, +] requests-mock = [ {file = "requests-mock-1.9.3.tar.gz", hash = "sha256:8d72abe54546c1fc9696fa1516672f1031d72a55a1d66c85184f972a24ba0eba"}, {file = "requests_mock-1.9.3-py2.py3-none-any.whl", hash = "sha256:0a2d38a117c08bb78939ec163522976ad59a6b7fdd82b709e23bb98004a44970"}, @@ -2713,31 +2841,46 @@ requests-oauthlib = [ {file = "requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"}, {file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"}, ] -responses = [] -rq = [] +responses = [ + {file = "responses-0.21.0-py3-none-any.whl", hash = "sha256:2dcc863ba63963c0c3d9ee3fa9507cbe36b7d7b0fccb4f0bdfd9e96c539b1487"}, + {file = "responses-0.21.0.tar.gz", hash = "sha256:b82502eb5f09a0289d8e209e7bad71ef3978334f56d09b444253d5ad67bf5253"}, +] +rq = [ + {file = "rq-1.11.0-py2.py3-none-any.whl", hash = "sha256:c0bbf898b56817da053cdc992ab46da2729a7ccd70dd50316ad9209b7d7b71c1"}, + {file = "rq-1.11.0.tar.gz", hash = "sha256:50d0cf687cfb2530eac9396c7426e420958a166e8f4666bd2096bdcf7f4ad03e"}, +] "ruamel.yaml" = [ {file = "ruamel.yaml-0.17.21-py3-none-any.whl", hash = "sha256:742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7"}, {file = "ruamel.yaml-0.17.21.tar.gz", hash = "sha256:8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af"}, ] "ruamel.yaml.clib" = [ + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6e7be2c5bcb297f5b82fee9c665eb2eb7001d1050deaba8471842979293a80b0"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:066f886bc90cc2ce44df8b5f7acfc6a7e2b2e672713f027136464492b0c34d7c"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:221eca6f35076c6ae472a531afa1c223b9c29377e62936f61bc8e6e8bdc5f9e7"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win32.whl", hash = "sha256:1070ba9dd7f9370d0513d649420c3b362ac2d687fe78c6e888f5b12bf8bc7bee"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:77df077d32921ad46f34816a9a16e6356d8100374579bc35e15bab5d4e9377de"}, {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:cfdb9389d888c5b74af297e51ce357b800dd844898af9d4a547ffc143fa56751"}, {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7b2927e92feb51d830f531de4ccb11b320255ee95e791022555971c466af4527"}, {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win32.whl", hash = "sha256:ada3f400d9923a190ea8b59c8f60680c4ef8a4b0dfae134d2f2ff68429adfab5"}, {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win_amd64.whl", hash = "sha256:de9c6b8a1ba52919ae919f3ae96abb72b994dd0350226e28f3686cb4f142165c"}, {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d67f273097c368265a7b81e152e07fb90ed395df6e552b9fa858c6d2c9f42502"}, {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:72a2b8b2ff0a627496aad76f37a652bcef400fd861721744201ef1b45199ab78"}, + {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:d3c620a54748a3d4cf0bcfe623e388407c8e85a4b06b8188e126302bcab93ea8"}, {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win32.whl", hash = "sha256:9efef4aab5353387b07f6b22ace0867032b900d8e91674b5d8ea9150db5cae94"}, {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win_amd64.whl", hash = "sha256:846fc8336443106fe23f9b6d6b8c14a53d38cef9a375149d61f99d78782ea468"}, {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0847201b767447fc33b9c235780d3aa90357d20dd6108b92be544427bea197dd"}, {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:78988ed190206672da0f5d50c61afef8f67daa718d614377dcd5e3ed85ab4a99"}, + {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:210c8fcfeff90514b7133010bf14e3bad652c8efde6b20e00c43854bf94fa5a6"}, {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win32.whl", hash = "sha256:a49e0161897901d1ac9c4a79984b8410f450565bbad64dbfcbf76152743a0cdb"}, {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win_amd64.whl", hash = "sha256:bf75d28fa071645c529b5474a550a44686821decebdd00e21127ef1fd566eabe"}, {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a32f8d81ea0c6173ab1b3da956869114cae53ba1e9f72374032e33ba3118c233"}, {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7f7ecb53ae6848f959db6ae93bdff1740e651809780822270eab111500842a84"}, + {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:61bc5e5ca632d95925907c569daa559ea194a4d16084ba86084be98ab1cec1c6"}, {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win32.whl", hash = "sha256:89221ec6d6026f8ae859c09b9718799fea22c0e8da8b766b0b2c9a9ba2db326b"}, {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win_amd64.whl", hash = "sha256:31ea73e564a7b5fbbe8188ab8b334393e06d997914a4e184975348f204790277"}, {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc6a613d6c74eef5a14a214d433d06291526145431c3b964f5e16529b1842bed"}, {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:1866cf2c284a03b9524a5cc00daca56d80057c5ce3cdc86a52020f4c720856f0"}, + {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1b4139a6ffbca8ef60fdaf9b33dec05143ba746a6f0ae0f9d11d38239211d335"}, {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win32.whl", hash = "sha256:3fb9575a5acd13031c57a62cc7823e5d2ff8bc3835ba4d94b921b4e6ee664104"}, {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:825d5fccef6da42f3c8eccd4281af399f21c02b32d98e113dbc631ea6a6ecbc7"}, {file = "ruamel.yaml.clib-0.2.6.tar.gz", hash = "sha256:4ff604ce439abb20794f05613c374759ce10e3595d1867764dd1ae675b85acbd"}, @@ -2750,6 +2893,10 @@ s3transfer = [ {file = "s3transfer-0.5.2-py3-none-any.whl", hash = "sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971"}, {file = "s3transfer-0.5.2.tar.gz", hash = "sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed"}, ] +setuptools = [ + {file = "setuptools-65.3.0-py3-none-any.whl", hash = "sha256:2e24e0bec025f035a2e72cdd1961119f557d78ad331bb00ff82efb2ab8da8e82"}, + {file = "setuptools-65.3.0.tar.gz", hash = "sha256:7732871f4f7fa58fb6bdcaeadb0161b2bd046c85905dbaa066bdcbcc81953b57"}, +] singledispatch = [ {file = "singledispatch-3.7.0-py2.py3-none-any.whl", hash = "sha256:bc77afa97c8a22596d6d4fc20f1b7bdd2b86edc2a65a4262bdd7cc3cc19aa989"}, {file = "singledispatch-3.7.0.tar.gz", hash = "sha256:c1a4d5c1da310c3fd8fccfb8d4e1cb7df076148fd5d858a819e37fffe44f3092"}, @@ -2783,7 +2930,10 @@ stevedore = [ {file = "stevedore-3.5.0-py3-none-any.whl", hash = "sha256:a547de73308fd7e90075bb4d301405bebf705292fa90a90fc3bcf9133f58616c"}, {file = "stevedore-3.5.0.tar.gz", hash = "sha256:f40253887d8712eaa2bb0ea3830374416736dc8ec0e22f5a65092c1174c44335"}, ] -svgwrite = [] +svgwrite = [ + {file = "svgwrite-1.4.3-py3-none-any.whl", hash = "sha256:bb6b2b5450f1edbfa597d924f9ac2dd099e625562e492021d7dd614f65f8a22d"}, + {file = "svgwrite-1.4.3.zip", hash = "sha256:a8fbdfd4443302a6619a7f76bc937fc683daf2628d9b737c891ec08b8ce524c3"}, +] swagger-spec-validator = [ {file = "swagger-spec-validator-2.7.4.tar.gz", hash = "sha256:2aee5e1fc0503be9f8299378b10c92169572781573c6de3315e831fd0559ba73"}, {file = "swagger_spec_validator-2.7.4-py2.py3-none-any.whl", hash = "sha256:4e373a4db5262e7257fde17d84c5c0178327b8057985ab1be63f580bfa009855"}, @@ -2796,13 +2946,44 @@ tomli = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] -typed-ast = [] -typing-extensions = [] +typed-ast = [ + {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, + {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, + {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, + {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, + {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, + {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, + {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, + {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, + {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, + {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, +] +typing-extensions = [ + {file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"}, + {file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"}, +] uritemplate = [ {file = "uritemplate-4.1.1-py2.py3-none-any.whl", hash = "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e"}, {file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"}, ] -urllib3 = [] +urllib3 = [ + {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, + {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, +] vine = [ {file = "vine-5.0.0-py2.py3-none-any.whl", hash = "sha256:4c9dceab6f76ed92105027c49c823800dd33cacce13bdedc5b914e3514b7fb30"}, {file = "vine-5.0.0.tar.gz", hash = "sha256:7d3b1624a953da82ef63462013bbd271d3eb75751489f9807598e8f340bd637e"}, @@ -2838,7 +3019,10 @@ wcwidth = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, ] -werkzeug = [] +werkzeug = [ + {file = "Werkzeug-2.1.2-py3-none-any.whl", hash = "sha256:72a4b735692dd3135217911cbeaa1be5fa3f62bffb8745c5215420a03dc55255"}, + {file = "Werkzeug-2.1.2.tar.gz", hash = "sha256:1ce08e8093ed67d638d63879fd1ba3735817f7a80de3674d293f5984f25fb6e6"}, +] wrapt = [ {file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"}, {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"}, @@ -2905,6 +3089,14 @@ wrapt = [ {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"}, {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"}, ] -xmltodict = [] -yamllint = [] -zipp = [] +xmltodict = [ + {file = "xmltodict-0.13.0-py2.py3-none-any.whl", hash = "sha256:aa89e8fd76320154a40d19a0df04a4695fb9dc5ba977cbb68ab3e4eb225e7852"}, + {file = "xmltodict-0.13.0.tar.gz", hash = "sha256:341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56"}, +] +yamllint = [ + {file = "yamllint-1.27.1.tar.gz", hash = "sha256:e688324b58560ab68a1a3cff2c0a474e3fed371dfe8da5d1b9817b7df55039ce"}, +] +zipp = [ + {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, + {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, +] From fdde399125e0baa04bf362f3af201dad1a2ad7f6 Mon Sep 17 00:00:00 2001 From: Nick Niehoff Date: Mon, 19 Sep 2022 10:04:10 -0600 Subject: [PATCH 03/19] Bumping HVAC Module --- poetry.lock | 438 +++++++++++++++++++++++++++++++++++-------------- pyproject.toml | 2 +- 2 files changed, 318 insertions(+), 122 deletions(-) diff --git a/poetry.lock b/poetry.lock index c465149..850ea2f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -29,7 +29,7 @@ python-versions = ">=3.7" typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] -tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"] +tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] [[package]] name = "astroid" @@ -41,6 +41,7 @@ python-versions = ">=3.6.2" [package.dependencies] lazy-object-proxy = ">=1.4.0" +setuptools = ">=20.0" typed-ast = {version = ">=1.4.0,<2.0", markers = "implementation_name == \"cpython\" and python_version < \"3.8\""} typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} wrapt = ">=1.11,<2" @@ -65,10 +66,10 @@ optional = false python-versions = ">=3.5" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] -docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"] +dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] +docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] +tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] +tests_no_zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] [[package]] name = "bandit" @@ -85,9 +86,9 @@ PyYAML = ">=5.3.1" stevedore = ">=1.20.0" [package.extras] -test = ["coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "toml", "beautifulsoup4 (>=4.8.0)", "pylint (==1.9.4)"] +test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "toml"] toml = ["toml"] -yaml = ["pyyaml"] +yaml = ["PyYAML"] [[package]] name = "billiard" @@ -99,7 +100,7 @@ python-versions = "*" [[package]] name = "black" -version = "22.6.0" +version = "22.8.0" description = "The uncompromising code formatter." category = "dev" optional = false @@ -206,7 +207,7 @@ s3 = ["boto3 (>=1.9.125)"] slmq = ["softlayer-messaging (>=1.0.3)"] solar = ["ephem"] sqlalchemy = ["sqlalchemy"] -sqs = ["kombu"] +sqs = ["kombu[sqs]"] tblib = ["tblib (>=1.3.0)", "tblib (>=1.5.0)"] yaml = ["PyYAML (>=3.10)"] zookeeper = ["kazoo (>=1.3.1)"] @@ -214,7 +215,7 @@ zstd = ["zstandard"] [[package]] name = "certifi" -version = "2022.6.15" +version = "2022.9.14" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false @@ -277,7 +278,7 @@ python-versions = "*" click = ">=4.0" [package.extras] -dev = ["pytest (>=3.6)", "pytest-cov", "wheel", "coveralls"] +dev = ["coveralls", "pytest (>=3.6)", "pytest-cov", "wheel"] [[package]] name = "click-repl" @@ -338,7 +339,7 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "37.0.4" +version = "38.0.1" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." category = "main" optional = false @@ -349,11 +350,11 @@ cffi = ">=1.12" [package.extras] docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"] -docstest = ["pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"] +docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] -sdist = ["setuptools_rust (>=0.11.4)"] +sdist = ["setuptools-rust (>=0.11.4)"] ssh = ["bcrypt (>=3.1.5)"] -test = ["pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"] +test = ["hypothesis (>=1.11.4,!=3.79.2)", "iso8601", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-subtests", "pytest-xdist", "pytz"] [[package]] name = "defusedxml" @@ -364,7 +365,7 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] -name = "deprecated" +name = "Deprecated" version = "1.2.13" description = "Python @deprecated decorator to deprecate old python classes, functions or methods." category = "main" @@ -375,7 +376,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" wrapt = ">=1.10,<2" [package.extras] -dev = ["tox", "bump2version (<1)", "sphinx (<2)", "importlib-metadata (<3)", "importlib-resources (<4)", "configparser (<5)", "sphinxcontrib-websupport (<2)", "zipp (<2)", "PyTest (<5)", "PyTest-Cov (<2.6)", "pytest", "pytest-cov"] +dev = ["PyTest", "PyTest (<5)", "PyTest-Cov", "PyTest-Cov (<2.6)", "bump2version (<1)", "configparser (<5)", "importlib-metadata (<3)", "importlib-resources (<4)", "sphinx (<2)", "sphinxcontrib-websupport (<2)", "tox", "zipp (<2)"] [[package]] name = "dill" @@ -389,7 +390,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, graph = ["objgraph (>=1.7.2)"] [[package]] -name = "django" +name = "Django" version = "3.1.14" description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design." category = "main" @@ -695,7 +696,7 @@ Django = "*" [package.extras] gunicorn = ["gunicorn"] pyuwsgi = ["pyuwsgi"] -test = ["pytest", "mock"] +test = ["mock", "pytest"] uvicorn = ["uvicorn (>0.6)"] waitress = ["waitress"] @@ -767,7 +768,7 @@ python-versions = "*" python-dateutil = ">=2.8.1" [package.extras] -dev = ["twine", "markdown", "flake8", "wheel"] +dev = ["flake8", "markdown", "twine", "wheel"] [[package]] name = "gitdb" @@ -781,7 +782,7 @@ python-versions = ">=3.6" smmap = ">=3.0.1,<6" [[package]] -name = "gitpython" +name = "GitPython" version = "3.1.18" description = "Python Git Library" category = "main" @@ -809,7 +810,7 @@ six = ">=1.10.0,<2" [package.extras] django = ["graphene-django"] sqlalchemy = ["graphene-sqlalchemy"] -test = ["pytest", "pytest-benchmark", "pytest-cov", "pytest-mock", "fastdiff (==0.2.0)", "snapshottest", "coveralls", "promise", "six", "mock", "pytz", "iso8601"] +test = ["coveralls", "fastdiff (==0.2.0)", "iso8601", "mock", "promise", "pytest", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytz", "six", "snapshottest"] [[package]] name = "graphene-django" @@ -829,9 +830,9 @@ six = ">=1.10.0" text-unidecode = "*" [package.extras] -dev = ["black (==19.10b0)", "flake8 (==3.7.9)", "flake8-black (==0.1.1)", "flake8-bugbear (==20.1.4)", "pytest (>=3.6.3)", "pytest-cov", "coveralls", "mock", "pytz", "pytest-django (>=3.3.2)", "djangorestframework (>=3.6.3)", "django-filter (<2)", "django-filter (>=2)"] +dev = ["black (==19.10b0)", "coveralls", "django-filter (<2)", "django-filter (>=2)", "djangorestframework (>=3.6.3)", "flake8 (==3.7.9)", "flake8-black (==0.1.1)", "flake8-bugbear (==20.1.4)", "mock", "pytest (>=3.6.3)", "pytest-cov", "pytest-django (>=3.3.2)", "pytz"] rest_framework = ["djangorestframework (>=3.6.3)"] -test = ["pytest (>=3.6.3)", "pytest-cov", "coveralls", "mock", "pytz", "pytest-django (>=3.3.2)", "djangorestframework (>=3.6.3)", "django-filter (<2)", "django-filter (>=2)"] +test = ["coveralls", "django-filter (<2)", "django-filter (>=2)", "djangorestframework (>=3.6.3)", "mock", "pytest (>=3.6.3)", "pytest-cov", "pytest-django (>=3.3.2)", "pytz"] [[package]] name = "graphene-django-optimizer" @@ -856,7 +857,7 @@ six = ">=1.10.0" [package.extras] gevent = ["gevent (>=1.1)"] -test = ["six (==1.14.0)", "pyannotate (==1.2.0)", "pytest (==4.6.10)", "pytest-django (==3.9.0)", "pytest-cov (==2.8.1)", "coveralls (==1.11.1)", "cython (==0.29.17)", "gevent (==1.5.0)", "pytest-benchmark (==3.2.3)", "pytest-mock (==2.0.0)"] +test = ["coveralls (==1.11.1)", "cython (==0.29.17)", "gevent (==1.5.0)", "pyannotate (==1.2.0)", "pytest (==4.6.10)", "pytest-benchmark (==3.2.3)", "pytest-cov (==2.8.1)", "pytest-django (==3.9.0)", "pytest-mock (==2.0.0)", "six (==1.14.0)"] [[package]] name = "graphql-relay" @@ -888,7 +889,7 @@ parser = ["pyhcl (>=0.3.10)"] [[package]] name = "idna" -version = "3.3" +version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" category = "main" optional = false @@ -907,8 +908,8 @@ typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] +docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pep517", "pyfakefs", "pytest (>=4.6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy"] [[package]] name = "inflection" @@ -935,10 +936,10 @@ optional = false python-versions = ">=3.6.1,<4.0" [package.extras] -pipfile_deprecated_finder = ["pipreqs", "requirementslib"] -requirements_deprecated_finder = ["pipreqs", "pip-api"] colors = ["colorama (>=0.4.3,<0.5.0)"] +pipfile_deprecated_finder = ["pipreqs", "requirementslib"] plugins = ["setuptools"] +requirements_deprecated_finder = ["pip-api", "pipreqs"] [[package]] name = "itypes" @@ -949,7 +950,7 @@ optional = false python-versions = "*" [[package]] -name = "jinja2" +name = "Jinja2" version = "2.11.3" description = "A very fast and expressive template engine." category = "main" @@ -982,11 +983,12 @@ python-versions = "*" attrs = ">=17.4.0" importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} pyrsistent = ">=0.14.0" +setuptools = "*" six = ">=1.11.0" [package.extras] format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] -format_nongpl = ["idna", "jsonpointer (>1.13)", "webcolors", "rfc3986-validator (>0.1.0)", "rfc3339-validator"] +format_nongpl = ["idna", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "webcolors"] [[package]] name = "kombu" @@ -1027,7 +1029,7 @@ optional = false python-versions = ">=3.6" [[package]] -name = "markdown" +name = "Markdown" version = "3.3.7" description = "Python implementation of Markdown." category = "main" @@ -1041,7 +1043,7 @@ importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} testing = ["coverage", "pyyaml"] [[package]] -name = "markupsafe" +name = "MarkupSafe" version = "2.0.1" description = "Safely add untrusted strings to HTML/XML markup." category = "main" @@ -1110,12 +1112,12 @@ werkzeug = "*" xmltodict = "*" [package.extras] -all = ["PyYAML (>=5.1)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "ecdsa (!=0.15)", "docker (>=2.5.1)", "jsondiff (>=1.1.2)", "aws-xray-sdk (>=0.93,!=0.96)", "idna (>=2.5,<4)", "cfn-lint (>=0.4.0)", "sshpubkeys (>=3.1.0)", "setuptools"] -apigateway = ["python-jose[cryptography] (>=3.1.0,<4.0.0)", "ecdsa (!=0.15)"] +all = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.4.0)", "docker (>=2.5.1)", "ecdsa (!=0.15)", "idna (>=2.5,<4)", "jsondiff (>=1.1.2)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] +apigateway = ["ecdsa (!=0.15)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"] awslambda = ["docker (>=2.5.1)"] batch = ["docker (>=2.5.1)"] -cloudformation = ["docker (>=2.5.1)", "PyYAML (>=5.1)", "cfn-lint (>=0.4.0)"] -cognitoidp = ["python-jose[cryptography] (>=3.1.0,<4.0.0)", "ecdsa (!=0.15)"] +cloudformation = ["PyYAML (>=5.1)", "cfn-lint (>=0.4.0)", "docker (>=2.5.1)"] +cognitoidp = ["ecdsa (!=0.15)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"] ds = ["sshpubkeys (>=3.1.0)"] dynamodb2 = ["docker (>=2.5.1)"] dynamodbstreams = ["docker (>=2.5.1)"] @@ -1124,7 +1126,7 @@ efs = ["sshpubkeys (>=3.1.0)"] iotdata = ["jsondiff (>=1.1.2)"] route53resolver = ["sshpubkeys (>=3.1.0)"] s3 = ["PyYAML (>=5.1)"] -server = ["PyYAML (>=5.1)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "ecdsa (!=0.15)", "docker (>=2.5.1)", "jsondiff (>=1.1.2)", "aws-xray-sdk (>=0.93,!=0.96)", "idna (>=2.5,<4)", "cfn-lint (>=0.4.0)", "sshpubkeys (>=3.1.0)", "setuptools", "flask", "flask-cors"] +server = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.4.0)", "docker (>=2.5.1)", "ecdsa (!=0.15)", "flask", "flask-cors", "idna (>=2.5,<4)", "jsondiff (>=1.1.2)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] ssm = ["PyYAML (>=5.1)", "dataclasses"] xray = ["aws-xray-sdk (>=0.93,!=0.96)", "setuptools"] @@ -1189,9 +1191,9 @@ svgwrite = ">=1.4.1,<1.5.0" [package.extras] all = ["django-auth-ldap (>=3.0.0,<3.1.0)", "django-storages (>=1.12.3,<1.13.0)", "mysqlclient (>=2.0.3,<2.1.0)", "napalm (>=3.3.1,<4.0.0)", "social-auth-core[openidconnect,saml] (>=4.1.0,<4.2.0)"] ldap = ["django-auth-ldap (>=3.0.0,<3.1.0)"] -remote_storage = ["django-storages (>=1.12.3,<1.13.0)"] mysql = ["mysqlclient (>=2.0.3,<2.1.0)"] napalm = ["napalm (>=3.3.1,<4.0.0)"] +remote_storage = ["django-storages (>=1.12.3,<1.13.0)"] sso = ["social-auth-core[openidconnect,saml] (>=4.1.0,<4.2.0)"] [[package]] @@ -1212,7 +1214,7 @@ python-versions = ">=3.6,<4.0" [[package]] name = "oauthlib" -version = "3.2.0" +version = "3.2.1" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" category = "main" optional = false @@ -1236,11 +1238,11 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" [[package]] name = "pathspec" -version = "0.9.0" +version = "0.10.1" description = "Utility library for gitignore style pattern matching of file paths." category = "dev" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.7" [[package]] name = "pbr" @@ -1251,7 +1253,7 @@ optional = false python-versions = ">=2.6" [[package]] -name = "pillow" +name = "Pillow" version = "9.0.1" description = "Python Imaging Library (Fork)" category = "main" @@ -1267,8 +1269,8 @@ optional = false python-versions = ">=3.7" [package.extras] -docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"] -test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"] +docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"] +test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] [[package]] name = "prometheus-client" @@ -1293,11 +1295,11 @@ python-versions = "*" six = "*" [package.extras] -test = ["pytest (>=2.7.3)", "pytest-cov", "coveralls", "futures", "pytest-benchmark", "mock"] +test = ["coveralls", "futures", "mock", "pytest (>=2.7.3)", "pytest-benchmark", "pytest-cov"] [[package]] name = "prompt-toolkit" -version = "3.0.30" +version = "3.0.31" description = "Library for building powerful interactive command lines in Python" category = "main" optional = false @@ -1361,18 +1363,18 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] -name = "pyjwt" -version = "2.4.0" +name = "PyJWT" +version = "2.5.0" description = "JSON Web Token implementation in Python" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.extras] -crypto = ["cryptography (>=3.3.1)"] -dev = ["sphinx", "sphinx-rtd-theme", "zope.interface", "cryptography (>=3.3.1)", "pytest (>=6.0.0,<7.0.0)", "coverage[toml] (==5.0.4)", "mypy", "pre-commit"] -docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] -tests = ["pytest (>=6.0.0,<7.0.0)", "coverage[toml] (==5.0.4)"] +crypto = ["cryptography (>=3.3.1)", "types-cryptography (>=3.3.21)"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.3.1)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "types-cryptography (>=3.3.21)", "zope.interface"] +docs = ["sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] [[package]] name = "pylint" @@ -1408,8 +1410,8 @@ pylint = ">=2.0,<3" pylint-plugin-utils = ">=0.7" [package.extras] -for_tests = ["django-tables2", "factory-boy", "coverage", "pytest", "wheel", "django-tastypie", "pylint (>=2.13)"] -with_django = ["django"] +for_tests = ["coverage", "django-tables2", "django-tastypie", "factory-boy", "pylint (>=2.13)", "pytest", "wheel"] +with_django = ["Django"] [[package]] name = "pylint-plugin-utils" @@ -1431,7 +1433,7 @@ optional = false python-versions = ">=3.6.8" [package.extras] -diagrams = ["railroad-diagrams", "jinja2"] +diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pyrsistent" @@ -1510,7 +1512,7 @@ optional = false python-versions = "*" [[package]] -name = "pyyaml" +name = "PyYAML" version = "5.4.1" description = "YAML parser and emitter for Python" category = "main" @@ -1518,7 +1520,7 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" [[package]] -name = "pyyaml-env-tag" +name = "pyyaml_env_tag" version = "0.1" description = "A custom YAML tag for referencing environment variables in YAML files. " category = "dev" @@ -1610,7 +1612,7 @@ typing-extensions = {version = "*", markers = "python_version < \"3.8\""} urllib3 = ">=1.25.10" [package.extras] -tests = ["pytest (>=7.0.0)", "coverage (>=6.0.0)", "pytest-cov", "pytest-asyncio", "pytest-localserver", "flake8", "types-mock", "types-requests", "mypy"] +tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asyncio", "pytest-cov", "pytest-localserver", "types-mock", "types-requests"] [[package]] name = "rq" @@ -1648,7 +1650,7 @@ optional = false python-versions = ">=3.5" [[package]] -name = "rx" +name = "Rx" version = "1.6.1" description = "Reactive Extensions (Rx) for Python" category = "main" @@ -1669,6 +1671,19 @@ botocore = ">=1.12.36,<2.0a.0" [package.extras] crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] +[[package]] +name = "setuptools" +version = "65.3.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mock", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + [[package]] name = "singledispatch" version = "3.7.0" @@ -1681,8 +1696,8 @@ python-versions = ">=2.6" six = "*" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=4.6)", "pytest-flake8", "pytest-cov", "pytest-black (>=0.3.7)", "unittest2", "pytest-checkdocs (>=2.4)"] +docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] +testing = ["pytest (>=4.6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-flake8", "unittest2"] [[package]] name = "six" @@ -1738,11 +1753,11 @@ requests = ">=2.9.1" requests-oauthlib = ">=0.6.1" [package.extras] -all = ["python-jose (>=3.0.0)", "python3-saml (>=1.2.1)", "lxml (<4.7)", "cryptography (>=2.1.1)"] -allpy3 = ["python-jose (>=3.0.0)", "python3-saml (>=1.2.1)", "lxml (<4.7)", "cryptography (>=2.1.1)"] +all = ["cryptography (>=2.1.1)", "lxml (<4.7)", "python-jose (>=3.0.0)", "python3-saml (>=1.2.1)"] +allpy3 = ["cryptography (>=2.1.1)", "lxml (<4.7)", "python-jose (>=3.0.0)", "python3-saml (>=1.2.1)"] azuread = ["cryptography (>=2.1.1)"] openidconnect = ["python-jose (>=3.0.0)"] -saml = ["python3-saml (>=1.2.1)", "lxml (<4.7)"] +saml = ["lxml (<4.7)", "python3-saml (>=1.2.1)"] [[package]] name = "sqlparse" @@ -1774,7 +1789,7 @@ python-versions = ">=3.6" [[package]] name = "swagger-spec-validator" -version = "2.7.4" +version = "2.7.6" description = "Validation of Swagger specifications" category = "main" optional = false @@ -1834,8 +1849,8 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" [package.extras] -brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "urllib3-secure-extra", "ipaddress"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] @@ -1866,7 +1881,7 @@ optional = false python-versions = "*" [[package]] -name = "werkzeug" +name = "Werkzeug" version = "2.1.2" description = "The comprehensive WSGI web application library." category = "dev" @@ -1894,7 +1909,7 @@ python-versions = ">=3.4" [[package]] name = "yamllint" -version = "1.27.1" +version = "1.28.0" description = "A linter for YAML files." category = "dev" optional = false @@ -1903,6 +1918,7 @@ python-versions = ">=3.6" [package.dependencies] pathspec = ">=0.5.3" pyyaml = "*" +setuptools = "*" [[package]] name = "zipp" @@ -1913,8 +1929,8 @@ optional = false python-versions = ">=3.7" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.3)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] +docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] +testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [extras] all = ["boto3", "hvac", "python-tss-sdk"] @@ -1926,7 +1942,7 @@ thycotic = ["python-tss-sdk"] [metadata] lock-version = "1.1" python-versions = "^3.7" -content-hash = "c36c34eb53190bf5a1e66a28f73f9dfdb1b821e425f9de17384ec8aee92eb298" +content-hash = "f4679d7d48d5699627f9fd007dce677b343d84ef32c282777d392a78078f8404" [metadata.files] amqp = [ @@ -1941,12 +1957,18 @@ asgiref = [ {file = "asgiref-3.5.2-py3-none-any.whl", hash = "sha256:1d2880b792ae8757289136f1db2b7b99100ce959b2aa57fd69dab783d05afac4"}, {file = "asgiref-3.5.2.tar.gz", hash = "sha256:4a29362a6acebe09bf1d6640db38c1dc3d9217c68e6f9f6204d72667fc19a424"}, ] -astroid = [] +astroid = [ + {file = "astroid-2.11.7-py3-none-any.whl", hash = "sha256:86b0a340a512c65abf4368b80252754cda17c02cdbbd3f587dddf98112233e7b"}, + {file = "astroid-2.11.7.tar.gz", hash = "sha256:bb24615c77f4837c707669d16907331374ae8a964650a66999da3f5ca68dc946"}, +] async-timeout = [ {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, ] -attrs = [] +attrs = [ + {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, + {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, +] bandit = [ {file = "bandit-1.7.4-py3-none-any.whl", hash = "sha256:412d3f259dab4077d0e7f0c11f50f650cc7d10db905d98f6520a95a18049658a"}, {file = "bandit-1.7.4.tar.gz", hash = "sha256:2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"}, @@ -1955,7 +1977,31 @@ billiard = [ {file = "billiard-3.6.4.0-py3-none-any.whl", hash = "sha256:87103ea78fa6ab4d5c751c4909bcff74617d985de7fa8b672cf8618afd5a875b"}, {file = "billiard-3.6.4.0.tar.gz", hash = "sha256:299de5a8da28a783d51b197d496bef4f1595dd023a93a4f59dde1886ae905547"}, ] -black = [] +black = [ + {file = "black-22.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd"}, + {file = "black-22.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27"}, + {file = "black-22.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747"}, + {file = "black-22.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869"}, + {file = "black-22.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90"}, + {file = "black-22.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe"}, + {file = "black-22.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342"}, + {file = "black-22.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab"}, + {file = "black-22.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3"}, + {file = "black-22.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e"}, + {file = "black-22.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16"}, + {file = "black-22.8.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c"}, + {file = "black-22.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5"}, + {file = "black-22.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411"}, + {file = "black-22.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3"}, + {file = "black-22.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875"}, + {file = "black-22.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c"}, + {file = "black-22.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497"}, + {file = "black-22.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c"}, + {file = "black-22.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41"}, + {file = "black-22.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec"}, + {file = "black-22.8.0-py3-none-any.whl", hash = "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4"}, + {file = "black-22.8.0.tar.gz", hash = "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e"}, +] boto3 = [ {file = "boto3-1.19.12-py3-none-any.whl", hash = "sha256:b9105554477978e80fda1103ff21ecf07502080667730e45383e1d3951c87954"}, {file = "boto3-1.19.12.tar.gz", hash = "sha256:182a2b756a2c2180b473bc8452227062394a24e3701548be23ebc30d85976c64"}, @@ -1973,8 +2019,8 @@ celery = [ {file = "celery-5.2.7.tar.gz", hash = "sha256:fafbd82934d30f8a004f81e8f7a062e31413a23d444be8ee3326553915958c6d"}, ] certifi = [ - {file = "certifi-2022.6.15-py3-none-any.whl", hash = "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"}, - {file = "certifi-2022.6.15.tar.gz", hash = "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d"}, + {file = "certifi-2022.9.14-py3-none-any.whl", hash = "sha256:e232343de1ab72c2aa521b625c80f699e356830fd0e2c620b465b304b17b0516"}, + {file = "certifi-2022.9.14.tar.gz", hash = "sha256:36973885b9542e6bd01dea287b2b4b3b21236307c56324fcc3f1160f2d655ed5"}, ] cffi = [ {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, @@ -2042,7 +2088,10 @@ cffi = [ {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, ] -charset-normalizer = [] +charset-normalizer = [ + {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, + {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, +] click = [ {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, @@ -2120,12 +2169,39 @@ coverage = [ {file = "coverage-6.2-pp36.pp37.pp38-none-any.whl", hash = "sha256:5829192582c0ec8ca4a2532407bc14c2f338d9878a10442f5d03804a95fac9de"}, {file = "coverage-6.2.tar.gz", hash = "sha256:e2cad8093172b7d1595b4ad66f24270808658e11acf43a8f95b41276162eb5b8"}, ] -cryptography = [] +cryptography = [ + {file = "cryptography-38.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:10d1f29d6292fc95acb597bacefd5b9e812099d75a6469004fd38ba5471a977f"}, + {file = "cryptography-38.0.1-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:3fc26e22840b77326a764ceb5f02ca2d342305fba08f002a8c1f139540cdfaad"}, + {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:3b72c360427889b40f36dc214630e688c2fe03e16c162ef0aa41da7ab1455153"}, + {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:194044c6b89a2f9f169df475cc167f6157eb9151cc69af8a2a163481d45cc407"}, + {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca9f6784ea96b55ff41708b92c3f6aeaebde4c560308e5fbbd3173fbc466e94e"}, + {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:16fa61e7481f4b77ef53991075de29fc5bacb582a1244046d2e8b4bb72ef66d0"}, + {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d4ef6cc305394ed669d4d9eebf10d3a101059bdcf2669c366ec1d14e4fb227bd"}, + {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3261725c0ef84e7592597606f6583385fed2a5ec3909f43bc475ade9729a41d6"}, + {file = "cryptography-38.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:0297ffc478bdd237f5ca3a7dc96fc0d315670bfa099c04dc3a4a2172008a405a"}, + {file = "cryptography-38.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:89ed49784ba88c221756ff4d4755dbc03b3c8d2c5103f6d6b4f83a0fb1e85294"}, + {file = "cryptography-38.0.1-cp36-abi3-win32.whl", hash = "sha256:ac7e48f7e7261207d750fa7e55eac2d45f720027d5703cd9007e9b37bbb59ac0"}, + {file = "cryptography-38.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:ad7353f6ddf285aeadfaf79e5a6829110106ff8189391704c1d8801aa0bae45a"}, + {file = "cryptography-38.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:896dd3a66959d3a5ddcfc140a53391f69ff1e8f25d93f0e2e7830c6de90ceb9d"}, + {file = "cryptography-38.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:d3971e2749a723e9084dd507584e2a2761f78ad2c638aa31e80bc7a15c9db4f9"}, + {file = "cryptography-38.0.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:79473cf8a5cbc471979bd9378c9f425384980fcf2ab6534b18ed7d0d9843987d"}, + {file = "cryptography-38.0.1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:d9e69ae01f99abe6ad646947bba8941e896cb3aa805be2597a0400e0764b5818"}, + {file = "cryptography-38.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5067ee7f2bce36b11d0e334abcd1ccf8c541fc0bbdaf57cdd511fdee53e879b6"}, + {file = "cryptography-38.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:3e3a2599e640927089f932295a9a247fc40a5bdf69b0484532f530471a382750"}, + {file = "cryptography-38.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c2e5856248a416767322c8668ef1845ad46ee62629266f84a8f007a317141013"}, + {file = "cryptography-38.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:64760ba5331e3f1794d0bcaabc0d0c39e8c60bf67d09c93dc0e54189dfd7cfe5"}, + {file = "cryptography-38.0.1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b6c9b706316d7b5a137c35e14f4103e2115b088c412140fdbd5f87c73284df61"}, + {file = "cryptography-38.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0163a849b6f315bf52815e238bc2b2346604413fa7c1601eea84bcddb5fb9ac"}, + {file = "cryptography-38.0.1-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:d1a5bd52d684e49a36582193e0b89ff267704cd4025abefb9e26803adeb3e5fb"}, + {file = "cryptography-38.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:765fa194a0f3372d83005ab83ab35d7c5526c4e22951e46059b8ac678b44fa5a"}, + {file = "cryptography-38.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:52e7bee800ec869b4031093875279f1ff2ed12c1e2f74923e8f49c916afd1d3b"}, + {file = "cryptography-38.0.1.tar.gz", hash = "sha256:1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7"}, +] defusedxml = [ {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, ] -deprecated = [ +Deprecated = [ {file = "Deprecated-1.2.13-py2.py3-none-any.whl", hash = "sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d"}, {file = "Deprecated-1.2.13.tar.gz", hash = "sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d"}, ] @@ -2133,7 +2209,7 @@ dill = [ {file = "dill-0.3.5.1-py2.py3-none-any.whl", hash = "sha256:33501d03270bbe410c72639b350e941882a8b0fd55357580fbc873fba0c59302"}, {file = "dill-0.3.5.1.tar.gz", hash = "sha256:d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86"}, ] -django = [ +Django = [ {file = "Django-3.1.14-py3-none-any.whl", hash = "sha256:0fabc786489af16ad87a8c170ba9d42bfd23f7b699bd5ef05675864e8d012859"}, {file = "Django-3.1.14.tar.gz", hash = "sha256:72a4a5a136a214c39cf016ccdd6b69e2aa08c7479c66d93f3a9b5e4bb9d8a347"}, ] @@ -2232,7 +2308,10 @@ djangorestframework = [ {file = "djangorestframework-3.12.4-py3-none-any.whl", hash = "sha256:6d1d59f623a5ad0509fe0d6bfe93cbdfe17b8116ebc8eda86d45f6e16e819aaf"}, {file = "djangorestframework-3.12.4.tar.gz", hash = "sha256:f747949a8ddac876e879190df194b925c177cdeb725a099db1460872f7c0a7f2"}, ] -drf-yasg = [] +drf-yasg = [ + {file = "drf-yasg-1.20.3.tar.gz", hash = "sha256:1c66929fba56724c477951ab07266e69bbd0cb280e84b675957df19e3b567958"}, + {file = "drf_yasg-1.20.3-py2.py3-none-any.whl", hash = "sha256:915a16dae564143ebcbc1787e4aaad38062ccd95d1e6f97c2d33086575335bb8"}, +] flake8 = [ {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, @@ -2249,7 +2328,7 @@ gitdb = [ {file = "gitdb-4.0.9-py3-none-any.whl", hash = "sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd"}, {file = "gitdb-4.0.9.tar.gz", hash = "sha256:bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa"}, ] -gitpython = [ +GitPython = [ {file = "GitPython-3.1.18-py3-none-any.whl", hash = "sha256:fce760879cd2aebd2991b3542876dc5c4a909b30c9d69dfc488e504a8db37ee8"}, {file = "GitPython-3.1.18.tar.gz", hash = "sha256:b838a895977b45ab6f0cc926a9045c8d1c44e2b653c1fcc39fe91f42c6e8f05b"}, ] @@ -2277,8 +2356,8 @@ hvac = [ {file = "hvac-0.11.2.tar.gz", hash = "sha256:f905c59d32d88d3f67571fe5a8a78de4659e04798ad809de439f667247d13626"}, ] idna = [ - {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, - {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, ] importlib-metadata = [ {file = "importlib_metadata-4.4.0-py3-none-any.whl", hash = "sha256:960d52ba7c21377c990412aca380bf3642d734c2eaab78a2c39319f67c6a5786"}, @@ -2300,7 +2379,7 @@ itypes = [ {file = "itypes-1.2.0-py2.py3-none-any.whl", hash = "sha256:03da6872ca89d29aef62773672b2d408f490f80db48b23079a4b194c86dd04c6"}, {file = "itypes-1.2.0.tar.gz", hash = "sha256:af886f129dea4a2a1e3d36595a2d139589e4dd287f5cab0b40e799ee81570ff1"}, ] -jinja2 = [ +Jinja2 = [ {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"}, {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"}, ] @@ -2355,17 +2434,33 @@ lazy-object-proxy = [ {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, ] -markdown = [ +Markdown = [ {file = "Markdown-3.3.7-py3-none-any.whl", hash = "sha256:f5da449a6e1c989a4cea2631aa8ee67caa5a2ef855d551c88f9e309f4634c621"}, {file = "Markdown-3.3.7.tar.gz", hash = "sha256:cbb516f16218e643d8e0a95b309f77eb118cb138d39a4f27851e6a63581db874"}, ] -markupsafe = [ +MarkupSafe = [ + {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, @@ -2374,14 +2469,27 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, @@ -2391,6 +2499,12 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"}, {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"}, {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, @@ -2403,7 +2517,10 @@ mergedeep = [ {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, ] -mkdocs = [] +mkdocs = [ + {file = "mkdocs-1.3.1-py3-none-any.whl", hash = "sha256:fda92466393127d2da830bc6edc3a625a14b436316d1caf347690648e774c4f0"}, + {file = "mkdocs-1.3.1.tar.gz", hash = "sha256:a41a2ff25ce3bbacc953f9844ba07d106233cd76c88bac1f59cb1564ac0d87ed"}, +] moto = [ {file = "moto-2.2.20-py2.py3-none-any.whl", hash = "sha256:20f06e51dbdeb3ed76989f733e4e51472cbfe39dda031a49da66fc8df1bcefa4"}, {file = "moto-2.2.20.tar.gz", hash = "sha256:aa6479df35b47d4df0c3214e118c328df67d9f4e157ec5523ce87a23fecf93f6"}, @@ -2425,19 +2542,25 @@ netutils = [ {file = "netutils-1.0.0.tar.gz", hash = "sha256:ead1d927374a76a9ff78867b5f72b66cd26eaa9ec9e8d00e12e8085694a0275a"}, ] oauthlib = [ - {file = "oauthlib-3.2.0-py3-none-any.whl", hash = "sha256:6db33440354787f9b7f3a6dbd4febf5d0f93758354060e802f6c06cb493022fe"}, - {file = "oauthlib-3.2.0.tar.gz", hash = "sha256:23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2"}, + {file = "oauthlib-3.2.1-py3-none-any.whl", hash = "sha256:88e912ca1ad915e1dcc1c06fc9259d19de8deacd6fd17cc2df266decc2e49066"}, + {file = "oauthlib-3.2.1.tar.gz", hash = "sha256:1565237372795bf6ee3e5aba5e2a85bd5a65d0e2aa5c628b9a97b7d7a0da3721"}, ] packaging = [ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, ] pathspec = [ - {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, - {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, + {file = "pathspec-0.10.1-py3-none-any.whl", hash = "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93"}, + {file = "pathspec-0.10.1.tar.gz", hash = "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d"}, ] -pbr = [] -pillow = [ +pbr = [ + {file = "pbr-5.10.0-py2.py3-none-any.whl", hash = "sha256:da3e18aac0a3c003e9eea1a81bd23e5a3a75d745670dcf736317b7d966887fdf"}, + {file = "pbr-5.10.0.tar.gz", hash = "sha256:cfcc4ff8e698256fc17ea3ff796478b050852585aa5bae79ecd05b2ab7b39b9a"}, +] +Pillow = [ + {file = "Pillow-9.0.1-1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a5d24e1d674dd9d72c66ad3ea9131322819ff86250b30dc5821cbafcfa0b96b4"}, + {file = "Pillow-9.0.1-1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2632d0f846b7c7600edf53c48f8f9f1e13e62f66a6dbc15191029d950bfed976"}, + {file = "Pillow-9.0.1-1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b9618823bd237c0d2575283f2939655f54d51b4527ec3972907a927acbcc5bfc"}, {file = "Pillow-9.0.1-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:9bfdb82cdfeccec50aad441afc332faf8606dfa5e8efd18a6692b5d6e79f00fd"}, {file = "Pillow-9.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5100b45a4638e3c00e4d2320d3193bdabb2d75e79793af7c3eb139e4f569f16f"}, {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:528a2a692c65dd5cafc130de286030af251d2ee0483a5bf50c9348aefe834e8a"}, @@ -2483,8 +2606,8 @@ promise = [ {file = "promise-2.3.tar.gz", hash = "sha256:dfd18337c523ba4b6a58801c164c1904a9d4d1b1747c7d5dbf45b693a49d93d0"}, ] prompt-toolkit = [ - {file = "prompt_toolkit-3.0.30-py3-none-any.whl", hash = "sha256:d8916d3f62a7b67ab353a952ce4ced6a1d2587dfe9ef8ebc30dd7c386751f289"}, - {file = "prompt_toolkit-3.0.30.tar.gz", hash = "sha256:859b283c50bde45f5f97829f77a4674d1c1fcd88539364f1b28a37805cfd89c0"}, + {file = "prompt_toolkit-3.0.31-py3-none-any.whl", hash = "sha256:9696f386133df0fc8ca5af4895afe5d78f5fcfe5258111c2a79a1c3e41ffa96d"}, + {file = "prompt_toolkit-3.0.31.tar.gz", hash = "sha256:9ada952c9d1787f52ff6d5f3484d0b4df8952787c087edf6a1f7c2cb1ea88148"}, ] psycopg2-binary = [ {file = "psycopg2-binary-2.8.6.tar.gz", hash = "sha256:11b9c0ebce097180129e422379b824ae21c8f2a6596b159c7659e2e5a00e1aa0"}, @@ -2571,9 +2694,9 @@ pyflakes = [ {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, ] -pyjwt = [ - {file = "PyJWT-2.4.0-py3-none-any.whl", hash = "sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf"}, - {file = "PyJWT-2.4.0.tar.gz", hash = "sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba"}, +PyJWT = [ + {file = "PyJWT-2.5.0-py3-none-any.whl", hash = "sha256:8d82e7087868e94dd8d7d418e5088ce64f7daab4b36db654cbaedb46f9d1ca80"}, + {file = "PyJWT-2.5.0.tar.gz", hash = "sha256:e77ab89480905d86998442ac5788f35333fa85f65047a534adc38edf3c88fc3b"}, ] pylint = [ {file = "pylint-2.13.9-py3-none-any.whl", hash = "sha256:705c620d388035bdd9ff8b44c5bcdd235bfb49d276d488dd2c8ff1736aa42526"}, @@ -2621,12 +2744,18 @@ python-dateutil = [ {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, ] -python-tss-sdk = [] +python-tss-sdk = [ + {file = "python-tss-sdk-1.2.0.tar.gz", hash = "sha256:5d28ede8a00cd121e03c97b2eef3f966415ca53f3af9754d13c1e15af6497676"}, + {file = "python_tss_sdk-1.2.0-py3-none-any.whl", hash = "sha256:5c4f36ed9d70f9c4c2b549710845f1ba4fd99fd7dad859dc8b813854125e78f6"}, +] python3-openid = [ {file = "python3-openid-3.2.0.tar.gz", hash = "sha256:33fbf6928f401e0b790151ed2b5290b02545e8775f982485205a066f874aaeaf"}, {file = "python3_openid-3.2.0-py3-none-any.whl", hash = "sha256:6626f771e0417486701e0b4daff762e7212e820ca5b29fcc0d05f6f8736dfa6b"}, ] -pytz = [] +pytz = [ + {file = "pytz-2022.2.1-py2.py3-none-any.whl", hash = "sha256:220f481bdafa09c3955dfbdddb7b57780e9a94f5127e35456a48589b9e0c0197"}, + {file = "pytz-2022.2.1.tar.gz", hash = "sha256:cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5"}, +] pyuwsgi = [ {file = "pyuwsgi-2.0.20-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd09a7328558728f6e38f77609f44d16f18d8b4dc5f8b8776f657c8892b70337"}, {file = "pyuwsgi-2.0.20-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:210ad768b8af02bbfd3c0345a51c6d2c56a2333ac268d9a97ecf2d4209f78ef8"}, @@ -2665,7 +2794,7 @@ pyuwsgi = [ {file = "pyuwsgi-2.0.20-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1acedb1841aa0e60e1a7245ae483a5fcb30e39cf0cdfe3987e14de4746daf75b"}, {file = "pyuwsgi-2.0.20.tar.gz", hash = "sha256:8b0936a964511fa0e2ac2847c2435e95130e7c98619f06fe1f67320527576043"}, ] -pyyaml = [ +PyYAML = [ {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"}, {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"}, {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"}, @@ -2696,7 +2825,7 @@ pyyaml = [ {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"}, {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, ] -pyyaml-env-tag = [ +pyyaml_env_tag = [ {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, ] @@ -2704,7 +2833,10 @@ redis = [ {file = "redis-4.3.4-py3-none-any.whl", hash = "sha256:a52d5694c9eb4292770084fa8c863f79367ca19884b329ab574d5cb2036b3e54"}, {file = "redis-4.3.4.tar.gz", hash = "sha256:ddf27071df4adf3821c4f2ca59d67525c3a82e5f268bed97b813cb4fabf87880"}, ] -requests = [] +requests = [ + {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, + {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, +] requests-mock = [ {file = "requests-mock-1.9.3.tar.gz", hash = "sha256:8d72abe54546c1fc9696fa1516672f1031d72a55a1d66c85184f972a24ba0eba"}, {file = "requests_mock-1.9.3-py2.py3-none-any.whl", hash = "sha256:0a2d38a117c08bb78939ec163522976ad59a6b7fdd82b709e23bb98004a44970"}, @@ -2713,36 +2845,51 @@ requests-oauthlib = [ {file = "requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"}, {file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"}, ] -responses = [] -rq = [] +responses = [ + {file = "responses-0.21.0-py3-none-any.whl", hash = "sha256:2dcc863ba63963c0c3d9ee3fa9507cbe36b7d7b0fccb4f0bdfd9e96c539b1487"}, + {file = "responses-0.21.0.tar.gz", hash = "sha256:b82502eb5f09a0289d8e209e7bad71ef3978334f56d09b444253d5ad67bf5253"}, +] +rq = [ + {file = "rq-1.11.0-py2.py3-none-any.whl", hash = "sha256:c0bbf898b56817da053cdc992ab46da2729a7ccd70dd50316ad9209b7d7b71c1"}, + {file = "rq-1.11.0.tar.gz", hash = "sha256:50d0cf687cfb2530eac9396c7426e420958a166e8f4666bd2096bdcf7f4ad03e"}, +] "ruamel.yaml" = [ {file = "ruamel.yaml-0.17.21-py3-none-any.whl", hash = "sha256:742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7"}, {file = "ruamel.yaml-0.17.21.tar.gz", hash = "sha256:8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af"}, ] "ruamel.yaml.clib" = [ + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6e7be2c5bcb297f5b82fee9c665eb2eb7001d1050deaba8471842979293a80b0"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:066f886bc90cc2ce44df8b5f7acfc6a7e2b2e672713f027136464492b0c34d7c"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:221eca6f35076c6ae472a531afa1c223b9c29377e62936f61bc8e6e8bdc5f9e7"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win32.whl", hash = "sha256:1070ba9dd7f9370d0513d649420c3b362ac2d687fe78c6e888f5b12bf8bc7bee"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:77df077d32921ad46f34816a9a16e6356d8100374579bc35e15bab5d4e9377de"}, {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:cfdb9389d888c5b74af297e51ce357b800dd844898af9d4a547ffc143fa56751"}, {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7b2927e92feb51d830f531de4ccb11b320255ee95e791022555971c466af4527"}, {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win32.whl", hash = "sha256:ada3f400d9923a190ea8b59c8f60680c4ef8a4b0dfae134d2f2ff68429adfab5"}, {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win_amd64.whl", hash = "sha256:de9c6b8a1ba52919ae919f3ae96abb72b994dd0350226e28f3686cb4f142165c"}, {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d67f273097c368265a7b81e152e07fb90ed395df6e552b9fa858c6d2c9f42502"}, {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:72a2b8b2ff0a627496aad76f37a652bcef400fd861721744201ef1b45199ab78"}, + {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:d3c620a54748a3d4cf0bcfe623e388407c8e85a4b06b8188e126302bcab93ea8"}, {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win32.whl", hash = "sha256:9efef4aab5353387b07f6b22ace0867032b900d8e91674b5d8ea9150db5cae94"}, {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win_amd64.whl", hash = "sha256:846fc8336443106fe23f9b6d6b8c14a53d38cef9a375149d61f99d78782ea468"}, {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0847201b767447fc33b9c235780d3aa90357d20dd6108b92be544427bea197dd"}, {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:78988ed190206672da0f5d50c61afef8f67daa718d614377dcd5e3ed85ab4a99"}, + {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:210c8fcfeff90514b7133010bf14e3bad652c8efde6b20e00c43854bf94fa5a6"}, {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win32.whl", hash = "sha256:a49e0161897901d1ac9c4a79984b8410f450565bbad64dbfcbf76152743a0cdb"}, {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win_amd64.whl", hash = "sha256:bf75d28fa071645c529b5474a550a44686821decebdd00e21127ef1fd566eabe"}, {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a32f8d81ea0c6173ab1b3da956869114cae53ba1e9f72374032e33ba3118c233"}, {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7f7ecb53ae6848f959db6ae93bdff1740e651809780822270eab111500842a84"}, + {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:61bc5e5ca632d95925907c569daa559ea194a4d16084ba86084be98ab1cec1c6"}, {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win32.whl", hash = "sha256:89221ec6d6026f8ae859c09b9718799fea22c0e8da8b766b0b2c9a9ba2db326b"}, {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win_amd64.whl", hash = "sha256:31ea73e564a7b5fbbe8188ab8b334393e06d997914a4e184975348f204790277"}, {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc6a613d6c74eef5a14a214d433d06291526145431c3b964f5e16529b1842bed"}, {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:1866cf2c284a03b9524a5cc00daca56d80057c5ce3cdc86a52020f4c720856f0"}, + {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1b4139a6ffbca8ef60fdaf9b33dec05143ba746a6f0ae0f9d11d38239211d335"}, {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win32.whl", hash = "sha256:3fb9575a5acd13031c57a62cc7823e5d2ff8bc3835ba4d94b921b4e6ee664104"}, {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:825d5fccef6da42f3c8eccd4281af399f21c02b32d98e113dbc631ea6a6ecbc7"}, {file = "ruamel.yaml.clib-0.2.6.tar.gz", hash = "sha256:4ff604ce439abb20794f05613c374759ce10e3595d1867764dd1ae675b85acbd"}, ] -rx = [ +Rx = [ {file = "Rx-1.6.1-py2.py3-none-any.whl", hash = "sha256:7357592bc7e881a95e0c2013b73326f704953301ab551fbc8133a6fadab84105"}, {file = "Rx-1.6.1.tar.gz", hash = "sha256:13a1d8d9e252625c173dc795471e614eadfe1cf40ffc684e08b8fff0d9748c23"}, ] @@ -2750,6 +2897,10 @@ s3transfer = [ {file = "s3transfer-0.5.2-py3-none-any.whl", hash = "sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971"}, {file = "s3transfer-0.5.2.tar.gz", hash = "sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed"}, ] +setuptools = [ + {file = "setuptools-65.3.0-py3-none-any.whl", hash = "sha256:2e24e0bec025f035a2e72cdd1961119f557d78ad331bb00ff82efb2ab8da8e82"}, + {file = "setuptools-65.3.0.tar.gz", hash = "sha256:7732871f4f7fa58fb6bdcaeadb0161b2bd046c85905dbaa066bdcbcc81953b57"}, +] singledispatch = [ {file = "singledispatch-3.7.0-py2.py3-none-any.whl", hash = "sha256:bc77afa97c8a22596d6d4fc20f1b7bdd2b86edc2a65a4262bdd7cc3cc19aa989"}, {file = "singledispatch-3.7.0.tar.gz", hash = "sha256:c1a4d5c1da310c3fd8fccfb8d4e1cb7df076148fd5d858a819e37fffe44f3092"}, @@ -2783,10 +2934,13 @@ stevedore = [ {file = "stevedore-3.5.0-py3-none-any.whl", hash = "sha256:a547de73308fd7e90075bb4d301405bebf705292fa90a90fc3bcf9133f58616c"}, {file = "stevedore-3.5.0.tar.gz", hash = "sha256:f40253887d8712eaa2bb0ea3830374416736dc8ec0e22f5a65092c1174c44335"}, ] -svgwrite = [] +svgwrite = [ + {file = "svgwrite-1.4.3-py3-none-any.whl", hash = "sha256:bb6b2b5450f1edbfa597d924f9ac2dd099e625562e492021d7dd614f65f8a22d"}, + {file = "svgwrite-1.4.3.zip", hash = "sha256:a8fbdfd4443302a6619a7f76bc937fc683daf2628d9b737c891ec08b8ce524c3"}, +] swagger-spec-validator = [ - {file = "swagger-spec-validator-2.7.4.tar.gz", hash = "sha256:2aee5e1fc0503be9f8299378b10c92169572781573c6de3315e831fd0559ba73"}, - {file = "swagger_spec_validator-2.7.4-py2.py3-none-any.whl", hash = "sha256:4e373a4db5262e7257fde17d84c5c0178327b8057985ab1be63f580bfa009855"}, + {file = "swagger-spec-validator-2.7.6.tar.gz", hash = "sha256:73f33e631a58f407265f2f813d194f2762a2b86f9aa905e7eee3df9b7f9428d3"}, + {file = "swagger_spec_validator-2.7.6-py2.py3-none-any.whl", hash = "sha256:ff55d671f4cf8a386e7ecda60267d6cdd2cfbe0b3521a8ccf09b0669cbb72ab6"}, ] text-unidecode = [ {file = "text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93"}, @@ -2796,13 +2950,44 @@ tomli = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] -typed-ast = [] -typing-extensions = [] +typed-ast = [ + {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, + {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, + {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, + {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, + {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, + {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, + {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, + {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, + {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, + {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, +] +typing-extensions = [ + {file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"}, + {file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"}, +] uritemplate = [ {file = "uritemplate-4.1.1-py2.py3-none-any.whl", hash = "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e"}, {file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"}, ] -urllib3 = [] +urllib3 = [ + {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, + {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, +] vine = [ {file = "vine-5.0.0-py2.py3-none-any.whl", hash = "sha256:4c9dceab6f76ed92105027c49c823800dd33cacce13bdedc5b914e3514b7fb30"}, {file = "vine-5.0.0.tar.gz", hash = "sha256:7d3b1624a953da82ef63462013bbd271d3eb75751489f9807598e8f340bd637e"}, @@ -2838,7 +3023,10 @@ wcwidth = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, ] -werkzeug = [] +Werkzeug = [ + {file = "Werkzeug-2.1.2-py3-none-any.whl", hash = "sha256:72a4b735692dd3135217911cbeaa1be5fa3f62bffb8745c5215420a03dc55255"}, + {file = "Werkzeug-2.1.2.tar.gz", hash = "sha256:1ce08e8093ed67d638d63879fd1ba3735817f7a80de3674d293f5984f25fb6e6"}, +] wrapt = [ {file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"}, {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"}, @@ -2905,6 +3093,14 @@ wrapt = [ {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"}, {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"}, ] -xmltodict = [] -yamllint = [] -zipp = [] +xmltodict = [ + {file = "xmltodict-0.13.0-py2.py3-none-any.whl", hash = "sha256:aa89e8fd76320154a40d19a0df04a4695fb9dc5ba977cbb68ab3e4eb225e7852"}, + {file = "xmltodict-0.13.0.tar.gz", hash = "sha256:341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56"}, +] +yamllint = [ + {file = "yamllint-1.28.0.tar.gz", hash = "sha256:9e3d8ddd16d0583214c5fdffe806c9344086721f107435f68bad990e5a88826b"}, +] +zipp = [ + {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, + {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, +] diff --git a/pyproject.toml b/pyproject.toml index 825c318..71ec2c3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ boto3 = "~1.19.5" # (always keep in sync w/ optional dependency) coverage = "~6.2" django-debug-toolbar = "*" flake8 = ">=3.9.2" -hvac = "~0.11.0" # (always keep in sync w/ optional dependency) +hvac = ">=0.11.0, <1.1.0" # (always keep in sync w/ optional dependency) invoke = "*" moto = "~2.2.11" mkdocs = "*" From c7531e63a5a0b991109edd88ab1867c20bb0c55a Mon Sep 17 00:00:00 2001 From: Nick Niehoff Date: Mon, 19 Sep 2022 12:50:08 -0600 Subject: [PATCH 04/19] PR Comments --- poetry.lock | 28 ++++++++++++++++++---------- pyproject.toml | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/poetry.lock b/poetry.lock index 850ea2f..31bc6a2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -874,18 +874,15 @@ six = ">=1.12" [[package]] name = "hvac" -version = "0.11.2" +version = "1.0.2" description = "HashiCorp Vault API client" category = "main" optional = false -python-versions = ">=2.7" +python-versions = ">=3.6.2,<4.0.0" [package.dependencies] -requests = ">=2.21.0" -six = ">=1.5.0" - -[package.extras] -parser = ["pyhcl (>=0.3.10)"] +pyhcl = ">=0.4.4,<0.5.0" +requests = ">=2.27.1,<3.0.0" [[package]] name = "idna" @@ -1362,6 +1359,14 @@ category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +[[package]] +name = "pyhcl" +version = "0.4.4" +description = "HCL configuration parser for python" +category = "main" +optional = false +python-versions = "*" + [[package]] name = "PyJWT" version = "2.5.0" @@ -1942,7 +1947,7 @@ thycotic = ["python-tss-sdk"] [metadata] lock-version = "1.1" python-versions = "^3.7" -content-hash = "f4679d7d48d5699627f9fd007dce677b343d84ef32c282777d392a78078f8404" +content-hash = "87ead43a2cf693c09d2e67530958398271dd4e3dc7cd77ef7ab0ec83d3ff897a" [metadata.files] amqp = [ @@ -2352,8 +2357,8 @@ graphql-relay = [ {file = "graphql_relay-2.0.1-py3-none-any.whl", hash = "sha256:ac514cb86db9a43014d7e73511d521137ac12cf0101b2eaa5f0a3da2e10d913d"}, ] hvac = [ - {file = "hvac-0.11.2-py2.py3-none-any.whl", hash = "sha256:3e8a34804b1e20954a2b4991cc13ed9c09b32e50dadd9d3438224481150f6568"}, - {file = "hvac-0.11.2.tar.gz", hash = "sha256:f905c59d32d88d3f67571fe5a8a78de4659e04798ad809de439f667247d13626"}, + {file = "hvac-1.0.2-py3-none-any.whl", hash = "sha256:e8256343de2576b18bc8d49f09a04c728f2a8f3a866825bb413aa4f9ebab1fea"}, + {file = "hvac-1.0.2.tar.gz", hash = "sha256:e4028c5c0ecc7b7fcf6a54d290f99240e5abcdb9ffe442d1c14f061310d4c61c"}, ] idna = [ {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, @@ -2694,6 +2699,9 @@ pyflakes = [ {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, ] +pyhcl = [ + {file = "pyhcl-0.4.4.tar.gz", hash = "sha256:2d9b9dcdf1023d812bfed561ba72c99104c5b3f52e558d595130a44ce081b003"}, +] PyJWT = [ {file = "PyJWT-2.5.0-py3-none-any.whl", hash = "sha256:8d82e7087868e94dd8d7d418e5088ce64f7daab4b36db654cbaedb46f9d1ca80"}, {file = "PyJWT-2.5.0.tar.gz", hash = "sha256:e77ab89480905d86998442ac5788f35333fa85f65047a534adc38edf3c88fc3b"}, diff --git a/pyproject.toml b/pyproject.toml index 71ec2c3..8b1607c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ nautobot = "~1.2.1" # AWS SDK for Python (always keep in sync w/ dev dependency) boto3 = { version = "~1.19.5", optional = true } # HashiCorp Vault API Client (always keep in sync w/ dev dependency) -hvac = { version = "~0.11.0", optional = true } +hvac = { version = ">=0.11.0, <1.1.0", optional = true } # Thycotic Secret Server (always keep in sync w/ dev dependency) python-tss-sdk = {version = "~1.2.0", optional = true} From a127e54154b2206d7047bbc1dc0e07aca7acc4d4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Dec 2022 08:12:28 +0000 Subject: [PATCH 05/19] Bump certifi from 2022.9.14 to 2022.12.7 Bumps [certifi](https://github.com/certifi/python-certifi) from 2022.9.14 to 2022.12.7. - [Release notes](https://github.com/certifi/python-certifi/releases) - [Commits](https://github.com/certifi/python-certifi/compare/2022.09.14...2022.12.07) --- updated-dependencies: - dependency-name: certifi dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/poetry.lock b/poetry.lock index 31bc6a2..3800aed 100644 --- a/poetry.lock +++ b/poetry.lock @@ -69,7 +69,7 @@ python-versions = ">=3.5" dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] -tests_no_zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] +tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] [[package]] name = "bandit" @@ -215,7 +215,7 @@ zstd = ["zstandard"] [[package]] name = "certifi" -version = "2022.9.14" +version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false @@ -241,7 +241,7 @@ optional = false python-versions = ">=3.6.0" [package.extras] -unicode_backport = ["unicodedata2"] +unicode-backport = ["unicodedata2"] [[package]] name = "click" @@ -639,7 +639,7 @@ redis = ">=3" rq = ">=1.2" [package.extras] -Sentry = ["raven (>=6.1.0)"] +sentry = ["raven (>=6.1.0)"] testing = ["mock (>=2.0.0)"] [[package]] @@ -680,7 +680,7 @@ django = ">=2.2" pytz = "*" [package.extras] -rest_framework = ["djangorestframework (>=3.0.0)"] +rest-framework = ["djangorestframework (>=3.0.0)"] [[package]] name = "django-webserver" @@ -831,7 +831,7 @@ text-unidecode = "*" [package.extras] dev = ["black (==19.10b0)", "coveralls", "django-filter (<2)", "django-filter (>=2)", "djangorestframework (>=3.6.3)", "flake8 (==3.7.9)", "flake8-black (==0.1.1)", "flake8-bugbear (==20.1.4)", "mock", "pytest (>=3.6.3)", "pytest-cov", "pytest-django (>=3.3.2)", "pytz"] -rest_framework = ["djangorestframework (>=3.6.3)"] +rest-framework = ["djangorestframework (>=3.6.3)"] test = ["coveralls", "django-filter (<2)", "django-filter (>=2)", "djangorestframework (>=3.6.3)", "mock", "pytest (>=3.6.3)", "pytest-cov", "pytest-django (>=3.3.2)", "pytz"] [[package]] @@ -934,9 +934,9 @@ python-versions = ">=3.6.1,<4.0" [package.extras] colors = ["colorama (>=0.4.3,<0.5.0)"] -pipfile_deprecated_finder = ["pipreqs", "requirementslib"] +pipfile-deprecated-finder = ["pipreqs", "requirementslib"] plugins = ["setuptools"] -requirements_deprecated_finder = ["pip-api", "pipreqs"] +requirements-deprecated-finder = ["pip-api", "pipreqs"] [[package]] name = "itypes" @@ -985,7 +985,7 @@ six = ">=1.11.0" [package.extras] format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] -format_nongpl = ["idna", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "webcolors"] +format-nongpl = ["idna", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "webcolors"] [[package]] name = "kombu" @@ -1190,7 +1190,7 @@ all = ["django-auth-ldap (>=3.0.0,<3.1.0)", "django-storages (>=1.12.3,<1.13.0)" ldap = ["django-auth-ldap (>=3.0.0,<3.1.0)"] mysql = ["mysqlclient (>=2.0.3,<2.1.0)"] napalm = ["napalm (>=3.3.1,<4.0.0)"] -remote_storage = ["django-storages (>=1.12.3,<1.13.0)"] +remote-storage = ["django-storages (>=1.12.3,<1.13.0)"] sso = ["social-auth-core[openidconnect,saml] (>=4.1.0,<4.2.0)"] [[package]] @@ -1415,8 +1415,8 @@ pylint = ">=2.0,<3" pylint-plugin-utils = ">=0.7" [package.extras] -for_tests = ["coverage", "django-tables2", "django-tastypie", "factory-boy", "pylint (>=2.13)", "pytest", "wheel"] -with_django = ["Django"] +for-tests = ["coverage", "django-tables2", "django-tastypie", "factory-boy", "pylint (>=2.13)", "pytest", "wheel"] +with-django = ["Django"] [[package]] name = "pylint-plugin-utils" @@ -1570,7 +1570,7 @@ urllib3 = ">=1.21.1,<1.27" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "requests-mock" @@ -2024,8 +2024,8 @@ celery = [ {file = "celery-5.2.7.tar.gz", hash = "sha256:fafbd82934d30f8a004f81e8f7a062e31413a23d444be8ee3326553915958c6d"}, ] certifi = [ - {file = "certifi-2022.9.14-py3-none-any.whl", hash = "sha256:e232343de1ab72c2aa521b625c80f699e356830fd0e2c620b465b304b17b0516"}, - {file = "certifi-2022.9.14.tar.gz", hash = "sha256:36973885b9542e6bd01dea287b2b4b3b21236307c56324fcc3f1160f2d655ed5"}, + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, ] cffi = [ {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, @@ -3106,6 +3106,7 @@ xmltodict = [ {file = "xmltodict-0.13.0.tar.gz", hash = "sha256:341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56"}, ] yamllint = [ + {file = "yamllint-1.28.0-py2.py3-none-any.whl", hash = "sha256:89bb5b5ac33b1ade059743cf227de73daa34d5e5a474b06a5e17fc16583b0cf2"}, {file = "yamllint-1.28.0.tar.gz", hash = "sha256:9e3d8ddd16d0583214c5fdffe806c9344086721f107435f68bad990e5a88826b"}, ] zipp = [ From c8f047d2654c6bf17ced900807ed2d03069f257f Mon Sep 17 00:00:00 2001 From: jifox Date: Wed, 14 Dec 2022 05:29:21 +0100 Subject: [PATCH 06/19] Fix home.html to reference Delinea instead of Thycotic --- .../templates/nautobot_secrets_providers/home.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html b/nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html index 525372a..dbbc4f5 100644 --- a/nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html +++ b/nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html @@ -33,12 +33,12 @@

{% block title %}Secrets Providers Home{% endblock %}

AppRole - Thycotic Secret Server - Secret Server Cloud
- Secret Server (on-prem) - Password Authorization
- Domain Authorization
- Access Token Authorization + Delinea/Thycotic Secret Server + Secret Server Cloud
+ Secret Server (on-prem) + Password Authorization
+ Domain Authorization
+ Access Token Authorization From 5bd7b748159e873b685b563dfd32276dbde998f0 Mon Sep 17 00:00:00 2001 From: Jason Edelman Date: Tue, 20 Dec 2022 09:12:40 -0500 Subject: [PATCH 07/19] Update __init__.py --- nautobot_secrets_providers/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nautobot_secrets_providers/__init__.py b/nautobot_secrets_providers/__init__.py index 4d55719..df7f4f2 100644 --- a/nautobot_secrets_providers/__init__.py +++ b/nautobot_secrets_providers/__init__.py @@ -15,10 +15,10 @@ class NautobotSecretsProvidersConfig(PluginConfig): """Plugin configuration for the nautobot_secrets_providers plugin.""" name = "nautobot_secrets_providers" - verbose_name = "Nautobot Secrets Providers" + verbose_name = "Secrets Management" version = __version__ author = "Network to Code, LLC" - description = "Nautobot Secrets Providers Plugin." + description = "Nautobot App that provides direct integrations with Enterprise secrets management systems. Provides patterns to securely fetch secrets from other Nautobot Apps and Nautobot Jobs." base_url = "secrets" required_settings = [] min_version = "1.2.0" From 21ad3115399cf7b8958cf174aa62ce0337b1776a Mon Sep 17 00:00:00 2001 From: Jason Edelman Date: Tue, 20 Dec 2022 09:56:10 -0500 Subject: [PATCH 08/19] Update nautobot_secrets_providers/__init__.py Co-authored-by: Glenn Matthews --- nautobot_secrets_providers/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nautobot_secrets_providers/__init__.py b/nautobot_secrets_providers/__init__.py index df7f4f2..b4badbd 100644 --- a/nautobot_secrets_providers/__init__.py +++ b/nautobot_secrets_providers/__init__.py @@ -15,7 +15,7 @@ class NautobotSecretsProvidersConfig(PluginConfig): """Plugin configuration for the nautobot_secrets_providers plugin.""" name = "nautobot_secrets_providers" - verbose_name = "Secrets Management" + verbose_name = "Secrets Management Extensions" version = __version__ author = "Network to Code, LLC" description = "Nautobot App that provides direct integrations with Enterprise secrets management systems. Provides patterns to securely fetch secrets from other Nautobot Apps and Nautobot Jobs." From 83aac950476d48505d2038143343725a216063af Mon Sep 17 00:00:00 2001 From: Jason Edelman Date: Tue, 20 Dec 2022 09:58:00 -0500 Subject: [PATCH 09/19] Update __init__.py --- nautobot_secrets_providers/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nautobot_secrets_providers/__init__.py b/nautobot_secrets_providers/__init__.py index b4badbd..b2daf9b 100644 --- a/nautobot_secrets_providers/__init__.py +++ b/nautobot_secrets_providers/__init__.py @@ -18,7 +18,7 @@ class NautobotSecretsProvidersConfig(PluginConfig): verbose_name = "Secrets Management Extensions" version = __version__ author = "Network to Code, LLC" - description = "Nautobot App that provides direct integrations with Enterprise secrets management systems. Provides patterns to securely fetch secrets from other Nautobot Apps and Nautobot Jobs." + description = "Nautobot App that provides direct integrations with Enterprise secrets management systems. Provides patterns to securely fetch secrets for use by other Nautobot Apps and Nautobot Jobs." base_url = "secrets" required_settings = [] min_version = "1.2.0" From afec98de29da7895d94c983afb41d2aab3a7c614 Mon Sep 17 00:00:00 2001 From: Jathan McCollum Date: Thu, 23 Mar 2023 09:29:36 -0700 Subject: [PATCH 10/19] Updated `CODEOWNERS` to point to @nautobot/core. (#68) --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index fe0b7f4..a0b763c 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,2 +1,2 @@ # Default owner(s) of all files in this repository -* @dgarros @itdependsnetworks @jathanism @jedelman8 @jerej +* @nautobot/core From 67bf63cb5b78fd8b24ee7ee87c49171afaad1860 Mon Sep 17 00:00:00 2001 From: Bryan Culver <31187+bryanculver@users.noreply.github.com> Date: Thu, 6 Apr 2023 15:14:00 -0400 Subject: [PATCH 11/19] Enable Upstream Testing (#56) * Add upstream testing changes. * Copy pasta. * fix: Sync with latest template * fix: Missing hvac - Install all dependencies * bump: Minimum Nautobot v1.4.0 - CI pylint using Nautobot 1.4.10 - CI unittest using Nautobot [1.4.10, 1.5.10] to avoid bug in 1.5.11 and 1.5.12 * fix: Removed lines running upstream testing from this repo * fix: PR review --------- Co-authored-by: Jan Snasel --- .github/workflows/ci.yml | 9 +- .github/workflows/upstream_testing.yml | 13 + README.md | 4 +- development/Dockerfile | 86 +- invoke.example.yml | 2 +- nautobot_secrets_providers/__init__.py | 2 +- poetry.lock | 2651 +++++++++++++----------- pyproject.toml | 2 +- tasks.py | 2 +- 9 files changed, 1478 insertions(+), 1293 deletions(-) create mode 100644 .github/workflows/upstream_testing.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b6ab3e6..53de976 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,8 +74,8 @@ jobs: strategy: fail-fast: true matrix: - python-version: ["3.10"] - nautobot-version: ["1.3.10"] + python-version: ["3.8"] + nautobot-version: ["1.4.10"] env: INVOKE_NAUTOBOT_SECRETS_PROVIDERS_PYTHON_VER: "${{ matrix.python-version }}" INVOKE_NAUTOBOT_SECRETS_PROVIDERS_NAUTOBOT_VER: "${{ matrix.nautobot-version }}" @@ -112,10 +112,7 @@ jobs: fail-fast: true matrix: python-version: ["3.7", "3.8", "3.9", "3.10"] - nautobot-version: ["1.2.11", "1.3.10"] - exclude: - - python-version: "3.10" - nautobot-version: "1.2.11" + nautobot-version: ["1.4.10", "1.5.10"] runs-on: "ubuntu-20.04" env: INVOKE_NAUTOBOT_SECRETS_PROVIDERS_PYTHON_VER: "${{ matrix.python-version }}" diff --git a/.github/workflows/upstream_testing.yml b/.github/workflows/upstream_testing.yml new file mode 100644 index 0000000..b56c38f --- /dev/null +++ b/.github/workflows/upstream_testing.yml @@ -0,0 +1,13 @@ +--- +name: "Nautobot Upstream Monitor" + +on: # yamllint disable-line rule:truthy rule:comments + schedule: + - cron: "0 4 */2 * *" # every other day at 4:00 + +jobs: + upstream-test: + uses: "nautobot/nautobot/.github/workflows/plugin_upstream_testing_base.yml@develop" + with: # Below could potentially be collapsed into a single argument if a concrete relationship between both is enforced + invoke_context_name: "NAUTOBOT_SECRETS_PROVIDERS" + plugin_name: "nautobot-secrets-provider" diff --git a/README.md b/README.md index 0bdbe87..e2fe6d2 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ This plugin supports the following popular secrets backends: ## Installation -> Nautobot Secrets Providers is compatible with Nautobot 1.2.0 and higher. Support for Thycotic Secret Server requires Python 3.7 or later. +> Nautobot Secrets Providers is compatible with Nautobot 1.4.0 and higher. Support for Thycotic Secret Server requires Python 3.7 or later. The package is available as a Python package in PyPI and can be installed with `pip`: @@ -246,7 +246,7 @@ Below is a quick start guide if you're already familiar with the development env The [PyInvoke](http://www.pyinvoke.org/) library is used to provide some helper commands based on the environment. There are a few configuration parameters which can be passed to PyInvoke to override the default configuration: -* `nautobot_ver`: the version of Nautobot to use as a base for any built docker containers (default: 1.2.0) +* `nautobot_ver`: the version of Nautobot to use as a base for any built docker containers (default: 1.4.10) * `project_name`: the default docker compose project name (default: nautobot_secrets_providers) * `python_ver`: the version of Python to use as a base for any built docker containers (default: 3.7) * `local`: a boolean flag indicating if invoke tasks should be run on the host or inside the docker containers (default: False, commands will be run in docker containers) diff --git a/development/Dockerfile b/development/Dockerfile index f9e5283..41f0f15 100644 --- a/development/Dockerfile +++ b/development/Dockerfile @@ -1,40 +1,78 @@ -ARG NAUTOBOT_VER="1.2.1" -ARG PYTHON_VER=3.8 +# ------------------------------------------------------------------------------------- +# Nautobot App Developement Dockerfile Template +# Version: 1.1.0 +# +# Apps that need to add additional steps or packages can do in the section below. +# ------------------------------------------------------------------------------------- +# !!! USE CAUTION WHEN MODIFYING LINES BELOW -FROM ghcr.io/nautobot/nautobot-dev:${NAUTOBOT_VER}-py${PYTHON_VER} -ARG NAUTOBOT_VER="1.2.1" +# Accepts a desired Nautobot version as build argument, default to 1.4.10 +ARG NAUTOBOT_VER="1.4.10" -ENV prometheus_multiproc_dir=/prom_cache +# Accepts a desired Python version as build argument, default to 3.8 +ARG PYTHON_VER="3.8" +# Retrieve published development image of Nautobot base which should include most CI dependencies +FROM ghcr.io/nautobot/nautobot-dev:${NAUTOBOT_VER}-py${PYTHON_VER} + +# Runtime argument and environment setup ARG NAUTOBOT_ROOT=/opt/nautobot +ENV prometheus_multiproc_dir=/prom_cache ENV NAUTOBOT_ROOT ${NAUTOBOT_ROOT} -WORKDIR $NAUTOBOT_ROOT - -# Configure poetry -RUN poetry config virtualenvs.create false \ - && poetry config installer.parallel false +# Install Poetry manually via its installer script; +# We might be using an older version of Nautobot that includes an older version of Poetry +# and CI and local development may have a newer version of Poetry +# Since this is only used for development and we don't ship this container, pinning Poetry back is not expressly necessary +# We also don't need virtual environments in container +RUN curl -sSL https://install.python-poetry.org | python3 - && \ + poetry config virtualenvs.create false +# !!! USE CAUTION WHEN MODIFYING LINES ABOVE # ------------------------------------------------------------------------------------- -# Install Nautobot Plugin +# App-specifc system build/test dependencies. +# +# Example: LDAP requires `libldap2-dev` to be apt-installed before the Python package. # ------------------------------------------------------------------------------------- -WORKDIR /tmp +# --> Start safe to modify section -# Copy in only pyproject.toml/poetry.lock to help with caching this layer if no updates to dependencies -COPY poetry.lock pyproject.toml /tmp/ -# --no-root declares not to install the project package since we're wanting to take advantage of caching dependency installation -# and the project is copied in and installed after this step -RUN poetry self update && \ - poetry add nautobot=$NAUTOBOT_VER && \ - poetry update --lock && \ - poetry install --no-interaction --no-ansi --no-root +# Uncomment the lines below if you are apt-installing any package. +# RUN apt-get -y update && apt-get -y install \ +# libldap2-dev \ +# && rm -rf /var/lib/apt/lists/* -WORKDIR /source +# --> Stop safe to modify section +# ------------------------------------------------------------------------------------- +# Install Nautobot App +# ------------------------------------------------------------------------------------- +# !!! USE CAUTION WHEN MODIFYING LINES BELOW -# Copy in the rest of the source code and install local Nautobot plugin +# Copy in the source code +WORKDIR /source COPY . /source -RUN mv /tmp/poetry.lock /tmp/pyproject.toml /source && \ - poetry install --no-interaction --no-ansi + +# Get container's installed Nautobot version as a forced constraint +# NAUTOBOT_VER may be a branch name and not a published release therefor we need to get the installed version +# so pip can use it to recognize local constraints. +RUN pip show nautobot | grep "^Version: " | sed -e 's/Version: /nautobot==/' > constraints.txt + +# Use Poetry to grab dev dependencies from the lock file +# Can be improved in Poetry 1.2 which allows `poetry install --only dev` +# +# We can't use the entire freeze as it takes forever to resolve with rigidly fixed non-direct dependencies, +# especially those that are only direct to Nautobot but the container included versions slightly mismatch +RUN poetry export -f requirements.txt --without-hashes --output poetry_freeze_base.txt +RUN poetry export -f requirements.txt --with dev --without-hashes --output poetry_freeze_all.txt +RUN sort poetry_freeze_base.txt poetry_freeze_all.txt | uniq -u > poetry_freeze_dev.txt + +# Install all local project as editable, constrained on Nautobot version, to get any additional +# direct dependencies of the app +RUN pip install -c constraints.txt -e .[all] + +# Install any dev dependencies frozen from Poetry +# Can be improved in Poetry 1.2 which allows `poetry install --only dev` +RUN pip install -c constraints.txt -r poetry_freeze_dev.txt COPY development/nautobot_config.py ${NAUTOBOT_ROOT}/nautobot_config.py +# !!! USE CAUTION WHEN MODIFYING LINES ABOVE diff --git a/invoke.example.yml b/invoke.example.yml index 3d0cffd..bec0f11 100644 --- a/invoke.example.yml +++ b/invoke.example.yml @@ -1,7 +1,7 @@ --- nautobot_secrets_providers: project_name: "nautobot_secrets_providers" - nautobot_ver: "1.2.0" + nautobot_ver: "1.4.10" local: false python_ver: "3.7" compose_dir: "development" diff --git a/nautobot_secrets_providers/__init__.py b/nautobot_secrets_providers/__init__.py index b2daf9b..c9a891e 100644 --- a/nautobot_secrets_providers/__init__.py +++ b/nautobot_secrets_providers/__init__.py @@ -21,7 +21,7 @@ class NautobotSecretsProvidersConfig(PluginConfig): description = "Nautobot App that provides direct integrations with Enterprise secrets management systems. Provides patterns to securely fetch secrets for use by other Nautobot Apps and Nautobot Jobs." base_url = "secrets" required_settings = [] - min_version = "1.2.0" + min_version = "1.4.0" max_version = "1.9999" default_settings = {} caching_config = {} diff --git a/poetry.lock b/poetry.lock index 3800aed..98e773e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,3 +1,5 @@ +# This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand. + [[package]] name = "amqp" version = "5.1.1" @@ -5,6 +7,10 @@ description = "Low-level AMQP client for Python (fork of amqplib)." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "amqp-5.1.1-py3-none-any.whl", hash = "sha256:6f0956d2c23d8fa6e7691934d8c3930eadb44972cbbd1a7ae3a520f735d43359"}, + {file = "amqp-5.1.1.tar.gz", hash = "sha256:2c1b13fecc0893e946c65cbd5f36427861cffa4ea2201d8f6fca22e2a373b5e2"}, +] [package.dependencies] vine = ">=5.0.0" @@ -16,6 +22,10 @@ description = "A library for parsing ISO 8601 strings." category = "main" optional = false python-versions = "*" +files = [ + {file = "aniso8601-7.0.0-py2.py3-none-any.whl", hash = "sha256:d10a4bf949f619f719b227ef5386e31f49a2b6d453004b21f02661ccc8670c7b"}, + {file = "aniso8601-7.0.0.tar.gz", hash = "sha256:513d2b6637b7853806ae79ffaca6f3e8754bdd547048f5ccc1420aec4b714f1e"}, +] [[package]] name = "asgiref" @@ -24,6 +34,10 @@ description = "ASGI specs, helper code, and adapters" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "asgiref-3.5.2-py3-none-any.whl", hash = "sha256:1d2880b792ae8757289136f1db2b7b99100ce959b2aa57fd69dab783d05afac4"}, + {file = "asgiref-3.5.2.tar.gz", hash = "sha256:4a29362a6acebe09bf1d6640db38c1dc3d9217c68e6f9f6204d72667fc19a424"}, +] [package.dependencies] typing-extensions = {version = "*", markers = "python_version < \"3.8\""} @@ -38,6 +52,10 @@ description = "An abstract syntax tree for Python with inference support." category = "dev" optional = false python-versions = ">=3.6.2" +files = [ + {file = "astroid-2.11.7-py3-none-any.whl", hash = "sha256:86b0a340a512c65abf4368b80252754cda17c02cdbbd3f587dddf98112233e7b"}, + {file = "astroid-2.11.7.tar.gz", hash = "sha256:bb24615c77f4837c707669d16907331374ae8a964650a66999da3f5ca68dc946"}, +] [package.dependencies] lazy-object-proxy = ">=1.4.0" @@ -53,6 +71,10 @@ description = "Timeout context manager for asyncio programs" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, + {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, +] [package.dependencies] typing-extensions = {version = ">=3.6.5", markers = "python_version < \"3.8\""} @@ -64,6 +86,10 @@ description = "Classes Without Boilerplate" category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, + {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, +] [package.extras] dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] @@ -78,6 +104,10 @@ description = "Security oriented static analyser for python code." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "bandit-1.7.4-py3-none-any.whl", hash = "sha256:412d3f259dab4077d0e7f0c11f50f650cc7d10db905d98f6520a95a18049658a"}, + {file = "bandit-1.7.4.tar.gz", hash = "sha256:2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"}, +] [package.dependencies] colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} @@ -97,6 +127,10 @@ description = "Python multiprocessing fork with improvements and bugfixes" category = "main" optional = false python-versions = "*" +files = [ + {file = "billiard-3.6.4.0-py3-none-any.whl", hash = "sha256:87103ea78fa6ab4d5c751c4909bcff74617d985de7fa8b672cf8618afd5a875b"}, + {file = "billiard-3.6.4.0.tar.gz", hash = "sha256:299de5a8da28a783d51b197d496bef4f1595dd023a93a4f59dde1886ae905547"}, +] [[package]] name = "black" @@ -105,6 +139,31 @@ description = "The uncompromising code formatter." category = "dev" optional = false python-versions = ">=3.6.2" +files = [ + {file = "black-22.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd"}, + {file = "black-22.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27"}, + {file = "black-22.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747"}, + {file = "black-22.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869"}, + {file = "black-22.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90"}, + {file = "black-22.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe"}, + {file = "black-22.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342"}, + {file = "black-22.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab"}, + {file = "black-22.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3"}, + {file = "black-22.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e"}, + {file = "black-22.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16"}, + {file = "black-22.8.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c"}, + {file = "black-22.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5"}, + {file = "black-22.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411"}, + {file = "black-22.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3"}, + {file = "black-22.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875"}, + {file = "black-22.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c"}, + {file = "black-22.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497"}, + {file = "black-22.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c"}, + {file = "black-22.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41"}, + {file = "black-22.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec"}, + {file = "black-22.8.0-py3-none-any.whl", hash = "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4"}, + {file = "black-22.8.0.tar.gz", hash = "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e"}, +] [package.dependencies] click = ">=8.0.0" @@ -128,6 +187,10 @@ description = "The AWS SDK for Python" category = "main" optional = false python-versions = ">= 3.6" +files = [ + {file = "boto3-1.19.12-py3-none-any.whl", hash = "sha256:b9105554477978e80fda1103ff21ecf07502080667730e45383e1d3951c87954"}, + {file = "boto3-1.19.12.tar.gz", hash = "sha256:182a2b756a2c2180b473bc8452227062394a24e3701548be23ebc30d85976c64"}, +] [package.dependencies] botocore = ">=1.22.12,<1.23.0" @@ -144,6 +207,10 @@ description = "Low-level, data-driven core of boto 3." category = "main" optional = false python-versions = ">= 3.6" +files = [ + {file = "botocore-1.22.12-py3-none-any.whl", hash = "sha256:1d1094fb53ebe4535d8840fbd7c14aadb65bde7ff03a65f9a4f1d76bd03e16ff"}, + {file = "botocore-1.22.12.tar.gz", hash = "sha256:fc59b55e8c5dde64b017b2f114c25f8cce397b667e812aea7eafb4b59b49d7cb"}, +] [package.dependencies] jmespath = ">=0.7.1,<1.0.0" @@ -160,6 +227,10 @@ description = "A decorator for caching properties in classes." category = "main" optional = false python-versions = "*" +files = [ + {file = "cached-property-1.5.2.tar.gz", hash = "sha256:9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130"}, + {file = "cached_property-1.5.2-py2.py3-none-any.whl", hash = "sha256:df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0"}, +] [[package]] name = "celery" @@ -168,6 +239,10 @@ description = "Distributed Task Queue." category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "celery-5.2.7-py3-none-any.whl", hash = "sha256:138420c020cd58d6707e6257b6beda91fd39af7afde5d36c6334d175302c0e14"}, + {file = "celery-5.2.7.tar.gz", hash = "sha256:fafbd82934d30f8a004f81e8f7a062e31413a23d444be8ee3326553915958c6d"}, +] [package.dependencies] billiard = ">=3.6.4.0,<4.0" @@ -220,6 +295,10 @@ description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, +] [[package]] name = "cffi" @@ -228,6 +307,72 @@ description = "Foreign Function Interface for Python calling C code." category = "main" optional = false python-versions = "*" +files = [ + {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, + {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, + {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, + {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, + {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, + {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, + {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, + {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, + {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, + {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, + {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, + {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, + {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, + {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, + {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, + {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, + {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, + {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, + {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, +] [package.dependencies] pycparser = "*" @@ -239,6 +384,10 @@ description = "The Real First Universal Charset Detector. Open, modern and activ category = "main" optional = false python-versions = ">=3.6.0" +files = [ + {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, + {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, +] [package.extras] unicode-backport = ["unicodedata2"] @@ -250,6 +399,10 @@ description = "Composable command line interface toolkit" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, + {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, +] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} @@ -262,6 +415,10 @@ description = "Enables git-like *did-you-mean* feature in click" category = "main" optional = false python-versions = ">=3.6.2,<4.0.0" +files = [ + {file = "click-didyoumean-0.3.0.tar.gz", hash = "sha256:f184f0d851d96b6d29297354ed981b7dd71df7ff500d82fa6d11f0856bee8035"}, + {file = "click_didyoumean-0.3.0-py3-none-any.whl", hash = "sha256:a0713dc7a1de3f06bc0df5a9567ad19ead2d3d5689b434768a6145bff77c0667"}, +] [package.dependencies] click = ">=7" @@ -273,6 +430,10 @@ description = "An extension module for click to enable registering CLI commands category = "main" optional = false python-versions = "*" +files = [ + {file = "click-plugins-1.1.1.tar.gz", hash = "sha256:46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b"}, + {file = "click_plugins-1.1.1-py2.py3-none-any.whl", hash = "sha256:5d262006d3222f5057fd81e1623d4443e41dcda5dc815c06b442aa3c02889fc8"}, +] [package.dependencies] click = ">=4.0" @@ -287,6 +448,10 @@ description = "REPL plugin for Click" category = "main" optional = false python-versions = "*" +files = [ + {file = "click-repl-0.2.0.tar.gz", hash = "sha256:cd12f68d745bf6151210790540b4cb064c7b13e571bc64b6957d98d120dacfd8"}, + {file = "click_repl-0.2.0-py3-none-any.whl", hash = "sha256:94b3fbbc9406a236f176e0506524b2937e4b23b6f4c0c0b2a0a83f8a64e9194b"}, +] [package.dependencies] click = "*" @@ -300,6 +465,10 @@ description = "Cross-platform colored terminal text." category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, +] [[package]] name = "coreapi" @@ -308,6 +477,10 @@ description = "Python client library for Core API." category = "main" optional = false python-versions = "*" +files = [ + {file = "coreapi-2.3.3-py2.py3-none-any.whl", hash = "sha256:bf39d118d6d3e171f10df9ede5666f63ad80bba9a29a8ec17726a66cf52ee6f3"}, + {file = "coreapi-2.3.3.tar.gz", hash = "sha256:46145fcc1f7017c076a2ef684969b641d18a2991051fddec9458ad3f78ffc1cb"}, +] [package.dependencies] coreschema = "*" @@ -322,6 +495,10 @@ description = "Core Schema." category = "main" optional = false python-versions = "*" +files = [ + {file = "coreschema-0.0.4-py2-none-any.whl", hash = "sha256:5e6ef7bf38c1525d5e55a895934ab4273548629f16aed5c0a6caa74ebf45551f"}, + {file = "coreschema-0.0.4.tar.gz", hash = "sha256:9503506007d482ab0867ba14724b93c18a33b22b6d19fb419ef2d239dd4a1607"}, +] [package.dependencies] jinja2 = "*" @@ -333,6 +510,55 @@ description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "coverage-6.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6dbc1536e105adda7a6312c778f15aaabe583b0e9a0b0a324990334fd458c94b"}, + {file = "coverage-6.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:174cf9b4bef0db2e8244f82059a5a72bd47e1d40e71c68ab055425172b16b7d0"}, + {file = "coverage-6.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:92b8c845527eae547a2a6617d336adc56394050c3ed8a6918683646328fbb6da"}, + {file = "coverage-6.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c7912d1526299cb04c88288e148c6c87c0df600eca76efd99d84396cfe00ef1d"}, + {file = "coverage-6.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5d2033d5db1d58ae2d62f095e1aefb6988af65b4b12cb8987af409587cc0739"}, + {file = "coverage-6.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3feac4084291642165c3a0d9eaebedf19ffa505016c4d3db15bfe235718d4971"}, + {file = "coverage-6.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:276651978c94a8c5672ea60a2656e95a3cce2a3f31e9fb2d5ebd4c215d095840"}, + {file = "coverage-6.2-cp310-cp310-win32.whl", hash = "sha256:f506af4f27def639ba45789fa6fde45f9a217da0be05f8910458e4557eed020c"}, + {file = "coverage-6.2-cp310-cp310-win_amd64.whl", hash = "sha256:3f7c17209eef285c86f819ff04a6d4cbee9b33ef05cbcaae4c0b4e8e06b3ec8f"}, + {file = "coverage-6.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:13362889b2d46e8d9f97c421539c97c963e34031ab0cb89e8ca83a10cc71ac76"}, + {file = "coverage-6.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:22e60a3ca5acba37d1d4a2ee66e051f5b0e1b9ac950b5b0cf4aa5366eda41d47"}, + {file = "coverage-6.2-cp311-cp311-win_amd64.whl", hash = "sha256:b637c57fdb8be84e91fac60d9325a66a5981f8086c954ea2772efe28425eaf64"}, + {file = "coverage-6.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f467bbb837691ab5a8ca359199d3429a11a01e6dfb3d9dcc676dc035ca93c0a9"}, + {file = "coverage-6.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2641f803ee9f95b1f387f3e8f3bf28d83d9b69a39e9911e5bfee832bea75240d"}, + {file = "coverage-6.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1219d760ccfafc03c0822ae2e06e3b1248a8e6d1a70928966bafc6838d3c9e48"}, + {file = "coverage-6.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9a2b5b52be0a8626fcbffd7e689781bf8c2ac01613e77feda93d96184949a98e"}, + {file = "coverage-6.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:8e2c35a4c1f269704e90888e56f794e2d9c0262fb0c1b1c8c4ee44d9b9e77b5d"}, + {file = "coverage-6.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:5d6b09c972ce9200264c35a1d53d43ca55ef61836d9ec60f0d44273a31aa9f17"}, + {file = "coverage-6.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:e3db840a4dee542e37e09f30859f1612da90e1c5239a6a2498c473183a50e781"}, + {file = "coverage-6.2-cp36-cp36m-win32.whl", hash = "sha256:4e547122ca2d244f7c090fe3f4b5a5861255ff66b7ab6d98f44a0222aaf8671a"}, + {file = "coverage-6.2-cp36-cp36m-win_amd64.whl", hash = "sha256:01774a2c2c729619760320270e42cd9e797427ecfddd32c2a7b639cdc481f3c0"}, + {file = "coverage-6.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fb8b8ee99b3fffe4fd86f4c81b35a6bf7e4462cba019997af2fe679365db0c49"}, + {file = "coverage-6.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:619346d57c7126ae49ac95b11b0dc8e36c1dd49d148477461bb66c8cf13bb521"}, + {file = "coverage-6.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0a7726f74ff63f41e95ed3a89fef002916c828bb5fcae83b505b49d81a066884"}, + {file = "coverage-6.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cfd9386c1d6f13b37e05a91a8583e802f8059bebfccde61a418c5808dea6bbfa"}, + {file = "coverage-6.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:17e6c11038d4ed6e8af1407d9e89a2904d573be29d51515f14262d7f10ef0a64"}, + {file = "coverage-6.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c254b03032d5a06de049ce8bca8338a5185f07fb76600afff3c161e053d88617"}, + {file = "coverage-6.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:dca38a21e4423f3edb821292e97cec7ad38086f84313462098568baedf4331f8"}, + {file = "coverage-6.2-cp37-cp37m-win32.whl", hash = "sha256:600617008aa82032ddeace2535626d1bc212dfff32b43989539deda63b3f36e4"}, + {file = "coverage-6.2-cp37-cp37m-win_amd64.whl", hash = "sha256:bf154ba7ee2fd613eb541c2bc03d3d9ac667080a737449d1a3fb342740eb1a74"}, + {file = "coverage-6.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f9afb5b746781fc2abce26193d1c817b7eb0e11459510fba65d2bd77fe161d9e"}, + {file = "coverage-6.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edcada2e24ed68f019175c2b2af2a8b481d3d084798b8c20d15d34f5c733fa58"}, + {file = "coverage-6.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a9c8c4283e17690ff1a7427123ffb428ad6a52ed720d550e299e8291e33184dc"}, + {file = "coverage-6.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f614fc9956d76d8a88a88bb41ddc12709caa755666f580af3a688899721efecd"}, + {file = "coverage-6.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9365ed5cce5d0cf2c10afc6add145c5037d3148585b8ae0e77cc1efdd6aa2953"}, + {file = "coverage-6.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8bdfe9ff3a4ea37d17f172ac0dff1e1c383aec17a636b9b35906babc9f0f5475"}, + {file = "coverage-6.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:63c424e6f5b4ab1cf1e23a43b12f542b0ec2e54f99ec9f11b75382152981df57"}, + {file = "coverage-6.2-cp38-cp38-win32.whl", hash = "sha256:49dbff64961bc9bdd2289a2bda6a3a5a331964ba5497f694e2cbd540d656dc1c"}, + {file = "coverage-6.2-cp38-cp38-win_amd64.whl", hash = "sha256:9a29311bd6429be317c1f3fe4bc06c4c5ee45e2fa61b2a19d4d1d6111cb94af2"}, + {file = "coverage-6.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03b20e52b7d31be571c9c06b74746746d4eb82fc260e594dc662ed48145e9efd"}, + {file = "coverage-6.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:215f8afcc02a24c2d9a10d3790b21054b58d71f4b3c6f055d4bb1b15cecce685"}, + {file = "coverage-6.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a4bdeb0a52d1d04123b41d90a4390b096f3ef38eee35e11f0b22c2d031222c6c"}, + {file = "coverage-6.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c332d8f8d448ded473b97fefe4a0983265af21917d8b0cdcb8bb06b2afe632c3"}, + {file = "coverage-6.2-cp39-cp39-win32.whl", hash = "sha256:6e1394d24d5938e561fbeaa0cd3d356207579c28bd1792f25a068743f2d5b282"}, + {file = "coverage-6.2-cp39-cp39-win_amd64.whl", hash = "sha256:86f2e78b1eff847609b1ca8050c9e1fa3bd44ce755b2ec30e70f2d3ba3844644"}, + {file = "coverage-6.2-pp36.pp37.pp38-none-any.whl", hash = "sha256:5829192582c0ec8ca4a2532407bc14c2f338d9878a10442f5d03804a95fac9de"}, + {file = "coverage-6.2.tar.gz", hash = "sha256:e2cad8093172b7d1595b4ad66f24270808658e11acf43a8f95b41276162eb5b8"}, +] [package.extras] toml = ["tomli"] @@ -344,6 +570,34 @@ description = "cryptography is a package which provides cryptographic recipes an category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "cryptography-38.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:10d1f29d6292fc95acb597bacefd5b9e812099d75a6469004fd38ba5471a977f"}, + {file = "cryptography-38.0.1-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:3fc26e22840b77326a764ceb5f02ca2d342305fba08f002a8c1f139540cdfaad"}, + {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:3b72c360427889b40f36dc214630e688c2fe03e16c162ef0aa41da7ab1455153"}, + {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:194044c6b89a2f9f169df475cc167f6157eb9151cc69af8a2a163481d45cc407"}, + {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca9f6784ea96b55ff41708b92c3f6aeaebde4c560308e5fbbd3173fbc466e94e"}, + {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:16fa61e7481f4b77ef53991075de29fc5bacb582a1244046d2e8b4bb72ef66d0"}, + {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d4ef6cc305394ed669d4d9eebf10d3a101059bdcf2669c366ec1d14e4fb227bd"}, + {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3261725c0ef84e7592597606f6583385fed2a5ec3909f43bc475ade9729a41d6"}, + {file = "cryptography-38.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:0297ffc478bdd237f5ca3a7dc96fc0d315670bfa099c04dc3a4a2172008a405a"}, + {file = "cryptography-38.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:89ed49784ba88c221756ff4d4755dbc03b3c8d2c5103f6d6b4f83a0fb1e85294"}, + {file = "cryptography-38.0.1-cp36-abi3-win32.whl", hash = "sha256:ac7e48f7e7261207d750fa7e55eac2d45f720027d5703cd9007e9b37bbb59ac0"}, + {file = "cryptography-38.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:ad7353f6ddf285aeadfaf79e5a6829110106ff8189391704c1d8801aa0bae45a"}, + {file = "cryptography-38.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:896dd3a66959d3a5ddcfc140a53391f69ff1e8f25d93f0e2e7830c6de90ceb9d"}, + {file = "cryptography-38.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:d3971e2749a723e9084dd507584e2a2761f78ad2c638aa31e80bc7a15c9db4f9"}, + {file = "cryptography-38.0.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:79473cf8a5cbc471979bd9378c9f425384980fcf2ab6534b18ed7d0d9843987d"}, + {file = "cryptography-38.0.1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:d9e69ae01f99abe6ad646947bba8941e896cb3aa805be2597a0400e0764b5818"}, + {file = "cryptography-38.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5067ee7f2bce36b11d0e334abcd1ccf8c541fc0bbdaf57cdd511fdee53e879b6"}, + {file = "cryptography-38.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:3e3a2599e640927089f932295a9a247fc40a5bdf69b0484532f530471a382750"}, + {file = "cryptography-38.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c2e5856248a416767322c8668ef1845ad46ee62629266f84a8f007a317141013"}, + {file = "cryptography-38.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:64760ba5331e3f1794d0bcaabc0d0c39e8c60bf67d09c93dc0e54189dfd7cfe5"}, + {file = "cryptography-38.0.1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b6c9b706316d7b5a137c35e14f4103e2115b088c412140fdbd5f87c73284df61"}, + {file = "cryptography-38.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0163a849b6f315bf52815e238bc2b2346604413fa7c1601eea84bcddb5fb9ac"}, + {file = "cryptography-38.0.1-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:d1a5bd52d684e49a36582193e0b89ff267704cd4025abefb9e26803adeb3e5fb"}, + {file = "cryptography-38.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:765fa194a0f3372d83005ab83ab35d7c5526c4e22951e46059b8ac678b44fa5a"}, + {file = "cryptography-38.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:52e7bee800ec869b4031093875279f1ff2ed12c1e2f74923e8f49c916afd1d3b"}, + {file = "cryptography-38.0.1.tar.gz", hash = "sha256:1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7"}, +] [package.dependencies] cffi = ">=1.12" @@ -363,6 +617,10 @@ description = "XML bomb protection for Python stdlib modules" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] [[package]] name = "Deprecated" @@ -371,6 +629,10 @@ description = "Python @deprecated decorator to deprecate old python classes, fun category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "Deprecated-1.2.13-py2.py3-none-any.whl", hash = "sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d"}, + {file = "Deprecated-1.2.13.tar.gz", hash = "sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d"}, +] [package.dependencies] wrapt = ">=1.10,<2" @@ -385,25 +647,33 @@ description = "serialize all of python" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +files = [ + {file = "dill-0.3.5.1-py2.py3-none-any.whl", hash = "sha256:33501d03270bbe410c72639b350e941882a8b0fd55357580fbc873fba0c59302"}, + {file = "dill-0.3.5.1.tar.gz", hash = "sha256:d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86"}, +] [package.extras] graph = ["objgraph (>=1.7.2)"] [[package]] -name = "Django" -version = "3.1.14" +name = "django" +version = "3.2.18" description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "Django-3.2.18-py3-none-any.whl", hash = "sha256:4d492d9024c7b3dfababf49f94511ab6a58e2c9c3c7207786f1ba4eb77750706"}, + {file = "Django-3.2.18.tar.gz", hash = "sha256:08208dfe892eb64fff073ca743b3b952311104f939e7f6dae954fe72dcc533ba"}, +] [package.dependencies] -asgiref = ">=3.2.10,<4" +asgiref = ">=3.3.2,<4" pytz = "*" sqlparse = ">=0.2.2" [package.extras] -argon2 = ["argon2-cffi (>=16.1.0)"] +argon2 = ["argon2-cffi (>=19.1.0)"] bcrypt = ["bcrypt"] [[package]] @@ -413,6 +683,10 @@ description = "Django tag for ajax-enabled tables" category = "main" optional = false python-versions = "*" +files = [ + {file = "django_ajax_tables-1.1.1-py3-none-any.whl", hash = "sha256:62e0138949153c0a994eefbf469f5496b1ad98bc073e170bc021a1aada7a32d0"}, + {file = "django_ajax_tables-1.1.1.tar.gz", hash = "sha256:5a7e7bc7940aa6332a564916cde22010a858a3d29fc1090ce8061010ec76337c"}, +] [[package]] name = "django-appconf" @@ -421,17 +695,25 @@ description = "A helper class for handling configuration defaults of packaged ap category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "django-appconf-1.0.5.tar.gz", hash = "sha256:be3db0be6c81fa84742000b89a81c016d70ae66a7ccb620cdef592b1f1a6aaa4"}, + {file = "django_appconf-1.0.5-py3-none-any.whl", hash = "sha256:ae9f864ee1958c815a965ed63b3fba4874eec13de10236ba063a788f9a17389d"}, +] [package.dependencies] django = "*" [[package]] name = "django-cacheops" -version = "5.1" +version = "6.0" description = "A slick ORM cache with automatic granular event-driven invalidation for Django." category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "django-cacheops-6.0.tar.gz", hash = "sha256:78e161ebd96a32e28e19ec7da31f2afed9e62a79726b8b5f0ed12dd16c2e5841"}, + {file = "django_cacheops-6.0-py2.py3-none-any.whl", hash = "sha256:ee38b969c9fc68f7c88e769b6c811e19563cca1ae08210d9f553ff758b6c3e17"}, +] [package.dependencies] django = ">=2.1" @@ -446,6 +728,10 @@ description = "Database-backed Periodic Tasks." category = "main" optional = false python-versions = "*" +files = [ + {file = "django-celery-beat-2.2.1.tar.gz", hash = "sha256:97ae5eb309541551bdb07bf60cc57cadacf42a74287560ced2d2c06298620234"}, + {file = "django_celery_beat-2.2.1-py2.py3-none-any.whl", hash = "sha256:ab43049634fd18dc037927d7c2c7d5f67f95283a20ebbda55f42f8606412e66c"}, +] [package.dependencies] celery = ">=5.0,<6.0" @@ -460,6 +746,10 @@ description = "Django live settings with pluggable backends, including Redis." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "django-constance-2.8.0.tar.gz", hash = "sha256:0a492454acc78799ce7b9f7a28a00c53427d513f34f8bf6fdc90a46d8864b2af"}, + {file = "django_constance-2.8.0-py3-none-any.whl", hash = "sha256:60fec73e397d5f4f7440f611b18d3e7ce5342647f316fedc47b62e1411c849e7"}, +] [package.dependencies] django-picklefield = {version = "*", optional = true, markers = "extra == \"database\""} @@ -470,14 +760,18 @@ redis = ["redis"] [[package]] name = "django-cors-headers" -version = "3.7.0" +version = "3.13.0" description = "django-cors-headers is a Django application for handling the server headers required for Cross-Origin Resource Sharing (CORS)." category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "django-cors-headers-3.13.0.tar.gz", hash = "sha256:f9dc6b4e3f611c3199700b3e5f3398c28757dcd559c2f82932687f3d0443cfdf"}, + {file = "django_cors_headers-3.13.0-py3-none-any.whl", hash = "sha256:37e42883b5f1f2295df6b4bba96eb2417a14a03270cb24b2a07f021cd4487cf4"}, +] [package.dependencies] -Django = ">=2.2" +Django = ">=3.2" [[package]] name = "django-cryptography" @@ -486,6 +780,10 @@ description = "Easily encrypt data in Django" category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "django-cryptography-1.0.tar.gz", hash = "sha256:13de5cf8f1250744c104b9e24774d03aa6d8488959dd40cdc016934043652445"}, + {file = "django_cryptography-1.0-py3-none-any.whl", hash = "sha256:0a99980b1cee7cc5e52f9b20b322620fea7cc124d770273e7bd285b20fd9d222"}, +] [package.dependencies] cryptography = "*" @@ -498,6 +796,9 @@ description = "Custom FILE_STORAGE for Django. Saves files in your database inst category = "main" optional = false python-versions = "*" +files = [ + {file = "django-db-file-storage-0.5.5.tar.gz", hash = "sha256:5d5da694b78ab202accab4508b958e0e37b3d146310e76f6f6125e1bdeaaad14"}, +] [package.dependencies] Django = "*" @@ -509,6 +810,10 @@ description = "A configurable set of panels that display various debug informati category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "django-debug-toolbar-3.2.4.tar.gz", hash = "sha256:644bbd5c428d3283aa9115722471769cac1bec189edf3a0c855fd8ff870375a9"}, + {file = "django_debug_toolbar-3.2.4-py3-none-any.whl", hash = "sha256:6b633b6cfee24f232d73569870f19aa86c819d750e7f3e833f2344a9eb4b4409"}, +] [package.dependencies] Django = ">=2.2" @@ -516,22 +821,30 @@ sqlparse = ">=0.2.0" [[package]] name = "django-extensions" -version = "3.1.5" +version = "3.2.1" description = "Extensions for Django" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "django-extensions-3.2.1.tar.gz", hash = "sha256:2a4f4d757be2563cd1ff7cfdf2e57468f5f931cc88b23cf82ca75717aae504a4"}, + {file = "django_extensions-3.2.1-py3-none-any.whl", hash = "sha256:421464be390289513f86cb5e18eb43e5dc1de8b4c27ba9faa3b91261b0d67e09"}, +] [package.dependencies] -Django = ">=2.2" +Django = ">=3.2" [[package]] name = "django-filter" -version = "2.4.0" +version = "21.1" description = "Django-filter is a reusable Django application for allowing users to filter querysets dynamically." category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" +files = [ + {file = "django-filter-21.1.tar.gz", hash = "sha256:632a251fa8f1aadb4b8cceff932bb52fe2f826dd7dfe7f3eac40e5c463d6836e"}, + {file = "django_filter-21.1-py3-none-any.whl", hash = "sha256:f4a6737a30104c98d2e2a5fb93043f36dd7978e0c7ddc92f5998e85433ea5063"}, +] [package.dependencies] Django = ">=2.2" @@ -543,21 +856,29 @@ description = "Run checks on services like databases, queue servers, celery proc category = "main" optional = false python-versions = "*" +files = [ + {file = "django-health-check-3.16.5.tar.gz", hash = "sha256:1edfd49293ccebbce29f9da609c407f307aee240ab799ab4201031341ae78c0f"}, + {file = "django_health_check-3.16.5-py2.py3-none-any.whl", hash = "sha256:8d66781a0ea82b1a8b44878187b38a27370e94f18287312e39be0593e72d8983"}, +] [package.dependencies] django = ">=2.2" [[package]] name = "django-jinja" -version = "2.7.1" +version = "2.10.2" description = "Jinja2 templating language integrated in Django." category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" +files = [ + {file = "django-jinja-2.10.2.tar.gz", hash = "sha256:bfdfbb55c1f5a679d69ad575d550c4707d386634009152efe014089f3c4d1412"}, + {file = "django_jinja-2.10.2-py3-none-any.whl", hash = "sha256:dd003ec1c95c0989eb28a538831bced62b1b61da551cb44a5dfd708fcf75589f"}, +] [package.dependencies] django = ">=2.2" -jinja2 = ">=2.10" +jinja2 = ">=3" [[package]] name = "django-js-asset" @@ -566,6 +887,10 @@ description = "script tag with additional attributes for django.forms.Media" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "django_js_asset-2.0.0-py3-none-any.whl", hash = "sha256:86f9f300d682537ddaf0487dc2ab356581b8f50c069bdba91d334a46e449f923"}, + {file = "django_js_asset-2.0.0.tar.gz", hash = "sha256:adc1ee1efa853fad42054b540c02205344bb406c9bddf87c9e5377a41b7db90f"}, +] [package.dependencies] Django = ">=2.2" @@ -575,16 +900,22 @@ tests = ["coverage"] [[package]] name = "django-mptt" -version = "0.11.0" +version = "0.13.4" description = "Utilities for implementing Modified Preorder Tree Traversal with your Django Models and working with trees of Model instances." category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" +files = [ + {file = "django-mptt-0.13.4.tar.gz", hash = "sha256:80c9fb34df7796a4e5af0cb6b8ade3697555b1aa438bd07a01f32b3ab5202b63"}, + {file = "django_mptt-0.13.4-py3-none-any.whl", hash = "sha256:75745b621ae31d97957ed924155a750dfa8cacd9543799ada2d713fd6bc3f5c7"}, +] [package.dependencies] -Django = ">=1.11" django-js-asset = "*" +[package.extras] +tests = ["coverage", "mock-django"] + [[package]] name = "django-picklefield" version = "3.0.1" @@ -592,6 +923,10 @@ description = "Pickled object field for Django" category = "main" optional = false python-versions = ">=3" +files = [ + {file = "django-picklefield-3.0.1.tar.gz", hash = "sha256:15ccba592ca953b9edf9532e64640329cd47b136b7f8f10f2939caa5f9ce4287"}, + {file = "django_picklefield-3.0.1-py3-none-any.whl", hash = "sha256:3c702a54fde2d322fe5b2f39b8f78d9f655b8f77944ab26f703be6c0ed335a35"}, +] [package.dependencies] Django = ">=2.2" @@ -601,11 +936,15 @@ tests = ["tox"] [[package]] name = "django-prometheus" -version = "2.1.0" +version = "2.2.0" description = "Django middlewares to monitor your application with Prometheus.io." category = "main" optional = false python-versions = "*" +files = [ + {file = "django-prometheus-2.2.0.tar.gz", hash = "sha256:240378a1307c408bd5fc85614a3a57f1ce633d4a222c9e291e2bbf325173b801"}, + {file = "django_prometheus-2.2.0-py2.py3-none-any.whl", hash = "sha256:e6616770d8820b8834762764bf1b76ec08e1b98e72a6f359d488a2e15fe3537c"}, +] [package.dependencies] prometheus-client = ">=0.7" @@ -617,6 +956,10 @@ description = "Full featured redis cache backend for Django." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "django-redis-5.2.0.tar.gz", hash = "sha256:8a99e5582c79f894168f5865c52bd921213253b7fd64d16733ae4591564465de"}, + {file = "django_redis-5.2.0-py3-none-any.whl", hash = "sha256:1d037dc02b11ad7aa11f655d26dac3fb1af32630f61ef4428860a2e29ff92026"}, +] [package.dependencies] Django = ">=2.2" @@ -627,11 +970,15 @@ hiredis = ["redis[hiredis] (>=3,!=4.0.0,!=4.0.1)"] [[package]] name = "django-rq" -version = "2.4.1" +version = "2.5.1" description = "An app that provides django integration for RQ (Redis Queue)" category = "main" optional = false python-versions = "*" +files = [ + {file = "django-rq-2.5.1.tar.gz", hash = "sha256:f08486602664d73a6e335872c868d79663e380247e6307496d01b8fa770fefd8"}, + {file = "django_rq-2.5.1-py2.py3-none-any.whl", hash = "sha256:7be1e10e7091555f9f36edf100b0dbb205ea2b98683d74443d2bdf3c6649a03f"}, +] [package.dependencies] django = ">=2.0" @@ -644,11 +991,15 @@ testing = ["mock (>=2.0.0)"] [[package]] name = "django-tables2" -version = "2.3.4" +version = "2.4.1" description = "Table/data-grid framework for Django" category = "main" optional = false python-versions = "*" +files = [ + {file = "django-tables2-2.4.1.tar.gz", hash = "sha256:6c72dd208358539e789e4c0efd7d151e43283a4aa4093a35f44c43489e7ddeaa"}, + {file = "django_tables2-2.4.1-py2.py3-none-any.whl", hash = "sha256:50762bf3d7c61a4eb70e763c3e278650d7266bb78d0497fc8fafcf4e507c9a64"}, +] [package.dependencies] Django = ">=1.11" @@ -658,14 +1009,18 @@ tablib = ["tablib"] [[package]] name = "django-taggit" -version = "1.3.0" +version = "1.5.1" description = "django-taggit is a reusable Django application for simple tagging." category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" +files = [ + {file = "django-taggit-1.5.1.tar.gz", hash = "sha256:e5bb62891f458d55332e36a32e19c08d20142c43f74bc5656c803f8af25c084a"}, + {file = "django_taggit-1.5.1-py3-none-any.whl", hash = "sha256:dfe9e9c10b5929132041de0c00093ef0072c73c2a97d0f74a818ae50fa77149a"}, +] [package.dependencies] -Django = ">=1.11" +Django = ">=2.2" [[package]] name = "django-timezone-field" @@ -674,6 +1029,10 @@ description = "A Django app providing database and form fields for pytz timezone category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "django-timezone-field-4.1.2.tar.gz", hash = "sha256:cffac62452d060e365938aa9c9f7b72d70d8b26b9c60243bce227b35abd1b9df"}, + {file = "django_timezone_field-4.1.2-py3-none-any.whl", hash = "sha256:897c06e40b619cf5731a30d6c156886a7c64cba3a90364832148da7ef32ccf36"}, +] [package.dependencies] django = ">=2.2" @@ -682,6 +1041,21 @@ pytz = "*" [package.extras] rest-framework = ["djangorestframework (>=3.0.0)"] +[[package]] +name = "django-tree-queries" +version = "0.11.0" +description = "Tree queries with explicit opt-in, without configurability" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "django_tree_queries-0.11.0-py3-none-any.whl", hash = "sha256:d74fe9e36dc67cb2c6f7df1969ef700627b0c49af2ada15990dd3ae44e4ddb23"}, + {file = "django_tree_queries-0.11.0.tar.gz", hash = "sha256:768bc75fd5ab617e19bec5c7e207964d7f2f6155f5f3d8c3332b41d9d0e6b436"}, +] + +[package.extras] +tests = ["coverage"] + [[package]] name = "django-webserver" version = "1.2.0" @@ -689,6 +1063,10 @@ description = "Django management commands for production webservers" category = "main" optional = false python-versions = "*" +files = [ + {file = "django-webserver-1.2.0.tar.gz", hash = "sha256:c976979d15b5ff9a212f7904d3b779e22219aebb4857860fcaf20e4e40f1da40"}, + {file = "django_webserver-1.2.0-py2.py3-none-any.whl", hash = "sha256:09200631f266484b9e944e38e92681d6e9aa7d90d089a5c86d5fb08fddad84fe"}, +] [package.dependencies] Django = "*" @@ -702,14 +1080,60 @@ waitress = ["waitress"] [[package]] name = "djangorestframework" -version = "3.12.4" +version = "3.13.1" description = "Web APIs for Django, made easy." category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" +files = [ + {file = "djangorestframework-3.13.1-py3-none-any.whl", hash = "sha256:24c4bf58ed7e85d1fe4ba250ab2da926d263cd57d64b03e8dcef0ac683f8b1aa"}, + {file = "djangorestframework-3.13.1.tar.gz", hash = "sha256:0c33407ce23acc68eca2a6e46424b008c9c02eceb8cf18581921d0092bc1f2ee"}, +] [package.dependencies] django = ">=2.2" +pytz = "*" + +[[package]] +name = "drf-spectacular" +version = "0.24.2" +description = "Sane and flexible OpenAPI 3 schema generation for Django REST framework" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "drf-spectacular-0.24.2.tar.gz", hash = "sha256:be32417594080a52f996afd83fd47ea9c2b83cbf13f6d3fbf3de809a0dfa7ead"}, + {file = "drf_spectacular-0.24.2-py3-none-any.whl", hash = "sha256:b276e6f7bda6dfb911e742dab87c6e97bc67da2dafe82d6fd8df7cec6c8b03ec"}, +] + +[package.dependencies] +Django = ">=2.2" +djangorestframework = ">=3.10" +drf-spectacular-sidecar = {version = "*", optional = true, markers = "extra == \"sidecar\""} +inflection = ">=0.3.1" +jsonschema = ">=2.6.0" +PyYAML = ">=5.1" +typing-extensions = {version = "*", markers = "python_version < \"3.8\""} +uritemplate = ">=2.0.0" + +[package.extras] +offline = ["drf-spectacular-sidecar"] +sidecar = ["drf-spectacular-sidecar"] + +[[package]] +name = "drf-spectacular-sidecar" +version = "2023.3.1" +description = "Serve self-contained distribution builds of Swagger UI and Redoc with Django" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "drf-spectacular-sidecar-2023.3.1.tar.gz", hash = "sha256:ceb78fd59971bb79e90de38bf89afa50a60b043953f72b3cdeb4ca6a34623f92"}, + {file = "drf_spectacular_sidecar-2023.3.1-py3-none-any.whl", hash = "sha256:2b5ea98d976a4ba023d03cd9dfc2506892e0f26e2ba2869b58ddf344ab69f40f"}, +] + +[package.dependencies] +Django = ">=2.2" [[package]] name = "drf-yasg" @@ -718,6 +1142,10 @@ description = "Automated generation of real Swagger/OpenAPI 2.0 schemas from Dja category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "drf-yasg-1.20.3.tar.gz", hash = "sha256:1c66929fba56724c477951ab07266e69bbd0cb280e84b675957df19e3b567958"}, + {file = "drf_yasg-1.20.3-py2.py3-none-any.whl", hash = "sha256:915a16dae564143ebcbc1787e4aaad38062ccd95d1e6f97c2d33086575335bb8"}, +] [package.dependencies] coreapi = ">=2.3.3" @@ -741,6 +1169,10 @@ description = "the modular source code checker: pep8 pyflakes and co" category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, + {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, +] [package.dependencies] importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} @@ -755,6 +1187,10 @@ description = "A fancy and practical functional tools" category = "main" optional = false python-versions = "*" +files = [ + {file = "funcy-1.17-py2.py3-none-any.whl", hash = "sha256:ba7af5e58bfc69321aaf860a1547f18d35e145706b95d1b3c966abc4f0b60309"}, + {file = "funcy-1.17.tar.gz", hash = "sha256:40b9b9a88141ae6a174df1a95861f2b82f2fdc17669080788b73a3ed9370e968"}, +] [[package]] name = "ghp-import" @@ -763,6 +1199,10 @@ description = "Copy your docs directly to the gh-pages branch." category = "dev" optional = false python-versions = "*" +files = [ + {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, + {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, +] [package.dependencies] python-dateutil = ">=2.8.1" @@ -777,21 +1217,29 @@ description = "Git Object Database" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "gitdb-4.0.9-py3-none-any.whl", hash = "sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd"}, + {file = "gitdb-4.0.9.tar.gz", hash = "sha256:bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa"}, +] [package.dependencies] smmap = ">=3.0.1,<6" [[package]] -name = "GitPython" -version = "3.1.18" -description = "Python Git Library" +name = "gitpython" +version = "3.1.31" +description = "GitPython is a Python library used to interact with Git repositories" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "GitPython-3.1.31-py3-none-any.whl", hash = "sha256:f04893614f6aa713a60cbbe1e6a97403ef633103cdd0ef5eb6efe0deb98dbe8d"}, + {file = "GitPython-3.1.31.tar.gz", hash = "sha256:8ce3bcf69adfdf7c7d503e78fd3b1c492af782d58893b650adb2ac8912ddd573"}, +] [package.dependencies] gitdb = ">=4.0.1,<5" -typing-extensions = {version = ">=3.7.4.0", markers = "python_version < \"3.8\""} +typing-extensions = {version = ">=3.7.4.3", markers = "python_version < \"3.8\""} [[package]] name = "graphene" @@ -800,6 +1248,10 @@ description = "GraphQL Framework for Python" category = "main" optional = false python-versions = "*" +files = [ + {file = "graphene-2.1.9-py2.py3-none-any.whl", hash = "sha256:3d446eb1237c551052bc31155cf1a3a607053e4f58c9172b83a1b597beaa0868"}, + {file = "graphene-2.1.9.tar.gz", hash = "sha256:b9f2850e064eebfee9a3ef4a1f8aa0742848d97652173ab44c82cc8a62b9ed93"}, +] [package.dependencies] aniso8601 = ">=3,<=7" @@ -819,6 +1271,10 @@ description = "Graphene Django integration" category = "main" optional = false python-versions = "*" +files = [ + {file = "graphene-django-2.15.0.tar.gz", hash = "sha256:b78c9b05bc899016b9cc5bf13faa1f37fe1faa8c5407552c6ddd1a28f46fc31a"}, + {file = "graphene_django-2.15.0-py2.py3-none-any.whl", hash = "sha256:02671d195f0c09c8649acff2a8f4ad4f297d0f7d98ea6e6cdf034b81bab92880"}, +] [package.dependencies] Django = ">=1.11" @@ -841,6 +1297,9 @@ description = "Optimize database access inside graphene queries." category = "main" optional = false python-versions = "*" +files = [ + {file = "graphene-django-optimizer-0.8.0.tar.gz", hash = "sha256:79269880d59d0a35d41751ddcb419220c4ad3871960416371119f447cb2e1a77"}, +] [[package]] name = "graphql-core" @@ -849,6 +1308,10 @@ description = "GraphQL implementation for Python" category = "main" optional = false python-versions = "*" +files = [ + {file = "graphql-core-2.3.2.tar.gz", hash = "sha256:aac46a9ac524c9855910c14c48fc5d60474def7f99fd10245e76608eba7af746"}, + {file = "graphql_core-2.3.2-py2.py3-none-any.whl", hash = "sha256:44c9bac4514e5e30c5a595fac8e3c76c1975cae14db215e8174c7fe995825bad"}, +] [package.dependencies] promise = ">=2.3,<3" @@ -866,6 +1329,10 @@ description = "Relay implementation for Python" category = "main" optional = false python-versions = "*" +files = [ + {file = "graphql-relay-2.0.1.tar.gz", hash = "sha256:870b6b5304123a38a0b215a79eace021acce5a466bf40cd39fa18cb8528afabb"}, + {file = "graphql_relay-2.0.1-py3-none-any.whl", hash = "sha256:ac514cb86db9a43014d7e73511d521137ac12cf0101b2eaa5f0a3da2e10d913d"}, +] [package.dependencies] graphql-core = ">=2.2,<3" @@ -879,6 +1346,10 @@ description = "HashiCorp Vault API client" category = "main" optional = false python-versions = ">=3.6.2,<4.0.0" +files = [ + {file = "hvac-1.0.2-py3-none-any.whl", hash = "sha256:e8256343de2576b18bc8d49f09a04c728f2a8f3a866825bb413aa4f9ebab1fea"}, + {file = "hvac-1.0.2.tar.gz", hash = "sha256:e4028c5c0ecc7b7fcf6a54d290f99240e5abcdb9ffe442d1c14f061310d4c61c"}, +] [package.dependencies] pyhcl = ">=0.4.4,<0.5.0" @@ -891,6 +1362,10 @@ description = "Internationalized Domain Names in Applications (IDNA)" category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] [[package]] name = "importlib-metadata" @@ -899,6 +1374,10 @@ description = "Read metadata from Python packages" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "importlib_metadata-4.4.0-py3-none-any.whl", hash = "sha256:960d52ba7c21377c990412aca380bf3642d734c2eaab78a2c39319f67c6a5786"}, + {file = "importlib_metadata-4.4.0.tar.gz", hash = "sha256:e592faad8de1bda9fe920cf41e15261e7131bcf266c30306eec00e8e225c1dd5"}, +] [package.dependencies] typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} @@ -908,6 +1387,25 @@ zipp = ">=0.5" docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pep517", "pyfakefs", "pytest (>=4.6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy"] +[[package]] +name = "importlib-resources" +version = "5.12.0" +description = "Read resources from Python packages" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "importlib_resources-5.12.0-py3-none-any.whl", hash = "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a"}, + {file = "importlib_resources-5.12.0.tar.gz", hash = "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6"}, +] + +[package.dependencies] +zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] + [[package]] name = "inflection" version = "0.5.1" @@ -915,6 +1413,10 @@ description = "A port of Ruby on Rails inflector to Python" category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "inflection-0.5.1-py2.py3-none-any.whl", hash = "sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2"}, + {file = "inflection-0.5.1.tar.gz", hash = "sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417"}, +] [[package]] name = "invoke" @@ -923,6 +1425,10 @@ description = "Pythonic task execution" category = "dev" optional = false python-versions = "*" +files = [ + {file = "invoke-1.7.1-py3-none-any.whl", hash = "sha256:2dc975b4f92be0c0a174ad2d063010c8a1fdb5e9389d69871001118b4fcac4fb"}, + {file = "invoke-1.7.1.tar.gz", hash = "sha256:7b6deaf585eee0a848205d0b8c0014b9bf6f287a8eb798818a642dff1df14b19"}, +] [[package]] name = "isort" @@ -931,6 +1437,10 @@ description = "A Python utility / library to sort Python imports." category = "dev" optional = false python-versions = ">=3.6.1,<4.0" +files = [ + {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, + {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, +] [package.extras] colors = ["colorama (>=0.4.3,<0.5.0)"] @@ -945,20 +1455,28 @@ description = "Simple immutable types for python." category = "main" optional = false python-versions = "*" +files = [ + {file = "itypes-1.2.0-py2.py3-none-any.whl", hash = "sha256:03da6872ca89d29aef62773672b2d408f490f80db48b23079a4b194c86dd04c6"}, + {file = "itypes-1.2.0.tar.gz", hash = "sha256:af886f129dea4a2a1e3d36595a2d139589e4dd287f5cab0b40e799ee81570ff1"}, +] [[package]] -name = "Jinja2" -version = "2.11.3" +name = "jinja2" +version = "3.0.3" description = "A very fast and expressive template engine." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.6" +files = [ + {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"}, + {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"}, +] [package.dependencies] -MarkupSafe = ">=0.23" +MarkupSafe = ">=2.0" [package.extras] -i18n = ["Babel (>=0.8)"] +i18n = ["Babel (>=2.7)"] [[package]] name = "jmespath" @@ -967,25 +1485,33 @@ description = "JSON Matching Expressions" category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"}, + {file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"}, +] [[package]] name = "jsonschema" -version = "3.2.0" +version = "4.7.2" description = "An implementation of JSON Schema validation for Python" category = "main" optional = false -python-versions = "*" +python-versions = ">=3.7" +files = [ + {file = "jsonschema-4.7.2-py3-none-any.whl", hash = "sha256:c7448a421b25e424fccfceea86b4e3a8672b4436e1988ccbde92c80828d4f085"}, + {file = "jsonschema-4.7.2.tar.gz", hash = "sha256:73764f461d61eb97a057c929368610a134d1d1fffd858acfe88864ee94f1f1d3"}, +] [package.dependencies] attrs = ">=17.4.0" importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} -pyrsistent = ">=0.14.0" -setuptools = "*" -six = ">=1.11.0" +importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} +pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" +typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] -format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] -format-nongpl = ["idna", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "webcolors"] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] [[package]] name = "kombu" @@ -994,6 +1520,10 @@ description = "Messaging library for Python." category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "kombu-5.2.4-py3-none-any.whl", hash = "sha256:8b213b24293d3417bcf0d2f5537b7f756079e3ea232a8386dcc89a59fd2361a4"}, + {file = "kombu-5.2.4.tar.gz", hash = "sha256:37cee3ee725f94ea8bb173eaab7c1760203ea53bbebae226328600f9d2799610"}, +] [package.dependencies] amqp = ">=5.0.9,<6.0.0" @@ -1024,6 +1554,45 @@ description = "A fast and thorough lazy object proxy." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, + {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, +] [[package]] name = "Markdown" @@ -1032,6 +1601,10 @@ description = "Python implementation of Markdown." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "Markdown-3.3.7-py3-none-any.whl", hash = "sha256:f5da449a6e1c989a4cea2631aa8ee67caa5a2ef855d551c88f9e309f4634c621"}, + {file = "Markdown-3.3.7.tar.gz", hash = "sha256:cbb516f16218e643d8e0a95b309f77eb118cb138d39a4f27851e6a63581db874"}, +] [package.dependencies] importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} @@ -1040,12 +1613,64 @@ importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} testing = ["coverage", "pyyaml"] [[package]] -name = "MarkupSafe" -version = "2.0.1" +name = "markupsafe" +version = "2.1.2" description = "Safely add untrusted strings to HTML/XML markup." category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"}, + {file = "MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"}, +] [[package]] name = "mccabe" @@ -1054,6 +1679,10 @@ description = "McCabe checker, plugin for flake8" category = "dev" optional = false python-versions = "*" +files = [ + {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, + {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, +] [[package]] name = "mergedeep" @@ -1062,29 +1691,40 @@ description = "A deep merge function for 🐍." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, + {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, +] [[package]] name = "mkdocs" -version = "1.3.1" +version = "1.4.2" description = "Project documentation with Markdown." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "mkdocs-1.4.2-py3-none-any.whl", hash = "sha256:c8856a832c1e56702577023cd64cc5f84948280c1c0fcc6af4cd39006ea6aa8c"}, + {file = "mkdocs-1.4.2.tar.gz", hash = "sha256:8947af423a6d0facf41ea1195b8e1e8c85ad94ac95ae307fe11232e0424b11c5"}, +] [package.dependencies] -click = ">=3.3" +click = ">=7.0" +colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} ghp-import = ">=1.0" -importlib-metadata = ">=4.3" -Jinja2 = ">=2.10.2" -Markdown = ">=3.2.1,<3.4" +importlib-metadata = {version = ">=4.3", markers = "python_version < \"3.10\""} +jinja2 = ">=2.11.1" +markdown = ">=3.2.1,<3.4" mergedeep = ">=1.3.4" packaging = ">=20.5" -PyYAML = ">=3.10" +pyyaml = ">=5.1" pyyaml-env-tag = ">=0.1" +typing-extensions = {version = ">=3.10", markers = "python_version < \"3.8\""} watchdog = ">=2.0" [package.extras] i18n = ["babel (>=2.9.0)"] +min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"] [[package]] name = "moto" @@ -1093,6 +1733,10 @@ description = "A library that allows your python tests to easily mock out the bo category = "dev" optional = false python-versions = "*" +files = [ + {file = "moto-2.2.20-py2.py3-none-any.whl", hash = "sha256:20f06e51dbdeb3ed76989f733e4e51472cbfe39dda031a49da66fc8df1bcefa4"}, + {file = "moto-2.2.20.tar.gz", hash = "sha256:aa6479df35b47d4df0c3214e118c328df67d9f4e157ec5523ce87a23fecf93f6"}, +] [package.dependencies] boto3 = ">=1.9.201" @@ -1134,64 +1778,74 @@ description = "Experimental type system extensions for programs checked with the category = "dev" optional = false python-versions = "*" +files = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] [[package]] name = "nautobot" -version = "1.2.11" +version = "1.4.10" description = "Source of truth and network automation platform." category = "main" optional = false -python-versions = ">=3.6,<4.0" +python-versions = ">=3.7,<4.0" +files = [ + {file = "nautobot-1.4.10-py3-none-any.whl", hash = "sha256:830f30d2891adcf93acb0ccb8af3039570e2149388ba3ff4c9cdfd91066aa145"}, + {file = "nautobot-1.4.10.tar.gz", hash = "sha256:402d3dd524b6631691cba0500856e6769f3f925b80badad451c16bb0ff02de43"}, +] [package.dependencies] -celery = {version = ">=5.2.2,<5.3.0", markers = "python_version >= \"3.7\" and python_version < \"4.0\""} -Django = ">=3.1.12,<3.2.0" +celery = ">=5.2.7,<5.3.0" +Django = ">=3.2.16,<3.3.0" django-ajax-tables = ">=1.1.1,<1.2.0" -django-cacheops = ">=5.1,<5.2" -django-celery-beat = ">=2.2.0,<3.0.0" +django-cacheops = ">=6.0,<6.1" +django-celery-beat = ">=2.2.1,<2.3.0" django-constance = {version = ">=2.8.0,<2.9.0", extras = ["database"]} -django-cors-headers = ">=3.7.0,<3.8.0" +django-cors-headers = ">=3.13.0,<3.14.0" django-cryptography = ">=1.0,<1.1" django-db-file-storage = ">=0.5.5,<0.6.0" -django-extensions = ">=3.1.5,<3.2.0" -django-filter = ">=2.4.0,<2.5.0" -django-health-check = ">=3.16.4,<4.0.0" -django-jinja = "<2.8.0" -django-mptt = ">=0.11.0,<0.12.0" -django-prometheus = ">=2.1.0,<2.2.0" +django-extensions = ">=3.2.0,<3.3.0" +django-filter = ">=21.1,<21.2" +django-health-check = ">=3.16.5,<3.17.0" +django-jinja = ">=2.10.2,<2.11.0" +django-mptt = ">=0.13.4,<0.14.0" +django-prometheus = ">=2.2.0,<2.3.0" django-redis = ">=5.2.0,<5.3.0" -django-rq = ">=2.4.1,<2.5.0" -django-tables2 = ">=2.3.4,<2.4.0" -django-taggit = ">=1.3.0,<1.4.0" +django-rq = ">=2.5.1,<2.6.0" +django-tables2 = ">=2.4.1,<2.5.0" +django-taggit = ">=1.5.1,<1.6.0" django-timezone-field = ">=4.1.2,<4.2.0" +django-tree-queries = ">=0.11,<0.12" django-webserver = ">=1.2.0,<1.3.0" -djangorestframework = ">=3.12.4,<3.13.0" -drf-yasg = {version = ">=1.20.0,<1.21.0", extras = ["validation"]} -GitPython = "3.1.18" +djangorestframework = ">=3.13.1,<3.14.0" +drf-spectacular = {version = ">=0.24.0,<0.25.0", extras = ["sidecar"]} +drf-yasg = {version = ">=1.20.0,<2.0.0", extras = ["validation"]} +GitPython = ">=3.1.27,<3.2.0" graphene-django = ">=2.15.0,<2.16.0" graphene-django-optimizer = ">=0.8.0,<0.9.0" -importlib-metadata = {version = ">=4.4,<4.5", markers = "python_version < \"3.10\""} -Jinja2 = ">=2.11.3,<2.12.0" -jsonschema = ">=3.2.0,<3.3.0" -Markdown = ">=3.3.6,<3.4.0" -MarkupSafe = "2.0.1" +importlib-metadata = {version = ">=4.4,<5.0", markers = "python_version < \"3.8\""} +Jinja2 = ">=3.0.3,<3.1.0" +jsonschema = ">=4.7.0,<4.8.0" +Markdown = ">=3.3.7,<3.4.0" +MarkupSafe = ">=2.1.1,<2.2.0" netaddr = ">=0.8.0,<0.9.0" -netutils = ">=1.0.0,<1.1.0" -Pillow = {version = ">=9.0.1,<9.1.0", markers = "python_version >= \"3.7\" and python_version < \"4.0\""} -psycopg2-binary = ">=2.8.6,<2.9.0" -pycryptodome = ">=3.10.1,<3.11.0" -pyuwsgi = ">=2.0.19.1.post0,<2.1.0.0" -PyYAML = ">=5.4.1,<5.5.0" -social-auth-app-django = ">=4.0.0,<5.0.0" -svgwrite = ">=1.4.1,<1.5.0" - -[package.extras] -all = ["django-auth-ldap (>=3.0.0,<3.1.0)", "django-storages (>=1.12.3,<1.13.0)", "mysqlclient (>=2.0.3,<2.1.0)", "napalm (>=3.3.1,<4.0.0)", "social-auth-core[openidconnect,saml] (>=4.1.0,<4.2.0)"] -ldap = ["django-auth-ldap (>=3.0.0,<3.1.0)"] -mysql = ["mysqlclient (>=2.0.3,<2.1.0)"] -napalm = ["napalm (>=3.3.1,<4.0.0)"] +netutils = ">=1.2.0,<1.3.0" +Pillow = ">=9.2.0,<9.3.0" +psycopg2-binary = ">=2.9.3,<2.10.0" +pycryptodome = ">=3.13.0,<3.14.0" +pyuwsgi = ">=2.0.20,<2.1.0" +PyYAML = ">=6.0,<6.1" +social-auth-app-django = ">=5.0.0,<5.1.0" +svgwrite = ">=1.4.2,<1.5.0" + +[package.extras] +all = ["django-auth-ldap (>=4.1.0,<4.2.0)", "django-storages (>=1.12.3,<1.13.0)", "mysqlclient (>=2.1.0,<2.2.0)", "napalm (>=3.4.1,<3.5.0)", "social-auth-core[openidconnect,saml] (>=4.3.0,<4.4.0)"] +ldap = ["django-auth-ldap (>=4.1.0,<4.2.0)"] +mysql = ["mysqlclient (>=2.1.0,<2.2.0)"] +napalm = ["napalm (>=3.4.1,<3.5.0)"] remote-storage = ["django-storages (>=1.12.3,<1.13.0)"] -sso = ["social-auth-core[openidconnect,saml] (>=4.1.0,<4.2.0)"] +sso = ["social-auth-core[openidconnect,saml] (>=4.3.0,<4.4.0)"] [[package]] name = "netaddr" @@ -1200,14 +1854,22 @@ description = "A network address manipulation library for Python" category = "main" optional = false python-versions = "*" +files = [ + {file = "netaddr-0.8.0-py2.py3-none-any.whl", hash = "sha256:9666d0232c32d2656e5e5f8d735f58fd6c7457ce52fc21c98d45f2af78f990ac"}, + {file = "netaddr-0.8.0.tar.gz", hash = "sha256:d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243"}, +] [[package]] name = "netutils" -version = "1.0.0" +version = "1.2.0" description = "Common helper functions useful in network automation." category = "main" optional = false python-versions = ">=3.6,<4.0" +files = [ + {file = "netutils-1.2.0-py3-none-any.whl", hash = "sha256:23c2ca960544ac6674263063a3580fe3d9d94d5898512df468298659c7eff7e3"}, + {file = "netutils-1.2.0.tar.gz", hash = "sha256:a661326a46352208ea465f0305831f042f7943289e4cbc3e085c23c07682d24b"}, +] [[package]] name = "oauthlib" @@ -1216,6 +1878,10 @@ description = "A generic, spec-compliant, thorough implementation of the OAuth r category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "oauthlib-3.2.1-py3-none-any.whl", hash = "sha256:88e912ca1ad915e1dcc1c06fc9259d19de8deacd6fd17cc2df266decc2e49066"}, + {file = "oauthlib-3.2.1.tar.gz", hash = "sha256:1565237372795bf6ee3e5aba5e2a85bd5a65d0e2aa5c628b9a97b7d7a0da3721"}, +] [package.extras] rsa = ["cryptography (>=3.0.0)"] @@ -1229,6 +1895,10 @@ description = "Core utilities for Python packages" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] [package.dependencies] pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" @@ -1240,6 +1910,10 @@ description = "Utility library for gitignore style pattern matching of file path category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pathspec-0.10.1-py3-none-any.whl", hash = "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93"}, + {file = "pathspec-0.10.1.tar.gz", hash = "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d"}, +] [[package]] name = "pbr" @@ -1248,14 +1922,82 @@ description = "Python Build Reasonableness" category = "dev" optional = false python-versions = ">=2.6" +files = [ + {file = "pbr-5.10.0-py2.py3-none-any.whl", hash = "sha256:da3e18aac0a3c003e9eea1a81bd23e5a3a75d745670dcf736317b7d966887fdf"}, + {file = "pbr-5.10.0.tar.gz", hash = "sha256:cfcc4ff8e698256fc17ea3ff796478b050852585aa5bae79ecd05b2ab7b39b9a"}, +] [[package]] -name = "Pillow" -version = "9.0.1" +name = "pillow" +version = "9.2.0" description = "Python Imaging Library (Fork)" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "Pillow-9.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:a9c9bc489f8ab30906d7a85afac4b4944a572a7432e00698a7239f44a44e6efb"}, + {file = "Pillow-9.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:510cef4a3f401c246cfd8227b300828715dd055463cdca6176c2e4036df8bd4f"}, + {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7888310f6214f19ab2b6df90f3f06afa3df7ef7355fc025e78a3044737fab1f5"}, + {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:831e648102c82f152e14c1a0938689dbb22480c548c8d4b8b248b3e50967b88c"}, + {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cc1d2451e8a3b4bfdb9caf745b58e6c7a77d2e469159b0d527a4554d73694d1"}, + {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:136659638f61a251e8ed3b331fc6ccd124590eeff539de57c5f80ef3a9594e58"}, + {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:6e8c66f70fb539301e064f6478d7453e820d8a2c631da948a23384865cd95544"}, + {file = "Pillow-9.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:37ff6b522a26d0538b753f0b4e8e164fdada12db6c6f00f62145d732d8a3152e"}, + {file = "Pillow-9.2.0-cp310-cp310-win32.whl", hash = "sha256:c79698d4cd9318d9481d89a77e2d3fcaeff5486be641e60a4b49f3d2ecca4e28"}, + {file = "Pillow-9.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:254164c57bab4b459f14c64e93df11eff5ded575192c294a0c49270f22c5d93d"}, + {file = "Pillow-9.2.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:adabc0bce035467fb537ef3e5e74f2847c8af217ee0be0455d4fec8adc0462fc"}, + {file = "Pillow-9.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:336b9036127eab855beec9662ac3ea13a4544a523ae273cbf108b228ecac8437"}, + {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50dff9cc21826d2977ef2d2a205504034e3a4563ca6f5db739b0d1026658e004"}, + {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb6259196a589123d755380b65127ddc60f4c64b21fc3bb46ce3a6ea663659b0"}, + {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b0554af24df2bf96618dac71ddada02420f946be943b181108cac55a7a2dcd4"}, + {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:15928f824870535c85dbf949c09d6ae7d3d6ac2d6efec80f3227f73eefba741c"}, + {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:bdd0de2d64688ecae88dd8935012c4a72681e5df632af903a1dca8c5e7aa871a"}, + {file = "Pillow-9.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5b87da55a08acb586bad5c3aa3b86505f559b84f39035b233d5bf844b0834b1"}, + {file = "Pillow-9.2.0-cp311-cp311-win32.whl", hash = "sha256:b6d5e92df2b77665e07ddb2e4dbd6d644b78e4c0d2e9272a852627cdba0d75cf"}, + {file = "Pillow-9.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:6bf088c1ce160f50ea40764f825ec9b72ed9da25346216b91361eef8ad1b8f8c"}, + {file = "Pillow-9.2.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:2c58b24e3a63efd22554c676d81b0e57f80e0a7d3a5874a7e14ce90ec40d3069"}, + {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eef7592281f7c174d3d6cbfbb7ee5984a671fcd77e3fc78e973d492e9bf0eb3f"}, + {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dcd7b9c7139dc8258d164b55696ecd16c04607f1cc33ba7af86613881ffe4ac8"}, + {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a138441e95562b3c078746a22f8fca8ff1c22c014f856278bdbdd89ca36cff1b"}, + {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:93689632949aff41199090eff5474f3990b6823404e45d66a5d44304e9cdc467"}, + {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:f3fac744f9b540148fa7715a435d2283b71f68bfb6d4aae24482a890aed18b59"}, + {file = "Pillow-9.2.0-cp37-cp37m-win32.whl", hash = "sha256:fa768eff5f9f958270b081bb33581b4b569faabf8774726b283edb06617101dc"}, + {file = "Pillow-9.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:69bd1a15d7ba3694631e00df8de65a8cb031911ca11f44929c97fe05eb9b6c1d"}, + {file = "Pillow-9.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:030e3460861488e249731c3e7ab59b07c7853838ff3b8e16aac9561bb345da14"}, + {file = "Pillow-9.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:74a04183e6e64930b667d321524e3c5361094bb4af9083db5c301db64cd341f3"}, + {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d33a11f601213dcd5718109c09a52c2a1c893e7461f0be2d6febc2879ec2402"}, + {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fd6f5e3c0e4697fa7eb45b6e93996299f3feee73a3175fa451f49a74d092b9f"}, + {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a647c0d4478b995c5e54615a2e5360ccedd2f85e70ab57fbe817ca613d5e63b8"}, + {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:4134d3f1ba5f15027ff5c04296f13328fecd46921424084516bdb1b2548e66ff"}, + {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:bc431b065722a5ad1dfb4df354fb9333b7a582a5ee39a90e6ffff688d72f27a1"}, + {file = "Pillow-9.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1536ad017a9f789430fb6b8be8bf99d2f214c76502becc196c6f2d9a75b01b76"}, + {file = "Pillow-9.2.0-cp38-cp38-win32.whl", hash = "sha256:2ad0d4df0f5ef2247e27fc790d5c9b5a0af8ade9ba340db4a73bb1a4a3e5fb4f"}, + {file = "Pillow-9.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:ec52c351b35ca269cb1f8069d610fc45c5bd38c3e91f9ab4cbbf0aebc136d9c8"}, + {file = "Pillow-9.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ed2c4ef2451de908c90436d6e8092e13a43992f1860275b4d8082667fbb2ffc"}, + {file = "Pillow-9.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ad2f835e0ad81d1689f1b7e3fbac7b01bb8777d5a985c8962bedee0cc6d43da"}, + {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea98f633d45f7e815db648fd7ff0f19e328302ac36427343e4432c84432e7ff4"}, + {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7761afe0126d046974a01e030ae7529ed0ca6a196de3ec6937c11df0df1bc91c"}, + {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a54614049a18a2d6fe156e68e188da02a046a4a93cf24f373bffd977e943421"}, + {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:5aed7dde98403cd91d86a1115c78d8145c83078e864c1de1064f52e6feb61b20"}, + {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:13b725463f32df1bfeacbf3dd197fb358ae8ebcd8c5548faa75126ea425ccb60"}, + {file = "Pillow-9.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:808add66ea764ed97d44dda1ac4f2cfec4c1867d9efb16a33d158be79f32b8a4"}, + {file = "Pillow-9.2.0-cp39-cp39-win32.whl", hash = "sha256:337a74fd2f291c607d220c793a8135273c4c2ab001b03e601c36766005f36885"}, + {file = "Pillow-9.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:fac2d65901fb0fdf20363fbd345c01958a742f2dc62a8dd4495af66e3ff502a4"}, + {file = "Pillow-9.2.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ad2277b185ebce47a63f4dc6302e30f05762b688f8dc3de55dbae4651872cdf3"}, + {file = "Pillow-9.2.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c7b502bc34f6e32ba022b4a209638f9e097d7a9098104ae420eb8186217ebbb"}, + {file = "Pillow-9.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d1f14f5f691f55e1b47f824ca4fdcb4b19b4323fe43cc7bb105988cad7496be"}, + {file = "Pillow-9.2.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:dfe4c1fedfde4e2fbc009d5ad420647f7730d719786388b7de0999bf32c0d9fd"}, + {file = "Pillow-9.2.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:f07f1f00e22b231dd3d9b9208692042e29792d6bd4f6639415d2f23158a80013"}, + {file = "Pillow-9.2.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1802f34298f5ba11d55e5bb09c31997dc0c6aed919658dfdf0198a2fe75d5490"}, + {file = "Pillow-9.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17d4cafe22f050b46d983b71c707162d63d796a1235cdf8b9d7a112e97b15bac"}, + {file = "Pillow-9.2.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:96b5e6874431df16aee0c1ba237574cb6dff1dcb173798faa6a9d8b399a05d0e"}, + {file = "Pillow-9.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:0030fdbd926fb85844b8b92e2f9449ba89607231d3dd597a21ae72dc7fe26927"}, + {file = "Pillow-9.2.0.tar.gz", hash = "sha256:75e636fd3e0fb872693f23ccb8a5ff2cd578801251f3a4f6854c6a5d437d3c04"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] [[package]] name = "platformdirs" @@ -1264,8 +2006,12 @@ description = "A small Python module for determining appropriate platform-specif category = "dev" optional = false python-versions = ">=3.7" - -[package.extras] +files = [ + {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, + {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, +] + +[package.extras] docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"] test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] @@ -1276,6 +2022,10 @@ description = "Python client for the Prometheus monitoring system." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "prometheus_client-0.14.1-py3-none-any.whl", hash = "sha256:522fded625282822a89e2773452f42df14b5a8e84a86433e3f8a189c1d54dc01"}, + {file = "prometheus_client-0.14.1.tar.gz", hash = "sha256:5459c427624961076277fdc6dc50540e2bacb98eebde99886e59ec55ed92093a"}, +] [package.extras] twisted = ["twisted"] @@ -1287,6 +2037,9 @@ description = "Promises/A+ implementation for Python" category = "main" optional = false python-versions = "*" +files = [ + {file = "promise-2.3.tar.gz", hash = "sha256:dfd18337c523ba4b6a58801c164c1904a9d4d1b1747c7d5dbf45b693a49d93d0"}, +] [package.dependencies] six = "*" @@ -1301,17 +2054,94 @@ description = "Library for building powerful interactive command lines in Python category = "main" optional = false python-versions = ">=3.6.2" +files = [ + {file = "prompt_toolkit-3.0.31-py3-none-any.whl", hash = "sha256:9696f386133df0fc8ca5af4895afe5d78f5fcfe5258111c2a79a1c3e41ffa96d"}, + {file = "prompt_toolkit-3.0.31.tar.gz", hash = "sha256:9ada952c9d1787f52ff6d5f3484d0b4df8952787c087edf6a1f7c2cb1ea88148"}, +] [package.dependencies] wcwidth = "*" [[package]] name = "psycopg2-binary" -version = "2.8.6" +version = "2.9.5" description = "psycopg2 - Python-PostgreSQL Database Adapter" category = "main" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" +python-versions = ">=3.6" +files = [ + {file = "psycopg2-binary-2.9.5.tar.gz", hash = "sha256:33e632d0885b95a8b97165899006c40e9ecdc634a529dca7b991eb7de4ece41c"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:0775d6252ccb22b15da3b5d7adbbf8cfe284916b14b6dc0ff503a23edb01ee85"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2ec46ed947801652c9643e0b1dc334cfb2781232e375ba97312c2fc256597632"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3520d7af1ebc838cc6084a3281145d5cd5bdd43fdef139e6db5af01b92596cb7"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cbc554ba47ecca8cd3396ddaca85e1ecfe3e48dd57dc5e415e59551affe568e"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:5d28ecdf191db558d0c07d0f16524ee9d67896edf2b7990eea800abeb23ebd61"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_24_ppc64le.whl", hash = "sha256:b9c33d4aef08dfecbd1736ceab8b7b3c4358bf10a0121483e5cd60d3d308cc64"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:05b3d479425e047c848b9782cd7aac9c6727ce23181eb9647baf64ffdfc3da41"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1e491e6489a6cb1d079df8eaa15957c277fdedb102b6a68cfbf40c4994412fd0"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:9e32cedc389bcb76d9f24ea8a012b3cb8385ee362ea437e1d012ffaed106c17d"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:46850a640df62ae940e34a163f72e26aca1f88e2da79148e1862faaac985c302"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-win32.whl", hash = "sha256:3d790f84201c3698d1bfb404c917f36e40531577a6dda02e45ba29b64d539867"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-win_amd64.whl", hash = "sha256:1764546ffeaed4f9428707be61d68972eb5ede81239b46a45843e0071104d0dd"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-macosx_10_9_universal2.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:426c2ae999135d64e6a18849a7d1ad0e1bd007277e4a8f4752eaa40a96b550ff"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7cf1d44e710ca3a9ce952bda2855830fe9f9017ed6259e01fcd71ea6287565f5"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:024030b13bdcbd53d8a93891a2cf07719715724fc9fee40243f3bd78b4264b8f"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bcda1c84a1c533c528356da5490d464a139b6e84eb77cc0b432e38c5c6dd7882"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_24_aarch64.whl", hash = "sha256:2ef892cabdccefe577088a79580301f09f2a713eb239f4f9f62b2b29cafb0577"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_24_ppc64le.whl", hash = "sha256:af0516e1711995cb08dc19bbd05bec7dbdebf4185f68870595156718d237df3e"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e72c91bda9880f097c8aa3601a2c0de6c708763ba8128006151f496ca9065935"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e67b3c26e9b6d37b370c83aa790bbc121775c57bfb096c2e77eacca25fd0233b"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:5fc447058d083b8c6ac076fc26b446d44f0145308465d745fba93a28c14c9e32"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d892bfa1d023c3781a3cab8dd5af76b626c483484d782e8bd047c180db590e4c"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-win32.whl", hash = "sha256:2abccab84d057723d2ca8f99ff7b619285d40da6814d50366f61f0fc385c3903"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:bef7e3f9dc6f0c13afdd671008534be5744e0e682fb851584c8c3a025ec09720"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:6e63814ec71db9bdb42905c925639f319c80e7909fb76c3b84edc79dadef8d60"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:212757ffcecb3e1a5338d4e6761bf9c04f750e7d027117e74aa3cd8a75bb6fbd"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f8a9bcab7b6db2e3dbf65b214dfc795b4c6b3bb3af922901b6a67f7cb47d5f8"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-manylinux_2_24_aarch64.whl", hash = "sha256:56b2957a145f816726b109ee3d4e6822c23f919a7d91af5a94593723ed667835"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-manylinux_2_24_ppc64le.whl", hash = "sha256:f95b8aca2703d6a30249f83f4fe6a9abf2e627aa892a5caaab2267d56be7ab69"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:70831e03bd53702c941da1a1ad36c17d825a24fbb26857b40913d58df82ec18b"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:dbc332beaf8492b5731229a881807cd7b91b50dbbbaf7fe2faf46942eda64a24"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:2d964eb24c8b021623df1c93c626671420c6efadbdb8655cb2bd5e0c6fa422ba"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:95076399ec3b27a8f7fa1cc9a83417b1c920d55cf7a97f718a94efbb96c7f503"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-win32.whl", hash = "sha256:3fc33295cfccad697a97a76dec3f1e94ad848b7b163c3228c1636977966b51e2"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-win_amd64.whl", hash = "sha256:02551647542f2bf89073d129c73c05a25c372fc0a49aa50e0de65c3c143d8bd0"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:63e318dbe52709ed10d516a356f22a635e07a2e34c68145484ed96a19b0c4c68"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7e518a0911c50f60313cb9e74a169a65b5d293770db4770ebf004245f24b5c5"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9d38a4656e4e715d637abdf7296e98d6267df0cc0a8e9a016f8ba07e4aa3eeb"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:68d81a2fe184030aa0c5c11e518292e15d342a667184d91e30644c9d533e53e1"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-manylinux_2_24_ppc64le.whl", hash = "sha256:7ee3095d02d6f38bd7d9a5358fcc9ea78fcdb7176921528dd709cc63f40184f5"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:46512486be6fbceef51d7660dec017394ba3e170299d1dc30928cbedebbf103a"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b911dfb727e247340d36ae20c4b9259e4a64013ab9888ccb3cbba69b77fd9636"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:422e3d43b47ac20141bc84b3d342eead8d8099a62881a501e97d15f6addabfe9"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c5682a45df7d9642eff590abc73157c887a68f016df0a8ad722dcc0f888f56d7"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-win32.whl", hash = "sha256:b8104f709590fff72af801e916817560dbe1698028cd0afe5a52d75ceb1fce5f"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-win_amd64.whl", hash = "sha256:7b3751857da3e224f5629400736a7b11e940b5da5f95fa631d86219a1beaafec"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:043a9fd45a03858ff72364b4b75090679bd875ee44df9c0613dc862ca6b98460"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9ffdc51001136b699f9563b1c74cc1f8c07f66ef7219beb6417a4c8aaa896c28"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c15ba5982c177bc4b23a7940c7e4394197e2d6a424a2d282e7c236b66da6d896"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc85b3777068ed30aff8242be2813038a929f2084f69e43ef869daddae50f6ee"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:215d6bf7e66732a514f47614f828d8c0aaac9a648c46a831955cb103473c7147"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-manylinux_2_24_ppc64le.whl", hash = "sha256:7d07f552d1e412f4b4e64ce386d4c777a41da3b33f7098b6219012ba534fb2c2"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a0adef094c49f242122bb145c3c8af442070dc0e4312db17e49058c1702606d4"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:00475004e5ed3e3bf5e056d66e5dcdf41a0dc62efcd57997acd9135c40a08a50"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:7d88db096fa19d94f433420eaaf9f3c45382da2dd014b93e4bf3215639047c16"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:902844f9c4fb19b17dfa84d9e2ca053d4a4ba265723d62ea5c9c26b38e0aa1e6"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-win32.whl", hash = "sha256:4e7904d1920c0c89105c0517dc7e3f5c20fb4e56ba9cdef13048db76947f1d79"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-win_amd64.whl", hash = "sha256:a36a0e791805aa136e9cbd0ffa040d09adec8610453ee8a753f23481a0057af5"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:25382c7d174c679ce6927c16b6fbb68b10e56ee44b1acb40671e02d29f2fce7c"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9c38d3869238e9d3409239bc05bc27d6b7c99c2a460ea337d2814b35fb4fea1b"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5c6527c8efa5226a9e787507652dd5ba97b62d29b53c371a85cd13f957fe4d42"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e59137cdb970249ae60be2a49774c6dfb015bd0403f05af1fe61862e9626642d"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:d4c7b3a31502184e856df1f7bbb2c3735a05a8ce0ade34c5277e1577738a5c91"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_24_ppc64le.whl", hash = "sha256:b9a794cef1d9c1772b94a72eec6da144c18e18041d294a9ab47669bc77a80c1d"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c5254cbd4f4855e11cebf678c1a848a3042d455a22a4ce61349c36aafd4c2267"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c5e65c6ac0ae4bf5bef1667029f81010b6017795dcb817ba5c7b8a8d61fab76f"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:74eddec4537ab1f701a1647214734bc52cee2794df748f6ae5908e00771f180a"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:01ad49d68dd8c5362e4bfb4158f2896dc6e0c02e87b8a3770fc003459f1a4425"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-win32.whl", hash = "sha256:937880290775033a743f4836aa253087b85e62784b63fd099ee725d567a48aa1"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-win_amd64.whl", hash = "sha256:484405b883630f3e74ed32041a87456c5e0e63a8e3429aa93e8714c366d62bd1"}, +] [[package]] name = "pycodestyle" @@ -1320,6 +2150,10 @@ description = "Python style guide checker" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, + {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, +] [[package]] name = "pycparser" @@ -1328,14 +2162,50 @@ description = "C parser in Python" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] [[package]] name = "pycryptodome" -version = "3.10.4" +version = "3.13.0" description = "Cryptographic library for Python" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "pycryptodome-3.13.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:e468724173df02f9d83f3fea830bf0d04aa291b5add22b4a78e01c97aab04873"}, + {file = "pycryptodome-3.13.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:1fb7a6f222072412f320b9e48d3ce981920efbfce37b06d028ec9bd94093b37f"}, + {file = "pycryptodome-3.13.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:4f1b594d0cf35bd12ec4244df1155a7f565bf6e6245976ac36174c1564688c90"}, + {file = "pycryptodome-3.13.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:9ea70f6c3f6566159e3798e4593a4a8016994a0080ac29a45200615b45091a1b"}, + {file = "pycryptodome-3.13.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:f7aad304575d075faf2806977b726b67da7ba294adc97d878f92a062e357a56a"}, + {file = "pycryptodome-3.13.0-cp27-cp27m-manylinux2014_aarch64.whl", hash = "sha256:702446a012fd9337b9327d168bb0c7dc714eb93ad361f6f61af9ca8305a301f1"}, + {file = "pycryptodome-3.13.0-cp27-cp27m-win32.whl", hash = "sha256:681ac47c538c64305d710eaed2bb49532f62b3f4c93aa7c423c520df981392e5"}, + {file = "pycryptodome-3.13.0-cp27-cp27m-win_amd64.whl", hash = "sha256:7b3478a187d897f003b2aa1793bcc59463e8d57a42e2aafbcbbe9cd47ec46863"}, + {file = "pycryptodome-3.13.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:eec02d9199af4b1ccfe1f9c587691a07a1fa39d949d2c1dc69d079ab9af8212f"}, + {file = "pycryptodome-3.13.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:9c8e0e6c5e982699801b20fa74f43c19aa080d2b53a39f3c132d35958e153bd4"}, + {file = "pycryptodome-3.13.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:f5457e44d3f26d9946091e92b28f3e970a56538b96c87b4b155a84e32a40b7b5"}, + {file = "pycryptodome-3.13.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:88d6d54e83cf9bbd665ce1e7b9079983ee2d97a05f42e0569ff00a70f1dd8b1e"}, + {file = "pycryptodome-3.13.0-cp27-cp27mu-manylinux2014_aarch64.whl", hash = "sha256:72de8c4d71e6b11d54528bb924447fa4fdabcbb3d76cc0e7f61d3b6075def6b3"}, + {file = "pycryptodome-3.13.0-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:008ef2c631f112cd5a58736e0b29f4a28b4bb853e68878689f8b476fd56e0691"}, + {file = "pycryptodome-3.13.0-cp35-abi3-manylinux1_i686.whl", hash = "sha256:51ebe9624ad0a0b4da1aaaa2d43aabadf8537737fd494cee0ffa37cd6326de02"}, + {file = "pycryptodome-3.13.0-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:deede160bdf87ddb71f0a1314ad5a267b1a960be314ea7dc6b7ad86da6da89a3"}, + {file = "pycryptodome-3.13.0-cp35-abi3-manylinux2010_i686.whl", hash = "sha256:857c16bffd938254e3a834cd6b2a755ed24e1a953b1a86e33da136d3e4c16a6f"}, + {file = "pycryptodome-3.13.0-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:ca6db61335d07220de0b665bfee7b8e9615b2dfc67a54016db4826dac34c2dd2"}, + {file = "pycryptodome-3.13.0-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:073dedf0f9c490ae22ca081b86357646ac9b76f3e2bd89119d137fc697a9e3b6"}, + {file = "pycryptodome-3.13.0-cp35-abi3-win32.whl", hash = "sha256:e3affa03c49cce7b0a9501cc7f608d4f8e61fb2522b276d599ac049b5955576d"}, + {file = "pycryptodome-3.13.0-cp35-abi3-win_amd64.whl", hash = "sha256:e5d72be02b17e6bd7919555811264403468d1d052fa67c946e402257c3c29a27"}, + {file = "pycryptodome-3.13.0-pp27-pypy_73-macosx_10_9_x86_64.whl", hash = "sha256:0896d5d15ffe584d46cb9b69a75cf14a2bc8f6daf635b7bf16c1b041342a44b1"}, + {file = "pycryptodome-3.13.0-pp27-pypy_73-manylinux1_x86_64.whl", hash = "sha256:e420cdfca73f80fe15f79bb34756959945231a052440813e5fce531e6e96331a"}, + {file = "pycryptodome-3.13.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:720fafdf3e5c5de93039d8308f765cc60b8e9e7e852ad7135aa65dd89238191f"}, + {file = "pycryptodome-3.13.0-pp27-pypy_73-win32.whl", hash = "sha256:7a8b0e526ff239b4f4c61dd6898e2474d609843ffc437267f3a27ddff626e6f6"}, + {file = "pycryptodome-3.13.0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d92a5eddffb0ad39f582f07c1de26e9daf6880e3e782a94bb7ebaf939567f8bf"}, + {file = "pycryptodome-3.13.0-pp36-pypy36_pp73-manylinux1_x86_64.whl", hash = "sha256:cb9453c981554984c6f5c5ce7682d7286e65e2173d7416114c3593a977a01bf5"}, + {file = "pycryptodome-3.13.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:765b8b16bc1fd699e183dde642c7f2653b8f3c9c1a50051139908e9683f97732"}, + {file = "pycryptodome-3.13.0-pp36-pypy36_pp73-win32.whl", hash = "sha256:b3af53dddf848afb38b3ac2bae7159ddad1feb9bac14aa3acec6ef1797b82f8d"}, + {file = "pycryptodome-3.13.0.tar.gz", hash = "sha256:95bacf9ff7d1b90bba537d3f5f6c834efe6bfbb1a0195cb3573f29e6716ef08d"}, +] [[package]] name = "pydocstyle" @@ -1344,6 +2214,10 @@ description = "Python docstring style checker" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pydocstyle-6.1.1-py3-none-any.whl", hash = "sha256:6987826d6775056839940041beef5c08cc7e3d71d63149b48e36727f70144dc4"}, + {file = "pydocstyle-6.1.1.tar.gz", hash = "sha256:1d41b7c459ba0ee6c345f2eb9ae827cab14a7533a88c5c6f7e94923f72df92dc"}, +] [package.dependencies] snowballstemmer = "*" @@ -1358,6 +2232,10 @@ description = "passive checker of Python programs" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, + {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, +] [[package]] name = "pyhcl" @@ -1366,6 +2244,9 @@ description = "HCL configuration parser for python" category = "main" optional = false python-versions = "*" +files = [ + {file = "pyhcl-0.4.4.tar.gz", hash = "sha256:2d9b9dcdf1023d812bfed561ba72c99104c5b3f52e558d595130a44ce081b003"}, +] [[package]] name = "PyJWT" @@ -1374,6 +2255,10 @@ description = "JSON Web Token implementation in Python" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "PyJWT-2.5.0-py3-none-any.whl", hash = "sha256:8d82e7087868e94dd8d7d418e5088ce64f7daab4b36db654cbaedb46f9d1ca80"}, + {file = "PyJWT-2.5.0.tar.gz", hash = "sha256:e77ab89480905d86998442ac5788f35333fa85f65047a534adc38edf3c88fc3b"}, +] [package.extras] crypto = ["cryptography (>=3.3.1)", "types-cryptography (>=3.3.21)"] @@ -1388,6 +2273,10 @@ description = "python code static checker" category = "dev" optional = false python-versions = ">=3.6.2" +files = [ + {file = "pylint-2.13.9-py3-none-any.whl", hash = "sha256:705c620d388035bdd9ff8b44c5bcdd235bfb49d276d488dd2c8ff1736aa42526"}, + {file = "pylint-2.13.9.tar.gz", hash = "sha256:095567c96e19e6f57b5b907e67d265ff535e588fe26b12b5ebe1fc5645b2c731"}, +] [package.dependencies] astroid = ">=2.11.5,<=2.12.0-dev0" @@ -1409,6 +2298,10 @@ description = "A Pylint plugin to help Pylint understand the Django web framewor category = "dev" optional = false python-versions = "*" +files = [ + {file = "pylint-django-2.5.3.tar.gz", hash = "sha256:0ac090d106c62fe33782a1d01bda1610b761bb1c9bf5035ced9d5f23a13d8591"}, + {file = "pylint_django-2.5.3-py3-none-any.whl", hash = "sha256:56b12b6adf56d548412445bd35483034394a1a94901c3f8571980a13882299d5"}, +] [package.dependencies] pylint = ">=2.0,<3" @@ -1425,6 +2318,10 @@ description = "Utilities and helpers for writing Pylint plugins" category = "dev" optional = false python-versions = ">=3.6.2" +files = [ + {file = "pylint-plugin-utils-0.7.tar.gz", hash = "sha256:ce48bc0516ae9415dd5c752c940dfe601b18fe0f48aa249f2386adfa95a004dd"}, + {file = "pylint_plugin_utils-0.7-py3-none-any.whl", hash = "sha256:b3d43e85ab74c4f48bb46ae4ce771e39c3a20f8b3d56982ab17aa73b4f98d535"}, +] [package.dependencies] pylint = ">=1.7" @@ -1436,6 +2333,10 @@ description = "pyparsing module - Classes and methods to define and execute pars category = "main" optional = false python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] [package.extras] diagrams = ["jinja2", "railroad-diagrams"] @@ -1447,6 +2348,29 @@ description = "Persistent/Functional/Immutable data structures" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, + {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, + {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, + {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, + {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, + {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, + {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, + {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, + {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, + {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, + {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, + {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, + {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, + {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, + {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, + {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, + {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, +] [[package]] name = "python-crontab" @@ -1455,6 +2379,10 @@ description = "Python Crontab API" category = "main" optional = false python-versions = "*" +files = [ + {file = "python-crontab-2.6.0.tar.gz", hash = "sha256:1e35ed7a3cdc3100545b43e196d34754e6551e7f95e4caebbe0e1c0ca41c2f1b"}, + {file = "python_crontab-2.6.0-py3-none-any.whl", hash = "sha256:f308a64b8b1d072da4a235e9320398a242e92d080c1d8143bd0c600b24e160f8"}, +] [package.dependencies] python-dateutil = "*" @@ -1470,6 +2398,10 @@ description = "Extensions to the standard Python datetime module" category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] [package.dependencies] six = ">=1.5" @@ -1481,6 +2413,10 @@ description = "The Delinea Secret Server Python SDK" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "python-tss-sdk-1.2.0.tar.gz", hash = "sha256:5d28ede8a00cd121e03c97b2eef3f966415ca53f3af9754d13c1e15af6497676"}, + {file = "python_tss_sdk-1.2.0-py3-none-any.whl", hash = "sha256:5c4f36ed9d70f9c4c2b549710845f1ba4fd99fd7dad859dc8b813854125e78f6"}, +] [package.dependencies] requests = ">=2.12.5" @@ -1492,6 +2428,10 @@ description = "OpenID support for modern servers and consumers." category = "main" optional = false python-versions = "*" +files = [ + {file = "python3-openid-3.2.0.tar.gz", hash = "sha256:33fbf6928f401e0b790151ed2b5290b02545e8775f982485205a066f874aaeaf"}, + {file = "python3_openid-3.2.0-py3-none-any.whl", hash = "sha256:6626f771e0417486701e0b4daff762e7212e820ca5b29fcc0d05f6f8736dfa6b"}, +] [package.dependencies] defusedxml = "*" @@ -1507,6 +2447,10 @@ description = "World timezone definitions, modern and historical" category = "main" optional = false python-versions = "*" +files = [ + {file = "pytz-2022.2.1-py2.py3-none-any.whl", hash = "sha256:220f481bdafa09c3955dfbdddb7b57780e9a94f5127e35456a48589b9e0c0197"}, + {file = "pytz-2022.2.1.tar.gz", hash = "sha256:cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5"}, +] [[package]] name = "pyuwsgi" @@ -1515,14 +2459,94 @@ description = "The uWSGI server" category = "main" optional = false python-versions = "*" +files = [ + {file = "pyuwsgi-2.0.20-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd09a7328558728f6e38f77609f44d16f18d8b4dc5f8b8776f657c8892b70337"}, + {file = "pyuwsgi-2.0.20-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:210ad768b8af02bbfd3c0345a51c6d2c56a2333ac268d9a97ecf2d4209f78ef8"}, + {file = "pyuwsgi-2.0.20-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e33111308a79dbd202094963fd3a537dab30854e375d9be018f642fcd359e03d"}, + {file = "pyuwsgi-2.0.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0306c3ca6f781ed7409774e44a2a90217824d3efb44e075a1f39a78a54ffe7d"}, + {file = "pyuwsgi-2.0.20-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3eeea48fd965b68801618fc20eda2cb65dc2aeb4121955c9c422685f046311da"}, + {file = "pyuwsgi-2.0.20-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:dd048b85abb90c79a34afbf787995ab2933cb2a8b210a6e064e5fca0a9bdf2d8"}, + {file = "pyuwsgi-2.0.20-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f612a72437c2934e39393fb575fab791e919efc102a0aa1a27b5d9a301d462e9"}, + {file = "pyuwsgi-2.0.20-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:78ac2d8b7d307232f8276cb8a45300211b0fae179c0494f2a3e3178c70693f81"}, + {file = "pyuwsgi-2.0.20-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f84fc44bba77d05fa9d01189028501ff8e6a2d63db184ceea42085ce28196317"}, + {file = "pyuwsgi-2.0.20-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:342c312949c2f494f5d9ac272965715483cb22ed0353c18abb1b4590769ef00f"}, + {file = "pyuwsgi-2.0.20-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5740b84a016a246c69edef0df11912560df9a45c2adf6e47701329a974e37a71"}, + {file = "pyuwsgi-2.0.20-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:82058f6b6656f12dbc66c963be2d7c0b977f481ddca5d4d3918e26def003b60d"}, + {file = "pyuwsgi-2.0.20-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:dc99724df6d5613300d3357c4017cde840830ca132fe98f0a4feab9a6af48622"}, + {file = "pyuwsgi-2.0.20-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:70096084ccfa18f058dfb3380aa10e80d48958ddfdb888b827f06aacb72f80b8"}, + {file = "pyuwsgi-2.0.20-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3e7a8576452635612c82f660e5be99ba42cdcdff142948f5c263b5278f2c17b0"}, + {file = "pyuwsgi-2.0.20-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2844205e0095a29d3a6e9e23bd37bcf18d65e4e5ab23a14a45f5159c03a3b890"}, + {file = "pyuwsgi-2.0.20-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e2c0d5dafb9faacc8ed5b662f9eacb22e723fbc3cb7152b2ebf09a92b8bd6c0d"}, + {file = "pyuwsgi-2.0.20-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:087397457837c5fd653eda91c5d2c7948e06da589c786d26145bdcc397656bb2"}, + {file = "pyuwsgi-2.0.20-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:da24ddb7e3522d36b4cdc2dbf131141d559084862f515d37f9a4b7b5c8b538b1"}, + {file = "pyuwsgi-2.0.20-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:99b0c5a87aa95dcbaca2ccb599d783f37461600e098881d4ec9796ba68e3ff8f"}, + {file = "pyuwsgi-2.0.20-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:df08a05dda4a92da46bd56af755dac091b145815c3cf6dda1855e01e40d12a99"}, + {file = "pyuwsgi-2.0.20-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7c8ac4b2f411d15222f53a96627b8fa79056b39606925f429f59a51668bd95ab"}, + {file = "pyuwsgi-2.0.20-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f1494d00df440865b1ee269a350187766c9c364ba5f124eddb064f366c4b6d8a"}, + {file = "pyuwsgi-2.0.20-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c5ee8782932dbacdb4dd98714c3575cbbb88ba87d7bcb3149c828725ba048897"}, + {file = "pyuwsgi-2.0.20-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cdc4b32234b40fa2d515108a2f56a159896134ef16394f26dba764635142976"}, + {file = "pyuwsgi-2.0.20-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:300417d6669171a454da19991fc7f910b3975232dac5b2dbc359e26f1038624b"}, + {file = "pyuwsgi-2.0.20-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:015a8d310503eb8c0028ac8f98c7df3b49bc937c7db137aaf149ca7fae64c777"}, + {file = "pyuwsgi-2.0.20-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:9fc3d256270adf24b87f1dff893f3bc59bd5ee20c4ebb5add25e944c36359e1e"}, + {file = "pyuwsgi-2.0.20-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:052fe12d6a9ab9e9fc7814e40d2d28061aaea1a610069008d773e1d8a71feb11"}, + {file = "pyuwsgi-2.0.20-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7d160c7bfa8f2974fc6b807a8fc080be0d130b1a4ad0b463c0320e707e6a6eb6"}, + {file = "pyuwsgi-2.0.20-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7691ca470e541133c444b23f83c6f07ecca12f4771a49e0e3a04b05f4c80f2d3"}, + {file = "pyuwsgi-2.0.20-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c87fb1d56dd2c6f18b87b08496be326afb6cf57c6a059261b01ce99046d9147"}, + {file = "pyuwsgi-2.0.20-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8eb97cf51f58df05ec0dd74d83510172a2f5bcd8adc91382e24690a2abddc2f3"}, + {file = "pyuwsgi-2.0.20-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a8fc4d52232f55df16e9cbf6faf4bf16910d15042229d5f8c717278fd4ea37a5"}, + {file = "pyuwsgi-2.0.20-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1acedb1841aa0e60e1a7245ae483a5fcb30e39cf0cdfe3987e14de4746daf75b"}, + {file = "pyuwsgi-2.0.20.tar.gz", hash = "sha256:8b0936a964511fa0e2ac2847c2435e95130e7c98619f06fe1f67320527576043"}, +] [[package]] -name = "PyYAML" -version = "5.4.1" +name = "pyyaml" +version = "6.0" description = "YAML parser and emitter for Python" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] [[package]] name = "pyyaml_env_tag" @@ -1531,6 +2555,10 @@ description = "A custom YAML tag for referencing environment variables in YAML f category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, + {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, +] [package.dependencies] pyyaml = "*" @@ -1542,6 +2570,10 @@ description = "Python client for Redis database and key-value store" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "redis-4.3.4-py3-none-any.whl", hash = "sha256:a52d5694c9eb4292770084fa8c863f79367ca19884b329ab574d5cb2036b3e54"}, + {file = "redis-4.3.4.tar.gz", hash = "sha256:ddf27071df4adf3821c4f2ca59d67525c3a82e5f268bed97b813cb4fabf87880"}, +] [package.dependencies] async-timeout = ">=4.0.2" @@ -1561,6 +2593,10 @@ description = "Python HTTP for Humans." category = "main" optional = false python-versions = ">=3.7, <4" +files = [ + {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, + {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, +] [package.dependencies] certifi = ">=2017.4.17" @@ -1579,6 +2615,10 @@ description = "Mock out responses from the requests package" category = "dev" optional = false python-versions = "*" +files = [ + {file = "requests-mock-1.9.3.tar.gz", hash = "sha256:8d72abe54546c1fc9696fa1516672f1031d72a55a1d66c85184f972a24ba0eba"}, + {file = "requests_mock-1.9.3-py2.py3-none-any.whl", hash = "sha256:0a2d38a117c08bb78939ec163522976ad59a6b7fdd82b709e23bb98004a44970"}, +] [package.dependencies] requests = ">=2.3,<3" @@ -1595,6 +2635,10 @@ description = "OAuthlib authentication support for Requests." category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"}, + {file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"}, +] [package.dependencies] oauthlib = ">=3.0.0" @@ -1610,6 +2654,10 @@ description = "A utility library for mocking out the `requests` Python library." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "responses-0.21.0-py3-none-any.whl", hash = "sha256:2dcc863ba63963c0c3d9ee3fa9507cbe36b7d7b0fccb4f0bdfd9e96c539b1487"}, + {file = "responses-0.21.0.tar.gz", hash = "sha256:b82502eb5f09a0289d8e209e7bad71ef3978334f56d09b444253d5ad67bf5253"}, +] [package.dependencies] requests = ">=2.0,<3.0" @@ -1626,6 +2674,10 @@ description = "RQ is a simple, lightweight, library for creating background jobs category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "rq-1.11.0-py2.py3-none-any.whl", hash = "sha256:c0bbf898b56817da053cdc992ab46da2729a7ccd70dd50316ad9209b7d7b71c1"}, + {file = "rq-1.11.0.tar.gz", hash = "sha256:50d0cf687cfb2530eac9396c7426e420958a166e8f4666bd2096bdcf7f4ad03e"}, +] [package.dependencies] click = ">=5.0.0" @@ -1638,6 +2690,10 @@ description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip pres category = "main" optional = false python-versions = ">=3" +files = [ + {file = "ruamel.yaml-0.17.21-py3-none-any.whl", hash = "sha256:742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7"}, + {file = "ruamel.yaml-0.17.21.tar.gz", hash = "sha256:8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af"}, +] [package.dependencies] "ruamel.yaml.clib" = {version = ">=0.2.6", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.11\""} @@ -1653,6 +2709,38 @@ description = "C version of reader, parser and emitter for ruamel.yaml derived f category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6e7be2c5bcb297f5b82fee9c665eb2eb7001d1050deaba8471842979293a80b0"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:066f886bc90cc2ce44df8b5f7acfc6a7e2b2e672713f027136464492b0c34d7c"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:221eca6f35076c6ae472a531afa1c223b9c29377e62936f61bc8e6e8bdc5f9e7"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win32.whl", hash = "sha256:1070ba9dd7f9370d0513d649420c3b362ac2d687fe78c6e888f5b12bf8bc7bee"}, + {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:77df077d32921ad46f34816a9a16e6356d8100374579bc35e15bab5d4e9377de"}, + {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:cfdb9389d888c5b74af297e51ce357b800dd844898af9d4a547ffc143fa56751"}, + {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7b2927e92feb51d830f531de4ccb11b320255ee95e791022555971c466af4527"}, + {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win32.whl", hash = "sha256:ada3f400d9923a190ea8b59c8f60680c4ef8a4b0dfae134d2f2ff68429adfab5"}, + {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win_amd64.whl", hash = "sha256:de9c6b8a1ba52919ae919f3ae96abb72b994dd0350226e28f3686cb4f142165c"}, + {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d67f273097c368265a7b81e152e07fb90ed395df6e552b9fa858c6d2c9f42502"}, + {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:72a2b8b2ff0a627496aad76f37a652bcef400fd861721744201ef1b45199ab78"}, + {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:d3c620a54748a3d4cf0bcfe623e388407c8e85a4b06b8188e126302bcab93ea8"}, + {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win32.whl", hash = "sha256:9efef4aab5353387b07f6b22ace0867032b900d8e91674b5d8ea9150db5cae94"}, + {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win_amd64.whl", hash = "sha256:846fc8336443106fe23f9b6d6b8c14a53d38cef9a375149d61f99d78782ea468"}, + {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0847201b767447fc33b9c235780d3aa90357d20dd6108b92be544427bea197dd"}, + {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:78988ed190206672da0f5d50c61afef8f67daa718d614377dcd5e3ed85ab4a99"}, + {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:210c8fcfeff90514b7133010bf14e3bad652c8efde6b20e00c43854bf94fa5a6"}, + {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win32.whl", hash = "sha256:a49e0161897901d1ac9c4a79984b8410f450565bbad64dbfcbf76152743a0cdb"}, + {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win_amd64.whl", hash = "sha256:bf75d28fa071645c529b5474a550a44686821decebdd00e21127ef1fd566eabe"}, + {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a32f8d81ea0c6173ab1b3da956869114cae53ba1e9f72374032e33ba3118c233"}, + {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7f7ecb53ae6848f959db6ae93bdff1740e651809780822270eab111500842a84"}, + {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:61bc5e5ca632d95925907c569daa559ea194a4d16084ba86084be98ab1cec1c6"}, + {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win32.whl", hash = "sha256:89221ec6d6026f8ae859c09b9718799fea22c0e8da8b766b0b2c9a9ba2db326b"}, + {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win_amd64.whl", hash = "sha256:31ea73e564a7b5fbbe8188ab8b334393e06d997914a4e184975348f204790277"}, + {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc6a613d6c74eef5a14a214d433d06291526145431c3b964f5e16529b1842bed"}, + {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:1866cf2c284a03b9524a5cc00daca56d80057c5ce3cdc86a52020f4c720856f0"}, + {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1b4139a6ffbca8ef60fdaf9b33dec05143ba746a6f0ae0f9d11d38239211d335"}, + {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win32.whl", hash = "sha256:3fb9575a5acd13031c57a62cc7823e5d2ff8bc3835ba4d94b921b4e6ee664104"}, + {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:825d5fccef6da42f3c8eccd4281af399f21c02b32d98e113dbc631ea6a6ecbc7"}, + {file = "ruamel.yaml.clib-0.2.6.tar.gz", hash = "sha256:4ff604ce439abb20794f05613c374759ce10e3595d1867764dd1ae675b85acbd"}, +] [[package]] name = "Rx" @@ -1661,6 +2749,10 @@ description = "Reactive Extensions (Rx) for Python" category = "main" optional = false python-versions = "*" +files = [ + {file = "Rx-1.6.1-py2.py3-none-any.whl", hash = "sha256:7357592bc7e881a95e0c2013b73326f704953301ab551fbc8133a6fadab84105"}, + {file = "Rx-1.6.1.tar.gz", hash = "sha256:13a1d8d9e252625c173dc795471e614eadfe1cf40ffc684e08b8fff0d9748c23"}, +] [[package]] name = "s3transfer" @@ -1669,6 +2761,10 @@ description = "An Amazon S3 Transfer Manager" category = "main" optional = false python-versions = ">= 3.6" +files = [ + {file = "s3transfer-0.5.2-py3-none-any.whl", hash = "sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971"}, + {file = "s3transfer-0.5.2.tar.gz", hash = "sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed"}, +] [package.dependencies] botocore = ">=1.12.36,<2.0a.0" @@ -1680,9 +2776,13 @@ crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] name = "setuptools" version = "65.3.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "main" +category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "setuptools-65.3.0-py3-none-any.whl", hash = "sha256:2e24e0bec025f035a2e72cdd1961119f557d78ad331bb00ff82efb2ab8da8e82"}, + {file = "setuptools-65.3.0.tar.gz", hash = "sha256:7732871f4f7fa58fb6bdcaeadb0161b2bd046c85905dbaa066bdcbcc81953b57"}, +] [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] @@ -1696,6 +2796,10 @@ description = "Backport functools.singledispatch from Python 3.4 to Python 2.6-3 category = "main" optional = false python-versions = ">=2.6" +files = [ + {file = "singledispatch-3.7.0-py2.py3-none-any.whl", hash = "sha256:bc77afa97c8a22596d6d4fc20f1b7bdd2b86edc2a65a4262bdd7cc3cc19aa989"}, + {file = "singledispatch-3.7.0.tar.gz", hash = "sha256:c1a4d5c1da310c3fd8fccfb8d4e1cb7df076148fd5d858a819e37fffe44f3092"}, +] [package.dependencies] six = "*" @@ -1711,6 +2815,10 @@ description = "Python 2 and 3 compatibility utilities" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] [[package]] name = "smmap" @@ -1719,6 +2827,10 @@ description = "A pure Python implementation of a sliding window memory map manag category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, + {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, +] [[package]] name = "snowballstemmer" @@ -1727,18 +2839,25 @@ description = "This package provides 29 stemmers for 28 languages generated from category = "dev" optional = false python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] [[package]] name = "social-auth-app-django" -version = "4.0.0" +version = "5.0.0" description = "Python Social Authentication, Django integration." category = "main" optional = false -python-versions = "*" +python-versions = ">=3.6" +files = [ + {file = "social-auth-app-django-5.0.0.tar.gz", hash = "sha256:b6e3132ce087cdd6e1707aeb1b588be41d318408fcf6395435da0bc6fe9a9795"}, + {file = "social_auth_app_django-5.0.0-py3-none-any.whl", hash = "sha256:52241a25445a010ab1c108bafff21fc5522d5c8cd0d48a92c39c7371824b065d"}, +] [package.dependencies] -six = "*" -social-auth-core = ">=3.3.0" +social-auth-core = ">=4.1.0" [[package]] name = "social-auth-core" @@ -1747,6 +2866,10 @@ description = "Python social authentication made simple." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "social-auth-core-4.3.0.tar.gz", hash = "sha256:4686f0e43cf12954216875a32e944847bb1dc69e7cd9573d16a9003bb05ca477"}, + {file = "social_auth_core-4.3.0-py3-none-any.whl", hash = "sha256:1e3440d104f743b02dfe258c9d4dba5b4065abf24b2f7eb362b47054d21797df"}, +] [package.dependencies] cryptography = ">=1.4" @@ -1771,6 +2894,10 @@ description = "A non-validating SQL parser." category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "sqlparse-0.4.2-py3-none-any.whl", hash = "sha256:48719e356bb8b42991bdbb1e8b83223757b93789c00910a616a071910ca4a64d"}, + {file = "sqlparse-0.4.2.tar.gz", hash = "sha256:0c00730c74263a94e5a9919ade150dfc3b19c574389985446148402998287dae"}, +] [[package]] name = "stevedore" @@ -1779,6 +2906,10 @@ description = "Manage dynamic plugins for Python applications" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "stevedore-3.5.0-py3-none-any.whl", hash = "sha256:a547de73308fd7e90075bb4d301405bebf705292fa90a90fc3bcf9133f58616c"}, + {file = "stevedore-3.5.0.tar.gz", hash = "sha256:f40253887d8712eaa2bb0ea3830374416736dc8ec0e22f5a65092c1174c44335"}, +] [package.dependencies] importlib-metadata = {version = ">=1.7.0", markers = "python_version < \"3.8\""} @@ -1791,6 +2922,10 @@ description = "A Python library to create SVG drawings." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "svgwrite-1.4.3-py3-none-any.whl", hash = "sha256:bb6b2b5450f1edbfa597d924f9ac2dd099e625562e492021d7dd614f65f8a22d"}, + {file = "svgwrite-1.4.3.zip", hash = "sha256:a8fbdfd4443302a6619a7f76bc937fc683daf2628d9b737c891ec08b8ce524c3"}, +] [[package]] name = "swagger-spec-validator" @@ -1799,6 +2934,10 @@ description = "Validation of Swagger specifications" category = "main" optional = false python-versions = "*" +files = [ + {file = "swagger-spec-validator-2.7.6.tar.gz", hash = "sha256:73f33e631a58f407265f2f813d194f2762a2b86f9aa905e7eee3df9b7f9428d3"}, + {file = "swagger_spec_validator-2.7.6-py2.py3-none-any.whl", hash = "sha256:ff55d671f4cf8a386e7ecda60267d6cdd2cfbe0b3521a8ccf09b0669cbb72ab6"}, +] [package.dependencies] jsonschema = "*" @@ -1812,6 +2951,10 @@ description = "The most basic Text::Unidecode port" category = "main" optional = false python-versions = "*" +files = [ + {file = "text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93"}, + {file = "text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8"}, +] [[package]] name = "tomli" @@ -1820,6 +2963,10 @@ description = "A lil' TOML parser" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] [[package]] name = "typed-ast" @@ -1828,6 +2975,32 @@ description = "a fork of Python 2 and 3 ast modules with type comment support" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, + {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, + {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, + {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, + {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, + {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, + {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, + {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, + {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, + {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, +] [[package]] name = "typing-extensions" @@ -1836,6 +3009,10 @@ description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"}, + {file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"}, +] [[package]] name = "uritemplate" @@ -1844,6 +3021,10 @@ description = "Implementation of RFC 6570 URI Templates" category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "uritemplate-4.1.1-py2.py3-none-any.whl", hash = "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e"}, + {file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"}, +] [[package]] name = "urllib3" @@ -1852,1155 +3033,36 @@ description = "HTTP library with thread-safe connection pooling, file post, and category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] - -[[package]] -name = "vine" -version = "5.0.0" -description = "Promises, promises, promises." -category = "main" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "watchdog" -version = "2.1.9" -description = "Filesystem events monitoring" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.extras] -watchmedo = ["PyYAML (>=3.10)"] - -[[package]] -name = "wcwidth" -version = "0.2.5" -description = "Measures the displayed width of unicode strings in a terminal" -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "Werkzeug" -version = "2.1.2" -description = "The comprehensive WSGI web application library." -category = "dev" -optional = false -python-versions = ">=3.7" - -[package.extras] -watchdog = ["watchdog"] - -[[package]] -name = "wrapt" -version = "1.14.1" -description = "Module for decorators, wrappers and monkey patching." -category = "main" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" - -[[package]] -name = "xmltodict" -version = "0.13.0" -description = "Makes working with XML feel like you are working with JSON" -category = "dev" -optional = false -python-versions = ">=3.4" - -[[package]] -name = "yamllint" -version = "1.28.0" -description = "A linter for YAML files." -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -pathspec = ">=0.5.3" -pyyaml = "*" -setuptools = "*" - -[[package]] -name = "zipp" -version = "3.8.1" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.extras] -docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] -testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] - -[extras] -all = ["boto3", "hvac", "python-tss-sdk"] -aws = ["boto3"] -hashicorp = ["hvac"] -nautobot = ["nautobot"] -thycotic = ["python-tss-sdk"] - -[metadata] -lock-version = "1.1" -python-versions = "^3.7" -content-hash = "87ead43a2cf693c09d2e67530958398271dd4e3dc7cd77ef7ab0ec83d3ff897a" - -[metadata.files] -amqp = [ - {file = "amqp-5.1.1-py3-none-any.whl", hash = "sha256:6f0956d2c23d8fa6e7691934d8c3930eadb44972cbbd1a7ae3a520f735d43359"}, - {file = "amqp-5.1.1.tar.gz", hash = "sha256:2c1b13fecc0893e946c65cbd5f36427861cffa4ea2201d8f6fca22e2a373b5e2"}, -] -aniso8601 = [ - {file = "aniso8601-7.0.0-py2.py3-none-any.whl", hash = "sha256:d10a4bf949f619f719b227ef5386e31f49a2b6d453004b21f02661ccc8670c7b"}, - {file = "aniso8601-7.0.0.tar.gz", hash = "sha256:513d2b6637b7853806ae79ffaca6f3e8754bdd547048f5ccc1420aec4b714f1e"}, -] -asgiref = [ - {file = "asgiref-3.5.2-py3-none-any.whl", hash = "sha256:1d2880b792ae8757289136f1db2b7b99100ce959b2aa57fd69dab783d05afac4"}, - {file = "asgiref-3.5.2.tar.gz", hash = "sha256:4a29362a6acebe09bf1d6640db38c1dc3d9217c68e6f9f6204d72667fc19a424"}, -] -astroid = [ - {file = "astroid-2.11.7-py3-none-any.whl", hash = "sha256:86b0a340a512c65abf4368b80252754cda17c02cdbbd3f587dddf98112233e7b"}, - {file = "astroid-2.11.7.tar.gz", hash = "sha256:bb24615c77f4837c707669d16907331374ae8a964650a66999da3f5ca68dc946"}, -] -async-timeout = [ - {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, - {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, -] -attrs = [ - {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, - {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, -] -bandit = [ - {file = "bandit-1.7.4-py3-none-any.whl", hash = "sha256:412d3f259dab4077d0e7f0c11f50f650cc7d10db905d98f6520a95a18049658a"}, - {file = "bandit-1.7.4.tar.gz", hash = "sha256:2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"}, -] -billiard = [ - {file = "billiard-3.6.4.0-py3-none-any.whl", hash = "sha256:87103ea78fa6ab4d5c751c4909bcff74617d985de7fa8b672cf8618afd5a875b"}, - {file = "billiard-3.6.4.0.tar.gz", hash = "sha256:299de5a8da28a783d51b197d496bef4f1595dd023a93a4f59dde1886ae905547"}, -] -black = [ - {file = "black-22.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd"}, - {file = "black-22.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27"}, - {file = "black-22.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747"}, - {file = "black-22.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869"}, - {file = "black-22.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90"}, - {file = "black-22.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe"}, - {file = "black-22.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342"}, - {file = "black-22.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab"}, - {file = "black-22.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3"}, - {file = "black-22.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e"}, - {file = "black-22.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16"}, - {file = "black-22.8.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c"}, - {file = "black-22.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5"}, - {file = "black-22.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411"}, - {file = "black-22.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3"}, - {file = "black-22.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875"}, - {file = "black-22.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c"}, - {file = "black-22.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497"}, - {file = "black-22.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c"}, - {file = "black-22.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41"}, - {file = "black-22.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec"}, - {file = "black-22.8.0-py3-none-any.whl", hash = "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4"}, - {file = "black-22.8.0.tar.gz", hash = "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e"}, -] -boto3 = [ - {file = "boto3-1.19.12-py3-none-any.whl", hash = "sha256:b9105554477978e80fda1103ff21ecf07502080667730e45383e1d3951c87954"}, - {file = "boto3-1.19.12.tar.gz", hash = "sha256:182a2b756a2c2180b473bc8452227062394a24e3701548be23ebc30d85976c64"}, -] -botocore = [ - {file = "botocore-1.22.12-py3-none-any.whl", hash = "sha256:1d1094fb53ebe4535d8840fbd7c14aadb65bde7ff03a65f9a4f1d76bd03e16ff"}, - {file = "botocore-1.22.12.tar.gz", hash = "sha256:fc59b55e8c5dde64b017b2f114c25f8cce397b667e812aea7eafb4b59b49d7cb"}, -] -cached-property = [ - {file = "cached-property-1.5.2.tar.gz", hash = "sha256:9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130"}, - {file = "cached_property-1.5.2-py2.py3-none-any.whl", hash = "sha256:df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0"}, -] -celery = [ - {file = "celery-5.2.7-py3-none-any.whl", hash = "sha256:138420c020cd58d6707e6257b6beda91fd39af7afde5d36c6334d175302c0e14"}, - {file = "celery-5.2.7.tar.gz", hash = "sha256:fafbd82934d30f8a004f81e8f7a062e31413a23d444be8ee3326553915958c6d"}, -] -certifi = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, -] -cffi = [ - {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, - {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, - {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, - {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, - {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, - {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, - {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, - {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, - {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, - {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, - {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, - {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, - {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, - {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, - {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, - {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, - {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, - {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, - {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, -] -charset-normalizer = [ - {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, - {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, -] -click = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, -] -click-didyoumean = [ - {file = "click-didyoumean-0.3.0.tar.gz", hash = "sha256:f184f0d851d96b6d29297354ed981b7dd71df7ff500d82fa6d11f0856bee8035"}, - {file = "click_didyoumean-0.3.0-py3-none-any.whl", hash = "sha256:a0713dc7a1de3f06bc0df5a9567ad19ead2d3d5689b434768a6145bff77c0667"}, -] -click-plugins = [ - {file = "click-plugins-1.1.1.tar.gz", hash = "sha256:46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b"}, - {file = "click_plugins-1.1.1-py2.py3-none-any.whl", hash = "sha256:5d262006d3222f5057fd81e1623d4443e41dcda5dc815c06b442aa3c02889fc8"}, -] -click-repl = [ - {file = "click-repl-0.2.0.tar.gz", hash = "sha256:cd12f68d745bf6151210790540b4cb064c7b13e571bc64b6957d98d120dacfd8"}, - {file = "click_repl-0.2.0-py3-none-any.whl", hash = "sha256:94b3fbbc9406a236f176e0506524b2937e4b23b6f4c0c0b2a0a83f8a64e9194b"}, -] -colorama = [ - {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, - {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, -] -coreapi = [ - {file = "coreapi-2.3.3-py2.py3-none-any.whl", hash = "sha256:bf39d118d6d3e171f10df9ede5666f63ad80bba9a29a8ec17726a66cf52ee6f3"}, - {file = "coreapi-2.3.3.tar.gz", hash = "sha256:46145fcc1f7017c076a2ef684969b641d18a2991051fddec9458ad3f78ffc1cb"}, -] -coreschema = [ - {file = "coreschema-0.0.4-py2-none-any.whl", hash = "sha256:5e6ef7bf38c1525d5e55a895934ab4273548629f16aed5c0a6caa74ebf45551f"}, - {file = "coreschema-0.0.4.tar.gz", hash = "sha256:9503506007d482ab0867ba14724b93c18a33b22b6d19fb419ef2d239dd4a1607"}, -] -coverage = [ - {file = "coverage-6.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6dbc1536e105adda7a6312c778f15aaabe583b0e9a0b0a324990334fd458c94b"}, - {file = "coverage-6.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:174cf9b4bef0db2e8244f82059a5a72bd47e1d40e71c68ab055425172b16b7d0"}, - {file = "coverage-6.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:92b8c845527eae547a2a6617d336adc56394050c3ed8a6918683646328fbb6da"}, - {file = "coverage-6.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c7912d1526299cb04c88288e148c6c87c0df600eca76efd99d84396cfe00ef1d"}, - {file = "coverage-6.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5d2033d5db1d58ae2d62f095e1aefb6988af65b4b12cb8987af409587cc0739"}, - {file = "coverage-6.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3feac4084291642165c3a0d9eaebedf19ffa505016c4d3db15bfe235718d4971"}, - {file = "coverage-6.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:276651978c94a8c5672ea60a2656e95a3cce2a3f31e9fb2d5ebd4c215d095840"}, - {file = "coverage-6.2-cp310-cp310-win32.whl", hash = "sha256:f506af4f27def639ba45789fa6fde45f9a217da0be05f8910458e4557eed020c"}, - {file = "coverage-6.2-cp310-cp310-win_amd64.whl", hash = "sha256:3f7c17209eef285c86f819ff04a6d4cbee9b33ef05cbcaae4c0b4e8e06b3ec8f"}, - {file = "coverage-6.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:13362889b2d46e8d9f97c421539c97c963e34031ab0cb89e8ca83a10cc71ac76"}, - {file = "coverage-6.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:22e60a3ca5acba37d1d4a2ee66e051f5b0e1b9ac950b5b0cf4aa5366eda41d47"}, - {file = "coverage-6.2-cp311-cp311-win_amd64.whl", hash = "sha256:b637c57fdb8be84e91fac60d9325a66a5981f8086c954ea2772efe28425eaf64"}, - {file = "coverage-6.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f467bbb837691ab5a8ca359199d3429a11a01e6dfb3d9dcc676dc035ca93c0a9"}, - {file = "coverage-6.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2641f803ee9f95b1f387f3e8f3bf28d83d9b69a39e9911e5bfee832bea75240d"}, - {file = "coverage-6.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1219d760ccfafc03c0822ae2e06e3b1248a8e6d1a70928966bafc6838d3c9e48"}, - {file = "coverage-6.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9a2b5b52be0a8626fcbffd7e689781bf8c2ac01613e77feda93d96184949a98e"}, - {file = "coverage-6.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:8e2c35a4c1f269704e90888e56f794e2d9c0262fb0c1b1c8c4ee44d9b9e77b5d"}, - {file = "coverage-6.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:5d6b09c972ce9200264c35a1d53d43ca55ef61836d9ec60f0d44273a31aa9f17"}, - {file = "coverage-6.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:e3db840a4dee542e37e09f30859f1612da90e1c5239a6a2498c473183a50e781"}, - {file = "coverage-6.2-cp36-cp36m-win32.whl", hash = "sha256:4e547122ca2d244f7c090fe3f4b5a5861255ff66b7ab6d98f44a0222aaf8671a"}, - {file = "coverage-6.2-cp36-cp36m-win_amd64.whl", hash = "sha256:01774a2c2c729619760320270e42cd9e797427ecfddd32c2a7b639cdc481f3c0"}, - {file = "coverage-6.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fb8b8ee99b3fffe4fd86f4c81b35a6bf7e4462cba019997af2fe679365db0c49"}, - {file = "coverage-6.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:619346d57c7126ae49ac95b11b0dc8e36c1dd49d148477461bb66c8cf13bb521"}, - {file = "coverage-6.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0a7726f74ff63f41e95ed3a89fef002916c828bb5fcae83b505b49d81a066884"}, - {file = "coverage-6.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cfd9386c1d6f13b37e05a91a8583e802f8059bebfccde61a418c5808dea6bbfa"}, - {file = "coverage-6.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:17e6c11038d4ed6e8af1407d9e89a2904d573be29d51515f14262d7f10ef0a64"}, - {file = "coverage-6.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c254b03032d5a06de049ce8bca8338a5185f07fb76600afff3c161e053d88617"}, - {file = "coverage-6.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:dca38a21e4423f3edb821292e97cec7ad38086f84313462098568baedf4331f8"}, - {file = "coverage-6.2-cp37-cp37m-win32.whl", hash = "sha256:600617008aa82032ddeace2535626d1bc212dfff32b43989539deda63b3f36e4"}, - {file = "coverage-6.2-cp37-cp37m-win_amd64.whl", hash = "sha256:bf154ba7ee2fd613eb541c2bc03d3d9ac667080a737449d1a3fb342740eb1a74"}, - {file = "coverage-6.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f9afb5b746781fc2abce26193d1c817b7eb0e11459510fba65d2bd77fe161d9e"}, - {file = "coverage-6.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edcada2e24ed68f019175c2b2af2a8b481d3d084798b8c20d15d34f5c733fa58"}, - {file = "coverage-6.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a9c8c4283e17690ff1a7427123ffb428ad6a52ed720d550e299e8291e33184dc"}, - {file = "coverage-6.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f614fc9956d76d8a88a88bb41ddc12709caa755666f580af3a688899721efecd"}, - {file = "coverage-6.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9365ed5cce5d0cf2c10afc6add145c5037d3148585b8ae0e77cc1efdd6aa2953"}, - {file = "coverage-6.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8bdfe9ff3a4ea37d17f172ac0dff1e1c383aec17a636b9b35906babc9f0f5475"}, - {file = "coverage-6.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:63c424e6f5b4ab1cf1e23a43b12f542b0ec2e54f99ec9f11b75382152981df57"}, - {file = "coverage-6.2-cp38-cp38-win32.whl", hash = "sha256:49dbff64961bc9bdd2289a2bda6a3a5a331964ba5497f694e2cbd540d656dc1c"}, - {file = "coverage-6.2-cp38-cp38-win_amd64.whl", hash = "sha256:9a29311bd6429be317c1f3fe4bc06c4c5ee45e2fa61b2a19d4d1d6111cb94af2"}, - {file = "coverage-6.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03b20e52b7d31be571c9c06b74746746d4eb82fc260e594dc662ed48145e9efd"}, - {file = "coverage-6.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:215f8afcc02a24c2d9a10d3790b21054b58d71f4b3c6f055d4bb1b15cecce685"}, - {file = "coverage-6.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a4bdeb0a52d1d04123b41d90a4390b096f3ef38eee35e11f0b22c2d031222c6c"}, - {file = "coverage-6.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c332d8f8d448ded473b97fefe4a0983265af21917d8b0cdcb8bb06b2afe632c3"}, - {file = "coverage-6.2-cp39-cp39-win32.whl", hash = "sha256:6e1394d24d5938e561fbeaa0cd3d356207579c28bd1792f25a068743f2d5b282"}, - {file = "coverage-6.2-cp39-cp39-win_amd64.whl", hash = "sha256:86f2e78b1eff847609b1ca8050c9e1fa3bd44ce755b2ec30e70f2d3ba3844644"}, - {file = "coverage-6.2-pp36.pp37.pp38-none-any.whl", hash = "sha256:5829192582c0ec8ca4a2532407bc14c2f338d9878a10442f5d03804a95fac9de"}, - {file = "coverage-6.2.tar.gz", hash = "sha256:e2cad8093172b7d1595b4ad66f24270808658e11acf43a8f95b41276162eb5b8"}, -] -cryptography = [ - {file = "cryptography-38.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:10d1f29d6292fc95acb597bacefd5b9e812099d75a6469004fd38ba5471a977f"}, - {file = "cryptography-38.0.1-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:3fc26e22840b77326a764ceb5f02ca2d342305fba08f002a8c1f139540cdfaad"}, - {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:3b72c360427889b40f36dc214630e688c2fe03e16c162ef0aa41da7ab1455153"}, - {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:194044c6b89a2f9f169df475cc167f6157eb9151cc69af8a2a163481d45cc407"}, - {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca9f6784ea96b55ff41708b92c3f6aeaebde4c560308e5fbbd3173fbc466e94e"}, - {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:16fa61e7481f4b77ef53991075de29fc5bacb582a1244046d2e8b4bb72ef66d0"}, - {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d4ef6cc305394ed669d4d9eebf10d3a101059bdcf2669c366ec1d14e4fb227bd"}, - {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3261725c0ef84e7592597606f6583385fed2a5ec3909f43bc475ade9729a41d6"}, - {file = "cryptography-38.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:0297ffc478bdd237f5ca3a7dc96fc0d315670bfa099c04dc3a4a2172008a405a"}, - {file = "cryptography-38.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:89ed49784ba88c221756ff4d4755dbc03b3c8d2c5103f6d6b4f83a0fb1e85294"}, - {file = "cryptography-38.0.1-cp36-abi3-win32.whl", hash = "sha256:ac7e48f7e7261207d750fa7e55eac2d45f720027d5703cd9007e9b37bbb59ac0"}, - {file = "cryptography-38.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:ad7353f6ddf285aeadfaf79e5a6829110106ff8189391704c1d8801aa0bae45a"}, - {file = "cryptography-38.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:896dd3a66959d3a5ddcfc140a53391f69ff1e8f25d93f0e2e7830c6de90ceb9d"}, - {file = "cryptography-38.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:d3971e2749a723e9084dd507584e2a2761f78ad2c638aa31e80bc7a15c9db4f9"}, - {file = "cryptography-38.0.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:79473cf8a5cbc471979bd9378c9f425384980fcf2ab6534b18ed7d0d9843987d"}, - {file = "cryptography-38.0.1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:d9e69ae01f99abe6ad646947bba8941e896cb3aa805be2597a0400e0764b5818"}, - {file = "cryptography-38.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5067ee7f2bce36b11d0e334abcd1ccf8c541fc0bbdaf57cdd511fdee53e879b6"}, - {file = "cryptography-38.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:3e3a2599e640927089f932295a9a247fc40a5bdf69b0484532f530471a382750"}, - {file = "cryptography-38.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c2e5856248a416767322c8668ef1845ad46ee62629266f84a8f007a317141013"}, - {file = "cryptography-38.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:64760ba5331e3f1794d0bcaabc0d0c39e8c60bf67d09c93dc0e54189dfd7cfe5"}, - {file = "cryptography-38.0.1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b6c9b706316d7b5a137c35e14f4103e2115b088c412140fdbd5f87c73284df61"}, - {file = "cryptography-38.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0163a849b6f315bf52815e238bc2b2346604413fa7c1601eea84bcddb5fb9ac"}, - {file = "cryptography-38.0.1-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:d1a5bd52d684e49a36582193e0b89ff267704cd4025abefb9e26803adeb3e5fb"}, - {file = "cryptography-38.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:765fa194a0f3372d83005ab83ab35d7c5526c4e22951e46059b8ac678b44fa5a"}, - {file = "cryptography-38.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:52e7bee800ec869b4031093875279f1ff2ed12c1e2f74923e8f49c916afd1d3b"}, - {file = "cryptography-38.0.1.tar.gz", hash = "sha256:1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7"}, -] -defusedxml = [ - {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, - {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, -] -Deprecated = [ - {file = "Deprecated-1.2.13-py2.py3-none-any.whl", hash = "sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d"}, - {file = "Deprecated-1.2.13.tar.gz", hash = "sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d"}, -] -dill = [ - {file = "dill-0.3.5.1-py2.py3-none-any.whl", hash = "sha256:33501d03270bbe410c72639b350e941882a8b0fd55357580fbc873fba0c59302"}, - {file = "dill-0.3.5.1.tar.gz", hash = "sha256:d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86"}, -] -Django = [ - {file = "Django-3.1.14-py3-none-any.whl", hash = "sha256:0fabc786489af16ad87a8c170ba9d42bfd23f7b699bd5ef05675864e8d012859"}, - {file = "Django-3.1.14.tar.gz", hash = "sha256:72a4a5a136a214c39cf016ccdd6b69e2aa08c7479c66d93f3a9b5e4bb9d8a347"}, -] -django-ajax-tables = [ - {file = "django_ajax_tables-1.1.1-py3-none-any.whl", hash = "sha256:62e0138949153c0a994eefbf469f5496b1ad98bc073e170bc021a1aada7a32d0"}, - {file = "django_ajax_tables-1.1.1.tar.gz", hash = "sha256:5a7e7bc7940aa6332a564916cde22010a858a3d29fc1090ce8061010ec76337c"}, -] -django-appconf = [ - {file = "django-appconf-1.0.5.tar.gz", hash = "sha256:be3db0be6c81fa84742000b89a81c016d70ae66a7ccb620cdef592b1f1a6aaa4"}, - {file = "django_appconf-1.0.5-py3-none-any.whl", hash = "sha256:ae9f864ee1958c815a965ed63b3fba4874eec13de10236ba063a788f9a17389d"}, -] -django-cacheops = [ - {file = "django-cacheops-5.1.tar.gz", hash = "sha256:d5851cd7bf3087384a1fcecfa8dddb8f55030eedfd6fdf127225b75bca0f99dd"}, - {file = "django_cacheops-5.1-py2.py3-none-any.whl", hash = "sha256:02320df37754c143477c5fbd54abf292bcd8b4ca40631e19ec15efa3cc085532"}, -] -django-celery-beat = [ - {file = "django-celery-beat-2.2.1.tar.gz", hash = "sha256:97ae5eb309541551bdb07bf60cc57cadacf42a74287560ced2d2c06298620234"}, - {file = "django_celery_beat-2.2.1-py2.py3-none-any.whl", hash = "sha256:ab43049634fd18dc037927d7c2c7d5f67f95283a20ebbda55f42f8606412e66c"}, -] -django-constance = [ - {file = "django-constance-2.8.0.tar.gz", hash = "sha256:0a492454acc78799ce7b9f7a28a00c53427d513f34f8bf6fdc90a46d8864b2af"}, - {file = "django_constance-2.8.0-py3-none-any.whl", hash = "sha256:60fec73e397d5f4f7440f611b18d3e7ce5342647f316fedc47b62e1411c849e7"}, -] -django-cors-headers = [ - {file = "django-cors-headers-3.7.0.tar.gz", hash = "sha256:96069c4aaacace786a34ee7894ff680780ec2644e4268b31181044410fecd12e"}, - {file = "django_cors_headers-3.7.0-py3-none-any.whl", hash = "sha256:1ac2b1213de75a251e2ba04448da15f99bcfcbe164288ae6b5ff929dc49b372f"}, -] -django-cryptography = [ - {file = "django-cryptography-1.0.tar.gz", hash = "sha256:13de5cf8f1250744c104b9e24774d03aa6d8488959dd40cdc016934043652445"}, - {file = "django_cryptography-1.0-py3-none-any.whl", hash = "sha256:0a99980b1cee7cc5e52f9b20b322620fea7cc124d770273e7bd285b20fd9d222"}, -] -django-db-file-storage = [ - {file = "django-db-file-storage-0.5.5.tar.gz", hash = "sha256:5d5da694b78ab202accab4508b958e0e37b3d146310e76f6f6125e1bdeaaad14"}, -] -django-debug-toolbar = [ - {file = "django-debug-toolbar-3.2.4.tar.gz", hash = "sha256:644bbd5c428d3283aa9115722471769cac1bec189edf3a0c855fd8ff870375a9"}, - {file = "django_debug_toolbar-3.2.4-py3-none-any.whl", hash = "sha256:6b633b6cfee24f232d73569870f19aa86c819d750e7f3e833f2344a9eb4b4409"}, -] -django-extensions = [ - {file = "django-extensions-3.1.5.tar.gz", hash = "sha256:28e1e1bf49f0e00307ba574d645b0af3564c981a6dfc87209d48cb98f77d0b1a"}, - {file = "django_extensions-3.1.5-py3-none-any.whl", hash = "sha256:9238b9e016bb0009d621e05cf56ea8ce5cce9b32e91ad2026996a7377ca28069"}, -] -django-filter = [ - {file = "django-filter-2.4.0.tar.gz", hash = "sha256:84e9d5bb93f237e451db814ed422a3a625751cbc9968b484ecc74964a8696b06"}, - {file = "django_filter-2.4.0-py3-none-any.whl", hash = "sha256:e00d32cebdb3d54273c48f4f878f898dced8d5dfaad009438fe61ebdf535ace1"}, -] -django-health-check = [ - {file = "django-health-check-3.16.5.tar.gz", hash = "sha256:1edfd49293ccebbce29f9da609c407f307aee240ab799ab4201031341ae78c0f"}, - {file = "django_health_check-3.16.5-py2.py3-none-any.whl", hash = "sha256:8d66781a0ea82b1a8b44878187b38a27370e94f18287312e39be0593e72d8983"}, -] -django-jinja = [ - {file = "django-jinja-2.7.1.tar.gz", hash = "sha256:0d2c90ccc4763f67b07ace2b8a2f23df16d2995b4dc841597443fb4eea746505"}, - {file = "django_jinja-2.7.1-py3-none-any.whl", hash = "sha256:fa7650ca289544caf441cc922876986cc0df8f111047aaef6836a978c0c66304"}, -] -django-js-asset = [ - {file = "django_js_asset-2.0.0-py3-none-any.whl", hash = "sha256:86f9f300d682537ddaf0487dc2ab356581b8f50c069bdba91d334a46e449f923"}, - {file = "django_js_asset-2.0.0.tar.gz", hash = "sha256:adc1ee1efa853fad42054b540c02205344bb406c9bddf87c9e5377a41b7db90f"}, -] -django-mptt = [ - {file = "django-mptt-0.11.0.tar.gz", hash = "sha256:dfdb3af75ad27cdd4458b0544ec8574174f2b90f99bc2cafab6a15b4bc1895a8"}, - {file = "django_mptt-0.11.0-py2.py3-none-any.whl", hash = "sha256:90eb236eb4f1a92124bd7c37852bbe09c0d21158477cc237556d59842a91c509"}, -] -django-picklefield = [ - {file = "django-picklefield-3.0.1.tar.gz", hash = "sha256:15ccba592ca953b9edf9532e64640329cd47b136b7f8f10f2939caa5f9ce4287"}, - {file = "django_picklefield-3.0.1-py3-none-any.whl", hash = "sha256:3c702a54fde2d322fe5b2f39b8f78d9f655b8f77944ab26f703be6c0ed335a35"}, -] -django-prometheus = [ - {file = "django-prometheus-2.1.0.tar.gz", hash = "sha256:dd3f8da1399140fbef5c00d1526a23d1ade286b144281c325f8e409a781643f2"}, - {file = "django_prometheus-2.1.0-py2.py3-none-any.whl", hash = "sha256:c338d6efde1ca336e90c540b5e87afe9287d7bcc82d651a778f302b0be17a933"}, -] -django-redis = [ - {file = "django-redis-5.2.0.tar.gz", hash = "sha256:8a99e5582c79f894168f5865c52bd921213253b7fd64d16733ae4591564465de"}, - {file = "django_redis-5.2.0-py3-none-any.whl", hash = "sha256:1d037dc02b11ad7aa11f655d26dac3fb1af32630f61ef4428860a2e29ff92026"}, -] -django-rq = [ - {file = "django-rq-2.4.1.tar.gz", hash = "sha256:f09059ab37403a47c7933bca396fabb7f3058732d132462eade5333bc4bcac5f"}, - {file = "django_rq-2.4.1-py2.py3-none-any.whl", hash = "sha256:23981f83c537178cbbf730f192c13e99cede2204e9d917b1c1c80c42215dd227"}, -] -django-tables2 = [ - {file = "django-tables2-2.3.4.tar.gz", hash = "sha256:50ccadbd13740a996d8a4d4f144ef80134745cd0b5ec278061537e341f5ef7a2"}, - {file = "django_tables2-2.3.4-py2.py3-none-any.whl", hash = "sha256:af5f70a9845fd8690c6b44120b065e55b9771cae99c1dcd0eb4f1cfa3f0a71e4"}, -] -django-taggit = [ - {file = "django-taggit-1.3.0.tar.gz", hash = "sha256:4a833bf71f4c2deddd9745924eee53be1c075d7f0020a06f12e29fa3d752732d"}, - {file = "django_taggit-1.3.0-py3-none-any.whl", hash = "sha256:609b0223d8a652f3fae088b7fd29f294fdadaca2d7931d45c27d6c59b02fdf31"}, -] -django-timezone-field = [ - {file = "django-timezone-field-4.1.2.tar.gz", hash = "sha256:cffac62452d060e365938aa9c9f7b72d70d8b26b9c60243bce227b35abd1b9df"}, - {file = "django_timezone_field-4.1.2-py3-none-any.whl", hash = "sha256:897c06e40b619cf5731a30d6c156886a7c64cba3a90364832148da7ef32ccf36"}, -] -django-webserver = [ - {file = "django-webserver-1.2.0.tar.gz", hash = "sha256:c976979d15b5ff9a212f7904d3b779e22219aebb4857860fcaf20e4e40f1da40"}, - {file = "django_webserver-1.2.0-py2.py3-none-any.whl", hash = "sha256:09200631f266484b9e944e38e92681d6e9aa7d90d089a5c86d5fb08fddad84fe"}, -] -djangorestframework = [ - {file = "djangorestframework-3.12.4-py3-none-any.whl", hash = "sha256:6d1d59f623a5ad0509fe0d6bfe93cbdfe17b8116ebc8eda86d45f6e16e819aaf"}, - {file = "djangorestframework-3.12.4.tar.gz", hash = "sha256:f747949a8ddac876e879190df194b925c177cdeb725a099db1460872f7c0a7f2"}, -] -drf-yasg = [ - {file = "drf-yasg-1.20.3.tar.gz", hash = "sha256:1c66929fba56724c477951ab07266e69bbd0cb280e84b675957df19e3b567958"}, - {file = "drf_yasg-1.20.3-py2.py3-none-any.whl", hash = "sha256:915a16dae564143ebcbc1787e4aaad38062ccd95d1e6f97c2d33086575335bb8"}, -] -flake8 = [ - {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, - {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, -] -funcy = [ - {file = "funcy-1.17-py2.py3-none-any.whl", hash = "sha256:ba7af5e58bfc69321aaf860a1547f18d35e145706b95d1b3c966abc4f0b60309"}, - {file = "funcy-1.17.tar.gz", hash = "sha256:40b9b9a88141ae6a174df1a95861f2b82f2fdc17669080788b73a3ed9370e968"}, -] -ghp-import = [ - {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, - {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, -] -gitdb = [ - {file = "gitdb-4.0.9-py3-none-any.whl", hash = "sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd"}, - {file = "gitdb-4.0.9.tar.gz", hash = "sha256:bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa"}, -] -GitPython = [ - {file = "GitPython-3.1.18-py3-none-any.whl", hash = "sha256:fce760879cd2aebd2991b3542876dc5c4a909b30c9d69dfc488e504a8db37ee8"}, - {file = "GitPython-3.1.18.tar.gz", hash = "sha256:b838a895977b45ab6f0cc926a9045c8d1c44e2b653c1fcc39fe91f42c6e8f05b"}, -] -graphene = [ - {file = "graphene-2.1.9-py2.py3-none-any.whl", hash = "sha256:3d446eb1237c551052bc31155cf1a3a607053e4f58c9172b83a1b597beaa0868"}, - {file = "graphene-2.1.9.tar.gz", hash = "sha256:b9f2850e064eebfee9a3ef4a1f8aa0742848d97652173ab44c82cc8a62b9ed93"}, -] -graphene-django = [ - {file = "graphene-django-2.15.0.tar.gz", hash = "sha256:b78c9b05bc899016b9cc5bf13faa1f37fe1faa8c5407552c6ddd1a28f46fc31a"}, - {file = "graphene_django-2.15.0-py2.py3-none-any.whl", hash = "sha256:02671d195f0c09c8649acff2a8f4ad4f297d0f7d98ea6e6cdf034b81bab92880"}, -] -graphene-django-optimizer = [ - {file = "graphene-django-optimizer-0.8.0.tar.gz", hash = "sha256:79269880d59d0a35d41751ddcb419220c4ad3871960416371119f447cb2e1a77"}, -] -graphql-core = [ - {file = "graphql-core-2.3.2.tar.gz", hash = "sha256:aac46a9ac524c9855910c14c48fc5d60474def7f99fd10245e76608eba7af746"}, - {file = "graphql_core-2.3.2-py2.py3-none-any.whl", hash = "sha256:44c9bac4514e5e30c5a595fac8e3c76c1975cae14db215e8174c7fe995825bad"}, -] -graphql-relay = [ - {file = "graphql-relay-2.0.1.tar.gz", hash = "sha256:870b6b5304123a38a0b215a79eace021acce5a466bf40cd39fa18cb8528afabb"}, - {file = "graphql_relay-2.0.1-py3-none-any.whl", hash = "sha256:ac514cb86db9a43014d7e73511d521137ac12cf0101b2eaa5f0a3da2e10d913d"}, -] -hvac = [ - {file = "hvac-1.0.2-py3-none-any.whl", hash = "sha256:e8256343de2576b18bc8d49f09a04c728f2a8f3a866825bb413aa4f9ebab1fea"}, - {file = "hvac-1.0.2.tar.gz", hash = "sha256:e4028c5c0ecc7b7fcf6a54d290f99240e5abcdb9ffe442d1c14f061310d4c61c"}, -] -idna = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, -] -importlib-metadata = [ - {file = "importlib_metadata-4.4.0-py3-none-any.whl", hash = "sha256:960d52ba7c21377c990412aca380bf3642d734c2eaab78a2c39319f67c6a5786"}, - {file = "importlib_metadata-4.4.0.tar.gz", hash = "sha256:e592faad8de1bda9fe920cf41e15261e7131bcf266c30306eec00e8e225c1dd5"}, -] -inflection = [ - {file = "inflection-0.5.1-py2.py3-none-any.whl", hash = "sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2"}, - {file = "inflection-0.5.1.tar.gz", hash = "sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417"}, -] -invoke = [ - {file = "invoke-1.7.1-py3-none-any.whl", hash = "sha256:2dc975b4f92be0c0a174ad2d063010c8a1fdb5e9389d69871001118b4fcac4fb"}, - {file = "invoke-1.7.1.tar.gz", hash = "sha256:7b6deaf585eee0a848205d0b8c0014b9bf6f287a8eb798818a642dff1df14b19"}, -] -isort = [ - {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, - {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, -] -itypes = [ - {file = "itypes-1.2.0-py2.py3-none-any.whl", hash = "sha256:03da6872ca89d29aef62773672b2d408f490f80db48b23079a4b194c86dd04c6"}, - {file = "itypes-1.2.0.tar.gz", hash = "sha256:af886f129dea4a2a1e3d36595a2d139589e4dd287f5cab0b40e799ee81570ff1"}, -] -Jinja2 = [ - {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"}, - {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"}, -] -jmespath = [ - {file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"}, - {file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"}, -] -jsonschema = [ - {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, - {file = "jsonschema-3.2.0.tar.gz", hash = "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a"}, -] -kombu = [ - {file = "kombu-5.2.4-py3-none-any.whl", hash = "sha256:8b213b24293d3417bcf0d2f5537b7f756079e3ea232a8386dcc89a59fd2361a4"}, - {file = "kombu-5.2.4.tar.gz", hash = "sha256:37cee3ee725f94ea8bb173eaab7c1760203ea53bbebae226328600f9d2799610"}, -] -lazy-object-proxy = [ - {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, - {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, -] -Markdown = [ - {file = "Markdown-3.3.7-py3-none-any.whl", hash = "sha256:f5da449a6e1c989a4cea2631aa8ee67caa5a2ef855d551c88f9e309f4634c621"}, - {file = "Markdown-3.3.7.tar.gz", hash = "sha256:cbb516f16218e643d8e0a95b309f77eb118cb138d39a4f27851e6a63581db874"}, -] -MarkupSafe = [ - {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, - {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, -] -mccabe = [ - {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, - {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, -] -mergedeep = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] -mkdocs = [ - {file = "mkdocs-1.3.1-py3-none-any.whl", hash = "sha256:fda92466393127d2da830bc6edc3a625a14b436316d1caf347690648e774c4f0"}, - {file = "mkdocs-1.3.1.tar.gz", hash = "sha256:a41a2ff25ce3bbacc953f9844ba07d106233cd76c88bac1f59cb1564ac0d87ed"}, -] -moto = [ - {file = "moto-2.2.20-py2.py3-none-any.whl", hash = "sha256:20f06e51dbdeb3ed76989f733e4e51472cbfe39dda031a49da66fc8df1bcefa4"}, - {file = "moto-2.2.20.tar.gz", hash = "sha256:aa6479df35b47d4df0c3214e118c328df67d9f4e157ec5523ce87a23fecf93f6"}, -] -mypy-extensions = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, -] -nautobot = [ - {file = "nautobot-1.2.11-py3-none-any.whl", hash = "sha256:23b70c520dca9770f9325f7625895328b9127110b3c45d282c84bf2c2b995559"}, - {file = "nautobot-1.2.11.tar.gz", hash = "sha256:092560e78f15d0520097c7b19cc73acda9e1d23f52c3d9ca0df31f5608d11856"}, -] -netaddr = [ - {file = "netaddr-0.8.0-py2.py3-none-any.whl", hash = "sha256:9666d0232c32d2656e5e5f8d735f58fd6c7457ce52fc21c98d45f2af78f990ac"}, - {file = "netaddr-0.8.0.tar.gz", hash = "sha256:d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243"}, -] -netutils = [ - {file = "netutils-1.0.0-py3-none-any.whl", hash = "sha256:f6e695dc761f41c68d3b2b9763f6ac3bc636d8b3c70c9886dae2655b2eab5c2b"}, - {file = "netutils-1.0.0.tar.gz", hash = "sha256:ead1d927374a76a9ff78867b5f72b66cd26eaa9ec9e8d00e12e8085694a0275a"}, -] -oauthlib = [ - {file = "oauthlib-3.2.1-py3-none-any.whl", hash = "sha256:88e912ca1ad915e1dcc1c06fc9259d19de8deacd6fd17cc2df266decc2e49066"}, - {file = "oauthlib-3.2.1.tar.gz", hash = "sha256:1565237372795bf6ee3e5aba5e2a85bd5a65d0e2aa5c628b9a97b7d7a0da3721"}, -] -packaging = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, -] -pathspec = [ - {file = "pathspec-0.10.1-py3-none-any.whl", hash = "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93"}, - {file = "pathspec-0.10.1.tar.gz", hash = "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d"}, -] -pbr = [ - {file = "pbr-5.10.0-py2.py3-none-any.whl", hash = "sha256:da3e18aac0a3c003e9eea1a81bd23e5a3a75d745670dcf736317b7d966887fdf"}, - {file = "pbr-5.10.0.tar.gz", hash = "sha256:cfcc4ff8e698256fc17ea3ff796478b050852585aa5bae79ecd05b2ab7b39b9a"}, -] -Pillow = [ - {file = "Pillow-9.0.1-1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a5d24e1d674dd9d72c66ad3ea9131322819ff86250b30dc5821cbafcfa0b96b4"}, - {file = "Pillow-9.0.1-1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2632d0f846b7c7600edf53c48f8f9f1e13e62f66a6dbc15191029d950bfed976"}, - {file = "Pillow-9.0.1-1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b9618823bd237c0d2575283f2939655f54d51b4527ec3972907a927acbcc5bfc"}, - {file = "Pillow-9.0.1-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:9bfdb82cdfeccec50aad441afc332faf8606dfa5e8efd18a6692b5d6e79f00fd"}, - {file = "Pillow-9.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5100b45a4638e3c00e4d2320d3193bdabb2d75e79793af7c3eb139e4f569f16f"}, - {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:528a2a692c65dd5cafc130de286030af251d2ee0483a5bf50c9348aefe834e8a"}, - {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f29d831e2151e0b7b39981756d201f7108d3d215896212ffe2e992d06bfe049"}, - {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:855c583f268edde09474b081e3ddcd5cf3b20c12f26e0d434e1386cc5d318e7a"}, - {file = "Pillow-9.0.1-cp310-cp310-win32.whl", hash = "sha256:d9d7942b624b04b895cb95af03a23407f17646815495ce4547f0e60e0b06f58e"}, - {file = "Pillow-9.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:81c4b81611e3a3cb30e59b0cf05b888c675f97e3adb2c8672c3154047980726b"}, - {file = "Pillow-9.0.1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:413ce0bbf9fc6278b2d63309dfeefe452835e1c78398efb431bab0672fe9274e"}, - {file = "Pillow-9.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80fe64a6deb6fcfdf7b8386f2cf216d329be6f2781f7d90304351811fb591360"}, - {file = "Pillow-9.0.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cef9c85ccbe9bee00909758936ea841ef12035296c748aaceee535969e27d31b"}, - {file = "Pillow-9.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d19397351f73a88904ad1aee421e800fe4bbcd1aeee6435fb62d0a05ccd1030"}, - {file = "Pillow-9.0.1-cp37-cp37m-win32.whl", hash = "sha256:d21237d0cd37acded35154e29aec853e945950321dd2ffd1a7d86fe686814669"}, - {file = "Pillow-9.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ede5af4a2702444a832a800b8eb7f0a7a1c0eed55b644642e049c98d589e5092"}, - {file = "Pillow-9.0.1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:b5b3f092fe345c03bca1e0b687dfbb39364b21ebb8ba90e3fa707374b7915204"}, - {file = "Pillow-9.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:335ace1a22325395c4ea88e00ba3dc89ca029bd66bd5a3c382d53e44f0ccd77e"}, - {file = "Pillow-9.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db6d9fac65bd08cea7f3540b899977c6dee9edad959fa4eaf305940d9cbd861c"}, - {file = "Pillow-9.0.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f154d173286a5d1863637a7dcd8c3437bb557520b01bddb0be0258dcb72696b5"}, - {file = "Pillow-9.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14d4b1341ac07ae07eb2cc682f459bec932a380c3b122f5540432d8977e64eae"}, - {file = "Pillow-9.0.1-cp38-cp38-win32.whl", hash = "sha256:effb7749713d5317478bb3acb3f81d9d7c7f86726d41c1facca068a04cf5bb4c"}, - {file = "Pillow-9.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:7f7609a718b177bf171ac93cea9fd2ddc0e03e84d8fa4e887bdfc39671d46b00"}, - {file = "Pillow-9.0.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:80ca33961ced9c63358056bd08403ff866512038883e74f3a4bf88ad3eb66838"}, - {file = "Pillow-9.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1c3c33ac69cf059bbb9d1a71eeaba76781b450bc307e2291f8a4764d779a6b28"}, - {file = "Pillow-9.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12875d118f21cf35604176872447cdb57b07126750a33748bac15e77f90f1f9c"}, - {file = "Pillow-9.0.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:514ceac913076feefbeaf89771fd6febde78b0c4c1b23aaeab082c41c694e81b"}, - {file = "Pillow-9.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3c5c79ab7dfce6d88f1ba639b77e77a17ea33a01b07b99840d6ed08031cb2a7"}, - {file = "Pillow-9.0.1-cp39-cp39-win32.whl", hash = "sha256:718856856ba31f14f13ba885ff13874be7fefc53984d2832458f12c38205f7f7"}, - {file = "Pillow-9.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:f25ed6e28ddf50de7e7ea99d7a976d6a9c415f03adcaac9c41ff6ff41b6d86ac"}, - {file = "Pillow-9.0.1-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:011233e0c42a4a7836498e98c1acf5e744c96a67dd5032a6f666cc1fb97eab97"}, - {file = "Pillow-9.0.1-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:253e8a302a96df6927310a9d44e6103055e8fb96a6822f8b7f514bb7ef77de56"}, - {file = "Pillow-9.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6295f6763749b89c994fcb6d8a7f7ce03c3992e695f89f00b741b4580b199b7e"}, - {file = "Pillow-9.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:a9f44cd7e162ac6191491d7249cceb02b8116b0f7e847ee33f739d7cb1ea1f70"}, - {file = "Pillow-9.0.1.tar.gz", hash = "sha256:6c8bc8238a7dfdaf7a75f5ec5a663f4173f8c367e5a39f87e720495e1eed75fa"}, -] -platformdirs = [ - {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, - {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, -] -prometheus-client = [ - {file = "prometheus_client-0.14.1-py3-none-any.whl", hash = "sha256:522fded625282822a89e2773452f42df14b5a8e84a86433e3f8a189c1d54dc01"}, - {file = "prometheus_client-0.14.1.tar.gz", hash = "sha256:5459c427624961076277fdc6dc50540e2bacb98eebde99886e59ec55ed92093a"}, -] -promise = [ - {file = "promise-2.3.tar.gz", hash = "sha256:dfd18337c523ba4b6a58801c164c1904a9d4d1b1747c7d5dbf45b693a49d93d0"}, -] -prompt-toolkit = [ - {file = "prompt_toolkit-3.0.31-py3-none-any.whl", hash = "sha256:9696f386133df0fc8ca5af4895afe5d78f5fcfe5258111c2a79a1c3e41ffa96d"}, - {file = "prompt_toolkit-3.0.31.tar.gz", hash = "sha256:9ada952c9d1787f52ff6d5f3484d0b4df8952787c087edf6a1f7c2cb1ea88148"}, -] -psycopg2-binary = [ - {file = "psycopg2-binary-2.8.6.tar.gz", hash = "sha256:11b9c0ebce097180129e422379b824ae21c8f2a6596b159c7659e2e5a00e1aa0"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:d14b140a4439d816e3b1229a4a525df917d6ea22a0771a2a78332273fd9528a4"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:1fabed9ea2acc4efe4671b92c669a213db744d2af8a9fc5d69a8e9bc14b7a9db"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f5ab93a2cb2d8338b1674be43b442a7f544a0971da062a5da774ed40587f18f5"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27m-win32.whl", hash = "sha256:b4afc542c0ac0db720cf516dd20c0846f71c248d2b3d21013aa0d4ef9c71ca25"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27m-win_amd64.whl", hash = "sha256:e74a55f6bad0e7d3968399deb50f61f4db1926acf4a6d83beaaa7df986f48b1c"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:0deac2af1a587ae12836aa07970f5cb91964f05a7c6cdb69d8425ff4c15d4e2c"}, - {file = "psycopg2_binary-2.8.6-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ad20d2eb875aaa1ea6d0f2916949f5c08a19c74d05b16ce6ebf6d24f2c9f75d1"}, - {file = "psycopg2_binary-2.8.6-cp34-cp34m-win32.whl", hash = "sha256:950bc22bb56ee6ff142a2cb9ee980b571dd0912b0334aa3fe0fe3788d860bea2"}, - {file = "psycopg2_binary-2.8.6-cp34-cp34m-win_amd64.whl", hash = "sha256:b8a3715b3c4e604bcc94c90a825cd7f5635417453b253499664f784fc4da0152"}, - {file = "psycopg2_binary-2.8.6-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:d1b4ab59e02d9008efe10ceabd0b31e79519da6fb67f7d8e8977118832d0f449"}, - {file = "psycopg2_binary-2.8.6-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:ac0c682111fbf404525dfc0f18a8b5f11be52657d4f96e9fcb75daf4f3984859"}, - {file = "psycopg2_binary-2.8.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7d92a09b788cbb1aec325af5fcba9fed7203897bbd9269d5691bb1e3bce29550"}, - {file = "psycopg2_binary-2.8.6-cp35-cp35m-win32.whl", hash = "sha256:aaa4213c862f0ef00022751161df35804127b78adf4a2755b9f991a507e425fd"}, - {file = "psycopg2_binary-2.8.6-cp35-cp35m-win_amd64.whl", hash = "sha256:c2507d796fca339c8fb03216364cca68d87e037c1f774977c8fc377627d01c71"}, - {file = "psycopg2_binary-2.8.6-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:ee69dad2c7155756ad114c02db06002f4cded41132cc51378e57aad79cc8e4f4"}, - {file = "psycopg2_binary-2.8.6-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:e82aba2188b9ba309fd8e271702bd0d0fc9148ae3150532bbb474f4590039ffb"}, - {file = "psycopg2_binary-2.8.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d5227b229005a696cc67676e24c214740efd90b148de5733419ac9aaba3773da"}, - {file = "psycopg2_binary-2.8.6-cp36-cp36m-win32.whl", hash = "sha256:a0eb43a07386c3f1f1ebb4dc7aafb13f67188eab896e7397aa1ee95a9c884eb2"}, - {file = "psycopg2_binary-2.8.6-cp36-cp36m-win_amd64.whl", hash = "sha256:e1f57aa70d3f7cc6947fd88636a481638263ba04a742b4a37dd25c373e41491a"}, - {file = "psycopg2_binary-2.8.6-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:833709a5c66ca52f1d21d41865a637223b368c0ee76ea54ca5bad6f2526c7679"}, - {file = "psycopg2_binary-2.8.6-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:ba28584e6bca48c59eecbf7efb1576ca214b47f05194646b081717fa628dfddf"}, - {file = "psycopg2_binary-2.8.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:6a32f3a4cb2f6e1a0b15215f448e8ce2da192fd4ff35084d80d5e39da683e79b"}, - {file = "psycopg2_binary-2.8.6-cp37-cp37m-win32.whl", hash = "sha256:0e4dc3d5996760104746e6cfcdb519d9d2cd27c738296525d5867ea695774e67"}, - {file = "psycopg2_binary-2.8.6-cp37-cp37m-win_amd64.whl", hash = "sha256:cec7e622ebc545dbb4564e483dd20e4e404da17ae07e06f3e780b2dacd5cee66"}, - {file = "psycopg2_binary-2.8.6-cp38-cp38-macosx_10_9_x86_64.macosx_10_9_intel.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:ba381aec3a5dc29634f20692349d73f2d21f17653bda1decf0b52b11d694541f"}, - {file = "psycopg2_binary-2.8.6-cp38-cp38-manylinux1_i686.whl", hash = "sha256:a0c50db33c32594305b0ef9abc0cb7db13de7621d2cadf8392a1d9b3c437ef77"}, - {file = "psycopg2_binary-2.8.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2dac98e85565d5688e8ab7bdea5446674a83a3945a8f416ad0110018d1501b94"}, - {file = "psycopg2_binary-2.8.6-cp38-cp38-win32.whl", hash = "sha256:bd1be66dde2b82f80afb9459fc618216753f67109b859a361cf7def5c7968729"}, - {file = "psycopg2_binary-2.8.6-cp38-cp38-win_amd64.whl", hash = "sha256:8cd0fb36c7412996859cb4606a35969dd01f4ea34d9812a141cd920c3b18be77"}, - {file = "psycopg2_binary-2.8.6-cp39-cp39-macosx_10_9_x86_64.macosx_10_9_intel.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:89705f45ce07b2dfa806ee84439ec67c5d9a0ef20154e0e475e2b2ed392a5b83"}, - {file = "psycopg2_binary-2.8.6-cp39-cp39-manylinux1_i686.whl", hash = "sha256:42ec1035841b389e8cc3692277a0bd81cdfe0b65d575a2c8862cec7a80e62e52"}, - {file = "psycopg2_binary-2.8.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7312e931b90fe14f925729cde58022f5d034241918a5c4f9797cac62f6b3a9dd"}, - {file = "psycopg2_binary-2.8.6-cp39-cp39-win32.whl", hash = "sha256:6422f2ff0919fd720195f64ffd8f924c1395d30f9a495f31e2392c2efafb5056"}, - {file = "psycopg2_binary-2.8.6-cp39-cp39-win_amd64.whl", hash = "sha256:15978a1fbd225583dd8cdaf37e67ccc278b5abecb4caf6b2d6b8e2b948e953f6"}, -] -pycodestyle = [ - {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, - {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, -] -pycparser = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, -] -pycryptodome = [ - {file = "pycryptodome-3.10.4-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:91ba4215a1f37d0f371fe43bc88c5ff49c274849f3868321c889313787de7672"}, - {file = "pycryptodome-3.10.4-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:66301e4c42dee43ee2da256625d3fe81ef98cc9924c2bd535008cc3ad8ded77b"}, - {file = "pycryptodome-3.10.4-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:8ec154ec445412df31acf0096e7f715e30e167c8f2318b8f5b1ab7c28f4c82f7"}, - {file = "pycryptodome-3.10.4-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:8e82524e7c354033508891405574d12e612cc4fdd3b55d2c238fc1a3e300b606"}, - {file = "pycryptodome-3.10.4-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:b217b4525e60e1af552d62bec01b4685095436d4de5ecde0f05d75b2f95ba6d4"}, - {file = "pycryptodome-3.10.4-cp27-cp27m-manylinux2014_aarch64.whl", hash = "sha256:3a153658d97258ca20bf18f7fe31c09cc7c558b6f8974a6ec74e19f6c634bd64"}, - {file = "pycryptodome-3.10.4-cp27-cp27m-win32.whl", hash = "sha256:c6469d1453f5864e3321a172b0aa671b938d753cbf2376b99fa2ab8841539bb8"}, - {file = "pycryptodome-3.10.4-cp27-cp27m-win_amd64.whl", hash = "sha256:6b45fcace5a5d9c57ba87cf804b161adc62aa826295ce7f7acbcbdc0df74ed37"}, - {file = "pycryptodome-3.10.4-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:b1daf251395af7336ddde6a0015ba5e632c18fe646ba930ef87402537358e3b4"}, - {file = "pycryptodome-3.10.4-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:9a2312440057bf29b9582f72f14d79692044e63bfbc4b4bbea8559355f44f3dd"}, - {file = "pycryptodome-3.10.4-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:54d4e4d45f349d8c4e2f31c2734637ff62a844af391b833f789da88e43a8f338"}, - {file = "pycryptodome-3.10.4-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:97e7df67a4da2e3f60612bbfd6c3f243a63a15d8f4797dd275e1d7b44a65cb12"}, - {file = "pycryptodome-3.10.4-cp27-cp27mu-manylinux2014_aarch64.whl", hash = "sha256:db15fa07d2a4c00beeb5e9acdfdbc1c79f9ccfbdc1a8f36c82c4aa44951b33c9"}, - {file = "pycryptodome-3.10.4-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:217dcc0c92503f7dd4b3d3b7d974331a4419f97f555c99a845c3b366fed7056b"}, - {file = "pycryptodome-3.10.4-cp35-abi3-manylinux1_i686.whl", hash = "sha256:a7471646d8cd1a58bb696d667dcb3853e5c9b341b68dcf3c3cc0893d0f98ca5f"}, - {file = "pycryptodome-3.10.4-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:d713dc0910e5ded07852a05e9b75f1dd9d3a31895eebee0668f612779b2a748c"}, - {file = "pycryptodome-3.10.4-cp35-abi3-manylinux2010_i686.whl", hash = "sha256:ac3012c36633564b2b5539bb7c6d9175f31d2ce74844e9abe654c428f02d0fd8"}, - {file = "pycryptodome-3.10.4-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:3f9fb499e267039262569d08658132c9cd8b136bf1d8c56b72f70ed05551e526"}, - {file = "pycryptodome-3.10.4-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:309529d2526f3fb47102aeef376b3459110a6af7efb162e860b32e3a17a46f06"}, - {file = "pycryptodome-3.10.4-cp35-abi3-win32.whl", hash = "sha256:7efec2418e9746ec48e264eea431f8e422d931f71c57b1c96ee202b117f58fa9"}, - {file = "pycryptodome-3.10.4-cp35-abi3-win_amd64.whl", hash = "sha256:49e54f2245befb0193848c8c8031d8d1358ed4af5a1ae8d0a3ba669a5cdd3a72"}, - {file = "pycryptodome-3.10.4-pp27-pypy_73-macosx_10_9_x86_64.whl", hash = "sha256:4e8fc4c48365ce8a542fe48bf1360da05bb2851df12f64fc94d751705e7cdbe7"}, - {file = "pycryptodome-3.10.4-pp27-pypy_73-manylinux1_x86_64.whl", hash = "sha256:851e6d4930b160417235955322db44adbdb19589918670d63f4acd5d92959ac0"}, - {file = "pycryptodome-3.10.4-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:04e14c732c3693d2830839feed5129286ce47ffa8bfe90e4ae042c773e51c677"}, - {file = "pycryptodome-3.10.4-pp27-pypy_73-win32.whl", hash = "sha256:cefe6b267b8e5c3c72e11adec35a9c7285b62e8ea141b63e87055e9a9e5f2f8c"}, - {file = "pycryptodome-3.10.4-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:24c1b7705d19d8ae3e7255431efd2e526006855df62620118dd7b5374c6372f6"}, - {file = "pycryptodome-3.10.4-pp36-pypy36_pp73-manylinux1_x86_64.whl", hash = "sha256:c61ea053bd5d4c12a063d7e704fbe1c45abb5d2510dab55bd95d166ba661604f"}, - {file = "pycryptodome-3.10.4-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:11d3164fb49fdee000fde05baecce103c0c698168ef1a18d9c7429dd66f0f5bb"}, - {file = "pycryptodome-3.10.4-pp36-pypy36_pp73-win32.whl", hash = "sha256:3faa6ebd35c61718f3f8862569c1f38450c24f3ededb213e1a64806f02f584bc"}, - {file = "pycryptodome-3.10.4.tar.gz", hash = "sha256:40083b0d7f277452c7f2dd4841801f058cc12a74c219ee4110d65774c6a58bef"}, -] -pydocstyle = [ - {file = "pydocstyle-6.1.1-py3-none-any.whl", hash = "sha256:6987826d6775056839940041beef5c08cc7e3d71d63149b48e36727f70144dc4"}, - {file = "pydocstyle-6.1.1.tar.gz", hash = "sha256:1d41b7c459ba0ee6c345f2eb9ae827cab14a7533a88c5c6f7e94923f72df92dc"}, -] -pyflakes = [ - {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, - {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, -] -pyhcl = [ - {file = "pyhcl-0.4.4.tar.gz", hash = "sha256:2d9b9dcdf1023d812bfed561ba72c99104c5b3f52e558d595130a44ce081b003"}, -] -PyJWT = [ - {file = "PyJWT-2.5.0-py3-none-any.whl", hash = "sha256:8d82e7087868e94dd8d7d418e5088ce64f7daab4b36db654cbaedb46f9d1ca80"}, - {file = "PyJWT-2.5.0.tar.gz", hash = "sha256:e77ab89480905d86998442ac5788f35333fa85f65047a534adc38edf3c88fc3b"}, -] -pylint = [ - {file = "pylint-2.13.9-py3-none-any.whl", hash = "sha256:705c620d388035bdd9ff8b44c5bcdd235bfb49d276d488dd2c8ff1736aa42526"}, - {file = "pylint-2.13.9.tar.gz", hash = "sha256:095567c96e19e6f57b5b907e67d265ff535e588fe26b12b5ebe1fc5645b2c731"}, -] -pylint-django = [ - {file = "pylint-django-2.5.3.tar.gz", hash = "sha256:0ac090d106c62fe33782a1d01bda1610b761bb1c9bf5035ced9d5f23a13d8591"}, - {file = "pylint_django-2.5.3-py3-none-any.whl", hash = "sha256:56b12b6adf56d548412445bd35483034394a1a94901c3f8571980a13882299d5"}, -] -pylint-plugin-utils = [ - {file = "pylint-plugin-utils-0.7.tar.gz", hash = "sha256:ce48bc0516ae9415dd5c752c940dfe601b18fe0f48aa249f2386adfa95a004dd"}, - {file = "pylint_plugin_utils-0.7-py3-none-any.whl", hash = "sha256:b3d43e85ab74c4f48bb46ae4ce771e39c3a20f8b3d56982ab17aa73b4f98d535"}, -] -pyparsing = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, -] -pyrsistent = [ - {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, - {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, - {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, - {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, -] -python-crontab = [ - {file = "python-crontab-2.6.0.tar.gz", hash = "sha256:1e35ed7a3cdc3100545b43e196d34754e6551e7f95e4caebbe0e1c0ca41c2f1b"}, -] -python-dateutil = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, -] -python-tss-sdk = [ - {file = "python-tss-sdk-1.2.0.tar.gz", hash = "sha256:5d28ede8a00cd121e03c97b2eef3f966415ca53f3af9754d13c1e15af6497676"}, - {file = "python_tss_sdk-1.2.0-py3-none-any.whl", hash = "sha256:5c4f36ed9d70f9c4c2b549710845f1ba4fd99fd7dad859dc8b813854125e78f6"}, -] -python3-openid = [ - {file = "python3-openid-3.2.0.tar.gz", hash = "sha256:33fbf6928f401e0b790151ed2b5290b02545e8775f982485205a066f874aaeaf"}, - {file = "python3_openid-3.2.0-py3-none-any.whl", hash = "sha256:6626f771e0417486701e0b4daff762e7212e820ca5b29fcc0d05f6f8736dfa6b"}, -] -pytz = [ - {file = "pytz-2022.2.1-py2.py3-none-any.whl", hash = "sha256:220f481bdafa09c3955dfbdddb7b57780e9a94f5127e35456a48589b9e0c0197"}, - {file = "pytz-2022.2.1.tar.gz", hash = "sha256:cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5"}, -] -pyuwsgi = [ - {file = "pyuwsgi-2.0.20-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd09a7328558728f6e38f77609f44d16f18d8b4dc5f8b8776f657c8892b70337"}, - {file = "pyuwsgi-2.0.20-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:210ad768b8af02bbfd3c0345a51c6d2c56a2333ac268d9a97ecf2d4209f78ef8"}, - {file = "pyuwsgi-2.0.20-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e33111308a79dbd202094963fd3a537dab30854e375d9be018f642fcd359e03d"}, - {file = "pyuwsgi-2.0.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0306c3ca6f781ed7409774e44a2a90217824d3efb44e075a1f39a78a54ffe7d"}, - {file = "pyuwsgi-2.0.20-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3eeea48fd965b68801618fc20eda2cb65dc2aeb4121955c9c422685f046311da"}, - {file = "pyuwsgi-2.0.20-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:dd048b85abb90c79a34afbf787995ab2933cb2a8b210a6e064e5fca0a9bdf2d8"}, - {file = "pyuwsgi-2.0.20-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f612a72437c2934e39393fb575fab791e919efc102a0aa1a27b5d9a301d462e9"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:78ac2d8b7d307232f8276cb8a45300211b0fae179c0494f2a3e3178c70693f81"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f84fc44bba77d05fa9d01189028501ff8e6a2d63db184ceea42085ce28196317"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:342c312949c2f494f5d9ac272965715483cb22ed0353c18abb1b4590769ef00f"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5740b84a016a246c69edef0df11912560df9a45c2adf6e47701329a974e37a71"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:82058f6b6656f12dbc66c963be2d7c0b977f481ddca5d4d3918e26def003b60d"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:dc99724df6d5613300d3357c4017cde840830ca132fe98f0a4feab9a6af48622"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:70096084ccfa18f058dfb3380aa10e80d48958ddfdb888b827f06aacb72f80b8"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3e7a8576452635612c82f660e5be99ba42cdcdff142948f5c263b5278f2c17b0"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2844205e0095a29d3a6e9e23bd37bcf18d65e4e5ab23a14a45f5159c03a3b890"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e2c0d5dafb9faacc8ed5b662f9eacb22e723fbc3cb7152b2ebf09a92b8bd6c0d"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:087397457837c5fd653eda91c5d2c7948e06da589c786d26145bdcc397656bb2"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:da24ddb7e3522d36b4cdc2dbf131141d559084862f515d37f9a4b7b5c8b538b1"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:99b0c5a87aa95dcbaca2ccb599d783f37461600e098881d4ec9796ba68e3ff8f"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:df08a05dda4a92da46bd56af755dac091b145815c3cf6dda1855e01e40d12a99"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7c8ac4b2f411d15222f53a96627b8fa79056b39606925f429f59a51668bd95ab"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f1494d00df440865b1ee269a350187766c9c364ba5f124eddb064f366c4b6d8a"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c5ee8782932dbacdb4dd98714c3575cbbb88ba87d7bcb3149c828725ba048897"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cdc4b32234b40fa2d515108a2f56a159896134ef16394f26dba764635142976"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:300417d6669171a454da19991fc7f910b3975232dac5b2dbc359e26f1038624b"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:015a8d310503eb8c0028ac8f98c7df3b49bc937c7db137aaf149ca7fae64c777"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:9fc3d256270adf24b87f1dff893f3bc59bd5ee20c4ebb5add25e944c36359e1e"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:052fe12d6a9ab9e9fc7814e40d2d28061aaea1a610069008d773e1d8a71feb11"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7d160c7bfa8f2974fc6b807a8fc080be0d130b1a4ad0b463c0320e707e6a6eb6"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7691ca470e541133c444b23f83c6f07ecca12f4771a49e0e3a04b05f4c80f2d3"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c87fb1d56dd2c6f18b87b08496be326afb6cf57c6a059261b01ce99046d9147"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8eb97cf51f58df05ec0dd74d83510172a2f5bcd8adc91382e24690a2abddc2f3"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a8fc4d52232f55df16e9cbf6faf4bf16910d15042229d5f8c717278fd4ea37a5"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1acedb1841aa0e60e1a7245ae483a5fcb30e39cf0cdfe3987e14de4746daf75b"}, - {file = "pyuwsgi-2.0.20.tar.gz", hash = "sha256:8b0936a964511fa0e2ac2847c2435e95130e7c98619f06fe1f67320527576043"}, -] -PyYAML = [ - {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"}, - {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"}, - {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"}, - {file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"}, - {file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"}, - {file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"}, - {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347"}, - {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541"}, - {file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"}, - {file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"}, - {file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"}, - {file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"}, - {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa"}, - {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"}, - {file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"}, - {file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"}, - {file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"}, - {file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"}, - {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247"}, - {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc"}, - {file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"}, - {file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"}, - {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"}, - {file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"}, - {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122"}, - {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6"}, - {file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"}, - {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"}, - {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, -] -pyyaml_env_tag = [ - {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, - {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, -] -redis = [ - {file = "redis-4.3.4-py3-none-any.whl", hash = "sha256:a52d5694c9eb4292770084fa8c863f79367ca19884b329ab574d5cb2036b3e54"}, - {file = "redis-4.3.4.tar.gz", hash = "sha256:ddf27071df4adf3821c4f2ca59d67525c3a82e5f268bed97b813cb4fabf87880"}, -] -requests = [ - {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, - {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, -] -requests-mock = [ - {file = "requests-mock-1.9.3.tar.gz", hash = "sha256:8d72abe54546c1fc9696fa1516672f1031d72a55a1d66c85184f972a24ba0eba"}, - {file = "requests_mock-1.9.3-py2.py3-none-any.whl", hash = "sha256:0a2d38a117c08bb78939ec163522976ad59a6b7fdd82b709e23bb98004a44970"}, -] -requests-oauthlib = [ - {file = "requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"}, - {file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"}, -] -responses = [ - {file = "responses-0.21.0-py3-none-any.whl", hash = "sha256:2dcc863ba63963c0c3d9ee3fa9507cbe36b7d7b0fccb4f0bdfd9e96c539b1487"}, - {file = "responses-0.21.0.tar.gz", hash = "sha256:b82502eb5f09a0289d8e209e7bad71ef3978334f56d09b444253d5ad67bf5253"}, -] -rq = [ - {file = "rq-1.11.0-py2.py3-none-any.whl", hash = "sha256:c0bbf898b56817da053cdc992ab46da2729a7ccd70dd50316ad9209b7d7b71c1"}, - {file = "rq-1.11.0.tar.gz", hash = "sha256:50d0cf687cfb2530eac9396c7426e420958a166e8f4666bd2096bdcf7f4ad03e"}, -] -"ruamel.yaml" = [ - {file = "ruamel.yaml-0.17.21-py3-none-any.whl", hash = "sha256:742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7"}, - {file = "ruamel.yaml-0.17.21.tar.gz", hash = "sha256:8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af"}, -] -"ruamel.yaml.clib" = [ - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6e7be2c5bcb297f5b82fee9c665eb2eb7001d1050deaba8471842979293a80b0"}, - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:066f886bc90cc2ce44df8b5f7acfc6a7e2b2e672713f027136464492b0c34d7c"}, - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:221eca6f35076c6ae472a531afa1c223b9c29377e62936f61bc8e6e8bdc5f9e7"}, - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win32.whl", hash = "sha256:1070ba9dd7f9370d0513d649420c3b362ac2d687fe78c6e888f5b12bf8bc7bee"}, - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:77df077d32921ad46f34816a9a16e6356d8100374579bc35e15bab5d4e9377de"}, - {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:cfdb9389d888c5b74af297e51ce357b800dd844898af9d4a547ffc143fa56751"}, - {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7b2927e92feb51d830f531de4ccb11b320255ee95e791022555971c466af4527"}, - {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win32.whl", hash = "sha256:ada3f400d9923a190ea8b59c8f60680c4ef8a4b0dfae134d2f2ff68429adfab5"}, - {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win_amd64.whl", hash = "sha256:de9c6b8a1ba52919ae919f3ae96abb72b994dd0350226e28f3686cb4f142165c"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d67f273097c368265a7b81e152e07fb90ed395df6e552b9fa858c6d2c9f42502"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:72a2b8b2ff0a627496aad76f37a652bcef400fd861721744201ef1b45199ab78"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:d3c620a54748a3d4cf0bcfe623e388407c8e85a4b06b8188e126302bcab93ea8"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win32.whl", hash = "sha256:9efef4aab5353387b07f6b22ace0867032b900d8e91674b5d8ea9150db5cae94"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win_amd64.whl", hash = "sha256:846fc8336443106fe23f9b6d6b8c14a53d38cef9a375149d61f99d78782ea468"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0847201b767447fc33b9c235780d3aa90357d20dd6108b92be544427bea197dd"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:78988ed190206672da0f5d50c61afef8f67daa718d614377dcd5e3ed85ab4a99"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:210c8fcfeff90514b7133010bf14e3bad652c8efde6b20e00c43854bf94fa5a6"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win32.whl", hash = "sha256:a49e0161897901d1ac9c4a79984b8410f450565bbad64dbfcbf76152743a0cdb"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win_amd64.whl", hash = "sha256:bf75d28fa071645c529b5474a550a44686821decebdd00e21127ef1fd566eabe"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a32f8d81ea0c6173ab1b3da956869114cae53ba1e9f72374032e33ba3118c233"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7f7ecb53ae6848f959db6ae93bdff1740e651809780822270eab111500842a84"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:61bc5e5ca632d95925907c569daa559ea194a4d16084ba86084be98ab1cec1c6"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win32.whl", hash = "sha256:89221ec6d6026f8ae859c09b9718799fea22c0e8da8b766b0b2c9a9ba2db326b"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win_amd64.whl", hash = "sha256:31ea73e564a7b5fbbe8188ab8b334393e06d997914a4e184975348f204790277"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc6a613d6c74eef5a14a214d433d06291526145431c3b964f5e16529b1842bed"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:1866cf2c284a03b9524a5cc00daca56d80057c5ce3cdc86a52020f4c720856f0"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1b4139a6ffbca8ef60fdaf9b33dec05143ba746a6f0ae0f9d11d38239211d335"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win32.whl", hash = "sha256:3fb9575a5acd13031c57a62cc7823e5d2ff8bc3835ba4d94b921b4e6ee664104"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:825d5fccef6da42f3c8eccd4281af399f21c02b32d98e113dbc631ea6a6ecbc7"}, - {file = "ruamel.yaml.clib-0.2.6.tar.gz", hash = "sha256:4ff604ce439abb20794f05613c374759ce10e3595d1867764dd1ae675b85acbd"}, -] -Rx = [ - {file = "Rx-1.6.1-py2.py3-none-any.whl", hash = "sha256:7357592bc7e881a95e0c2013b73326f704953301ab551fbc8133a6fadab84105"}, - {file = "Rx-1.6.1.tar.gz", hash = "sha256:13a1d8d9e252625c173dc795471e614eadfe1cf40ffc684e08b8fff0d9748c23"}, -] -s3transfer = [ - {file = "s3transfer-0.5.2-py3-none-any.whl", hash = "sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971"}, - {file = "s3transfer-0.5.2.tar.gz", hash = "sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed"}, -] -setuptools = [ - {file = "setuptools-65.3.0-py3-none-any.whl", hash = "sha256:2e24e0bec025f035a2e72cdd1961119f557d78ad331bb00ff82efb2ab8da8e82"}, - {file = "setuptools-65.3.0.tar.gz", hash = "sha256:7732871f4f7fa58fb6bdcaeadb0161b2bd046c85905dbaa066bdcbcc81953b57"}, -] -singledispatch = [ - {file = "singledispatch-3.7.0-py2.py3-none-any.whl", hash = "sha256:bc77afa97c8a22596d6d4fc20f1b7bdd2b86edc2a65a4262bdd7cc3cc19aa989"}, - {file = "singledispatch-3.7.0.tar.gz", hash = "sha256:c1a4d5c1da310c3fd8fccfb8d4e1cb7df076148fd5d858a819e37fffe44f3092"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -smmap = [ - {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, - {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, -] -snowballstemmer = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] -social-auth-app-django = [ - {file = "social-auth-app-django-4.0.0.tar.gz", hash = "sha256:2c69e57df0b30c9c1823519c5f1992cbe4f3f98fdc7d95c840e091a752708840"}, - {file = "social_auth_app_django-4.0.0-py2-none-any.whl", hash = "sha256:df5212370bd250108987c4748419a1a1d0cec750878856c2644c36aaa0fd3e58"}, - {file = "social_auth_app_django-4.0.0-py3-none-any.whl", hash = "sha256:567ad0e028311541d7dfed51d3bf2c60440a6fd236d5d4d06c5a618b3d6c57c5"}, -] -social-auth-core = [ - {file = "social-auth-core-4.3.0.tar.gz", hash = "sha256:4686f0e43cf12954216875a32e944847bb1dc69e7cd9573d16a9003bb05ca477"}, - {file = "social_auth_core-4.3.0-py3-none-any.whl", hash = "sha256:1e3440d104f743b02dfe258c9d4dba5b4065abf24b2f7eb362b47054d21797df"}, -] -sqlparse = [ - {file = "sqlparse-0.4.2-py3-none-any.whl", hash = "sha256:48719e356bb8b42991bdbb1e8b83223757b93789c00910a616a071910ca4a64d"}, - {file = "sqlparse-0.4.2.tar.gz", hash = "sha256:0c00730c74263a94e5a9919ade150dfc3b19c574389985446148402998287dae"}, -] -stevedore = [ - {file = "stevedore-3.5.0-py3-none-any.whl", hash = "sha256:a547de73308fd7e90075bb4d301405bebf705292fa90a90fc3bcf9133f58616c"}, - {file = "stevedore-3.5.0.tar.gz", hash = "sha256:f40253887d8712eaa2bb0ea3830374416736dc8ec0e22f5a65092c1174c44335"}, -] -svgwrite = [ - {file = "svgwrite-1.4.3-py3-none-any.whl", hash = "sha256:bb6b2b5450f1edbfa597d924f9ac2dd099e625562e492021d7dd614f65f8a22d"}, - {file = "svgwrite-1.4.3.zip", hash = "sha256:a8fbdfd4443302a6619a7f76bc937fc683daf2628d9b737c891ec08b8ce524c3"}, -] -swagger-spec-validator = [ - {file = "swagger-spec-validator-2.7.6.tar.gz", hash = "sha256:73f33e631a58f407265f2f813d194f2762a2b86f9aa905e7eee3df9b7f9428d3"}, - {file = "swagger_spec_validator-2.7.6-py2.py3-none-any.whl", hash = "sha256:ff55d671f4cf8a386e7ecda60267d6cdd2cfbe0b3521a8ccf09b0669cbb72ab6"}, -] -text-unidecode = [ - {file = "text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93"}, - {file = "text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8"}, -] -tomli = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] -typed-ast = [ - {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, - {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, - {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, - {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, - {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, - {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, - {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, - {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, - {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, - {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, -] -typing-extensions = [ - {file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"}, - {file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"}, -] -uritemplate = [ - {file = "uritemplate-4.1.1-py2.py3-none-any.whl", hash = "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e"}, - {file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"}, -] -urllib3 = [ +files = [ {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, ] -vine = [ + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] + +[[package]] +name = "vine" +version = "5.0.0" +description = "Promises, promises, promises." +category = "main" +optional = false +python-versions = ">=3.6" +files = [ {file = "vine-5.0.0-py2.py3-none-any.whl", hash = "sha256:4c9dceab6f76ed92105027c49c823800dd33cacce13bdedc5b914e3514b7fb30"}, {file = "vine-5.0.0.tar.gz", hash = "sha256:7d3b1624a953da82ef63462013bbd271d3eb75751489f9807598e8f340bd637e"}, ] -watchdog = [ + +[[package]] +name = "watchdog" +version = "2.1.9" +description = "Filesystem events monitoring" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ {file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a735a990a1095f75ca4f36ea2ef2752c99e6ee997c46b0de507ba40a09bf7330"}, {file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b17d302850c8d412784d9246cfe8d7e3af6bcd45f958abb2d08a6f8bedf695d"}, {file = "watchdog-2.1.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ee3e38a6cc050a8830089f79cbec8a3878ec2fe5160cdb2dc8ccb6def8552658"}, @@ -3027,15 +3089,45 @@ watchdog = [ {file = "watchdog-2.1.9-py3-none-win_ia64.whl", hash = "sha256:ad576a565260d8f99d97f2e64b0f97a48228317095908568a9d5c786c829d428"}, {file = "watchdog-2.1.9.tar.gz", hash = "sha256:43ce20ebb36a51f21fa376f76d1d4692452b2527ccd601950d69ed36b9e21609"}, ] -wcwidth = [ + +[package.extras] +watchmedo = ["PyYAML (>=3.10)"] + +[[package]] +name = "wcwidth" +version = "0.2.5" +description = "Measures the displayed width of unicode strings in a terminal" +category = "main" +optional = false +python-versions = "*" +files = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, ] -Werkzeug = [ + +[[package]] +name = "Werkzeug" +version = "2.1.2" +description = "The comprehensive WSGI web application library." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ {file = "Werkzeug-2.1.2-py3-none-any.whl", hash = "sha256:72a4b735692dd3135217911cbeaa1be5fa3f62bffb8745c5215420a03dc55255"}, {file = "Werkzeug-2.1.2.tar.gz", hash = "sha256:1ce08e8093ed67d638d63879fd1ba3735817f7a80de3674d293f5984f25fb6e6"}, ] -wrapt = [ + +[package.extras] +watchdog = ["watchdog"] + +[[package]] +name = "wrapt" +version = "1.14.1" +description = "Module for decorators, wrappers and monkey patching." +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ {file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"}, {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"}, {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28"}, @@ -3101,15 +3193,60 @@ wrapt = [ {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"}, {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"}, ] -xmltodict = [ + +[[package]] +name = "xmltodict" +version = "0.13.0" +description = "Makes working with XML feel like you are working with JSON" +category = "dev" +optional = false +python-versions = ">=3.4" +files = [ {file = "xmltodict-0.13.0-py2.py3-none-any.whl", hash = "sha256:aa89e8fd76320154a40d19a0df04a4695fb9dc5ba977cbb68ab3e4eb225e7852"}, {file = "xmltodict-0.13.0.tar.gz", hash = "sha256:341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56"}, ] -yamllint = [ + +[[package]] +name = "yamllint" +version = "1.28.0" +description = "A linter for YAML files." +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ {file = "yamllint-1.28.0-py2.py3-none-any.whl", hash = "sha256:89bb5b5ac33b1ade059743cf227de73daa34d5e5a474b06a5e17fc16583b0cf2"}, {file = "yamllint-1.28.0.tar.gz", hash = "sha256:9e3d8ddd16d0583214c5fdffe806c9344086721f107435f68bad990e5a88826b"}, ] -zipp = [ + +[package.dependencies] +pathspec = ">=0.5.3" +pyyaml = "*" +setuptools = "*" + +[[package]] +name = "zipp" +version = "3.8.1" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, ] + +[package.extras] +docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] +testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] + +[extras] +all = ["boto3", "hvac", "python-tss-sdk"] +aws = ["boto3"] +hashicorp = ["hvac"] +nautobot = ["nautobot"] +thycotic = ["python-tss-sdk"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.7" +content-hash = "b410b427924aa21c89522a088a739d378b361802c3eddc4e95e67b8c893efc8c" diff --git a/pyproject.toml b/pyproject.toml index 8b1607c..933d308 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,7 @@ packages = [ [tool.poetry.dependencies] python = "^3.7" # Pin this to the lowest supported version of Nautobot -nautobot = "~1.2.1" +nautobot = "^1.4.0" # # Optional dependencies installed as extras diff --git a/tasks.py b/tasks.py index 62e3f3e..3b668fa 100644 --- a/tasks.py +++ b/tasks.py @@ -38,7 +38,7 @@ def is_truthy(arg): namespace.configure( { "nautobot_secrets_providers": { - "nautobot_ver": "1.2.1", + "nautobot_ver": "1.4.10", "project_name": "nautobot_secrets_providers", "python_ver": "3.7", "local": False, From cd70bf615dbe443ec0348e035c22fcca717640fb Mon Sep 17 00:00:00 2001 From: kacem-expereo <115718278+kacem-expereo@users.noreply.github.com> Date: Wed, 19 Apr 2023 17:45:24 +0200 Subject: [PATCH 12/19] Aws ssm parameter store (#55) * AWS SystemsManager ParameterStore support * Update readme to add paramter store * Address PR feedback * Revert __all__ change * Resave README * Apply suggestions from code review Co-authored-by: Glenn Matthews * Review feedback * extra s' * Linting and bad lockfile * Handle exception else case * pylint --------- Co-authored-by: Glenn Matthews Co-authored-by: Bryan Culver Co-authored-by: Bryan Culver <31187+bryanculver@users.noreply.github.com> --- README.md | 9 ++- .../providers/__init__.py | 3 +- nautobot_secrets_providers/providers/aws.py | 65 +++++++++++++++- .../nautobot_secrets_providers/home.html | 5 ++ .../tests/test_providers.py | 76 ++++++++++++++++++- poetry.lock | 4 +- 6 files changed, 151 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index e2fe6d2..6739b91 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ This plugin supports the following popular secrets backends: | Secrets Backend | Supported Secret Types | Supported Authentication Methods | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/) | [Other: Key/value pairs](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) | [AWS credentials](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html) (see Usage section below) | +| [AWS Systems Manager Parameter Store](https://aws.amazon.com/secrets-manager/) | [Other: Key/value pairs](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) | [AWS credentials](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html) (see Usage section below) | | [HashiCorp Vault](https://www.vaultproject.io) | [K/V Version 2](https://www.vaultproject.io/docs/secrets/kv/kv-v2) | [Token](https://www.vaultproject.io/docs/auth/token)
[AppRole](https://www.vaultproject.io/docs/auth/approle)
[AWS](https://www.vaultproject.io/docs/auth/aws)
[Kubernetes](https://www.vaultproject.io/docs/auth/kubernetes) | | [Delinea/Thycotic Secret Server](https://delinea.com/products/secret-server) | [Secret Server Cloud](https://github.com/DelineaXPM/python-tss-sdk#secret-server-cloud)
[Secret Server (on-prem)](https://github.com/DelineaXPM/python-tss-sdk#initializing-secretserver)| [Access Token Authorization](https://github.com/DelineaXPM/python-tss-sdk#access-token-authorization)
[Domain Authorization](https://github.com/DelineaXPM/python-tss-sdk#domain-authorization)
[Password Authorization](https://github.com/DelineaXPM/python-tss-sdk#password-authorization)
| @@ -60,9 +61,9 @@ For this plugin to operate you must install at least one of the dependent librar **You must install the dependencies for at least one of the supported secrets providers or a `RuntimeError` will be raised.** -#### AWS Secrets Manager +#### AWS -The AWS Secrets Manager provider requires the `boto3` library. This can be easily installed along with the plugin using the following command: +AWS Secrets Manager and Systems Manager Parameter Store are supported. Both providers require the `boto3` library. This can be easily installed along with the plugin using the following command: ```no-highlight pip install nautobot-secrets-providers[aws] @@ -111,7 +112,7 @@ Before you proceed, you must have **at least one** of the dependent libaries ins Please do not enable this plugin until you are able to install the dependencies, as it will block Nautobot from starting. -### AWS Secrets Manager +### AWS #### Authentication @@ -128,7 +129,7 @@ Boto3 credentials can be configured in multiple ways (eight as of this writing) 7. Boto2 config file (`/etc/boto.cfg` and `~/.boto`) 8. Instance metadata service on an Amazon EC2 instance that has an IAM role configured. -**The AWS Secrets Manager provider only supports methods 3-8. Methods 1 and 2 ARE NOT SUPPORTED at this time.** +**The AWS providers only support methods 3-8. Methods 1 and 2 ARE NOT SUPPORTED at this time.** We highly recommend you defer to using environment variables for your deployment as specified in the credentials documentation linked above. The values specified in the linked documentation should be [set within your `~.bashrc`](https://nautobot.readthedocs.io/en/latest/installation/nautobot/#update-the-nautobot-bashrc) (or similar profile) on your system. diff --git a/nautobot_secrets_providers/providers/__init__.py b/nautobot_secrets_providers/providers/__init__.py index a6186a1..3a0baf9 100644 --- a/nautobot_secrets_providers/providers/__init__.py +++ b/nautobot_secrets_providers/providers/__init__.py @@ -1,11 +1,12 @@ """Nautobot Secrets Providers.""" -from .aws import AWSSecretsManagerSecretsProvider +from .aws import AWSSecretsManagerSecretsProvider, AWSSystemsManagerParameterStore from .hashicorp import HashiCorpVaultSecretsProvider from .delinea import ThycoticSecretServerSecretsProviderId, ThycoticSecretServerSecretsProviderPath __all__ = ( # type: ignore AWSSecretsManagerSecretsProvider, # pylint: disable=invalid-all-object + AWSSystemsManagerParameterStore, # pylint: disable=invalid-all-object HashiCorpVaultSecretsProvider, # pylint: disable=invalid-all-object ThycoticSecretServerSecretsProviderId, # pylint: disable=invalid-all-object ThycoticSecretServerSecretsProviderPath, # pylint: disable=invalid-all-object diff --git a/nautobot_secrets_providers/providers/aws.py b/nautobot_secrets_providers/providers/aws.py index 04d274f..4671808 100644 --- a/nautobot_secrets_providers/providers/aws.py +++ b/nautobot_secrets_providers/providers/aws.py @@ -1,4 +1,4 @@ -"""Secrets Provider for AWS Secrets Manager.""" +"""Secrets Provider for AWS Secrets Manager and Parameter Store.""" import base64 import json @@ -15,7 +15,7 @@ from nautobot.extras.secrets import exceptions, SecretsProvider -__all__ = ("AWSSecretsManagerSecretsProvider",) +__all__ = ("AWSSecretsManagerSecretsProvider", "AWSSystemsManagerParameterStore") class AWSSecretsManagerSecretsProvider(SecretsProvider): @@ -99,3 +99,64 @@ def get_value_for_secret(cls, secret, obj=None, **kwargs): except KeyError as err: msg = f"The secret value could not be retrieved using key {err}" raise exceptions.SecretValueNotFoundError(secret, cls, msg) from err + + +class AWSSystemsManagerParameterStore(SecretsProvider): + """ + A secrets provider for AWS Systems Manager Parameter Store. + + Documentation: https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html + """ + + slug = "aws-sm-parameter-store" + name = "AWS Systems Manager Parameter Store" + is_available = boto3 is not None + + class ParametersForm(BootstrapMixin, forms.Form): + """Required parameters for AWS Parameter Store.""" + + name = forms.CharField( + required=True, + help_text="The name of the AWS Parameter Store secret", + ) + region = forms.CharField( + required=True, + help_text="The region name of the AWS Parameter Store secret", + ) + key = forms.CharField( + required=True, + help_text="The key name to retrieve from AWS Parameter Store", + ) + + @classmethod + def get_value_for_secret(cls, secret, obj=None, **kwargs): + """Return the parameter value by name and region.""" + # Extract the parameters from the Nautobot secret. + parameters = secret.rendered_parameters(obj=obj) + + # Create a SSM client. + session = boto3.session.Session() + client = session.client(service_name="ssm", region_name=parameters.get("region")) + try: + get_secret_value_response = client.get_parameter(Name=parameters.get("name"), WithDecryption=True) + except ClientError as err: + if err.response["Error"]["Code"] == "ParameterNotFound": + raise exceptions.SecretParametersError(secret, cls, str(err)) + + if err.response["Error"]["Code"] == "ParameterVersionNotFound": + raise exceptions.SecretValueNotFoundError(secret, cls, str(err)) + + raise exceptions.SecretProviderError(secret, cls, str(err)) + else: + try: + # Fetch the Value field from the parameter which must be a json field. + data = json.loads(get_secret_value_response["Parameter"]["Value"]) + except ValueError as err: + msg = "InvalidJson" + raise exceptions.SecretValueNotFoundError(secret, cls, msg) from err + try: + # Return the value of the secret key configured in the nautobot secret. + return data[parameters.get("key")] + except KeyError as err: + msg = f"InvalidKeyName {err}" + raise exceptions.SecretParametersError(secret, cls, msg) from err diff --git a/nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html b/nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html index dbbc4f5..594a69a 100644 --- a/nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html +++ b/nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html @@ -26,6 +26,11 @@

{% block title %}Secrets Providers Home{% endblock %}

Other: Key/value pairs AWS credentials + + AWS Systems Manager Parameter Store + Other: Key/value pairs + AWS credentials + HashiCorp Vault K/V Version 2 diff --git a/nautobot_secrets_providers/tests/test_providers.py b/nautobot_secrets_providers/tests/test_providers.py index 976b220..2c5dd88 100644 --- a/nautobot_secrets_providers/tests/test_providers.py +++ b/nautobot_secrets_providers/tests/test_providers.py @@ -7,12 +7,16 @@ from django.contrib.auth import get_user_model from django.test import Client, TestCase, tag from hvac import Client as HVACClient -from moto import mock_secretsmanager +from moto import mock_secretsmanager, mock_ssm import requests_mock from nautobot.extras.models import Secret from nautobot.extras.secrets import exceptions -from nautobot_secrets_providers.providers import AWSSecretsManagerSecretsProvider, HashiCorpVaultSecretsProvider +from nautobot_secrets_providers.providers import ( + AWSSecretsManagerSecretsProvider, + AWSSystemsManagerParameterStore, + HashiCorpVaultSecretsProvider, +) # Use the proper swappable User model @@ -448,3 +452,71 @@ def test_get_client_aws(self, requests_mocker): str(err.exception), 'SecretProviderError: Secret "hello-hashicorp" (provider "HashiCorpVaultSecretsProvider"): HashiCorp Vault Login failed (auth_method: aws). Error: , on post http://localhost:8200/v1/auth/aws/login', ) + + +class AWSSystemsManagerParameterStoreTestCase(SecretsProviderTestCase): + """Tests for AWSSystemsManagerParameterStore.""" + + provider = AWSSystemsManagerParameterStore + + def setUp(self): + super().setUp() + self.secret = Secret.objects.create( + name="hello-aws-parameterstore", + slug="hello-aws-parameterstore", + provider=self.provider.slug, + parameters={"name": "hello", "region": "eu-west-3", "key": "location"}, + ) + + @mock_ssm + def test_retrieve_success(self): + """Retrieve a secret successfully.""" + conn = boto3.client("ssm", region_name=self.secret.parameters["region"]) + conn.put_parameter(Name="hello", Type="SecureString", Value='{"location":"world"}') + result = self.provider.get_value_for_secret(self.secret) + self.assertEqual(result, "world") + + @mock_ssm + def test_retrieve_does_not_exist(self): + """Try and fail to retrieve a secret that doesn't exist.""" + boto3.client("ssm", region_name=self.secret.parameters["region"]) + + with self.assertRaises(exceptions.SecretParametersError) as err: + self.provider.get_value_for_secret(self.secret) + + exc = err.exception + self.assertIn("ParameterNotFound", exc.message) + + @mock_ssm + def test_retrieve_invalid_key(self): + """Try and fail to retrieve a secret from an existing parameter but an invalid key.""" + conn = boto3.client("ssm", region_name=self.secret.parameters["region"]) + conn.put_parameter(Name="hello", Type="SecureString", Value='{"position":"world"}') + # Try to fetch the secret with key as locatio + with self.assertRaises(exceptions.SecretParametersError) as err: + self.provider.get_value_for_secret(self.secret) + exc = err.exception + self.assertIn(f"InvalidKeyName '{self.secret.parameters['key']}'", exc.message) + + @mock_ssm + def test_retrieve_non_valid_json(self): + conn = boto3.client("ssm", region_name=self.secret.parameters["region"]) + conn.put_parameter(Name="hello", Type="SecureString", Value="Non Valid JSON") + + with self.assertRaises(exceptions.SecretValueNotFoundError) as err: + self.provider.get_value_for_secret(self.secret) + + exc = err.exception + self.assertIn("InvalidJson", exc.message) + + @mock_ssm + def test_retrieve_invalid_version(self): + """Try and fail to retrieve a parameter while specifying an invalid version|label.""" + conn = boto3.client("ssm", region_name=self.secret.parameters["region"]) + conn.put_parameter(Name="hello", Type="SecureString", Value='{"location":"world"}') + # add a non existing version to the Nautobot secret name and try to fetch it + self.secret.parameters["name"] += ":2" + with self.assertRaises(exceptions.SecretValueNotFoundError) as err: + self.provider.get_value_for_secret(self.secret) + exc = err.exception + self.assertIn("ParameterVersionNotFound", exc.message) diff --git a/poetry.lock b/poetry.lock index 98e773e..8f1de1e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. [[package]] name = "amqp" @@ -3249,4 +3249,4 @@ thycotic = ["python-tss-sdk"] [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "b410b427924aa21c89522a088a739d378b361802c3eddc4e95e67b8c893efc8c" +content-hash = "b2f5711720bfe6608e3d0c55f2888dd77a2ce584ab13fc288e392a15944a030b" From e4179092f0d9e123b9ed9586ebcdf861c6d888c4 Mon Sep 17 00:00:00 2001 From: Stephen Corry Date: Wed, 19 Apr 2023 11:49:39 -0400 Subject: [PATCH 13/19] Add token as secret type choice for Delinea/Thycotic (#50) * add token as secret type choice * blacken --- nautobot_secrets_providers/providers/choices.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nautobot_secrets_providers/providers/choices.py b/nautobot_secrets_providers/providers/choices.py index 2c43cac..4e911ff 100644 --- a/nautobot_secrets_providers/providers/choices.py +++ b/nautobot_secrets_providers/providers/choices.py @@ -5,12 +5,14 @@ class ThycoticSecretChoices(ChoiceSet): """Choices for Thycotic Secret Server Result.""" + SECRET_TOKEN = "token" # nosec SECRET_PASSWORD = "password" # nosec SECRET_USERNAME = "username" # nosec SECRET_URL = "url" # nosec SECRET_NOTES = "notes" # nosec CHOICES = ( + (SECRET_TOKEN, "Token"), (SECRET_PASSWORD, "Password"), (SECRET_USERNAME, "Username"), (SECRET_URL, "URL"), From 47b6b3261ed29029427a7517cfc8540ca7cd69c0 Mon Sep 17 00:00:00 2001 From: Jordan Facibene Date: Wed, 19 Apr 2023 12:42:40 -0400 Subject: [PATCH 14/19] Add support for Vault Enterprise via namespace parameter. (#66) * Add support for Vault Enterprise via namespace parameter. * Update README.md Co-authored-by: Jathan McCollum * Update nautobot_secrets_providers/providers/hashicorp.py Co-authored-by: nniehoff --------- Co-authored-by: Jathan McCollum Co-authored-by: Bryan Culver <31187+bryanculver@users.noreply.github.com> Co-authored-by: nniehoff --- README.md | 3 ++- nautobot_secrets_providers/providers/hashicorp.py | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6739b91..e51cfdf 100644 --- a/README.md +++ b/README.md @@ -172,7 +172,8 @@ PLUGINS_CONFIG = { - `role_id` - (optional) Required when `"auth_method": "approle"`. As with other sensitive service credentials, we recommend that you provide the role_id value as an environment variable and retrieve it with `{"role_id": os.getenv("NAUTOBOT_HASHICORP_VAULT_ROLE_ID")}` rather than hard-coding it in your `nautobot_config.py`. - `secret_id` - (optional) Required when `"auth_method": "approle"`.As with other sensitive service credentials, we recommend that you provide the secret_id value as an environment variable and retrieve it with `{"secret_id": os.getenv("NAUTOBOT_HASHICORP_VAULT_SECRET_ID")}` rather than hard-coding it in your `nautobot_config.py`. - `login_kwargs` - (optional) Additional optional parameters to pass to the login method for [`approle`](https://hvac.readthedocs.io/en/stable/source/hvac_api_auth_methods.html#hvac.api.auth_methods.AppRole.login), [`aws`](https://hvac.readthedocs.io/en/stable/source/hvac_api_auth_methods.html#hvac.api.auth_methods.Aws.iam_login) and [`kubernetes`](https://hvac.readthedocs.io/en/stable/source/hvac_api_auth_methods.html#hvac.api.auth_methods.Kubernetes.login) authentication methods. - +- `namespace` - (optional) Namespace to use for the [`X-Vault-Namespace` header](https://github.com/hvac/hvac/blob/main/hvac/adapters.py#L287) on all hvac client requests. Required when the [`Namespaces`](https://developer.hashicorp.com/vault/docs/enterprise/namespaces#usage) feature is enabled in Vault Enterprise. + ### Delinea/Thycotic Secret Server (TSS) The Delinea/Thycotic Secret Server plugin includes two providers: diff --git a/nautobot_secrets_providers/providers/hashicorp.py b/nautobot_secrets_providers/providers/hashicorp.py index 3603532..117a121 100644 --- a/nautobot_secrets_providers/providers/hashicorp.py +++ b/nautobot_secrets_providers/providers/hashicorp.py @@ -109,12 +109,16 @@ def get_client(cls, secret=None): # so we use a parameter to specify the path to the ca_cert, if not provided we use the default of None ca_cert = vault_settings.get("ca_cert", None) + namespace = vault_settings.get("namespace", None) + # Get the client and attempt to retrieve the secret. try: if auth_method == "token": - client = hvac.Client(url=vault_settings["url"], token=vault_settings["token"], verify=ca_cert) + client = hvac.Client( + url=vault_settings["url"], token=vault_settings["token"], verify=ca_cert, namespace=namespace + ) else: - client = hvac.Client(url=vault_settings["url"], verify=ca_cert) + client = hvac.Client(url=vault_settings["url"], verify=ca_cert, namespace=namespace) if auth_method == "approle": client.auth.approle.login( role_id=vault_settings["role_id"], From d29afcaa724581d240a055b5938f46d752b78cf8 Mon Sep 17 00:00:00 2001 From: Bryan Culver <31187+bryanculver@users.noreply.github.com> Date: Wed, 19 Apr 2023 14:00:18 -0400 Subject: [PATCH 15/19] Batch lockfile update. (#82) - Closes #65 - Closes #70 - Closes #71 - Closes #72 - Closes #80 - Closes #81 --- poetry.lock | 414 ++++++++++++++++++++++++---------------------------- 1 file changed, 191 insertions(+), 223 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8f1de1e..b147175 100644 --- a/poetry.lock +++ b/poetry.lock @@ -565,50 +565,45 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "38.0.1" +version = "40.0.2" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "cryptography-38.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:10d1f29d6292fc95acb597bacefd5b9e812099d75a6469004fd38ba5471a977f"}, - {file = "cryptography-38.0.1-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:3fc26e22840b77326a764ceb5f02ca2d342305fba08f002a8c1f139540cdfaad"}, - {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:3b72c360427889b40f36dc214630e688c2fe03e16c162ef0aa41da7ab1455153"}, - {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:194044c6b89a2f9f169df475cc167f6157eb9151cc69af8a2a163481d45cc407"}, - {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca9f6784ea96b55ff41708b92c3f6aeaebde4c560308e5fbbd3173fbc466e94e"}, - {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:16fa61e7481f4b77ef53991075de29fc5bacb582a1244046d2e8b4bb72ef66d0"}, - {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d4ef6cc305394ed669d4d9eebf10d3a101059bdcf2669c366ec1d14e4fb227bd"}, - {file = "cryptography-38.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3261725c0ef84e7592597606f6583385fed2a5ec3909f43bc475ade9729a41d6"}, - {file = "cryptography-38.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:0297ffc478bdd237f5ca3a7dc96fc0d315670bfa099c04dc3a4a2172008a405a"}, - {file = "cryptography-38.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:89ed49784ba88c221756ff4d4755dbc03b3c8d2c5103f6d6b4f83a0fb1e85294"}, - {file = "cryptography-38.0.1-cp36-abi3-win32.whl", hash = "sha256:ac7e48f7e7261207d750fa7e55eac2d45f720027d5703cd9007e9b37bbb59ac0"}, - {file = "cryptography-38.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:ad7353f6ddf285aeadfaf79e5a6829110106ff8189391704c1d8801aa0bae45a"}, - {file = "cryptography-38.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:896dd3a66959d3a5ddcfc140a53391f69ff1e8f25d93f0e2e7830c6de90ceb9d"}, - {file = "cryptography-38.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:d3971e2749a723e9084dd507584e2a2761f78ad2c638aa31e80bc7a15c9db4f9"}, - {file = "cryptography-38.0.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:79473cf8a5cbc471979bd9378c9f425384980fcf2ab6534b18ed7d0d9843987d"}, - {file = "cryptography-38.0.1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:d9e69ae01f99abe6ad646947bba8941e896cb3aa805be2597a0400e0764b5818"}, - {file = "cryptography-38.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5067ee7f2bce36b11d0e334abcd1ccf8c541fc0bbdaf57cdd511fdee53e879b6"}, - {file = "cryptography-38.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:3e3a2599e640927089f932295a9a247fc40a5bdf69b0484532f530471a382750"}, - {file = "cryptography-38.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c2e5856248a416767322c8668ef1845ad46ee62629266f84a8f007a317141013"}, - {file = "cryptography-38.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:64760ba5331e3f1794d0bcaabc0d0c39e8c60bf67d09c93dc0e54189dfd7cfe5"}, - {file = "cryptography-38.0.1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b6c9b706316d7b5a137c35e14f4103e2115b088c412140fdbd5f87c73284df61"}, - {file = "cryptography-38.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0163a849b6f315bf52815e238bc2b2346604413fa7c1601eea84bcddb5fb9ac"}, - {file = "cryptography-38.0.1-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:d1a5bd52d684e49a36582193e0b89ff267704cd4025abefb9e26803adeb3e5fb"}, - {file = "cryptography-38.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:765fa194a0f3372d83005ab83ab35d7c5526c4e22951e46059b8ac678b44fa5a"}, - {file = "cryptography-38.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:52e7bee800ec869b4031093875279f1ff2ed12c1e2f74923e8f49c916afd1d3b"}, - {file = "cryptography-38.0.1.tar.gz", hash = "sha256:1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7"}, + {file = "cryptography-40.0.2-cp36-abi3-macosx_10_12_universal2.whl", hash = "sha256:8f79b5ff5ad9d3218afb1e7e20ea74da5f76943ee5edb7f76e56ec5161ec782b"}, + {file = "cryptography-40.0.2-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:05dc219433b14046c476f6f09d7636b92a1c3e5808b9a6536adf4932b3b2c440"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4df2af28d7bedc84fe45bd49bc35d710aede676e2a4cb7fc6d103a2adc8afe4d"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dcca15d3a19a66e63662dc8d30f8036b07be851a8680eda92d079868f106288"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:a04386fb7bc85fab9cd51b6308633a3c271e3d0d3eae917eebab2fac6219b6d2"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:adc0d980fd2760c9e5de537c28935cc32b9353baaf28e0814df417619c6c8c3b"}, + {file = "cryptography-40.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:d5a1bd0e9e2031465761dfa920c16b0065ad77321d8a8c1f5ee331021fda65e9"}, + {file = "cryptography-40.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:a95f4802d49faa6a674242e25bfeea6fc2acd915b5e5e29ac90a32b1139cae1c"}, + {file = "cryptography-40.0.2-cp36-abi3-win32.whl", hash = "sha256:aecbb1592b0188e030cb01f82d12556cf72e218280f621deed7d806afd2113f9"}, + {file = "cryptography-40.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:b12794f01d4cacfbd3177b9042198f3af1c856eedd0a98f10f141385c809a14b"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:142bae539ef28a1c76794cca7f49729e7c54423f615cfd9b0b1fa90ebe53244b"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:956ba8701b4ffe91ba59665ed170a2ebbdc6fc0e40de5f6059195d9f2b33ca0e"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4f01c9863da784558165f5d4d916093737a75203a5c5286fde60e503e4276c7a"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3daf9b114213f8ba460b829a02896789751626a2a4e7a43a28ee77c04b5e4958"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:48f388d0d153350f378c7f7b41497a54ff1513c816bcbbcafe5b829e59b9ce5b"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c0764e72b36a3dc065c155e5b22f93df465da9c39af65516fe04ed3c68c92636"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:cbaba590180cba88cb99a5f76f90808a624f18b169b90a4abb40c1fd8c19420e"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7a38250f433cd41df7fcb763caa3ee9362777fdb4dc642b9a349721d2bf47404"}, + {file = "cryptography-40.0.2.tar.gz", hash = "sha256:c33c0d32b8594fa647d2e01dbccc303478e16fdd7cf98652d5b3ed11aa5e5c99"}, ] [package.dependencies] cffi = ">=1.12" [package.extras] -docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] -pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] +pep8test = ["black", "check-manifest", "mypy", "ruff"] sdist = ["setuptools-rust (>=0.11.4)"] ssh = ["bcrypt (>=3.1.5)"] -test = ["hypothesis (>=1.11.4,!=3.79.2)", "iso8601", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-subtests", "pytest-xdist", "pytz"] +test = ["iso8601", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-shard (>=0.1.2)", "pytest-subtests", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] +tox = ["tox"] [[package]] name = "defusedxml" @@ -622,24 +617,6 @@ files = [ {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, ] -[[package]] -name = "Deprecated" -version = "1.2.13" -description = "Python @deprecated decorator to deprecate old python classes, functions or methods." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "Deprecated-1.2.13-py2.py3-none-any.whl", hash = "sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d"}, - {file = "Deprecated-1.2.13.tar.gz", hash = "sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d"}, -] - -[package.dependencies] -wrapt = ">=1.10,<2" - -[package.extras] -dev = ["PyTest", "PyTest (<5)", "PyTest-Cov", "PyTest-Cov (<2.6)", "bump2version (<1)", "configparser (<5)", "importlib-metadata (<3)", "importlib-resources (<4)", "sphinx (<2)", "sphinxcontrib-websupport (<2)", "tox", "zipp (<2)"] - [[package]] name = "dill" version = "0.3.5.1" @@ -741,14 +718,14 @@ python-crontab = ">=2.3.4" [[package]] name = "django-constance" -version = "2.8.0" +version = "2.9.1" description = "Django live settings with pluggable backends, including Redis." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "django-constance-2.8.0.tar.gz", hash = "sha256:0a492454acc78799ce7b9f7a28a00c53427d513f34f8bf6fdc90a46d8864b2af"}, - {file = "django_constance-2.8.0-py3-none-any.whl", hash = "sha256:60fec73e397d5f4f7440f611b18d3e7ce5342647f316fedc47b62e1411c849e7"}, + {file = "django-constance-2.9.1.tar.gz", hash = "sha256:4c6a96a5f2cbce1bc3fa41aa20566b6ee26fbd896c9f91f996518a3a0904f6c8"}, + {file = "django_constance-2.9.1-py3-none-any.whl", hash = "sha256:bf0b392efa18a1f3f464eddb7eb36ac5c02598354a5e31d0d4ce4fc8b535694b"}, ] [package.dependencies] @@ -900,14 +877,14 @@ tests = ["coverage"] [[package]] name = "django-mptt" -version = "0.13.4" +version = "0.14.0" description = "Utilities for implementing Modified Preorder Tree Traversal with your Django Models and working with trees of Model instances." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "django-mptt-0.13.4.tar.gz", hash = "sha256:80c9fb34df7796a4e5af0cb6b8ade3697555b1aa438bd07a01f32b3ab5202b63"}, - {file = "django_mptt-0.13.4-py3-none-any.whl", hash = "sha256:75745b621ae31d97957ed924155a750dfa8cacd9543799ada2d713fd6bc3f5c7"}, + {file = "django-mptt-0.14.0.tar.gz", hash = "sha256:2c92a2b1614c53086278795ccf50580cf1f9b8564f3ff03055dd62bab5987711"}, + {file = "django_mptt-0.14.0-py3-none-any.whl", hash = "sha256:d9a87433ab0e4f35247c6f6d5a93ace6990860a4ba8796f815d185f773b9acfc"}, ] [package.dependencies] @@ -1009,18 +986,18 @@ tablib = ["tablib"] [[package]] name = "django-taggit" -version = "1.5.1" +version = "3.0.0" description = "django-taggit is a reusable Django application for simple tagging." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "django-taggit-1.5.1.tar.gz", hash = "sha256:e5bb62891f458d55332e36a32e19c08d20142c43f74bc5656c803f8af25c084a"}, - {file = "django_taggit-1.5.1-py3-none-any.whl", hash = "sha256:dfe9e9c10b5929132041de0c00093ef0072c73c2a97d0f74a818ae50fa77149a"}, + {file = "django-taggit-3.0.0.tar.gz", hash = "sha256:e645b8e3dd4f85989d5ef5c5a3d5ebbe5badf5d1e51b53e42d0af726240b00b9"}, + {file = "django_taggit-3.0.0-py3-none-any.whl", hash = "sha256:ca2df20399a11321db75988404afb640a08eff61e52bde35f6c16f307004ec9e"}, ] [package.dependencies] -Django = ">=2.2" +Django = ">=3.2" [[package]] name = "django-timezone-field" @@ -1080,18 +1057,18 @@ waitress = ["waitress"] [[package]] name = "djangorestframework" -version = "3.13.1" +version = "3.14.0" description = "Web APIs for Django, made easy." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "djangorestframework-3.13.1-py3-none-any.whl", hash = "sha256:24c4bf58ed7e85d1fe4ba250ab2da926d263cd57d64b03e8dcef0ac683f8b1aa"}, - {file = "djangorestframework-3.13.1.tar.gz", hash = "sha256:0c33407ce23acc68eca2a6e46424b008c9c02eceb8cf18581921d0092bc1f2ee"}, + {file = "djangorestframework-3.14.0-py3-none-any.whl", hash = "sha256:eb63f58c9f218e1a7d064d17a70751f528ed4e1d35547fdade9aaf4cd103fd08"}, + {file = "djangorestframework-3.14.0.tar.gz", hash = "sha256:579a333e6256b09489cbe0a067e66abe55c6595d8926be6b99423786334350c8"}, ] [package.dependencies] -django = ">=2.2" +django = ">=3.0" pytz = "*" [[package]] @@ -1462,14 +1439,14 @@ files = [ [[package]] name = "jinja2" -version = "3.0.3" +version = "3.1.2" description = "A very fast and expressive template engine." category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"}, - {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"}, + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, ] [package.dependencies] @@ -1785,23 +1762,23 @@ files = [ [[package]] name = "nautobot" -version = "1.4.10" +version = "1.5.17" description = "Source of truth and network automation platform." category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ - {file = "nautobot-1.4.10-py3-none-any.whl", hash = "sha256:830f30d2891adcf93acb0ccb8af3039570e2149388ba3ff4c9cdfd91066aa145"}, - {file = "nautobot-1.4.10.tar.gz", hash = "sha256:402d3dd524b6631691cba0500856e6769f3f925b80badad451c16bb0ff02de43"}, + {file = "nautobot-1.5.17-py3-none-any.whl", hash = "sha256:9b7d66f80ca969b70ce682949bace3af9e111b97be9f2b4655684fad776d2892"}, + {file = "nautobot-1.5.17.tar.gz", hash = "sha256:e2bf6294d0f12040aa17361e9fe76f3fe9cd8125044eb18ab12cfabec386cc02"}, ] [package.dependencies] celery = ">=5.2.7,<5.3.0" -Django = ">=3.2.16,<3.3.0" +Django = ">=3.2.18,<3.3.0" django-ajax-tables = ">=1.1.1,<1.2.0" django-cacheops = ">=6.0,<6.1" django-celery-beat = ">=2.2.1,<2.3.0" -django-constance = {version = ">=2.8.0,<2.9.0", extras = ["database"]} +django-constance = {version = ">=2.9.0,<2.10.0", extras = ["database"]} django-cors-headers = ">=3.13.0,<3.14.0" django-cryptography = ">=1.0,<1.1" django-db-file-storage = ">=0.5.5,<0.6.0" @@ -1809,32 +1786,34 @@ django-extensions = ">=3.2.0,<3.3.0" django-filter = ">=21.1,<21.2" django-health-check = ">=3.16.5,<3.17.0" django-jinja = ">=2.10.2,<2.11.0" -django-mptt = ">=0.13.4,<0.14.0" +django-mptt = ">=0.14.0,<0.15.0" django-prometheus = ">=2.2.0,<2.3.0" django-redis = ">=5.2.0,<5.3.0" django-rq = ">=2.5.1,<2.6.0" django-tables2 = ">=2.4.1,<2.5.0" -django-taggit = ">=1.5.1,<1.6.0" +django-taggit = ">=3.0.0,<3.1.0" django-timezone-field = ">=4.1.2,<4.2.0" django-tree-queries = ">=0.11,<0.12" django-webserver = ">=1.2.0,<1.3.0" -djangorestframework = ">=3.13.1,<3.14.0" -drf-spectacular = {version = ">=0.24.0,<0.25.0", extras = ["sidecar"]} +djangorestframework = ">=3.14.0,<3.15.0" +drf-spectacular = {version = ">=0.24.2,<0.25.0", extras = ["sidecar"]} drf-yasg = {version = ">=1.20.0,<2.0.0", extras = ["validation"]} -GitPython = ">=3.1.27,<3.2.0" +GitPython = ">=3.1.31,<3.2.0" graphene-django = ">=2.15.0,<2.16.0" graphene-django-optimizer = ">=0.8.0,<0.9.0" importlib-metadata = {version = ">=4.4,<5.0", markers = "python_version < \"3.8\""} -Jinja2 = ">=3.0.3,<3.1.0" +Jinja2 = ">=3.1.0,<3.2.0" jsonschema = ">=4.7.0,<4.8.0" Markdown = ">=3.3.7,<3.4.0" MarkupSafe = ">=2.1.1,<2.2.0" netaddr = ">=0.8.0,<0.9.0" -netutils = ">=1.2.0,<1.3.0" -Pillow = ">=9.2.0,<9.3.0" -psycopg2-binary = ">=2.9.3,<2.10.0" +netutils = ">=1.4.1,<2.0.0" +packaging = ">=23.0,<23.1" +Pillow = ">=9.3.0,<9.4.0" +prometheus-client = ">=0.14.1,<0.15.0" +psycopg2-binary = ">=2.9.5,<2.10.0" pycryptodome = ">=3.13.0,<3.14.0" -pyuwsgi = ">=2.0.20,<2.1.0" +pyuwsgi = ">=2.0.21,<2.1.0" PyYAML = ">=6.0,<6.1" social-auth-app-django = ">=5.0.0,<5.1.0" svgwrite = ">=1.4.2,<1.5.0" @@ -1861,26 +1840,29 @@ files = [ [[package]] name = "netutils" -version = "1.2.0" +version = "1.4.1" description = "Common helper functions useful in network automation." category = "main" optional = false -python-versions = ">=3.6,<4.0" +python-versions = ">=3.7,<4.0" files = [ - {file = "netutils-1.2.0-py3-none-any.whl", hash = "sha256:23c2ca960544ac6674263063a3580fe3d9d94d5898512df468298659c7eff7e3"}, - {file = "netutils-1.2.0.tar.gz", hash = "sha256:a661326a46352208ea465f0305831f042f7943289e4cbc3e085c23c07682d24b"}, + {file = "netutils-1.4.1-py3-none-any.whl", hash = "sha256:41002e42b205149fbe6739b7fdbc778ed843e87fabba9691d3d06a35f7876fd4"}, + {file = "netutils-1.4.1.tar.gz", hash = "sha256:4f7501478d810bcd3c64edfe064fa8962a1572636f4fceee2538fc9d3616fbe2"}, ] +[package.extras] +optionals = ["napalm (>=4.0.0,<5.0.0)"] + [[package]] name = "oauthlib" -version = "3.2.1" +version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "oauthlib-3.2.1-py3-none-any.whl", hash = "sha256:88e912ca1ad915e1dcc1c06fc9259d19de8deacd6fd17cc2df266decc2e49066"}, - {file = "oauthlib-3.2.1.tar.gz", hash = "sha256:1565237372795bf6ee3e5aba5e2a85bd5a65d0e2aa5c628b9a97b7d7a0da3721"}, + {file = "oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca"}, + {file = "oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"}, ] [package.extras] @@ -1890,19 +1872,16 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] [[package]] name = "packaging" -version = "21.3" +version = "23.0" description = "Core utilities for Python packages" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, + {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"}, + {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"}, ] -[package.dependencies] -pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" - [[package]] name = "pathspec" version = "0.10.1" @@ -1929,70 +1908,73 @@ files = [ [[package]] name = "pillow" -version = "9.2.0" +version = "9.3.0" description = "Python Imaging Library (Fork)" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "Pillow-9.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:a9c9bc489f8ab30906d7a85afac4b4944a572a7432e00698a7239f44a44e6efb"}, - {file = "Pillow-9.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:510cef4a3f401c246cfd8227b300828715dd055463cdca6176c2e4036df8bd4f"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7888310f6214f19ab2b6df90f3f06afa3df7ef7355fc025e78a3044737fab1f5"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:831e648102c82f152e14c1a0938689dbb22480c548c8d4b8b248b3e50967b88c"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cc1d2451e8a3b4bfdb9caf745b58e6c7a77d2e469159b0d527a4554d73694d1"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:136659638f61a251e8ed3b331fc6ccd124590eeff539de57c5f80ef3a9594e58"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:6e8c66f70fb539301e064f6478d7453e820d8a2c631da948a23384865cd95544"}, - {file = "Pillow-9.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:37ff6b522a26d0538b753f0b4e8e164fdada12db6c6f00f62145d732d8a3152e"}, - {file = "Pillow-9.2.0-cp310-cp310-win32.whl", hash = "sha256:c79698d4cd9318d9481d89a77e2d3fcaeff5486be641e60a4b49f3d2ecca4e28"}, - {file = "Pillow-9.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:254164c57bab4b459f14c64e93df11eff5ded575192c294a0c49270f22c5d93d"}, - {file = "Pillow-9.2.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:adabc0bce035467fb537ef3e5e74f2847c8af217ee0be0455d4fec8adc0462fc"}, - {file = "Pillow-9.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:336b9036127eab855beec9662ac3ea13a4544a523ae273cbf108b228ecac8437"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50dff9cc21826d2977ef2d2a205504034e3a4563ca6f5db739b0d1026658e004"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb6259196a589123d755380b65127ddc60f4c64b21fc3bb46ce3a6ea663659b0"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b0554af24df2bf96618dac71ddada02420f946be943b181108cac55a7a2dcd4"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:15928f824870535c85dbf949c09d6ae7d3d6ac2d6efec80f3227f73eefba741c"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:bdd0de2d64688ecae88dd8935012c4a72681e5df632af903a1dca8c5e7aa871a"}, - {file = "Pillow-9.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5b87da55a08acb586bad5c3aa3b86505f559b84f39035b233d5bf844b0834b1"}, - {file = "Pillow-9.2.0-cp311-cp311-win32.whl", hash = "sha256:b6d5e92df2b77665e07ddb2e4dbd6d644b78e4c0d2e9272a852627cdba0d75cf"}, - {file = "Pillow-9.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:6bf088c1ce160f50ea40764f825ec9b72ed9da25346216b91361eef8ad1b8f8c"}, - {file = "Pillow-9.2.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:2c58b24e3a63efd22554c676d81b0e57f80e0a7d3a5874a7e14ce90ec40d3069"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eef7592281f7c174d3d6cbfbb7ee5984a671fcd77e3fc78e973d492e9bf0eb3f"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dcd7b9c7139dc8258d164b55696ecd16c04607f1cc33ba7af86613881ffe4ac8"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a138441e95562b3c078746a22f8fca8ff1c22c014f856278bdbdd89ca36cff1b"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:93689632949aff41199090eff5474f3990b6823404e45d66a5d44304e9cdc467"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:f3fac744f9b540148fa7715a435d2283b71f68bfb6d4aae24482a890aed18b59"}, - {file = "Pillow-9.2.0-cp37-cp37m-win32.whl", hash = "sha256:fa768eff5f9f958270b081bb33581b4b569faabf8774726b283edb06617101dc"}, - {file = "Pillow-9.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:69bd1a15d7ba3694631e00df8de65a8cb031911ca11f44929c97fe05eb9b6c1d"}, - {file = "Pillow-9.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:030e3460861488e249731c3e7ab59b07c7853838ff3b8e16aac9561bb345da14"}, - {file = "Pillow-9.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:74a04183e6e64930b667d321524e3c5361094bb4af9083db5c301db64cd341f3"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d33a11f601213dcd5718109c09a52c2a1c893e7461f0be2d6febc2879ec2402"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fd6f5e3c0e4697fa7eb45b6e93996299f3feee73a3175fa451f49a74d092b9f"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a647c0d4478b995c5e54615a2e5360ccedd2f85e70ab57fbe817ca613d5e63b8"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:4134d3f1ba5f15027ff5c04296f13328fecd46921424084516bdb1b2548e66ff"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:bc431b065722a5ad1dfb4df354fb9333b7a582a5ee39a90e6ffff688d72f27a1"}, - {file = "Pillow-9.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1536ad017a9f789430fb6b8be8bf99d2f214c76502becc196c6f2d9a75b01b76"}, - {file = "Pillow-9.2.0-cp38-cp38-win32.whl", hash = "sha256:2ad0d4df0f5ef2247e27fc790d5c9b5a0af8ade9ba340db4a73bb1a4a3e5fb4f"}, - {file = "Pillow-9.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:ec52c351b35ca269cb1f8069d610fc45c5bd38c3e91f9ab4cbbf0aebc136d9c8"}, - {file = "Pillow-9.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ed2c4ef2451de908c90436d6e8092e13a43992f1860275b4d8082667fbb2ffc"}, - {file = "Pillow-9.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ad2f835e0ad81d1689f1b7e3fbac7b01bb8777d5a985c8962bedee0cc6d43da"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea98f633d45f7e815db648fd7ff0f19e328302ac36427343e4432c84432e7ff4"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7761afe0126d046974a01e030ae7529ed0ca6a196de3ec6937c11df0df1bc91c"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a54614049a18a2d6fe156e68e188da02a046a4a93cf24f373bffd977e943421"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:5aed7dde98403cd91d86a1115c78d8145c83078e864c1de1064f52e6feb61b20"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:13b725463f32df1bfeacbf3dd197fb358ae8ebcd8c5548faa75126ea425ccb60"}, - {file = "Pillow-9.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:808add66ea764ed97d44dda1ac4f2cfec4c1867d9efb16a33d158be79f32b8a4"}, - {file = "Pillow-9.2.0-cp39-cp39-win32.whl", hash = "sha256:337a74fd2f291c607d220c793a8135273c4c2ab001b03e601c36766005f36885"}, - {file = "Pillow-9.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:fac2d65901fb0fdf20363fbd345c01958a742f2dc62a8dd4495af66e3ff502a4"}, - {file = "Pillow-9.2.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ad2277b185ebce47a63f4dc6302e30f05762b688f8dc3de55dbae4651872cdf3"}, - {file = "Pillow-9.2.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c7b502bc34f6e32ba022b4a209638f9e097d7a9098104ae420eb8186217ebbb"}, - {file = "Pillow-9.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d1f14f5f691f55e1b47f824ca4fdcb4b19b4323fe43cc7bb105988cad7496be"}, - {file = "Pillow-9.2.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:dfe4c1fedfde4e2fbc009d5ad420647f7730d719786388b7de0999bf32c0d9fd"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:f07f1f00e22b231dd3d9b9208692042e29792d6bd4f6639415d2f23158a80013"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1802f34298f5ba11d55e5bb09c31997dc0c6aed919658dfdf0198a2fe75d5490"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17d4cafe22f050b46d983b71c707162d63d796a1235cdf8b9d7a112e97b15bac"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:96b5e6874431df16aee0c1ba237574cb6dff1dcb173798faa6a9d8b399a05d0e"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:0030fdbd926fb85844b8b92e2f9449ba89607231d3dd597a21ae72dc7fe26927"}, - {file = "Pillow-9.2.0.tar.gz", hash = "sha256:75e636fd3e0fb872693f23ccb8a5ff2cd578801251f3a4f6854c6a5d437d3c04"}, + {file = "Pillow-9.3.0-1-cp37-cp37m-win32.whl", hash = "sha256:e6ea6b856a74d560d9326c0f5895ef8050126acfdc7ca08ad703eb0081e82b74"}, + {file = "Pillow-9.3.0-1-cp37-cp37m-win_amd64.whl", hash = "sha256:32a44128c4bdca7f31de5be641187367fe2a450ad83b833ef78910397db491aa"}, + {file = "Pillow-9.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:0b7257127d646ff8676ec8a15520013a698d1fdc48bc2a79ba4e53df792526f2"}, + {file = "Pillow-9.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b90f7616ea170e92820775ed47e136208e04c967271c9ef615b6fbd08d9af0e3"}, + {file = "Pillow-9.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68943d632f1f9e3dce98908e873b3a090f6cba1cbb1b892a9e8d97c938871fbe"}, + {file = "Pillow-9.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:be55f8457cd1eac957af0c3f5ece7bc3f033f89b114ef30f710882717670b2a8"}, + {file = "Pillow-9.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d77adcd56a42d00cc1be30843d3426aa4e660cab4a61021dc84467123f7a00c"}, + {file = "Pillow-9.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:829f97c8e258593b9daa80638aee3789b7df9da5cf1336035016d76f03b8860c"}, + {file = "Pillow-9.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:801ec82e4188e935c7f5e22e006d01611d6b41661bba9fe45b60e7ac1a8f84de"}, + {file = "Pillow-9.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:871b72c3643e516db4ecf20efe735deb27fe30ca17800e661d769faab45a18d7"}, + {file = "Pillow-9.3.0-cp310-cp310-win32.whl", hash = "sha256:655a83b0058ba47c7c52e4e2df5ecf484c1b0b0349805896dd350cbc416bdd91"}, + {file = "Pillow-9.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:9f47eabcd2ded7698106b05c2c338672d16a6f2a485e74481f524e2a23c2794b"}, + {file = "Pillow-9.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:57751894f6618fd4308ed8e0c36c333e2f5469744c34729a27532b3db106ee20"}, + {file = "Pillow-9.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7db8b751ad307d7cf238f02101e8e36a128a6cb199326e867d1398067381bff4"}, + {file = "Pillow-9.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3033fbe1feb1b59394615a1cafaee85e49d01b51d54de0cbf6aa8e64182518a1"}, + {file = "Pillow-9.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22b012ea2d065fd163ca096f4e37e47cd8b59cf4b0fd47bfca6abb93df70b34c"}, + {file = "Pillow-9.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9a65733d103311331875c1dca05cb4606997fd33d6acfed695b1232ba1df193"}, + {file = "Pillow-9.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:502526a2cbfa431d9fc2a079bdd9061a2397b842bb6bc4239bb176da00993812"}, + {file = "Pillow-9.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:90fb88843d3902fe7c9586d439d1e8c05258f41da473952aa8b328d8b907498c"}, + {file = "Pillow-9.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:89dca0ce00a2b49024df6325925555d406b14aa3efc2f752dbb5940c52c56b11"}, + {file = "Pillow-9.3.0-cp311-cp311-win32.whl", hash = "sha256:3168434d303babf495d4ba58fc22d6604f6e2afb97adc6a423e917dab828939c"}, + {file = "Pillow-9.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:18498994b29e1cf86d505edcb7edbe814d133d2232d256db8c7a8ceb34d18cef"}, + {file = "Pillow-9.3.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:772a91fc0e03eaf922c63badeca75e91baa80fe2f5f87bdaed4280662aad25c9"}, + {file = "Pillow-9.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa4107d1b306cdf8953edde0534562607fe8811b6c4d9a486298ad31de733b2"}, + {file = "Pillow-9.3.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b4012d06c846dc2b80651b120e2cdd787b013deb39c09f407727ba90015c684f"}, + {file = "Pillow-9.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77ec3e7be99629898c9a6d24a09de089fa5356ee408cdffffe62d67bb75fdd72"}, + {file = "Pillow-9.3.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:6c738585d7a9961d8c2821a1eb3dcb978d14e238be3d70f0a706f7fa9316946b"}, + {file = "Pillow-9.3.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:828989c45c245518065a110434246c44a56a8b2b2f6347d1409c787e6e4651ee"}, + {file = "Pillow-9.3.0-cp37-cp37m-win32.whl", hash = "sha256:82409ffe29d70fd733ff3c1025a602abb3e67405d41b9403b00b01debc4c9a29"}, + {file = "Pillow-9.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:41e0051336807468be450d52b8edd12ac60bebaa97fe10c8b660f116e50b30e4"}, + {file = "Pillow-9.3.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:b03ae6f1a1878233ac620c98f3459f79fd77c7e3c2b20d460284e1fb370557d4"}, + {file = "Pillow-9.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4390e9ce199fc1951fcfa65795f239a8a4944117b5935a9317fb320e7767b40f"}, + {file = "Pillow-9.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40e1ce476a7804b0fb74bcfa80b0a2206ea6a882938eaba917f7a0f004b42502"}, + {file = "Pillow-9.3.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a0a06a052c5f37b4ed81c613a455a81f9a3a69429b4fd7bb913c3fa98abefc20"}, + {file = "Pillow-9.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03150abd92771742d4a8cd6f2fa6246d847dcd2e332a18d0c15cc75bf6703040"}, + {file = "Pillow-9.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:15c42fb9dea42465dfd902fb0ecf584b8848ceb28b41ee2b58f866411be33f07"}, + {file = "Pillow-9.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:51e0e543a33ed92db9f5ef69a0356e0b1a7a6b6a71b80df99f1d181ae5875636"}, + {file = "Pillow-9.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3dd6caf940756101205dffc5367babf288a30043d35f80936f9bfb37f8355b32"}, + {file = "Pillow-9.3.0-cp38-cp38-win32.whl", hash = "sha256:f1ff2ee69f10f13a9596480335f406dd1f70c3650349e2be67ca3139280cade0"}, + {file = "Pillow-9.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:276a5ca930c913f714e372b2591a22c4bd3b81a418c0f6635ba832daec1cbcfc"}, + {file = "Pillow-9.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:73bd195e43f3fadecfc50c682f5055ec32ee2c933243cafbfdec69ab1aa87cad"}, + {file = "Pillow-9.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1c7c8ae3864846fc95f4611c78129301e203aaa2af813b703c55d10cc1628535"}, + {file = "Pillow-9.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e0918e03aa0c72ea56edbb00d4d664294815aa11291a11504a377ea018330d3"}, + {file = "Pillow-9.3.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0915e734b33a474d76c28e07292f196cdf2a590a0d25bcc06e64e545f2d146c"}, + {file = "Pillow-9.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af0372acb5d3598f36ec0914deed2a63f6bcdb7b606da04dc19a88d31bf0c05b"}, + {file = "Pillow-9.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ad58d27a5b0262c0c19b47d54c5802db9b34d38bbf886665b626aff83c74bacd"}, + {file = "Pillow-9.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:97aabc5c50312afa5e0a2b07c17d4ac5e865b250986f8afe2b02d772567a380c"}, + {file = "Pillow-9.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9aaa107275d8527e9d6e7670b64aabaaa36e5b6bd71a1015ddd21da0d4e06448"}, + {file = "Pillow-9.3.0-cp39-cp39-win32.whl", hash = "sha256:bac18ab8d2d1e6b4ce25e3424f709aceef668347db8637c2296bcf41acb7cf48"}, + {file = "Pillow-9.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:b472b5ea442148d1c3e2209f20f1e0bb0eb556538690fa70b5e1f79fa0ba8dc2"}, + {file = "Pillow-9.3.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ab388aaa3f6ce52ac1cb8e122c4bd46657c15905904b3120a6248b5b8b0bc228"}, + {file = "Pillow-9.3.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbb8e7f2abee51cef77673be97760abff1674ed32847ce04b4af90f610144c7b"}, + {file = "Pillow-9.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca31dd6014cb8b0b2db1e46081b0ca7d936f856da3b39744aef499db5d84d02"}, + {file = "Pillow-9.3.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c7025dce65566eb6e89f56c9509d4f628fddcedb131d9465cacd3d8bac337e7e"}, + {file = "Pillow-9.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ebf2029c1f464c59b8bdbe5143c79fa2045a581ac53679733d3a91d400ff9efb"}, + {file = "Pillow-9.3.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b59430236b8e58840a0dfb4099a0e8717ffb779c952426a69ae435ca1f57210c"}, + {file = "Pillow-9.3.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12ce4932caf2ddf3e41d17fc9c02d67126935a44b86df6a206cf0d7161548627"}, + {file = "Pillow-9.3.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae5331c23ce118c53b172fa64a4c037eb83c9165aba3a7ba9ddd3ec9fa64a699"}, + {file = "Pillow-9.3.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:0b07fffc13f474264c336298d1b4ce01d9c5a011415b79d4ee5527bb69ae6f65"}, + {file = "Pillow-9.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:073adb2ae23431d3b9bcbcff3fe698b62ed47211d0716b067385538a1b0f28b8"}, + {file = "Pillow-9.3.0.tar.gz", hash = "sha256:c935a22a557a560108d780f9a0fc426dd7459940dc54faa49d83249c8d3e760f"}, ] [package.extras] @@ -2326,21 +2308,6 @@ files = [ [package.dependencies] pylint = ">=1.7" -[[package]] -name = "pyparsing" -version = "3.0.9" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "main" -optional = false -python-versions = ">=3.6.8" -files = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, -] - -[package.extras] -diagrams = ["jinja2", "railroad-diagrams"] - [[package]] name = "pyrsistent" version = "0.18.1" @@ -2454,48 +2421,48 @@ files = [ [[package]] name = "pyuwsgi" -version = "2.0.20" +version = "2.0.21" description = "The uWSGI server" category = "main" optional = false python-versions = "*" files = [ - {file = "pyuwsgi-2.0.20-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd09a7328558728f6e38f77609f44d16f18d8b4dc5f8b8776f657c8892b70337"}, - {file = "pyuwsgi-2.0.20-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:210ad768b8af02bbfd3c0345a51c6d2c56a2333ac268d9a97ecf2d4209f78ef8"}, - {file = "pyuwsgi-2.0.20-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e33111308a79dbd202094963fd3a537dab30854e375d9be018f642fcd359e03d"}, - {file = "pyuwsgi-2.0.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0306c3ca6f781ed7409774e44a2a90217824d3efb44e075a1f39a78a54ffe7d"}, - {file = "pyuwsgi-2.0.20-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3eeea48fd965b68801618fc20eda2cb65dc2aeb4121955c9c422685f046311da"}, - {file = "pyuwsgi-2.0.20-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:dd048b85abb90c79a34afbf787995ab2933cb2a8b210a6e064e5fca0a9bdf2d8"}, - {file = "pyuwsgi-2.0.20-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f612a72437c2934e39393fb575fab791e919efc102a0aa1a27b5d9a301d462e9"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:78ac2d8b7d307232f8276cb8a45300211b0fae179c0494f2a3e3178c70693f81"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f84fc44bba77d05fa9d01189028501ff8e6a2d63db184ceea42085ce28196317"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:342c312949c2f494f5d9ac272965715483cb22ed0353c18abb1b4590769ef00f"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5740b84a016a246c69edef0df11912560df9a45c2adf6e47701329a974e37a71"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:82058f6b6656f12dbc66c963be2d7c0b977f481ddca5d4d3918e26def003b60d"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:dc99724df6d5613300d3357c4017cde840830ca132fe98f0a4feab9a6af48622"}, - {file = "pyuwsgi-2.0.20-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:70096084ccfa18f058dfb3380aa10e80d48958ddfdb888b827f06aacb72f80b8"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3e7a8576452635612c82f660e5be99ba42cdcdff142948f5c263b5278f2c17b0"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2844205e0095a29d3a6e9e23bd37bcf18d65e4e5ab23a14a45f5159c03a3b890"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e2c0d5dafb9faacc8ed5b662f9eacb22e723fbc3cb7152b2ebf09a92b8bd6c0d"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:087397457837c5fd653eda91c5d2c7948e06da589c786d26145bdcc397656bb2"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:da24ddb7e3522d36b4cdc2dbf131141d559084862f515d37f9a4b7b5c8b538b1"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:99b0c5a87aa95dcbaca2ccb599d783f37461600e098881d4ec9796ba68e3ff8f"}, - {file = "pyuwsgi-2.0.20-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:df08a05dda4a92da46bd56af755dac091b145815c3cf6dda1855e01e40d12a99"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7c8ac4b2f411d15222f53a96627b8fa79056b39606925f429f59a51668bd95ab"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f1494d00df440865b1ee269a350187766c9c364ba5f124eddb064f366c4b6d8a"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c5ee8782932dbacdb4dd98714c3575cbbb88ba87d7bcb3149c828725ba048897"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cdc4b32234b40fa2d515108a2f56a159896134ef16394f26dba764635142976"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:300417d6669171a454da19991fc7f910b3975232dac5b2dbc359e26f1038624b"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:015a8d310503eb8c0028ac8f98c7df3b49bc937c7db137aaf149ca7fae64c777"}, - {file = "pyuwsgi-2.0.20-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:9fc3d256270adf24b87f1dff893f3bc59bd5ee20c4ebb5add25e944c36359e1e"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:052fe12d6a9ab9e9fc7814e40d2d28061aaea1a610069008d773e1d8a71feb11"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7d160c7bfa8f2974fc6b807a8fc080be0d130b1a4ad0b463c0320e707e6a6eb6"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7691ca470e541133c444b23f83c6f07ecca12f4771a49e0e3a04b05f4c80f2d3"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c87fb1d56dd2c6f18b87b08496be326afb6cf57c6a059261b01ce99046d9147"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8eb97cf51f58df05ec0dd74d83510172a2f5bcd8adc91382e24690a2abddc2f3"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a8fc4d52232f55df16e9cbf6faf4bf16910d15042229d5f8c717278fd4ea37a5"}, - {file = "pyuwsgi-2.0.20-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1acedb1841aa0e60e1a7245ae483a5fcb30e39cf0cdfe3987e14de4746daf75b"}, - {file = "pyuwsgi-2.0.20.tar.gz", hash = "sha256:8b0936a964511fa0e2ac2847c2435e95130e7c98619f06fe1f67320527576043"}, + {file = "pyuwsgi-2.0.21-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:10cce470f3db6e5206c3fb9d46b86c5c915dcb6616a617101411006463e833ea"}, + {file = "pyuwsgi-2.0.21-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e06b41ad50b8d3d5a46374af8c8ed9bcf2627ea97f5718ef2da693ab3425656"}, + {file = "pyuwsgi-2.0.21-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:977ce0f87e3f07571267b6572dcbe8b3d5d488cbc351d33c93ec6cce9737099a"}, + {file = "pyuwsgi-2.0.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:243de3964aa40e9f15cc4be64bf5594bb4d3e847f9b563b3d8f3b2df9c1c1581"}, + {file = "pyuwsgi-2.0.21-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:47e29aca1e856315b18999e6527347cf461f7b333af13b33ba5926e2718c0a3c"}, + {file = "pyuwsgi-2.0.21-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0a6209bf09e14d3ceee1db6d1381346c361245552307388a1cf65229d33d306c"}, + {file = "pyuwsgi-2.0.21-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:09942a86c5501367381b86561dcb69efa4207e1f604a4c5c4e58849f0b895619"}, + {file = "pyuwsgi-2.0.21-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7139eb6bdcb32b64431ba5d3058975d6a34cc52d58c2ffbf611625cd058018a7"}, + {file = "pyuwsgi-2.0.21-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:871d0b9a61a143da0b0ba4a7249d198c804ad63a2374b5bccae7c584d805bdcd"}, + {file = "pyuwsgi-2.0.21-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78c3aaf8e89ee912730ad57e60832c0d10a267b521715c8d832eef19373075aa"}, + {file = "pyuwsgi-2.0.21-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8da171f2519739caad4bf4682a71b92527489eb71b3af41319bbc13f61e14dc"}, + {file = "pyuwsgi-2.0.21-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c9b67d7211e5d9439d1ecc11cf909fc214d05c332e47121d5f92913ebdf5c28c"}, + {file = "pyuwsgi-2.0.21-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c9fdd5032bd4a5d697ccfb50e2e5296c419eb53a8b44cacfcc55d7ceb629be2f"}, + {file = "pyuwsgi-2.0.21-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:445998892e164e7f253d20ffd1ab6f7c9441c77e8d05e8a2525532ba663de0af"}, + {file = "pyuwsgi-2.0.21-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f76540fbcea52d333acfe172c7c91f284c4526eae8b0d146c60672dbcaece705"}, + {file = "pyuwsgi-2.0.21-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32eace989380b3677131fea2d5e719a870fcecb2a1db5830d80997e9f501c6db"}, + {file = "pyuwsgi-2.0.21-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:26876ce2e934e004d1d98a06abb170743ec743a5cecc3867260f071f31c269e0"}, + {file = "pyuwsgi-2.0.21-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e77e27ce32b64b34de26a2ec84cb8fff620153d7a207ea3cbea69b39c0b571b1"}, + {file = "pyuwsgi-2.0.21-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:62d9927a1178af61285b697caa736dfa34fcc48090db45f965859e1fa641f4bc"}, + {file = "pyuwsgi-2.0.21-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:ed867fa6d704338820304bd13bc6b20687e823ef70dfaf35c1db324598b60af4"}, + {file = "pyuwsgi-2.0.21-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c38f1e68db1dea7e8b47a64b855cd15e491d1920908be5887189a98ce5e968e9"}, + {file = "pyuwsgi-2.0.21-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be994a0cdaaf9733e00c2e3275b368586db067802cd0a1af682b0c55070f39c7"}, + {file = "pyuwsgi-2.0.21-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0753b7ec6174afa590bd5724d25541209387b67f080dbe13db7d9655ef0077df"}, + {file = "pyuwsgi-2.0.21-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c17abbbba53eabdba7fc92a0321864adbf97e8460cfd9c01b714d6c3e3ccc4c"}, + {file = "pyuwsgi-2.0.21-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13524cea71a1cd2bb4586c773cbf6a9a1085f3e4ba1c52648b2823385c8d7d74"}, + {file = "pyuwsgi-2.0.21-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f5b6c6d413430015f9cbadef2687ce334b2960d0df3cfba4181e39c4af242933"}, + {file = "pyuwsgi-2.0.21-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1f44454a0cf419436c0a99bd37586ce9776e3c10454dd3387d2afa9c4c9c4404"}, + {file = "pyuwsgi-2.0.21-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7375666a7dd22f1c9ad4c7d01e957c5941baa489f02cd76cf2064a63a8946dfe"}, + {file = "pyuwsgi-2.0.21-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:56f92e057461bcd32e991661db3fb505a59b8ff35da5af12b062b9ebf1ddfc57"}, + {file = "pyuwsgi-2.0.21-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c005b1357c525fe63dfb83299ca77f478db4842ee8204e8ac6cb47267fc1920"}, + {file = "pyuwsgi-2.0.21-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10d36e255bd54e7d52ed7dc360821b06748e87a7d5aa826a48ddfa7c9baedb52"}, + {file = "pyuwsgi-2.0.21-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8693e2a71da6e5f78fa4142893c1b201daadaf71d87275fd906ce6d02e3c9910"}, + {file = "pyuwsgi-2.0.21-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e448bdd8fbacbd27dcdd58f1191ee61c58795a672cedc4ca661a8b83606a158a"}, + {file = "pyuwsgi-2.0.21-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:837d295d3df3d4b6e1a9850922e25fc7a8836949f424a36985491be473f00d21"}, + {file = "pyuwsgi-2.0.21-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92371cb638707574fe93127f9c270216d12751a96e6a624237820a089f846ef5"}, + {file = "pyuwsgi-2.0.21.tar.gz", hash = "sha256:211e8877f5191e347ba905232d04ab30e05ce31ba7a6dac4bfcb48de9845bb52"}, ] [[package]] @@ -2565,21 +2532,19 @@ pyyaml = "*" [[package]] name = "redis" -version = "4.3.4" +version = "4.5.4" description = "Python client for Redis database and key-value store" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "redis-4.3.4-py3-none-any.whl", hash = "sha256:a52d5694c9eb4292770084fa8c863f79367ca19884b329ab574d5cb2036b3e54"}, - {file = "redis-4.3.4.tar.gz", hash = "sha256:ddf27071df4adf3821c4f2ca59d67525c3a82e5f268bed97b813cb4fabf87880"}, + {file = "redis-4.5.4-py3-none-any.whl", hash = "sha256:2c19e6767c474f2e85167909061d525ed65bea9301c0770bb151e041b7ac89a2"}, + {file = "redis-4.5.4.tar.gz", hash = "sha256:73ec35da4da267d6847e47f68730fdd5f62e2ca69e3ef5885c6a78a9374c3893"}, ] [package.dependencies] -async-timeout = ">=4.0.2" -deprecated = ">=1.2.3" +async-timeout = {version = ">=4.0.2", markers = "python_version <= \"3.11.2\""} importlib-metadata = {version = ">=1.0", markers = "python_version < \"3.8\""} -packaging = ">=20.4" typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] @@ -2774,19 +2739,19 @@ crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] [[package]] name = "setuptools" -version = "65.3.0" +version = "67.6.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "setuptools-65.3.0-py3-none-any.whl", hash = "sha256:2e24e0bec025f035a2e72cdd1961119f557d78ad331bb00ff82efb2ab8da8e82"}, - {file = "setuptools-65.3.0.tar.gz", hash = "sha256:7732871f4f7fa58fb6bdcaeadb0161b2bd046c85905dbaa066bdcbcc81953b57"}, + {file = "setuptools-67.6.1-py3-none-any.whl", hash = "sha256:e728ca814a823bf7bf60162daf9db95b93d532948c4c0bea762ce62f60189078"}, + {file = "setuptools-67.6.1.tar.gz", hash = "sha256:257de92a9d50a60b8e22abfcbb771571fde0dbf3ec234463212027a4eeecbe9a"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mock", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] @@ -3106,17 +3071,20 @@ files = [ ] [[package]] -name = "Werkzeug" -version = "2.1.2" +name = "werkzeug" +version = "2.2.3" description = "The comprehensive WSGI web application library." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "Werkzeug-2.1.2-py3-none-any.whl", hash = "sha256:72a4b735692dd3135217911cbeaa1be5fa3f62bffb8745c5215420a03dc55255"}, - {file = "Werkzeug-2.1.2.tar.gz", hash = "sha256:1ce08e8093ed67d638d63879fd1ba3735817f7a80de3674d293f5984f25fb6e6"}, + {file = "Werkzeug-2.2.3-py3-none-any.whl", hash = "sha256:56433961bc1f12533306c624f3be5e744389ac61d722175d543e1751285da612"}, + {file = "Werkzeug-2.2.3.tar.gz", hash = "sha256:2e1ccc9417d4da358b9de6f174e3ac094391ea1d4fbef2d667865d819dfd0afe"}, ] +[package.dependencies] +MarkupSafe = ">=2.1.1" + [package.extras] watchdog = ["watchdog"] @@ -3124,7 +3092,7 @@ watchdog = ["watchdog"] name = "wrapt" version = "1.14.1" description = "Module for decorators, wrappers and monkey patching." -category = "main" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ From 5355cf07c568c5b8ec8e3bd129ccb89c2d835e37 Mon Sep 17 00:00:00 2001 From: coco <49311792+k0rventen@users.noreply.github.com> Date: Wed, 19 Apr 2023 21:46:29 +0200 Subject: [PATCH 16/19] Add Hashicorp Kv v1 support (#53) * add kv version argument * first iter on doc & tests * set v1 as if clause * add kv V1 tests to harness * add kv V1 related doc * function inline doc on tests * removed misplaced line * add available choices to kv version parameter Co-authored-by: nniehoff * Black and bandit * FINE * Refactor tests * Revert some whitespace changes * Add explicit fallback test * Update nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html Co-authored-by: Glenn Matthews --------- Co-authored-by: nniehoff Co-authored-by: Bryan Culver <31187+bryanculver@users.noreply.github.com> Co-authored-by: Bryan Culver Co-authored-by: Glenn Matthews --- README.md | 3 +- docs/images/screenshot04.png | Bin 55898 -> 82010 bytes .../providers/choices.py | 12 +++ .../providers/hashicorp.py | 27 ++++- .../nautobot_secrets_providers/home.html | 3 +- .../tests/test_providers.py | 92 +++++++++++++++++- 6 files changed, 132 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e51cfdf..9195187 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ This plugin supports the following popular secrets backends: | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/) | [Other: Key/value pairs](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) | [AWS credentials](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html) (see Usage section below) | | [AWS Systems Manager Parameter Store](https://aws.amazon.com/secrets-manager/) | [Other: Key/value pairs](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) | [AWS credentials](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html) (see Usage section below) | -| [HashiCorp Vault](https://www.vaultproject.io) | [K/V Version 2](https://www.vaultproject.io/docs/secrets/kv/kv-v2) | [Token](https://www.vaultproject.io/docs/auth/token)
[AppRole](https://www.vaultproject.io/docs/auth/approle)
[AWS](https://www.vaultproject.io/docs/auth/aws)
[Kubernetes](https://www.vaultproject.io/docs/auth/kubernetes) | +| [HashiCorp Vault](https://www.vaultproject.io) | [K/V Version 2](https://www.vaultproject.io/docs/secrets/kv/kv-v2)
[K/V Version 1](https://developer.hashicorp.com/vault/docs/secrets/kv/kv-v1) | [Token](https://www.vaultproject.io/docs/auth/token)
[AppRole](https://www.vaultproject.io/docs/auth/approle)
[AWS](https://www.vaultproject.io/docs/auth/aws)
[Kubernetes](https://www.vaultproject.io/docs/auth/kubernetes) | | [Delinea/Thycotic Secret Server](https://delinea.com/products/secret-server) | [Secret Server Cloud](https://github.com/DelineaXPM/python-tss-sdk#secret-server-cloud)
[Secret Server (on-prem)](https://github.com/DelineaXPM/python-tss-sdk#initializing-secretserver)| [Access Token Authorization](https://github.com/DelineaXPM/python-tss-sdk#access-token-authorization)
[Domain Authorization](https://github.com/DelineaXPM/python-tss-sdk#domain-authorization)
[Password Authorization](https://github.com/DelineaXPM/python-tss-sdk#password-authorization)
| ## Screenshots @@ -166,6 +166,7 @@ PLUGINS_CONFIG = { - `auth_method` - (optional / defaults to "token") The method used to authenticate against the HashiCorp Vault instance. Either `"approle"`, `"aws"`, `"kubernetes"` or `"token"`. For information on using AWS authentication with vault see the [authentication](#authentication) section above. - `ca_cert` - (optional) Path to a PEM formatted CA certificate to use when verifying the Vault connection. Can alternatively be set to `False` to ignore SSL verification (not recommended) or `True` to use the system certificates. - `default_mount_point` - (optional / defaults to "secret") The default mount point of the K/V Version 2 secrets engine within Hashicorp Vault. +- `kv_version` - (optional / defaults to "v2") The version of the KV engine to use, can be `v1` or `v2` - `k8s_token_path` - (optional) Path to the kubernetes service account token file. Defaults to "/var/run/secrets/kubernetes.io/serviceaccount/token". - `token` - (optional) Required when `"auth_method": "token"` or `auth_method` is not supplied. The token for authenticating the client with the HashiCorp Vault instance. As with other sensitive service credentials, we recommend that you provide the token value as an environment variable and retrieve it with `{"token": os.getenv("NAUTOBOT_HASHICORP_VAULT_TOKEN")}` rather than hard-coding it in your `nautobot_config.py`. - `role_name` - (optional) Required when `"auth_method": "kubernetes"`, optional when `"auth_method": "aws"`. The Vault Kubernetes role or Vault AWS role to assume which the pod's service account has access to. diff --git a/docs/images/screenshot04.png b/docs/images/screenshot04.png index bd4ff2c6b7307c2eedca696aa48b91852002f3e8..957c3ff8c08d4f8950ae44884841993eb2cfd079 100644 GIT binary patch literal 82010 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", initial=DEFAULT_MOUNT_POINT, ) + kv_version = forms.ChoiceField( + required=False, + choices=HashicorpKVVersionChoices, + help_text=f"The version of the kv engine (either v1 or v2) (Default: {DEFAULT_KV_VERSION})", + initial=DEFAULT_KV_VERSION, + ) @classmethod def validate_vault_settings(cls, secret=None): @@ -65,6 +80,7 @@ def validate_vault_settings(cls, secret=None): vault_settings = plugin_settings.get("hashicorp_vault", {}) auth_method = vault_settings.get("auth_method", "token") + kv_version = vault_settings.get("kv_version", HashicorpKVVersionChoices.KV_VERSION_2) if "url" not in vault_settings: raise exceptions.SecretProviderError(secret, cls, "HashiCorp Vault configuration is missing a url") @@ -72,6 +88,9 @@ def validate_vault_settings(cls, secret=None): if auth_method not in AUTH_METHOD_CHOICES: raise exceptions.SecretProviderError(secret, cls, f"HashiCorp Vault Auth Method {auth_method} is invalid!") + if kv_version not in HashicorpKVVersionChoices.as_dict(): + raise exceptions.SecretProviderError(secret, cls, f"HashiCorp Vault KV version {kv_version} is invalid!") + if auth_method == "aws": if not boto3: raise exceptions.SecretProviderError( @@ -160,6 +179,7 @@ def get_value_for_secret(cls, secret, obj=None, **kwargs): secret_path = parameters["path"] secret_key = parameters["key"] secret_mount_point = parameters.get("mount_point", DEFAULT_MOUNT_POINT) + secret_kv_version = parameters.get("kv_version", DEFAULT_KV_VERSION) except KeyError as err: msg = f"The secret parameter could not be retrieved for field {err}" raise exceptions.SecretParametersError(secret, cls, msg) from err @@ -167,12 +187,17 @@ def get_value_for_secret(cls, secret, obj=None, **kwargs): client = cls.get_client(secret) try: - response = client.secrets.kv.read_secret(path=secret_path, mount_point=secret_mount_point) + if secret_kv_version == HashicorpKVVersionChoices.KV_VERSION_1: + response = client.secrets.kv.v1.read_secret(path=secret_path, mount_point=secret_mount_point) + else: + response = client.secrets.kv.v2.read_secret(path=secret_path, mount_point=secret_mount_point) except hvac.exceptions.InvalidPath as err: raise exceptions.SecretValueNotFoundError(secret, cls, str(err)) from err # Retrieve the value using the key or complain loudly. try: + if secret_kv_version == HashicorpKVVersionChoices.KV_VERSION_1: + return response["data"][secret_key] return response["data"]["data"][secret_key] except KeyError as err: msg = f"The secret value could not be retrieved using key {err}" diff --git a/nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html b/nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html index 594a69a..10eafd3 100644 --- a/nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html +++ b/nautobot_secrets_providers/templates/nautobot_secrets_providers/home.html @@ -33,7 +33,8 @@

{% block title %}Secrets Providers Home{% endblock %}

HashiCorp Vault - K/V Version 2 + K/V Version 1
+ K/V Version 2 Token
AppRole diff --git a/nautobot_secrets_providers/tests/test_providers.py b/nautobot_secrets_providers/tests/test_providers.py index 2c5dd88..8d3bfef 100644 --- a/nautobot_secrets_providers/tests/test_providers.py +++ b/nautobot_secrets_providers/tests/test_providers.py @@ -18,6 +18,7 @@ HashiCorpVaultSecretsProvider, ) +from nautobot_secrets_providers.providers.choices import HashicorpKVVersionChoices # Use the proper swappable User model User = get_user_model() @@ -182,18 +183,105 @@ def setUp(self): name="hello-hashicorp", slug="hello-hashicorp", provider=self.provider.slug, - parameters={"path": "hello", "key": "location"}, + parameters={ + "path": "hello", + "key": "location", + "kv_version": HashicorpKVVersionChoices.KV_VERSION_2, + }, ) # The secret with a mounting point we be using. self.secret_mounting_point = Secret.objects.create( name="hello-hashicorp-mntpnt", slug="hello-hashicorp-mntpnt", provider=self.provider.slug, - parameters={"path": "hello", "key": "location", "mount_point": "mymount"}, + parameters={ + "path": "hello", + "key": "location", + "mount_point": "mymount", + "kv_version": HashicorpKVVersionChoices.KV_VERSION_2, + }, ) self.test_path = "http://localhost:8200/v1/secret/data/hello" self.test_mountpoint_path = "http://localhost:8200/v1/mymount/data/hello" + @requests_mock.Mocker() + def test_v1(self, requests_mocker): + mock_kv_v1_response = { + "request_id": "f0185257-af7a-f550-2d9a-ada457a70e17", + "lease_id": "", + "renewable": False, + "lease_duration": 0, + "data": { + "location": "world", + }, + "wrap_info": None, + "warnings": None, + "auth": None, + } + kv_v1_test_path = "http://localhost:8200/v1/secret/hello" + kv_v1_test_mountpoint_path = "http://localhost:8200/v1/mymount/hello" + kv_v1_secret = Secret.objects.create( + name="hello-hashicorp-v1", + slug="hello-hashicorp-v1", + provider=self.provider.slug, + parameters={"path": "hello", "key": "location", "kv_version": HashicorpKVVersionChoices.KV_VERSION_1}, + ) + kv_v1_secret_mounting_point = Secret.objects.create( + name="hello-hashicorp-mntpnt-v1", + slug="hello-hashicorp-mntpnt-v1", + provider=self.provider.slug, + parameters={ + "path": "hello", + "key": "location", + "mount_point": "mymount", + "kv_version": HashicorpKVVersionChoices.KV_VERSION_1, + }, + ) + + with self.subTest("Test v1 retrieve success"): + requests_mocker.register_uri(method="GET", url=kv_v1_test_path, json=mock_kv_v1_response) + + response = self.provider.get_value_for_secret(kv_v1_secret) + self.assertEqual(mock_kv_v1_response["data"]["location"], response) + + with self.subTest("Test v1 retrieve success with mount point set"): + requests_mocker.register_uri(method="GET", url=kv_v1_test_mountpoint_path, json=mock_kv_v1_response) + + response = self.provider.get_value_for_secret(kv_v1_secret_mounting_point) + self.assertEqual(mock_kv_v1_response["data"]["location"], response) + + @requests_mock.Mocker() + def test_v2_fallback(self, requests_mocker): + """ + Before https://github.com/nautobot/nautobot-plugin-secrets-providers/pull/53 was merged, the Hashicorp + provider would only support KV v2 and did not include a way to specify the KV version. + This test ensures that the provider will still work without the kv_version parameter. + """ + kv_v2_fallback_secret = Secret.objects.create( + name="hello-hashicorp-v2-fallback", + slug="hello-hashicorp-v2-fallback", + provider=self.provider.slug, + parameters={"path": "hello", "key": "location"}, + ) + kv_v2_fallback_secret_mounting_point = Secret.objects.create( + name="hello-hashicorp-mntpnt-v2-fallback", + slug="hello-hashicorp-mntpnt-v2-fallback", + provider=self.provider.slug, + parameters={"path": "hello", "key": "location", "mount_point": "mymount"}, + ) + + with self.subTest("Test v2 fallback retrieve success"): + requests_mocker.register_uri(method="GET", url=self.test_path, json=self.mock_response) + + response = self.provider.get_value_for_secret(kv_v2_fallback_secret) + self.assertEqual(self.mock_response["data"]["data"]["location"], response) + + with self.subTest("Test v2 fallback retrieve success with mount point set"): + requests_mocker.register_uri(method="GET", url=self.test_mountpoint_path, json=self.mock_response) + + response = self.provider.get_value_for_secret(kv_v2_fallback_secret_mounting_point) + self.assertEqual(self.mock_response["data"]["data"]["location"], response) + @requests_mock.Mocker() def test_retrieve_success(self, requests_mocker): """Retrieve a secret successfully.""" From dc9545cb641ff7ce23c0003e950027ca5224aaaa Mon Sep 17 00:00:00 2001 From: Bryan Culver <31187+bryanculver@users.noreply.github.com> Date: Wed, 19 Apr 2023 16:08:37 -0400 Subject: [PATCH 17/19] Post 1.3.0 release housekeeping (#83) Co-authored-by: Glenn Matthews From cca7344a28697b481b48b2e38aabcd0589aebbfc Mon Sep 17 00:00:00 2001 From: Bryan Culver Date: Wed, 19 Apr 2023 16:07:23 -0400 Subject: [PATCH 18/19] Ready for release 1.4.0 --- CHANGELOG.md | 15 +++++++++++++++ pyproject.toml | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95fb161..e0003d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Nautobot Secrets Providers Changelog +## v1.4.0 (2023-04-19) + +### Added + +- [#48](https://github.com/nautobot/nautobot-plugin-secrets-providers/issues/48) Add token as secret type choice for Delinea/Thycotic +- [#51](https://github.com/nautobot/nautobot-plugin-secrets-providers/issues/51) Add support for AWS Systems Manager Parameter Store +- [#53](https://github.com/nautobot/nautobot-plugin-secrets-providers/pull/53) Add support for Hashicorp Key/Value v1 response +- [#66](https://github.com/nautobot/nautobot-plugin-secrets-providers/pull/66) Add support for Vault Enterprise Namespace parameter + +### Changed + +- [#45](https://github.com/nautobot/nautobot-plugin-secrets-providers/pull/45) Change references of Thycotic to Delinea +- [#47](https://github.com/nautobot/nautobot-plugin-secrets-providers/pull/47) Change version constraint of HVAC module to allow non-major upgrades +- [#63](https://github.com/nautobot/nautobot-plugin-secrets-providers/pull/63) Update plugin description when installed in Nautobot + ## v1.3.0 (2022-08-29) ### Added diff --git a/pyproject.toml b/pyproject.toml index 933d308..9e0f8bd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "nautobot-secrets-providers" -version = "1.3.0" +version = "1.4.0" description = "Nautobot Secrets Providers Plugin." authors = ["Network to Code, LLC "] license = "Apache-2.0" From 8ae600ee6a3005e0c3839df0bf7b9e6bcd34d21d Mon Sep 17 00:00:00 2001 From: Bryan Culver Date: Wed, 19 Apr 2023 16:13:30 -0400 Subject: [PATCH 19/19] Add change to minimum Nautobot version to changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0003d8..bf6bb7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ - [#45](https://github.com/nautobot/nautobot-plugin-secrets-providers/pull/45) Change references of Thycotic to Delinea - [#47](https://github.com/nautobot/nautobot-plugin-secrets-providers/pull/47) Change version constraint of HVAC module to allow non-major upgrades +- [#56](https://github.com/nautobot/nautobot-plugin-secrets-providers/pull/56) Change minimum supported Nautobot version to `1.4.0` - [#63](https://github.com/nautobot/nautobot-plugin-secrets-providers/pull/63) Update plugin description when installed in Nautobot ## v1.3.0 (2022-08-29)