diff --git a/.github/workflows/apigw-manager.yml b/.github/workflows/apigw-manager.yml index 0fbb0c8e..d1242af1 100644 --- a/.github/workflows/apigw-manager.yml +++ b/.github/workflows/apigw-manager.yml @@ -18,13 +18,13 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.6", "3.7"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] os: [ubuntu-20.04, macos-13, windows-latest] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: 'pip' @@ -33,7 +33,8 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - python -m pip install . 'tox-gh-actions==2.12.0' -r requirements_tox.txt + python -m pip install . 'tox-gh-actions==3.2.0' -r requirements_tox.txt + python -m pip uninstall -y tox-pyenv-redux working-directory: sdks/apigw-manager - name: Test with tox diff --git a/sdks/apigw-manager/CHANGE.md b/sdks/apigw-manager/CHANGE.md index 5eab8350..5411842c 100644 --- a/sdks/apigw-manager/CHANGE.md +++ b/sdks/apigw-manager/CHANGE.md @@ -1,5 +1,37 @@ ## Change logs + +### 4.0.0 + +- [breaking change] drop support for python 3.6/3.7, request >=3.8 and < 3.13 + +### 3.1.2 + +- fix: fix apigw doc link by @Han-Ya-Jun in #194 +- feat(apigw/sync_resource): support doc by @Han-Ya-Jun in #197 +- fix(apigw/sync_resource): fix bug by @Han-Ya-Jun in #198 +- feat(apigw_manager/drf): update to support multiple stages by @wklken in #196 + +### 3.1.1 + +- doc: opt apigw doc by @Han-Ya-Jun in #181 +- feat: support no-pub by @Han-Ya-Jun in #182 +- feat: update docker image version by @Han-Ya-Jun in #184 + +### 3.1.0 + +- add application drf for apigw-manager by @wklken in #178 + +### 3.0.5 + +- doc: fix image version by @Han-Ya-Jun in #175 +- fix: fix esb jwt get iss by @Han-Ya-Jun in #177 + +### 3.0.4 + +- feat: apigw-manager support stages by @Han-Ya-Jun in #174 + ### 3.0.3 + - 修复资源版本校验问题 ### 3.0.2 - 更新依赖 future 版本 diff --git a/sdks/apigw-manager/poetry.lock b/sdks/apigw-manager/poetry.lock index f60c6ab1..9f902f2f 100644 --- a/sdks/apigw-manager/poetry.lock +++ b/sdks/apigw-manager/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. [[package]] name = "appnope" @@ -22,28 +22,14 @@ files = [ {file = "asgiref-3.4.1.tar.gz", hash = "sha256:4ef1ab46b484e3c706329cedeff284a5d40824200638503f5768edb6de7d58e9"}, ] -[package.dependencies] -typing-extensions = {version = "*", markers = "python_version < \"3.8\""} - [package.extras] tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] -[[package]] -name = "atomicwrites" -version = "1.4.0" -description = "Atomic file writes." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, - {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, -] - [[package]] name = "attrs" version = "21.2.0" description = "Classes Without Boilerplate" -optional = false +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"}, @@ -67,24 +53,6 @@ files = [ {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, ] -[[package]] -name = "backports.entry-points-selectable" -version = "1.1.0" -description = "Compatibility shim providing selectable entry points for older implementations" -optional = false -python-versions = ">=2.7" -files = [ - {file = "backports.entry_points_selectable-1.1.0-py2.py3-none-any.whl", hash = "sha256:a6d9a871cde5e15b4c4a53e3d43ba890cc6861ec1332c9c2428c92f977192acc"}, - {file = "backports.entry_points_selectable-1.1.0.tar.gz", hash = "sha256:988468260ec1c196dab6ae1149260e2f5472c9110334e5d51adcb77867361f6a"}, -] - -[package.dependencies] -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} - -[package.extras] -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-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy"] - [[package]] name = "backports-zoneinfo" version = "0.2.1" @@ -110,9 +78,6 @@ files = [ {file = "backports.zoneinfo-0.2.1.tar.gz", hash = "sha256:fadbfe37f74051d024037f223b8e001611eac868b5c5b06144ef4d8b799862f2"}, ] -[package.dependencies] -importlib-resources = {version = "*", markers = "python_version < \"3.7\""} - [package.extras] tzdata = ["tzdata"] @@ -152,31 +117,15 @@ typing-extensions = ">=3.7.4" django = ["bkoauth (>=0.0.10)", "prometheus-client (>=0.9.0)"] monitor = ["prometheus-client (>=0.9.0)"] -[[package]] -name = "bleach" -version = "3.3.0" -description = "An easy safelist-based HTML-sanitizing tool." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "bleach-3.3.0-py2.py3-none-any.whl", hash = "sha256:6123ddc1052673e52bab52cdc955bcb57a015264a1c57d37bea2f6b817af0125"}, - {file = "bleach-3.3.0.tar.gz", hash = "sha256:98b3170739e5e83dd9dc19633f074727ad848cbedb6026708c8ac2d3b697a433"}, -] - -[package.dependencies] -packaging = "*" -six = ">=1.9.0" -webencodings = "*" - [[package]] name = "cachetools" -version = "4.2.4" +version = "5.5.0" description = "Extensible memoizing collections and decorators" optional = false -python-versions = "~=3.5" +python-versions = ">=3.7" files = [ - {file = "cachetools-4.2.4-py3-none-any.whl", hash = "sha256:92971d3cb7d2a97efff7c7bb1657f21a8f5fb309a37530537c71b1774189f2d1"}, - {file = "cachetools-4.2.4.tar.gz", hash = "sha256:89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693"}, + {file = "cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292"}, + {file = "cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a"}, ] [[package]] @@ -258,6 +207,17 @@ files = [ {file = "cfgv-3.3.0.tar.gz", hash = "sha256:9e600479b3b99e8af981ecdfc80a0296104ee610cab48a5ae4ffd0b668650eb1"}, ] +[[package]] +name = "chardet" +version = "5.2.0" +description = "Universal encoding detector for Python 3" +optional = false +python-versions = ">=3.7" +files = [ + {file = "chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970"}, + {file = "chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"}, +] + [[package]] name = "charset-normalizer" version = "2.0.1" @@ -274,13 +234,13 @@ unicode-backport = ["unicodedata2"] [[package]] name = "colorama" -version = "0.4.4" +version = "0.4.6" description = "Cross-platform colored terminal text." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] [[package]] @@ -424,13 +384,13 @@ files = [ [[package]] name = "distlib" -version = "0.3.2" +version = "0.3.9" description = "Distribution utilities" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.2-py2.py3-none-any.whl", hash = "sha256:23e223426b28491b1ced97dc3bbe183027419dfc7982b4fa2f05d5f3ff10711c"}, - {file = "distlib-0.3.2.zip", hash = "sha256:106fef6dc37dd8c0e2c0a60d3fca3e77460a48907f335fa28420463a6f799736"}, + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, ] [[package]] @@ -519,41 +479,61 @@ uritemplate = ">=2.0.0" offline = ["drf-spectacular-sidecar"] sidecar = ["drf-spectacular-sidecar"] +[[package]] +name = "durationpy" +version = "0.9" +description = "Module for converting between datetime.timedelta and Go's Duration strings." +optional = false +python-versions = "*" +files = [ + {file = "durationpy-0.9-py3-none-any.whl", hash = "sha256:e65359a7af5cedad07fb77a2dd3f390f8eb0b74cb845589fa6c057086834dd38"}, + {file = "durationpy-0.9.tar.gz", hash = "sha256:fd3feb0a69a0057d582ef643c355c40d2fa1c942191f914d12203b1a01ac722a"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + [[package]] name = "faker" -version = "14.2.1" +version = "33.0.0" description = "Faker is a Python package that generates fake data for you." optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "Faker-14.2.1-py3-none-any.whl", hash = "sha256:2e28aaea60456857d4ce95dd12aed767769537ad23d13d51a545cd40a654e9d9"}, - {file = "Faker-14.2.1.tar.gz", hash = "sha256:daad7badb4fd916bd047b28c8459ef4689e4fe6acf61f6dfebee8cc602e4d009"}, + {file = "Faker-33.0.0-py3-none-any.whl", hash = "sha256:68e5580cb6b4226710886e595eabc13127149d6e71e9d1db65506a7fbe2c7fce"}, + {file = "faker-33.0.0.tar.gz", hash = "sha256:9b01019c1ddaf2253ca2308c0472116e993f4ad8fc9905f82fa965e0c6f932e9"}, ] [package.dependencies] python-dateutil = ">=2.4" -typing-extensions = {version = ">=3.7.4.3", markers = "python_version < \"3.8\""} +typing-extensions = "*" [[package]] name = "filelock" -version = "3.0.12" +version = "3.16.1" description = "A platform independent file lock." optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "filelock-3.0.12-py3-none-any.whl", hash = "sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10da9b879fef15836"}, - {file = "filelock-3.0.12.tar.gz", hash = "sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59"}, + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, ] -[[package]] -name = "future" -version = "0.18.2" -description = "Clean single-source support for Python 3 and 2" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "future-0.18.2.tar.gz", hash = "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"}, -] +[package.extras] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +typing = ["typing-extensions (>=4.12.2)"] [[package]] name = "google-auth" @@ -615,7 +595,6 @@ files = [ ] [package.dependencies] -typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] @@ -623,24 +602,6 @@ docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] perf = ["ipython"] 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", "pytest-perf (>=0.9.2)"] -[[package]] -name = "importlib-resources" -version = "5.2.0" -description = "Read resources from Python packages" -optional = false -python-versions = ">=3.6" -files = [ - {file = "importlib_resources-5.2.0-py3-none-any.whl", hash = "sha256:a0143290bef3cbc99de9e40176e4987780939a955b8632f02ce6c935f42e9bfc"}, - {file = "importlib_resources-5.2.0.tar.gz", hash = "sha256:22a2c42d8c6a1d30aa8a0e1f57293725bfd5c013d562585e46aff469e0ff78b3"}, -] - -[package.dependencies] -zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} - -[package.extras] -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-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy"] - [[package]] name = "inflection" version = "0.5.1" @@ -755,7 +716,6 @@ files = [ [package.dependencies] attrs = ">=17.4.0" -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} pyrsistent = ">=0.14.0" setuptools = "*" six = ">=1.11.0" @@ -787,23 +747,24 @@ testing = ["pytest (>=4.6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4) [[package]] name = "kubernetes" -version = "24.2.0" +version = "31.0.0" description = "Kubernetes python client" optional = false python-versions = ">=3.6" files = [ - {file = "kubernetes-24.2.0-py2.py3-none-any.whl", hash = "sha256:da19d58865cf903a8c7b9c3691a2e6315d583a98f0659964656dfdf645bf7e49"}, - {file = "kubernetes-24.2.0.tar.gz", hash = "sha256:9900f12ae92007533247167d14cdee949cd8c7721f88b4a7da5f5351da3834cd"}, + {file = "kubernetes-31.0.0-py2.py3-none-any.whl", hash = "sha256:bf141e2d380c8520eada8b351f4e319ffee9636328c137aa432bc486ca1200e1"}, + {file = "kubernetes-31.0.0.tar.gz", hash = "sha256:28945de906c8c259c1ebe62703b56a03b714049372196f854105afe4e6d014c0"}, ] [package.dependencies] certifi = ">=14.05.14" +durationpy = ">=0.7" google-auth = ">=1.0.1" +oauthlib = ">=3.2.2" python-dateutil = ">=2.5.3" pyyaml = ">=5.4.1" requests = "*" requests-oauthlib = "*" -setuptools = ">=21.0.0" six = ">=1.9.0" urllib3 = ">=1.24.2" websocket-client = ">=0.32.0,<0.40.0 || >0.40.0,<0.41.dev0 || >=0.43.dev0" @@ -871,7 +832,6 @@ files = [ [package.dependencies] mypy-extensions = ">=0.4.3" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""} typing-extensions = ">=3.10" [package.extras] @@ -890,6 +850,31 @@ files = [ {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, ] +[[package]] +name = "nh3" +version = "0.2.18" +description = "Python bindings to the ammonia HTML sanitization library." +optional = false +python-versions = "*" +files = [ + {file = "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:14c5a72e9fe82aea5fe3072116ad4661af5cf8e8ff8fc5ad3450f123e4925e86"}, + {file = "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:7b7c2a3c9eb1a827d42539aa64091640bd275b81e097cd1d8d82ef91ffa2e811"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42c64511469005058cd17cc1537578eac40ae9f7200bedcfd1fc1a05f4f8c200"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0411beb0589eacb6734f28d5497ca2ed379eafab8ad8c84b31bb5c34072b7164"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5f36b271dae35c465ef5e9090e1fdaba4a60a56f0bb0ba03e0932a66f28b9189"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34c03fa78e328c691f982b7c03d4423bdfd7da69cd707fe572f544cf74ac23ad"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19aaba96e0f795bd0a6c56291495ff59364f4300d4a39b29a0abc9cb3774a84b"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ceed6e661954871d6cd78b410213bdcb136f79aafe22aa7182e028b8c7307"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6955369e4d9f48f41e3f238a9e60f9410645db7e07435e62c6a9ea6135a4907f"}, + {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f0eca9ca8628dbb4e916ae2491d72957fdd35f7a5d326b7032a345f111ac07fe"}, + {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:3a157ab149e591bb638a55c8c6bcb8cdb559c8b12c13a8affaba6cedfe51713a"}, + {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:c8b3a1cebcba9b3669ed1a84cc65bf005728d2f0bc1ed2a6594a992e817f3a50"}, + {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:36c95d4b70530b320b365659bb5034341316e6a9b30f0b25fa9c9eff4c27a204"}, + {file = "nh3-0.2.18-cp37-abi3-win32.whl", hash = "sha256:a7f1b5b2c15866f2db413a3649a8fe4fd7b428ae58be2c0f6bca5eefd53ca2be"}, + {file = "nh3-0.2.18-cp37-abi3-win_amd64.whl", hash = "sha256:8ce0f819d2f1933953fca255db2471ad58184a60508f03e6285e5114b6254844"}, + {file = "nh3-0.2.18.tar.gz", hash = "sha256:94a166927e53972a9698af9542ace4e38b9de50c34352b962f4d9a7d4c927af4"}, +] + [[package]] name = "nodeenv" version = "1.6.0" @@ -903,13 +888,13 @@ files = [ [[package]] name = "oauthlib" -version = "3.2.1" +version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" 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] @@ -919,18 +904,15 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] [[package]] name = "packaging" -version = "21.0" +version = "24.2" description = "Core utilities for Python packages" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "packaging-21.0-py3-none-any.whl", hash = "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14"}, - {file = "packaging-21.0.tar.gz", hash = "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7"}, + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, ] -[package.dependencies] -pyparsing = ">=2.0.2" - [[package]] name = "parso" version = "0.7.1" @@ -972,66 +954,66 @@ files = [ [[package]] name = "pkginfo" -version = "1.7.1" -description = "Query metadatdata from sdists / bdists / installed packages." +version = "1.10.0" +description = "Query metadata from sdists / bdists / installed packages." optional = false -python-versions = "*" +python-versions = ">=3.6" files = [ - {file = "pkginfo-1.7.1-py2.py3-none-any.whl", hash = "sha256:37ecd857b47e5f55949c41ed061eb51a0bee97a87c969219d144c0e023982779"}, - {file = "pkginfo-1.7.1.tar.gz", hash = "sha256:e7432f81d08adec7297633191bbf0bd47faf13cd8724c3a13250e51d542635bd"}, + {file = "pkginfo-1.10.0-py3-none-any.whl", hash = "sha256:889a6da2ed7ffc58ab5b900d888ddce90bce912f2d2de1dc1c26f4cb9fe65097"}, + {file = "pkginfo-1.10.0.tar.gz", hash = "sha256:5df73835398d10db79f8eecd5cd86b1f6d29317589ea70796994d49399af6297"}, ] [package.extras] -testing = ["coverage", "nose"] +testing = ["pytest", "pytest-cov", "wheel"] [[package]] name = "platformdirs" -version = "2.0.2" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.8" files = [ - {file = "platformdirs-2.0.2-py2.py3-none-any.whl", hash = "sha256:0b9547541f599d3d242078ae60b927b3e453f0ad52f58b4d4bc3be86aed3ec41"}, - {file = "platformdirs-2.0.2.tar.gz", hash = "sha256:3b00d081227d9037bbbca521a5787796b5ef5000faea1e43fd76f1d44b06fcfa"}, + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, ] +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] + [[package]] name = "pluggy" -version = "0.13.1" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, - {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] -[package.dependencies] -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} - [package.extras] dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "2.17.0" +version = "3.5.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false -python-versions = ">=3.6.1" +python-versions = ">=3.8" files = [ - {file = "pre_commit-2.17.0-py2.py3-none-any.whl", hash = "sha256:725fa7459782d7bec5ead072810e47351de01709be838c2ce1726b9591dad616"}, - {file = "pre_commit-2.17.0.tar.gz", hash = "sha256:c1a8040ff15ad3d648c70cc3e55b93e4d2d5b687320955505587fd79bbaed06a"}, + {file = "pre_commit-3.5.0-py2.py3-none-any.whl", hash = "sha256:841dc9aef25daba9a0238cd27984041fa0467b4199fc4852e27950664919f660"}, + {file = "pre_commit-3.5.0.tar.gz", hash = "sha256:5804465c675b659b0862f07907f96295d490822a450c4c40e747d0b1c6ebcb32"}, ] [package.dependencies] cfgv = ">=2.0.0" identify = ">=1.0.0" -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} -importlib-resources = {version = "<5.3", markers = "python_version < \"3.7\""} nodeenv = ">=0.11.1" pyyaml = ">=5.1" -toml = "*" -virtualenv = ">=20.0.8" +virtualenv = ">=20.10.0" [[package]] name = "prompt-toolkit" @@ -1058,17 +1040,6 @@ files = [ {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, ] -[[package]] -name = "py" -version = "1.10.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"}, - {file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"}, -] - [[package]] name = "pyasn1" version = "0.4.8" @@ -1105,6 +1076,17 @@ files = [ {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, ] +[[package]] +name = "pyenv-inspect" +version = "0.4.0" +description = "An auxiliary library for the virtualenv-pyenv and tox-pyenv-redux plugins" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyenv-inspect-0.4.0.tar.gz", hash = "sha256:ec429d1d81b67ab0b08a0408414722a79d24fd1845a5b264267e44e19d8d60f0"}, + {file = "pyenv_inspect-0.4.0-py3-none-any.whl", hash = "sha256:618683ae7d3e6db14778d58aa0fc6b3170180d944669b5d35a8aa4fb7db550d2"}, +] + [[package]] name = "pygments" version = "2.9.0" @@ -1149,16 +1131,24 @@ ed25519 = ["PyNaCl (>=1.4.0)"] rsa = ["cryptography"] [[package]] -name = "pyparsing" -version = "2.4.7" -description = "Python parsing module" +name = "pyproject-api" +version = "1.8.0" +description = "API to interact with the python pyproject.toml based projects" optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = ">=3.8" files = [ - {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, - {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, + {file = "pyproject_api-1.8.0-py3-none-any.whl", hash = "sha256:3d7d347a047afe796fd5d1885b1e391ba29be7169bd2f102fcd378f04273d228"}, + {file = "pyproject_api-1.8.0.tar.gz", hash = "sha256:77b8049f2feb5d33eefcc21b57f1e279636277a8ac8ad6b5871037b243778496"}, ] +[package.dependencies] +packaging = ">=24.1" +tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} + +[package.extras] +docs = ["furo (>=2024.8.6)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "pytest (>=8.3.3)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "setuptools (>=75.1)"] + [[package]] name = "pyrsistent" version = "0.18.0" @@ -1191,38 +1181,35 @@ files = [ [[package]] name = "pytest" -version = "7.0.1" +version = "8.3.3" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pytest-7.0.1-py3-none-any.whl", hash = "sha256:9ce3ff477af913ecf6321fe337b93a2c0dcf2a0a1439c43f5452112c1e4280db"}, - {file = "pytest-7.0.1.tar.gz", hash = "sha256:e30905a0c131d3d94b89624a1cc5afec3e0ba2fbdb151867d8e0ebd49850f171"}, + {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, + {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, ] [package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} -attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -tomli = ">=1.0.0" +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" -version = "4.0.0" +version = "5.0.0" description = "Pytest plugin for measuring coverage." optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pytest-cov-4.0.0.tar.gz", hash = "sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470"}, - {file = "pytest_cov-4.0.0-py3-none-any.whl", hash = "sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b"}, + {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, + {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, ] [package.dependencies] @@ -1230,21 +1217,21 @@ coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] [[package]] name = "pytest-django" -version = "4.5.2" +version = "4.9.0" description = "A Django plugin for pytest." optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "pytest-django-4.5.2.tar.gz", hash = "sha256:d9076f759bb7c36939dbdd5ae6633c18edfc2902d1a69fdbefd2426b970ce6c2"}, - {file = "pytest_django-4.5.2-py3-none-any.whl", hash = "sha256:c60834861933773109334fe5a53e83d1ef4828f2203a1d6a0fa9972f4f75ab3e"}, + {file = "pytest_django-4.9.0-py3-none-any.whl", hash = "sha256:1d83692cb39188682dbb419ff0393867e9904094a549a7d38a3154d5731b2b99"}, + {file = "pytest_django-4.9.0.tar.gz", hash = "sha256:8bf7bc358c9ae6f6fc51b6cebb190fe20212196e6807121f11bd6a3b03428314"}, ] [package.dependencies] -pytest = ">=5.4.0" +pytest = ">=7.0.0" [package.extras] docs = ["sphinx", "sphinx-rtd-theme"] @@ -1252,17 +1239,17 @@ testing = ["Django", "django-configurations (>=2.0)"] [[package]] name = "pytest-mock" -version = "3.6.1" +version = "3.14.0" description = "Thin-wrapper around the mock package for easier use with pytest" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pytest-mock-3.6.1.tar.gz", hash = "sha256:40217a058c52a63f1042f0784f62009e976ba824c418cced42e88d5f40ab0e62"}, - {file = "pytest_mock-3.6.1-py3-none-any.whl", hash = "sha256:30c2f2cc9759e76eee674b81ea28c9f0b94f8f0445a1b87762cadf774f0df7e3"}, + {file = "pytest-mock-3.14.0.tar.gz", hash = "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0"}, + {file = "pytest_mock-3.14.0-py3-none-any.whl", hash = "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f"}, ] [package.dependencies] -pytest = ">=5.0" +pytest = ">=6.2.5" [package.extras] dev = ["pre-commit", "pytest-asyncio", "tox"] @@ -1320,61 +1307,84 @@ files = [ [[package]] name = "pyyaml" -version = "5.4.1" +version = "6.0.2" description = "YAML parser and emitter for Python" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" -files = [ - {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"}, +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] [[package]] name = "readme-renderer" -version = "29.0" -description = "readme_renderer is a library for rendering \"readme\" descriptions for Warehouse" +version = "43.0" +description = "readme_renderer is a library for rendering readme descriptions for Warehouse" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "readme_renderer-29.0-py2.py3-none-any.whl", hash = "sha256:63b4075c6698fcfa78e584930f07f39e05d46f3ec97f65006e430b595ca6348c"}, - {file = "readme_renderer-29.0.tar.gz", hash = "sha256:92fd5ac2bf8677f310f3303aa4bce5b9d5f9f2094ab98c29f13791d7b805a3db"}, + {file = "readme_renderer-43.0-py3-none-any.whl", hash = "sha256:19db308d86ecd60e5affa3b2a98f017af384678c63c88e5d4556a380e674f3f9"}, + {file = "readme_renderer-43.0.tar.gz", hash = "sha256:1818dd28140813509eeed8d62687f7cd4f7bad90d4db586001c5dc09d4fde311"}, ] [package.dependencies] -bleach = ">=2.1.0" docutils = ">=0.13.1" +nh3 = ">=0.2.14" Pygments = ">=2.5.1" -six = "*" [package.extras] -md = ["cmarkgfm (>=0.5.0,<0.6.0)"] +md = ["cmarkgfm (>=0.8.0)"] [[package]] name = "requests" @@ -1457,7 +1467,6 @@ files = [ [package.dependencies] commonmark = ">=0.9.0,<0.10.0" pygments = ">=2.6.0,<3.0.0" -typing-extensions = {version = ">=3.7.4,<5.0", markers = "python_version < \"3.8\""} [package.extras] jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"] @@ -1541,59 +1550,56 @@ files = [ [[package]] name = "tomli" -version = "1.2.3" +version = "2.1.0" description = "A lil' TOML parser" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "tomli-1.2.3-py3-none-any.whl", hash = "sha256:e3069e4be3ead9668e21cb9b074cd948f7b3113fd9c8bba083f48247aab8b11c"}, - {file = "tomli-1.2.3.tar.gz", hash = "sha256:05b6166bff487dc068d322585c7ea4ef78deed501cc124060e0f238e89a9231f"}, + {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"}, + {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"}, ] [[package]] name = "tox" -version = "3.23.1" +version = "4.23.2" description = "tox is a generic virtualenv management and test command line tool" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.8" files = [ - {file = "tox-3.23.1-py2.py3-none-any.whl", hash = "sha256:b0b5818049a1c1997599d42012a637a33f24c62ab8187223fdd318fa8522637b"}, - {file = "tox-3.23.1.tar.gz", hash = "sha256:307a81ddb82bd463971a273f33e9533a24ed22185f27db8ce3386bff27d324e3"}, + {file = "tox-4.23.2-py3-none-any.whl", hash = "sha256:452bc32bb031f2282881a2118923176445bac783ab97c874b8770ab4c3b76c38"}, + {file = "tox-4.23.2.tar.gz", hash = "sha256:86075e00e555df6e82e74cfc333917f91ecb47ffbc868dcafbd2672e332f4a2c"}, ] [package.dependencies] -colorama = {version = ">=0.4.1", markers = "platform_system == \"Windows\""} -filelock = ">=3.0.0" -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} -packaging = ">=14" -pluggy = ">=0.12.0" -py = ">=1.4.17" -six = ">=1.14.0" -toml = ">=0.9.4" -virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2,<20.0.3 || >20.0.3,<20.0.4 || >20.0.4,<20.0.5 || >20.0.5,<20.0.6 || >20.0.6,<20.0.7 || >20.0.7" +cachetools = ">=5.5" +chardet = ">=5.2" +colorama = ">=0.4.6" +filelock = ">=3.16.1" +packaging = ">=24.1" +platformdirs = ">=4.3.6" +pluggy = ">=1.5" +pyproject-api = ">=1.8" +tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.12.2", markers = "python_version < \"3.11\""} +virtualenv = ">=20.26.6" [package.extras] -docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"] -testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "pytest-xdist (>=1.22.2)"] +test = ["devpi-process (>=1.0.2)", "pytest (>=8.3.3)", "pytest-mock (>=3.14)"] [[package]] -name = "tqdm" -version = "4.61.2" -description = "Fast, Extensible Progress Meter" +name = "tox-pyenv-redux" +version = "1.1.0" +description = "A tox Python discovery plugin for pyenv-installed interpreters" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +python-versions = ">=3.8" files = [ - {file = "tqdm-4.61.2-py2.py3-none-any.whl", hash = "sha256:5aa445ea0ad8b16d82b15ab342de6b195a722d75fc1ef9934a46bba6feafbc64"}, - {file = "tqdm-4.61.2.tar.gz", hash = "sha256:8bb94db0d4468fea27d004a0f1d1c02da3cdedc00fe491c0de986b76a04d6b0a"}, + {file = "tox-pyenv-redux-1.1.0.tar.gz", hash = "sha256:bbfe47a8cdeadcb4f96762f18220946714a76cb53ab285b5ae8e83e3ea617b3e"}, + {file = "tox_pyenv_redux-1.1.0-py3-none-any.whl", hash = "sha256:cf45ca73634163bd04fa41f2ba6c6852d6099afa8324ddbe4ad06a467c7ea730"}, ] [package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[package.extras] -dev = ["py-make (>=0.1.0)", "twine", "wheel"] -notebook = ["ipywidgets (>=6)"] -telegram = ["requests"] +tox = ">=4" +virtualenv-pyenv = ">=0.5,<0.6" [[package]] name = "traitlets" @@ -1616,64 +1622,25 @@ test = ["mock", "pytest"] [[package]] name = "twine" -version = "3.4.1" +version = "5.1.1" description = "Collection of utilities for publishing packages on PyPI" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "twine-3.4.1-py3-none-any.whl", hash = "sha256:16f706f2f1687d7ce30e7effceee40ed0a09b7c33b9abb5ef6434e5551565d83"}, - {file = "twine-3.4.1.tar.gz", hash = "sha256:a56c985264b991dc8a8f4234eb80c5af87fa8080d0c224ad8f2cd05a2c22e83b"}, + {file = "twine-5.1.1-py3-none-any.whl", hash = "sha256:215dbe7b4b94c2c50a7315c0275d2258399280fbb7d04182c7e55e24b5f93997"}, + {file = "twine-5.1.1.tar.gz", hash = "sha256:9aa0825139c02b3434d913545c7b847a21c835e11597f5255842d457da2322db"}, ] [package.dependencies] -colorama = ">=0.4.3" importlib-metadata = ">=3.6" keyring = ">=15.1" -pkginfo = ">=1.4.2" -readme-renderer = ">=21.0" +pkginfo = ">=1.8.1,<1.11" +readme-renderer = ">=35.0" requests = ">=2.20" requests-toolbelt = ">=0.8.0,<0.9.0 || >0.9.0" rfc3986 = ">=1.4.0" -tqdm = ">=4.14" - -[[package]] -name = "typed-ast" -version = "1.4.3" -description = "a fork of Python 2 and 3 ast modules with type comment support" -optional = false -python-versions = "*" -files = [ - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6"}, - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075"}, - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528"}, - {file = "typed_ast-1.4.3-cp35-cp35m-win32.whl", hash = "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428"}, - {file = "typed_ast-1.4.3-cp35-cp35m-win_amd64.whl", hash = "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3"}, - {file = "typed_ast-1.4.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f"}, - {file = "typed_ast-1.4.3-cp36-cp36m-win32.whl", hash = "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363"}, - {file = "typed_ast-1.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7"}, - {file = "typed_ast-1.4.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899"}, - {file = "typed_ast-1.4.3-cp37-cp37m-win32.whl", hash = "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c"}, - {file = "typed_ast-1.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805"}, - {file = "typed_ast-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39"}, - {file = "typed_ast-1.4.3-cp38-cp38-win32.whl", hash = "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927"}, - {file = "typed_ast-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40"}, - {file = "typed_ast-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3"}, - {file = "typed_ast-1.4.3-cp39-cp39-win32.whl", hash = "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808"}, - {file = "typed_ast-1.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c"}, - {file = "typed_ast-1.4.3.tar.gz", hash = "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"}, -] +rich = ">=12.0.0" +urllib3 = ">=1.26.0" [[package]] name = "types-pymysql" @@ -1699,14 +1666,13 @@ files = [ [[package]] name = "typing-extensions" -version = "3.10.0.0" -description = "Backported and Experimental Type Hints for Python 3.5+" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "typing_extensions-3.10.0.0-py2-none-any.whl", hash = "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497"}, - {file = "typing_extensions-3.10.0.0-py3-none-any.whl", hash = "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84"}, - {file = "typing_extensions-3.10.0.0.tar.gz", hash = "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] [[package]] @@ -1738,48 +1704,48 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "virtualenv" -version = "20.5.0" +version = "20.28.0" description = "Virtual Python Environment builder" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.8" files = [ - {file = "virtualenv-20.5.0-py2.py3-none-any.whl", hash = "sha256:b7afa7f32abbf7dd4c24269a596cfbb0a422bb83c47215a785a7bf607cb88e1b"}, - {file = "virtualenv-20.5.0.tar.gz", hash = "sha256:6b0e3eeb6cb081c9c81ec85633785e29edcdf6ff271d70e0d1e2bd616495c08c"}, + {file = "virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0"}, + {file = "virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa"}, ] [package.dependencies] -"backports.entry-points-selectable" = ">=1.0.4" -distlib = ">=0.3.1,<1" -filelock = ">=3.0.0,<4" -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} -importlib-resources = {version = ">=1.0", markers = "python_version < \"3.7\""} -platformdirs = ">=2,<3" -six = ">=1.9.0,<2" +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" [package.extras] -docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=19.9.0rc1)"] -testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "packaging (>=20.0)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "xonsh (>=0.9.16)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [[package]] -name = "wcwidth" -version = "0.2.5" -description = "Measures the displayed width of unicode strings in a terminal" +name = "virtualenv-pyenv" +version = "0.5.0" +description = "A virtualenv Python discovery plugin for pyenv-installed interpreters" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, - {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, + {file = "virtualenv-pyenv-0.5.0.tar.gz", hash = "sha256:7b0e5fe3dfbdf484f4cf9b01e1f98111e398db6942237910f666356e6293597f"}, + {file = "virtualenv_pyenv-0.5.0-py3-none-any.whl", hash = "sha256:21750247e36c55b3c547cfdeb08f51a3867fe7129922991a4f9c96980c0a4a5d"}, ] +[package.dependencies] +pyenv-inspect = ">=0.4,<0.5" +virtualenv = "*" + [[package]] -name = "webencodings" -version = "0.5.1" -description = "Character encoding aliases for legacy web content" +name = "wcwidth" +version = "0.2.5" +description = "Measures the displayed width of unicode strings in a terminal" optional = false python-versions = "*" files = [ - {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, - {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, + {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, + {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, ] [[package]] @@ -1822,5 +1788,5 @@ kubernetes = ["kubernetes"] [metadata] lock-version = "2.0" -python-versions = "^3.6.1" -content-hash = "a916ad81d2f43468caac4860eef1e735d1d93864617c848510bbfb4a28c126cd" +python-versions = ">=3.8,<3.13" +content-hash = "5071a6aa347fad8ac01d74b7235ce38456443a76d8bf4fa7810c8bd8f17201bc" diff --git a/sdks/apigw-manager/pyproject.toml b/sdks/apigw-manager/pyproject.toml index 0b1bd6ff..e81250ed 100644 --- a/sdks/apigw-manager/pyproject.toml +++ b/sdks/apigw-manager/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "apigw-manager" -version = "3.1.2" +version = "4.0.0" description = "The SDK for managing blueking gateway resource." readme = "README.md" authors = ["blueking "] @@ -10,29 +10,27 @@ classifiers = [ "License :: OSI Approved :: MIT License", ] + [project.urls] Homepage = "https://github.com/TencentBlueKing/bkpaas-python-sdk/" Repository = "https://github.com/TencentBlueKing/bkpaas-python-sdk/" [tool.poetry.dependencies] -python = "^3.6.1" +python = ">=3.8,<3.13" setuptools = ">=21.0.0" urllib3 = ">=1.25.3" -future = ">=0.18.2" -pyyaml = ">=5.4.1" +pyyaml = ">=5.4.2" bkapi-client-core = ">=1.2.0" bkapi-bk-apigateway = "^1.0.11" -pyjwt = { version = ">=1.6.4", optional = true } +pyjwt = { version = ">=2.0.0", optional = true } django-environ = { version = ">=0.8.1", optional = true } -Django = { version = ">=1.11.1", optional = true } +Django = { version = ">=3.0.14", optional = true } cryptography = { version = ">=3.1.1", optional = true } packaging = { version = ">=20.4" } PyMySQL = { version = "^1.0.2", optional = true } kubernetes = { version = "*", optional = true } -# if want to upgrade this package, should upgrade python version first; 3.15.2 is not compatible with python 3.6/3.7 -djangorestframework = { version = "<=3.15.1", optional = true } -# if want to upgrade this package, should upgrade python version first; 0.27.2 is not compatible with python 3.6 -drf-spectacular = { version = "<=0.27.1", optional = true } +djangorestframework = { version = ">=3.10.3", optional = true } +drf-spectacular = { version = "<=0.27.2", optional = true } [tool.poetry.extras] cryptography = ["cryptography", "pyjwt"] @@ -42,20 +40,21 @@ demo = ["django-environ", "django", "PyMySQL", "pyjwt"] kubernetes = ["kubernetes"] [tool.poetry.dev-dependencies] -pytest = "^7.0.1" -pytest-cov = "^4.0.0" -pytest-mock = "^3.6.1" -pytest-django = "^4.5.0" -pytest-pretty = { version = "^1.1.0", python = "~3.7.0" } -Faker = "14.2.1" +pytest = "^8.3.3" +pytest-cov = "^5.0.0" +pytest-mock = "^3.14.0" +pytest-django = "^4.9.0" +pytest-pretty = "1.2.0" +Faker = "33.0.0" mypy = "*" -pre-commit = "^2.17.0" +pre-commit = "^3" m2r = "^0.2.1" -tox = "^3.23.0" +tox = "4.23.2" +tox-pyenv-redux = "^1.1.0" ipython = "^7" -twine = "^3.4.1" +twine = "5.1.1" django = ">=1.11.1" -kubernetes = "^24.2.0" +kubernetes = "31.0.0" types-PyYAML = "6.0.12.9" types-PyMySQL = "1.1.0.1" diff --git a/sdks/apigw-manager/requirements_tox.txt b/sdks/apigw-manager/requirements_tox.txt index 5a2ef510..1c938eae 100644 --- a/sdks/apigw-manager/requirements_tox.txt +++ b/sdks/apigw-manager/requirements_tox.txt @@ -1,106 +1,104 @@ -appnope==0.1.2 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and sys_platform == "darwin" -asgiref==3.4.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -atomicwrites==1.4.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and sys_platform == "win32" -attrs==21.2.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -backcall==0.2.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -backports-entry-points-selectable==1.1.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -backports-zoneinfo==0.2.1 ; python_full_version >= "3.6.1" and python_version < "3.9" -bkapi-bk-apigateway==1.0.11 ; python_full_version >= "3.6.1" and python_version < "4.0" -bkapi-client-core==1.2.0 ; python_full_version >= "3.6.1" and python_version < "4.0" -bleach==3.3.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -cachetools==4.2.4 ; python_full_version >= "3.6.1" and python_version < "4.0" -certifi==2021.5.30 ; python_full_version >= "3.6.1" and python_version < "4.0" -cffi==1.14.6 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -cfgv==3.3.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -charset-normalizer==2.0.1 ; python_full_version >= "3.6.1" and python_version < "4.0" -colorama==0.4.4 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -commonmark==0.9.1 ; python_version >= "3.7" and python_full_version < "3.8.0" -coverage[toml]==5.5 ; python_full_version >= "3.6.1" and python_version < "4" -cryptography==3.4.7 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -curlify==2.2.1 ; python_full_version >= "3.6.1" and python_version < "4.0" -decorator==5.0.9 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -distlib==0.3.2 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -django-environ==0.8.1 ; python_full_version >= "3.6.1" and python_version < "4" -django==3.2.12 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -djangorestframework==3.15.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -docutils==0.17.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -drf-spectacular==0.27.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -faker==14.2.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -filelock==3.0.12 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -future==0.18.2 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -google-auth==2.12.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -identify==2.2.11 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -idna==3.2 ; python_full_version >= "3.6.1" and python_version < "4.0" -importlib-metadata==4.6.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -importlib-resources==5.2.0 ; python_full_version >= "3.6.1" and python_version < "3.7" -inflection==0.5.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -iniconfig==1.1.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -ipython-genutils==0.2.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -ipython==7.16.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -jedi==0.17.2 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -jeepney==0.7.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and sys_platform == "linux" -jsonschema==3.2.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -keyring==23.0.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -kubernetes==24.2.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -m2r==0.2.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -mistune==0.8.4 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -mypy-extensions==0.4.3 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -mypy==0.971 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -nodeenv==1.6.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -oauthlib==3.2.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -packaging==21.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -parso==0.7.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pexpect==4.8.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and sys_platform != "win32" -pickleshare==0.7.5 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pkginfo==1.7.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -platformdirs==2.0.2 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pluggy==0.13.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pre-commit==2.17.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -prompt-toolkit==3.0.19 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -ptyprocess==0.7.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and sys_platform != "win32" -py==1.10.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pyasn1-modules==0.2.8 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pyasn1==0.4.8 ; python_full_version >= "3.6.1" and python_version < "4" -pycparser==2.20 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pygments==2.9.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pyjwt==2.1.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pymysql==1.0.2 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pyparsing==2.4.7 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pyrsistent==0.18.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pytest-cov==4.0.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pytest-django==4.5.2 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pytest-mock==3.6.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pytest-pretty==1.2.0 ; python_version >= "3.7" and python_full_version < "3.8.0" -pytest==7.0.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -python-dateutil==2.8.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pytz==2021.3 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -pywin32-ctypes==0.2.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and sys_platform == "win32" -pyyaml==5.4.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -readme-renderer==29.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -requests-oauthlib==1.3.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -requests-toolbelt==0.9.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -requests==2.26.0 ; python_full_version >= "3.6.1" and python_version < "4.0" -rfc3986==1.5.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -rich==12.0.1 ; python_version >= "3.7" and python_full_version < "3.8.0" -rsa==4.9 ; python_full_version >= "3.6.1" and python_version < "4" -secretstorage==3.3.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and sys_platform == "linux" -setuptools==59.6.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -six==1.16.0 ; python_full_version >= "3.6.1" and python_version < "4.0" -sqlparse==0.4.2 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -toml==0.10.2 ; python_full_version >= "3.6.1" and python_version < "4" -tomli==1.2.3 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -tox==3.23.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -tqdm==4.61.2 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -traitlets==4.3.3 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -twine==3.4.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -typed-ast==1.4.3 ; python_full_version >= "3.6.1" and python_version < "3.8" -types-pymysql==1.1.0.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -types-pyyaml==6.0.12.9 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -typing-extensions==3.10.0.0 ; python_full_version >= "3.6.1" and python_version < "4.0" -uritemplate==4.1.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -urllib3==1.26.6 ; python_full_version >= "3.6.1" and python_version < "4" -virtualenv==20.5.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -wcwidth==0.2.5 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -webencodings==0.5.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -websocket-client==1.3.1 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" -zipp==3.5.0 ; python_full_version >= "3.6.1" and python_full_version < "4.0.0" +appnope==0.1.2 ; python_version >= "3.8" and python_version < "3.13" and sys_platform == "darwin" +asgiref==3.4.1 ; python_version >= "3.8" and python_version < "3.13" +attrs==21.2.0 ; python_version >= "3.8" and python_version < "3.13" +backcall==0.2.0 ; python_version >= "3.8" and python_version < "3.13" +backports-zoneinfo==0.2.1 ; python_version >= "3.8" and python_version < "3.9" +bkapi-bk-apigateway==1.0.11 ; python_version >= "3.8" and python_version < "3.13" +bkapi-client-core==1.2.0 ; python_version >= "3.8" and python_version < "3.13" +cachetools==5.5.0 ; python_version >= "3.8" and python_version < "3.13" +certifi==2021.5.30 ; python_version >= "3.8" and python_version < "3.13" +cffi==1.14.6 ; python_version >= "3.8" and python_version < "3.13" +cfgv==3.3.0 ; python_version >= "3.8" and python_version < "3.13" +chardet==5.2.0 ; python_version >= "3.8" and python_version < "3.13" +charset-normalizer==2.0.1 ; python_version >= "3.8" and python_version < "3.13" +colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.13" +commonmark==0.9.1 ; python_version >= "3.8" and python_version < "3.13" +coverage[toml]==5.5 ; python_version >= "3.8" and python_version < "3.13" +cryptography==3.4.7 ; python_version >= "3.8" and python_version < "3.13" +curlify==2.2.1 ; python_version >= "3.8" and python_version < "3.13" +decorator==5.0.9 ; python_version >= "3.8" and python_version < "3.13" +distlib==0.3.9 ; python_version >= "3.8" and python_version < "3.13" +django-environ==0.8.1 ; python_version >= "3.8" and python_version < "3.13" +django==3.2.12 ; python_version >= "3.8" and python_version < "3.13" +djangorestframework==3.15.1 ; python_version >= "3.8" and python_version < "3.13" +docutils==0.17.1 ; python_version >= "3.8" and python_version < "3.13" +drf-spectacular==0.27.1 ; python_version >= "3.8" and python_version < "3.13" +durationpy==0.9 ; python_version >= "3.8" and python_version < "3.13" +exceptiongroup==1.2.2 ; python_version >= "3.8" and python_version < "3.11" +faker==33.0.0 ; python_version >= "3.8" and python_version < "3.13" +filelock==3.16.1 ; python_version >= "3.8" and python_version < "3.13" +google-auth==2.12.0 ; python_version >= "3.8" and python_version < "3.13" +identify==2.2.11 ; python_version >= "3.8" and python_version < "3.13" +idna==3.2 ; python_version >= "3.8" and python_version < "3.13" +importlib-metadata==4.6.1 ; python_version >= "3.8" and python_version < "3.13" +inflection==0.5.1 ; python_version >= "3.8" and python_version < "3.13" +iniconfig==1.1.1 ; python_version >= "3.8" and python_version < "3.13" +ipython-genutils==0.2.0 ; python_version >= "3.8" and python_version < "3.13" +ipython==7.16.1 ; python_version >= "3.8" and python_version < "3.13" +jedi==0.17.2 ; python_version >= "3.8" and python_version < "3.13" +jeepney==0.7.0 ; python_version >= "3.8" and python_version < "3.13" and sys_platform == "linux" +jsonschema==3.2.0 ; python_version >= "3.8" and python_version < "3.13" +keyring==23.0.1 ; python_version >= "3.8" and python_version < "3.13" +kubernetes==31.0.0 ; python_version >= "3.8" and python_version < "3.13" +m2r==0.2.1 ; python_version >= "3.8" and python_version < "3.13" +mistune==0.8.4 ; python_version >= "3.8" and python_version < "3.13" +mypy-extensions==0.4.3 ; python_version >= "3.8" and python_version < "3.13" +mypy==0.971 ; python_version >= "3.8" and python_version < "3.13" +nh3==0.2.18 ; python_version >= "3.8" and python_version < "3.13" +nodeenv==1.6.0 ; python_version >= "3.8" and python_version < "3.13" +oauthlib==3.2.2 ; python_version >= "3.8" and python_version < "3.13" +packaging==24.2 ; python_version >= "3.8" and python_version < "3.13" +parso==0.7.1 ; python_version >= "3.8" and python_version < "3.13" +pexpect==4.8.0 ; python_version >= "3.8" and python_version < "3.13" and sys_platform != "win32" +pickleshare==0.7.5 ; python_version >= "3.8" and python_version < "3.13" +pkginfo==1.10.0 ; python_version >= "3.8" and python_version < "3.13" +platformdirs==4.3.6 ; python_version >= "3.8" and python_version < "3.13" +pluggy==1.5.0 ; python_version >= "3.8" and python_version < "3.13" +pre-commit==3.5.0 ; python_version >= "3.8" and python_version < "3.13" +prompt-toolkit==3.0.19 ; python_version >= "3.8" and python_version < "3.13" +ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "3.13" and sys_platform != "win32" +pyasn1-modules==0.2.8 ; python_version >= "3.8" and python_version < "3.13" +pyasn1==0.4.8 ; python_version >= "3.8" and python_version < "3.13" +pycparser==2.20 ; python_version >= "3.8" and python_version < "3.13" +pyenv-inspect==0.4.0 ; python_version >= "3.8" and python_version < "3.13" +pygments==2.9.0 ; python_version >= "3.8" and python_version < "3.13" +pyjwt==2.1.0 ; python_version >= "3.8" and python_version < "3.13" +pymysql==1.0.2 ; python_version >= "3.8" and python_version < "3.13" +pyproject-api==1.8.0 ; python_version >= "3.8" and python_version < "3.13" +pyrsistent==0.18.0 ; python_version >= "3.8" and python_version < "3.13" +pytest-cov==5.0.0 ; python_version >= "3.8" and python_version < "3.13" +pytest-django==4.9.0 ; python_version >= "3.8" and python_version < "3.13" +pytest-mock==3.14.0 ; python_version >= "3.8" and python_version < "3.13" +pytest-pretty==1.2.0 ; python_version >= "3.8" and python_version < "3.13" +pytest==8.3.3 ; python_version >= "3.8" and python_version < "3.13" +python-dateutil==2.8.1 ; python_version >= "3.8" and python_version < "3.13" +pytz==2021.3 ; python_version >= "3.8" and python_version < "3.13" +pywin32-ctypes==0.2.0 ; python_version >= "3.8" and python_version < "3.13" and sys_platform == "win32" +pyyaml==6.0.2 ; python_version >= "3.8" and python_version < "3.13" +readme-renderer==43.0 ; python_version >= "3.8" and python_version < "3.13" +requests-oauthlib==1.3.1 ; python_version >= "3.8" and python_version < "3.13" +requests-toolbelt==0.9.1 ; python_version >= "3.8" and python_version < "3.13" +requests==2.26.0 ; python_version >= "3.8" and python_version < "3.13" +rfc3986==1.5.0 ; python_version >= "3.8" and python_version < "3.13" +rich==12.0.1 ; python_version >= "3.8" and python_version < "3.13" +rsa==4.9 ; python_version >= "3.8" and python_version < "3.13" +secretstorage==3.3.1 ; python_version >= "3.8" and python_version < "3.13" and sys_platform == "linux" +setuptools==59.6.0 ; python_version >= "3.8" and python_version < "3.13" +six==1.16.0 ; python_version >= "3.8" and python_version < "3.13" +sqlparse==0.4.2 ; python_version >= "3.8" and python_version < "3.13" +toml==0.10.2 ; python_version >= "3.8" and python_version < "3.13" +tomli==2.1.0 ; python_version >= "3.8" and python_version < "3.11" +tox-pyenv-redux==1.1.0 ; python_version >= "3.8" and python_version < "3.13" +tox==4.23.2 ; python_version >= "3.8" and python_version < "3.13" +traitlets==4.3.3 ; python_version >= "3.8" and python_version < "3.13" +twine==5.1.1 ; python_version >= "3.8" and python_version < "3.13" +types-pymysql==1.1.0.1 ; python_version >= "3.8" and python_version < "3.13" +types-pyyaml==6.0.12.9 ; python_version >= "3.8" and python_version < "3.13" +typing-extensions==4.12.2 ; python_version >= "3.8" and python_version < "3.13" +uritemplate==4.1.1 ; python_version >= "3.8" and python_version < "3.13" +urllib3==1.26.6 ; python_version >= "3.8" and python_version < "3.13" +virtualenv-pyenv==0.5.0 ; python_version >= "3.8" and python_version < "3.13" +virtualenv==20.28.0 ; python_version >= "3.8" and python_version < "3.13" +wcwidth==0.2.5 ; python_version >= "3.8" and python_version < "3.13" +websocket-client==1.3.1 ; python_version >= "3.8" and python_version < "3.13" +zipp==3.5.0 ; python_version >= "3.8" and python_version < "3.13" diff --git a/sdks/apigw-manager/src/apigw_manager/apigw/providers.py b/sdks/apigw-manager/src/apigw_manager/apigw/providers.py index 8258dfd8..61adbc60 100644 --- a/sdks/apigw-manager/src/apigw_manager/apigw/providers.py +++ b/sdks/apigw-manager/src/apigw_manager/apigw/providers.py @@ -19,7 +19,6 @@ from django.core.cache import caches from django.core.cache.backends.dummy import DummyCache from django.http.request import HttpRequest -from future.utils import raise_from from apigw_manager.apigw.helper import make_default_public_key_manager @@ -115,13 +114,13 @@ def __init__(self, gateway_name: str, payload: dict) -> None: class JWTProvider(metaclass=abc.ABCMeta): def __init__( - self, - jwt_key_name: str, - default_gateway_name: str, - algorithm: str, - allow_invalid_jwt_token: bool, - public_key_provider: PublicKeyProvider, - **kwargs, + self, + jwt_key_name: str, + default_gateway_name: str, + algorithm: str, + allow_invalid_jwt_token: bool, + public_key_provider: PublicKeyProvider, + **kwargs, ) -> None: self.jwt_key_name = jwt_key_name self.default_gateway_name = default_gateway_name @@ -173,7 +172,7 @@ def provide(self, request: HttpRequest) -> Optional[DecodedJWT]: except jwt.PyJWTError as e: if not self.allow_invalid_jwt_token: - raise_from(JWTTokenInvalid, e) + raise JWTTokenInvalid from e return None diff --git a/sdks/apigw-manager/src/apigw_manager/core/handler.py b/sdks/apigw-manager/src/apigw_manager/core/handler.py index 5922cc48..0a5274b6 100644 --- a/sdks/apigw-manager/src/apigw_manager/core/handler.py +++ b/sdks/apigw-manager/src/apigw_manager/core/handler.py @@ -14,7 +14,6 @@ from bkapi.bk_apigateway.client import Client as BKAPIGatewayClient from bkapi_client_core.exceptions import ResponseError -from future.utils import raise_from from apigw_manager.core.exceptions import ApiException, ApiResponseError, ApiResultError @@ -96,7 +95,7 @@ def _call(self, operation, files=None, **kwargs): message = "%s\n%s\nResponse: %s" % (err, err.curl_command, err.response_text) raise ApiResponseError(message) except Exception as err: - raise_from(ApiException(operation_id), err) + raise ApiException(operation_id) from err def _parse_result(self, result, convertor, code=0): """Check the code and convert the result""" diff --git a/sdks/apigw-manager/tox.ini b/sdks/apigw-manager/tox.ini index c8513665..dac28699 100644 --- a/sdks/apigw-manager/tox.ini +++ b/sdks/apigw-manager/tox.ini @@ -1,21 +1,23 @@ [tox] minversion = 3.23.0 isolated_build = True -envlist = py{36,37}-django{1,2,3}-pyjwt{1,2} +envlist = py{38,39,310,311,312}-django{3,4,5}-pyjwt{2} [gh-actions] python = - 3.6: py36 - 3.7: py37 + 3.8: py38 + 3.9: py39 + 3.10: py310 + 3.11: py311 + 3.12: py312 [testenv] extras = cryptography allowlist_externals = pytest deps = - django1: django<2 - django2: django<3 django3: django<4 - pyjwt1: pyjwt<2 + django4: django<5 + django5: django<6 pyjwt2: pyjwt<3 commands = pytest -v --ds demo.settings tests