From db01b682fa8f1490b02b4b85c1b42aa82bc72463 Mon Sep 17 00:00:00 2001 From: Karl Bonde Torp Date: Fri, 29 Apr 2022 10:51:17 +0200 Subject: [PATCH 1/7] [MRG] Utils: optimise get_page_layout Since the existing code overwrites `layout` and `dim` in each iteration, it is much more efficient to simply return the `layout` and `dim` of the first page. I have tested the difference with a 455 page pdf and the optimisation reduces the time spent from 50 to 5 seconds. Signed-off-by: Karl Bonde Torp --- camelot/utils.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/camelot/utils.py b/camelot/utils.py index 404c00b2..14ab6b1d 100644 --- a/camelot/utils.py +++ b/camelot/utils.py @@ -889,12 +889,14 @@ def get_page_layout( rsrcmgr = PDFResourceManager() device = PDFPageAggregator(rsrcmgr, laparams=laparams) interpreter = PDFPageInterpreter(rsrcmgr, device) - for page in PDFPage.create_pages(document): - interpreter.process_page(page) - layout = device.get_result() - width = layout.bbox[2] - height = layout.bbox[3] - dim = (width, height) + page = next(PDFPage.create_pages(document), None) + if page is None: + raise PDFTextExtractionNotAllowed + interpreter.process_page(page) + layout = device.get_result() + width = layout.bbox[2] + height = layout.bbox[3] + dim = (width, height) return layout, dim From b68c4890912a9885f52badb171900e481ed33ad3 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 25 Feb 2024 11:58:58 +0100 Subject: [PATCH 2/7] FLIT_PASSWORD as repo secret --- .github/workflows/labeler.yml | 1 - .github/workflows/release.yml | 11 +---------- pyproject.toml | 4 ++-- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 173926f3..1717a3d3 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -4,7 +4,6 @@ on: push: branches: - main - - master jobs: labeler: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 17402643..8de14986 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,7 +4,6 @@ on: push: branches: - main - - master jobs: release: @@ -60,15 +59,7 @@ jobs: uses: pypa/gh-action-pypi-publish@v1.8.10 with: user: __token__ - password: ${{ secrets.PYPI_TOKEN }} - - - name: Publish package on TestPyPI - if: "! steps.check-version.outputs.tag" - uses: pypa/gh-action-pypi-publish@v1.8.10 - with: - user: __token__ - password: ${{ secrets.TEST_PYPI_TOKEN }} - repository_url: https://test.pypi.org/legacy/ + password: ${{ secrets.FLIT_PASSWORD }} - name: Publish the release notes uses: release-drafter/release-drafter@v5.24.0 diff --git a/pyproject.toml b/pyproject.toml index 156cd8dd..42d4b4d3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] -name = "camelot" -version = "0.20.1" +name = "pypdf_table_extraction" +version = "0.0.1" description = "PDF Table Extraction for Humans." authors = ["Vinayak Mehta "] license = "MIT" From 15223e6d6a644dcc3dcd8487c40ecc4fe591d284 Mon Sep 17 00:00:00 2001 From: Jelmer Draaijer Date: Wed, 28 Feb 2024 09:04:19 +0100 Subject: [PATCH 3/7] =?UTF-8?q?Poetry=20update=20=20=20=E2=80=A2=20Install?= =?UTF-8?q?ing=20authlib=20(1.3.0)=20=20=20=E2=80=A2=20Installing=20marshm?= =?UTF-8?q?allow=20(3.21.0)=20=20=20=E2=80=A2=20Installing=20pydantic=20(1?= =?UTF-8?q?.10.14)=20=20=20=E2=80=A2=20Installing=20safety-schemas=20(0.0.?= =?UTF-8?q?2)=20=20=20=E2=80=A2=20Installing=20typer=20(0.9.0)=20=20=20?= =?UTF-8?q?=E2=80=A2=20Removing=20gitdb=20(4.0.10)=20=20=20=E2=80=A2=20Rem?= =?UTF-8?q?oving=20gitpython=20(3.1.37)=20=20=20=E2=80=A2=20Removing=20smm?= =?UTF-8?q?ap=20(5.0.0)=20=20=20=E2=80=A2=20Updating=20attrs=20(23.1.0=20-?= =?UTF-8?q?>=2023.2.0)=20=20=20=E2=80=A2=20Updating=20babel=20(2.12.1=20->?= =?UTF-8?q?=202.14.0)=20=20=20=E2=80=A2=20Updating=20bandit=20(1.7.5=20->?= =?UTF-8?q?=201.7.7)=20=20=20=E2=80=A2=20Updating=20beautifulsoup4=20(4.12?= =?UTF-8?q?.2=20->=204.12.3)=20=20=20=E2=80=A2=20Updating=20black=20(23.7.?= =?UTF-8?q?0=20->=2024.2.0)=20=20=20=E2=80=A2=20Updating=20certifi=20(2023?= =?UTF-8?q?.7.22=20->=202024.2.2)=20=20=20=E2=80=A2=20Updating=20cffi=20(1?= =?UTF-8?q?.15.1=20->=201.16.0)=20=20=20=E2=80=A2=20Updating=20cfgv=20(3.3?= =?UTF-8?q?.1=20->=203.4.0)=20=20=20=E2=80=A2=20Updating=20chardet=20(5.1.?= =?UTF-8?q?0=20->=205.2.0)=20=20=20=E2=80=A2=20Updating=20charset-normaliz?= =?UTF-8?q?er=20(3.2.0=20->=203.3.2)=20=20=20=E2=80=A2=20Updating=20click?= =?UTF-8?q?=20(8.1.5=20->=208.1.7)=20=20=20=E2=80=A2=20Updating=20contourp?= =?UTF-8?q?y=20(1.1.0=20->=201.1.1)=20=20=20=E2=80=A2=20Updating=20coverag?= =?UTF-8?q?e=20(7.2.7=20->=207.4.3)=20=20=20=E2=80=A2=20Updating=20cryptog?= =?UTF-8?q?raphy=20(41.0.4=20->=2042.0.5)=20=20=20=E2=80=A2=20Updating=20c?= =?UTF-8?q?ycler=20(0.11.0=20->=200.12.1)=20=20=20=E2=80=A2=20Updating=20d?= =?UTF-8?q?istlib=20(0.3.6=20->=200.3.8)=20=20=20=E2=80=A2=20Updating=20dp?= =?UTF-8?q?arse=20(0.6.3=20->=200.6.4b0)=20=20=20=E2=80=A2=20Updating=20fi?= =?UTF-8?q?lelock=20(3.12.4=20->=203.13.1)=20=20=20=E2=80=A2=20Updating=20?= =?UTF-8?q?fonttools=20(4.41.0=20->=204.49.0)=20=20=20=E2=80=A2=20Updating?= =?UTF-8?q?=20furo=20(2023.9.10=20->=202024.1.29)=20=20=20=E2=80=A2=20Upda?= =?UTF-8?q?ting=20identify=20(2.5.29=20->=202.5.35)=20=20=20=E2=80=A2=20Up?= =?UTF-8?q?dating=20idna=20(3.4=20->=203.6)=20=20=20=E2=80=A2=20Updating?= =?UTF-8?q?=20isort=20(5.12.0=20->=205.13.2)=20=20=20=E2=80=A2=20Updating?= =?UTF-8?q?=20jinja2=20(3.1.2=20->=203.1.3)=20=20=20=E2=80=A2=20Updating?= =?UTF-8?q?=20markupsafe=20(2.1.3=20->=202.1.5)=20=20=20=E2=80=A2=20Updati?= =?UTF-8?q?ng=20matplotlib=20(3.7.2=20->=203.7.5)=20=20=20=E2=80=A2=20Upda?= =?UTF-8?q?ting=20mypy=20(1.4.1=20->=201.8.0)=20=20=20=E2=80=A2=20Updating?= =?UTF-8?q?=20opencv-python=20(4.8.1.78=20->=204.9.0.80)=20=20=20=E2=80=A2?= =?UTF-8?q?=20Updating=20packaging=20(23.1=20->=2023.2)=20=20=20=E2=80=A2?= =?UTF-8?q?=20Updating=20pathspec=20(0.11.1=20->=200.12.1)=20=20=20?= =?UTF-8?q?=E2=80=A2=20Updating=20pbr=20(5.11.1=20->=206.0.0)=20=20=20?= =?UTF-8?q?=E2=80=A2=20Updating=20pillow=20(10.0.0=20->=2010.2.0)=20=20=20?= =?UTF-8?q?=E2=80=A2=20Updating=20platformdirs=20(3.8.1=20->=204.2.0)=20?= =?UTF-8?q?=20=20=E2=80=A2=20Updating=20pluggy=20(1.2.0=20->=201.4.0)=20?= =?UTF-8?q?=20=20=E2=80=A2=20Updating=20pre-commit=20(3.4.0=20->=203.5.0)?= =?UTF-8?q?=20=20=20=E2=80=A2=20Updating=20pre-commit-hooks=20(4.4.0=20->?= =?UTF-8?q?=204.5.0)=20=20=20=E2=80=A2=20Updating=20pygments=20(2.15.1=20-?= =?UTF-8?q?>=202.17.2)=20=20=20=E2=80=A2=20Updating=20pyparsing=20(3.0.9?= =?UTF-8?q?=20->=203.1.1)=20=20=20=E2=80=A2=20Updating=20pypdf=20(3.12.1?= =?UTF-8?q?=20->=203.17.4)=20=20=20=E2=80=A2=20Updating=20pytest=20(7.4.0?= =?UTF-8?q?=20->=208.0.2)=20=20=20=E2=80=A2=20Updating=20pytz=20(2023.3=20?= =?UTF-8?q?->=202024.1)=20=20=20=E2=80=A2=20Updating=20pyyaml=20(6.0=20->?= =?UTF-8?q?=206.0.1)=20=20=20=E2=80=A2=20Updating=20rich=20(13.4.2=20->=20?= =?UTF-8?q?13.7.0)=20=20=20=E2=80=A2=20Updating=20ruamel-yaml=20(0.17.32?= =?UTF-8?q?=20->=200.18.6)=20=20=20=E2=80=A2=20Updating=20ruamel-yaml-clib?= =?UTF-8?q?=20(0.2.7=20->=200.2.8)=20=20=20=E2=80=A2=20Updating=20safety?= =?UTF-8?q?=20(2.3.4=20->=203.0.1)=20=20=20=E2=80=A2=20Updating=20setuptoo?= =?UTF-8?q?ls=20(68.0.0=20->=2069.1.1)=20=20=20=E2=80=A2=20Updating=20soup?= =?UTF-8?q?sieve=20(2.4.1=20->=202.5)=20=20=20=E2=80=A2=20Updating=20sphin?= =?UTF-8?q?x=20(7.0.1=20->=207.1.2)=20=20=20=E2=80=A2=20Updating=20sphinx-?= =?UTF-8?q?click=20(4.4.0=20->=205.1.0)=20=20=20=E2=80=A2=20Updating=20ste?= =?UTF-8?q?vedore=20(5.1.0=20->=205.2.0)=20=20=20=E2=80=A2=20Updating=20to?= =?UTF-8?q?kenize-rt=20(5.1.0=20->=205.2.0)=20=20=20=E2=80=A2=20Updating?= =?UTF-8?q?=20tornado=20(6.3.3=20->=206.4)=20=20=20=E2=80=A2=20Updating=20?= =?UTF-8?q?typeguard=20(4.0.0=20->=204.1.5)=20=20=20=E2=80=A2=20Updating?= =?UTF-8?q?=20typing-extensions=20(4.7.1=20->=204.10.0)=20=20=20=E2=80=A2?= =?UTF-8?q?=20Updating=20urllib3=20(2.0.3=20->=202.2.1)=20=20=20=E2=80=A2?= =?UTF-8?q?=20Updating=20virtualenv=20(20.24.0=20->=2020.25.1)=20=20=20?= =?UTF-8?q?=E2=80=A2=20Updating=20xdoctest=20(1.1.1=20->=201.1.3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- poetry.lock | 1889 ++++++++++++++++++++++++++++----------------------- 1 file changed, 1052 insertions(+), 837 deletions(-) diff --git a/poetry.lock b/poetry.lock index c7954950..152a22a7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -13,106 +13,127 @@ files = [ [[package]] name = "attrs" -version = "23.1.0" +version = "23.2.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.7" files = [ - {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, - {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, + {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, + {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, ] [package.extras] cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]", "pre-commit"] +dev = ["attrs[tests]", "pre-commit"] docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] +tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] + +[[package]] +name = "authlib" +version = "1.3.0" +description = "The ultimate Python library in building OAuth and OpenID Connect servers and clients." +optional = false +python-versions = ">=3.8" +files = [ + {file = "Authlib-1.3.0-py2.py3-none-any.whl", hash = "sha256:9637e4de1fb498310a56900b3e2043a206b03cb11c05422014b0302cbc814be3"}, + {file = "Authlib-1.3.0.tar.gz", hash = "sha256:959ea62a5b7b5123c5059758296122b57cd2585ae2ed1c0622c21b371ffdae06"}, +] + +[package.dependencies] +cryptography = "*" [[package]] name = "babel" -version = "2.12.1" +version = "2.14.0" description = "Internationalization utilities" optional = false python-versions = ">=3.7" files = [ - {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, - {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, + {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, + {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, ] [package.dependencies] pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + [[package]] name = "bandit" -version = "1.7.5" +version = "1.7.7" description = "Security oriented static analyser for python code." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "bandit-1.7.5-py3-none-any.whl", hash = "sha256:75665181dc1e0096369112541a056c59d1c5f66f9bb74a8d686c3c362b83f549"}, - {file = "bandit-1.7.5.tar.gz", hash = "sha256:bdfc739baa03b880c2d15d0431b31c658ffc348e907fe197e54e0389dd59e11e"}, + {file = "bandit-1.7.7-py3-none-any.whl", hash = "sha256:17e60786a7ea3c9ec84569fd5aee09936d116cb0cb43151023258340dbffb7ed"}, + {file = "bandit-1.7.7.tar.gz", hash = "sha256:527906bec6088cb499aae31bc962864b4e77569e9d529ee51df3a93b4b8ab28a"}, ] [package.dependencies] colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} -GitPython = ">=1.0.1" PyYAML = ">=5.3.1" rich = "*" stevedore = ">=1.20.0" [package.extras] -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)", "tomli (>=1.1.0)"] +baseline = ["GitPython (>=3.1.30)"] +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 = ["tomli (>=1.1.0)"] yaml = ["PyYAML"] [[package]] name = "beautifulsoup4" -version = "4.12.2" +version = "4.12.3" description = "Screen-scraping library" optional = false python-versions = ">=3.6.0" files = [ - {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, - {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, ] [package.dependencies] soupsieve = ">1.2" [package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] html5lib = ["html5lib"] lxml = ["lxml"] [[package]] name = "black" -version = "23.7.0" +version = "24.2.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-23.7.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:5c4bc552ab52f6c1c506ccae05681fab58c3f72d59ae6e6639e8885e94fe2587"}, - {file = "black-23.7.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:552513d5cd5694590d7ef6f46e1767a4df9af168d449ff767b13b084c020e63f"}, - {file = "black-23.7.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:86cee259349b4448adb4ef9b204bb4467aae74a386bce85d56ba4f5dc0da27be"}, - {file = "black-23.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:501387a9edcb75d7ae8a4412bb8749900386eaef258f1aefab18adddea1936bc"}, - {file = "black-23.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb074d8b213749fa1d077d630db0d5f8cc3b2ae63587ad4116e8a436e9bbe995"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b5b0ee6d96b345a8b420100b7d71ebfdd19fab5e8301aff48ec270042cd40ac2"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:893695a76b140881531062d48476ebe4a48f5d1e9388177e175d76234ca247cd"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:c333286dc3ddca6fdff74670b911cccedacb4ef0a60b34e491b8a67c833b343a"}, - {file = "black-23.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831d8f54c3a8c8cf55f64d0422ee875eecac26f5f649fb6c1df65316b67c8926"}, - {file = "black-23.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7f3bf2dec7d541b4619b8ce526bda74a6b0bffc480a163fed32eb8b3c9aed8ad"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:f9062af71c59c004cd519e2fb8f5d25d39e46d3af011b41ab43b9c74e27e236f"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:01ede61aac8c154b55f35301fac3e730baf0c9cf8120f65a9cd61a81cfb4a0c3"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:327a8c2550ddc573b51e2c352adb88143464bb9d92c10416feb86b0f5aee5ff6"}, - {file = "black-23.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1c6022b86f83b632d06f2b02774134def5d4d4f1dac8bef16d90cda18ba28a"}, - {file = "black-23.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:27eb7a0c71604d5de083757fbdb245b1a4fae60e9596514c6ec497eb63f95320"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:8417dbd2f57b5701492cd46edcecc4f9208dc75529bcf76c514864e48da867d9"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:47e56d83aad53ca140da0af87678fb38e44fd6bc0af71eebab2d1f59b1acf1d3"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:25cc308838fe71f7065df53aedd20327969d05671bac95b38fdf37ebe70ac087"}, - {file = "black-23.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:642496b675095d423f9b8448243336f8ec71c9d4d57ec17bf795b67f08132a91"}, - {file = "black-23.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:ad0014efc7acf0bd745792bd0d8857413652979200ab924fbf239062adc12491"}, - {file = "black-23.7.0-py3-none-any.whl", hash = "sha256:9fd59d418c60c0348505f2ddf9609c1e1de8e7493eab96198fc89d9f865e7a96"}, - {file = "black-23.7.0.tar.gz", hash = "sha256:022a582720b0d9480ed82576c920a8c1dde97cc38ff11d8d8859b3bd6ca9eedb"}, + {file = "black-24.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6981eae48b3b33399c8757036c7f5d48a535b962a7c2310d19361edeef64ce29"}, + {file = "black-24.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d533d5e3259720fdbc1b37444491b024003e012c5173f7d06825a77508085430"}, + {file = "black-24.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61a0391772490ddfb8a693c067df1ef5227257e72b0e4108482b8d41b5aee13f"}, + {file = "black-24.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:992e451b04667116680cb88f63449267c13e1ad134f30087dec8527242e9862a"}, + {file = "black-24.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:163baf4ef40e6897a2a9b83890e59141cc8c2a98f2dda5080dc15c00ee1e62cd"}, + {file = "black-24.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e37c99f89929af50ffaf912454b3e3b47fd64109659026b678c091a4cd450fb2"}, + {file = "black-24.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9de21bafcba9683853f6c96c2d515e364aee631b178eaa5145fc1c61a3cc92"}, + {file = "black-24.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:9db528bccb9e8e20c08e716b3b09c6bdd64da0dd129b11e160bf082d4642ac23"}, + {file = "black-24.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d84f29eb3ee44859052073b7636533ec995bd0f64e2fb43aeceefc70090e752b"}, + {file = "black-24.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e08fb9a15c914b81dd734ddd7fb10513016e5ce7e6704bdd5e1251ceee51ac9"}, + {file = "black-24.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810d445ae6069ce64030c78ff6127cd9cd178a9ac3361435708b907d8a04c693"}, + {file = "black-24.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:ba15742a13de85e9b8f3239c8f807723991fbfae24bad92d34a2b12e81904982"}, + {file = "black-24.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7e53a8c630f71db01b28cd9602a1ada68c937cbf2c333e6ed041390d6968faf4"}, + {file = "black-24.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:93601c2deb321b4bad8f95df408e3fb3943d85012dddb6121336b8e24a0d1218"}, + {file = "black-24.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0057f800de6acc4407fe75bb147b0c2b5cbb7c3ed110d3e5999cd01184d53b0"}, + {file = "black-24.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:faf2ee02e6612577ba0181f4347bcbcf591eb122f7841ae5ba233d12c39dcb4d"}, + {file = "black-24.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:057c3dc602eaa6fdc451069bd027a1b2635028b575a6c3acfd63193ced20d9c8"}, + {file = "black-24.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:08654d0797e65f2423f850fc8e16a0ce50925f9337fb4a4a176a7aa4026e63f8"}, + {file = "black-24.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca610d29415ee1a30a3f30fab7a8f4144e9d34c89a235d81292a1edb2b55f540"}, + {file = "black-24.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:4dd76e9468d5536abd40ffbc7a247f83b2324f0c050556d9c371c2b9a9a95e31"}, + {file = "black-24.2.0-py3-none-any.whl", hash = "sha256:e8a6ae970537e67830776488bca52000eaa37fa63b9988e8c487458d9cd5ace6"}, + {file = "black-24.2.0.tar.gz", hash = "sha256:bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894"}, ] [package.dependencies] @@ -122,96 +143,84 @@ packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)"] +d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2023.7.22" +version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] [[package]] name = "cffi" -version = "1.15.1" +version = "1.16.0" description = "Foreign Function Interface for Python calling C code." optional = false -python-versions = "*" +python-versions = ">=3.8" 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"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, ] [package.dependencies] @@ -219,119 +228,134 @@ pycparser = "*" [[package]] name = "cfgv" -version = "3.3.1" +version = "3.4.0" description = "Validate configuration and produce human readable error messages." optional = false -python-versions = ">=3.6.1" +python-versions = ">=3.8" files = [ - {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, - {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, ] [[package]] name = "chardet" -version = "5.1.0" +version = "5.2.0" description = "Universal encoding detector for Python 3" optional = false python-versions = ">=3.7" files = [ - {file = "chardet-5.1.0-py3-none-any.whl", hash = "sha256:362777fb014af596ad31334fde1e8c327dfdb076e1960d1694662d46a6917ab9"}, - {file = "chardet-5.1.0.tar.gz", hash = "sha256:0d62712b956bc154f85fb0a266e2a3c5913c2967e00348701b32411d6def31e5"}, + {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 = "3.2.0" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, - {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] name = "click" -version = "8.1.5" +version = "8.1.7" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.5-py3-none-any.whl", hash = "sha256:e576aa487d679441d7d30abb87e1b43d24fc53bffb8758443b1a9e1cee504548"}, - {file = "click-8.1.5.tar.gz", hash = "sha256:4be4b1af8d665c6d942909916d31a213a106800c47d0eeba73d34da3cbc11367"}, + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] [package.dependencies] @@ -362,7 +386,6 @@ files = [ {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18a64814ae7bce73925131381603fff0116e2df25230dfc80d6d690aa6e20b37"}, {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90c81f22b4f572f8a2110b0b741bb64e5a6427e0a198b2cdc1fbaf85f352a3aa"}, {file = "contourpy-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53cc3a40635abedbec7f1bde60f8c189c49e84ac180c665f2cd7c162cc454baa"}, - {file = "contourpy-1.1.0-cp310-cp310-win32.whl", hash = "sha256:9b2dd2ca3ac561aceef4c7c13ba654aaa404cf885b187427760d7f7d4c57cff8"}, {file = "contourpy-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:1f795597073b09d631782e7245016a4323cf1cf0b4e06eef7ea6627e06a37ff2"}, {file = "contourpy-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0b7b04ed0961647691cfe5d82115dd072af7ce8846d31a5fac6c142dcce8b882"}, {file = "contourpy-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27bc79200c742f9746d7dd51a734ee326a292d77e7d94c8af6e08d1e6c15d545"}, @@ -371,7 +394,6 @@ files = [ {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5cec36c5090e75a9ac9dbd0ff4a8cf7cecd60f1b6dc23a374c7d980a1cd710e"}, {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f0cbd657e9bde94cd0e33aa7df94fb73c1ab7799378d3b3f902eb8eb2e04a3a"}, {file = "contourpy-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:181cbace49874f4358e2929aaf7ba84006acb76694102e88dd15af861996c16e"}, - {file = "contourpy-1.1.0-cp311-cp311-win32.whl", hash = "sha256:edb989d31065b1acef3828a3688f88b2abb799a7db891c9e282df5ec7e46221b"}, {file = "contourpy-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fb3b7d9e6243bfa1efb93ccfe64ec610d85cfe5aec2c25f97fbbd2e58b531256"}, {file = "contourpy-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bcb41692aa09aeb19c7c213411854402f29f6613845ad2453d30bf421fe68fed"}, {file = "contourpy-1.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5d123a5bc63cd34c27ff9c7ac1cd978909e9c71da12e05be0231c608048bb2ae"}, @@ -380,7 +402,6 @@ files = [ {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:317267d915490d1e84577924bd61ba71bf8681a30e0d6c545f577363157e5e94"}, {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d551f3a442655f3dcc1285723f9acd646ca5858834efeab4598d706206b09c9f"}, {file = "contourpy-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7a117ce7df5a938fe035cad481b0189049e8d92433b4b33aa7fc609344aafa1"}, - {file = "contourpy-1.1.0-cp38-cp38-win32.whl", hash = "sha256:108dfb5b3e731046a96c60bdc46a1a0ebee0760418951abecbe0fc07b5b93b27"}, {file = "contourpy-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:d4f26b25b4f86087e7d75e63212756c38546e70f2a92d2be44f80114826e1cd4"}, {file = "contourpy-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc00bb4225d57bff7ebb634646c0ee2a1298402ec10a5fe7af79df9a51c1bfd9"}, {file = "contourpy-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:189ceb1525eb0655ab8487a9a9c41f42a73ba52d6789754788d1883fb06b2d8a"}, @@ -389,7 +410,6 @@ files = [ {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:143dde50520a9f90e4a2703f367cf8ec96a73042b72e68fcd184e1279962eb6f"}, {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e94bef2580e25b5fdb183bf98a2faa2adc5b638736b2c0a4da98691da641316a"}, {file = "contourpy-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ed614aea8462735e7d70141374bd7650afd1c3f3cb0c2dbbcbe44e14331bf002"}, - {file = "contourpy-1.1.0-cp39-cp39-win32.whl", hash = "sha256:71551f9520f008b2950bef5f16b0e3587506ef4f23c734b71ffb7b89f8721999"}, {file = "contourpy-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:438ba416d02f82b692e371858143970ed2eb6337d9cdbbede0d8ad9f3d7dd17d"}, {file = "contourpy-1.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a698c6a7a432789e587168573a864a7ea374c6be8d4f31f9d87c001d5a843493"}, {file = "contourpy-1.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:397b0ac8a12880412da3551a8cb5a187d3298a72802b45a3bd1805e204ad8439"}, @@ -410,73 +430,136 @@ mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.2.0)", "types-Pill test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] test-no-images = ["pytest", "pytest-cov", "wurlitzer"] +[[package]] +name = "contourpy" +version = "1.1.1" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.8" +files = [ + {file = "contourpy-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:46e24f5412c948d81736509377e255f6040e94216bf1a9b5ea1eaa9d29f6ec1b"}, + {file = "contourpy-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e48694d6a9c5a26ee85b10130c77a011a4fedf50a7279fa0bdaf44bafb4299d"}, + {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a66045af6cf00e19d02191ab578a50cb93b2028c3eefed999793698e9ea768ae"}, + {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ebf42695f75ee1a952f98ce9775c873e4971732a87334b099dde90b6af6a916"}, + {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6aec19457617ef468ff091669cca01fa7ea557b12b59a7908b9474bb9674cf0"}, + {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:462c59914dc6d81e0b11f37e560b8a7c2dbab6aca4f38be31519d442d6cde1a1"}, + {file = "contourpy-1.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6d0a8efc258659edc5299f9ef32d8d81de8b53b45d67bf4bfa3067f31366764d"}, + {file = "contourpy-1.1.1-cp310-cp310-win32.whl", hash = "sha256:d6ab42f223e58b7dac1bb0af32194a7b9311065583cc75ff59dcf301afd8a431"}, + {file = "contourpy-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:549174b0713d49871c6dee90a4b499d3f12f5e5f69641cd23c50a4542e2ca1eb"}, + {file = "contourpy-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:407d864db716a067cc696d61fa1ef6637fedf03606e8417fe2aeed20a061e6b2"}, + {file = "contourpy-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe80c017973e6a4c367e037cb31601044dd55e6bfacd57370674867d15a899b"}, + {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e30aaf2b8a2bac57eb7e1650df1b3a4130e8d0c66fc2f861039d507a11760e1b"}, + {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3de23ca4f381c3770dee6d10ead6fff524d540c0f662e763ad1530bde5112532"}, + {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:566f0e41df06dfef2431defcfaa155f0acfa1ca4acbf8fd80895b1e7e2ada40e"}, + {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b04c2f0adaf255bf756cf08ebef1be132d3c7a06fe6f9877d55640c5e60c72c5"}, + {file = "contourpy-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d0c188ae66b772d9d61d43c6030500344c13e3f73a00d1dc241da896f379bb62"}, + {file = "contourpy-1.1.1-cp311-cp311-win32.whl", hash = "sha256:0683e1ae20dc038075d92e0e0148f09ffcefab120e57f6b4c9c0f477ec171f33"}, + {file = "contourpy-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:8636cd2fc5da0fb102a2504fa2c4bea3cbc149533b345d72cdf0e7a924decc45"}, + {file = "contourpy-1.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:560f1d68a33e89c62da5da4077ba98137a5e4d3a271b29f2f195d0fba2adcb6a"}, + {file = "contourpy-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:24216552104ae8f3b34120ef84825400b16eb6133af2e27a190fdc13529f023e"}, + {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56de98a2fb23025882a18b60c7f0ea2d2d70bbbcfcf878f9067234b1c4818442"}, + {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:07d6f11dfaf80a84c97f1a5ba50d129d9303c5b4206f776e94037332e298dda8"}, + {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1eaac5257a8f8a047248d60e8f9315c6cff58f7803971170d952555ef6344a7"}, + {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19557fa407e70f20bfaba7d55b4d97b14f9480856c4fb65812e8a05fe1c6f9bf"}, + {file = "contourpy-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:081f3c0880712e40effc5f4c3b08feca6d064cb8cfbb372ca548105b86fd6c3d"}, + {file = "contourpy-1.1.1-cp312-cp312-win32.whl", hash = "sha256:059c3d2a94b930f4dafe8105bcdc1b21de99b30b51b5bce74c753686de858cb6"}, + {file = "contourpy-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:f44d78b61740e4e8c71db1cf1fd56d9050a4747681c59ec1094750a658ceb970"}, + {file = "contourpy-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:70e5a10f8093d228bb2b552beeb318b8928b8a94763ef03b858ef3612b29395d"}, + {file = "contourpy-1.1.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8394e652925a18ef0091115e3cc191fef350ab6dc3cc417f06da66bf98071ae9"}, + {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5bd5680f844c3ff0008523a71949a3ff5e4953eb7701b28760805bc9bcff217"}, + {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66544f853bfa85c0d07a68f6c648b2ec81dafd30f272565c37ab47a33b220684"}, + {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0c02b75acfea5cab07585d25069207e478d12309557f90a61b5a3b4f77f46ce"}, + {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41339b24471c58dc1499e56783fedc1afa4bb018bcd035cfb0ee2ad2a7501ef8"}, + {file = "contourpy-1.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f29fb0b3f1217dfe9362ec55440d0743fe868497359f2cf93293f4b2701b8251"}, + {file = "contourpy-1.1.1-cp38-cp38-win32.whl", hash = "sha256:f9dc7f933975367251c1b34da882c4f0e0b2e24bb35dc906d2f598a40b72bfc7"}, + {file = "contourpy-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:498e53573e8b94b1caeb9e62d7c2d053c263ebb6aa259c81050766beb50ff8d9"}, + {file = "contourpy-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ba42e3810999a0ddd0439e6e5dbf6d034055cdc72b7c5c839f37a7c274cb4eba"}, + {file = "contourpy-1.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6c06e4c6e234fcc65435223c7b2a90f286b7f1b2733058bdf1345d218cc59e34"}, + {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca6fab080484e419528e98624fb5c4282148b847e3602dc8dbe0cb0669469887"}, + {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93df44ab351119d14cd1e6b52a5063d3336f0754b72736cc63db59307dabb718"}, + {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eafbef886566dc1047d7b3d4b14db0d5b7deb99638d8e1be4e23a7c7ac59ff0f"}, + {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efe0fab26d598e1ec07d72cf03eaeeba8e42b4ecf6b9ccb5a356fde60ff08b85"}, + {file = "contourpy-1.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f08e469821a5e4751c97fcd34bcb586bc243c39c2e39321822060ba902eac49e"}, + {file = "contourpy-1.1.1-cp39-cp39-win32.whl", hash = "sha256:bfc8a5e9238232a45ebc5cb3bfee71f1167064c8d382cadd6076f0d51cff1da0"}, + {file = "contourpy-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:c84fdf3da00c2827d634de4fcf17e3e067490c4aea82833625c4c8e6cdea0887"}, + {file = "contourpy-1.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:229a25f68046c5cf8067d6d6351c8b99e40da11b04d8416bf8d2b1d75922521e"}, + {file = "contourpy-1.1.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a10dab5ea1bd4401c9483450b5b0ba5416be799bbd50fc7a6cc5e2a15e03e8a3"}, + {file = "contourpy-1.1.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4f9147051cb8fdb29a51dc2482d792b3b23e50f8f57e3720ca2e3d438b7adf23"}, + {file = "contourpy-1.1.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a75cc163a5f4531a256f2c523bd80db509a49fc23721b36dd1ef2f60ff41c3cb"}, + {file = "contourpy-1.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b53d5769aa1f2d4ea407c65f2d1d08002952fac1d9e9d307aa2e1023554a163"}, + {file = "contourpy-1.1.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11b836b7dbfb74e049c302bbf74b4b8f6cb9d0b6ca1bf86cfa8ba144aedadd9c"}, + {file = "contourpy-1.1.1.tar.gz", hash = "sha256:96ba37c2e24b7212a77da85004c38e7c4d155d3e72a45eeaf22c1f03f607e8ab"}, +] + +[package.dependencies] +numpy = {version = ">=1.16,<2.0", markers = "python_version <= \"3.11\""} + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.4.1)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "wurlitzer"] + [[package]] name = "coverage" -version = "7.2.7" +version = "7.4.3" description = "Code coverage measurement for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8"}, - {file = "coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb"}, - {file = "coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6"}, - {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2"}, - {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063"}, - {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1"}, - {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353"}, - {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495"}, - {file = "coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818"}, - {file = "coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850"}, - {file = "coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f"}, - {file = "coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe"}, - {file = "coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3"}, - {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f"}, - {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb"}, - {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833"}, - {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97"}, - {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a"}, - {file = "coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a"}, - {file = "coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562"}, - {file = "coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4"}, - {file = "coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4"}, - {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01"}, - {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6"}, - {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d"}, - {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de"}, - {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d"}, - {file = "coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511"}, - {file = "coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3"}, - {file = "coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f"}, - {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb"}, - {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9"}, - {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd"}, - {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a"}, - {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959"}, - {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02"}, - {file = "coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f"}, - {file = "coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0"}, - {file = "coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5"}, - {file = "coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5"}, - {file = "coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9"}, - {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6"}, - {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e"}, - {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050"}, - {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5"}, - {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f"}, - {file = "coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e"}, - {file = "coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c"}, - {file = "coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9"}, - {file = "coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2"}, - {file = "coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7"}, - {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e"}, - {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1"}, - {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9"}, - {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250"}, - {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2"}, - {file = "coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb"}, - {file = "coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27"}, - {file = "coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d"}, - {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"}, + {file = "coverage-7.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8580b827d4746d47294c0e0b92854c85a92c2227927433998f0d3320ae8a71b6"}, + {file = "coverage-7.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:718187eeb9849fc6cc23e0d9b092bc2348821c5e1a901c9f8975df0bc785bfd4"}, + {file = "coverage-7.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:767b35c3a246bcb55b8044fd3a43b8cd553dd1f9f2c1eeb87a302b1f8daa0524"}, + {file = "coverage-7.4.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae7f19afe0cce50039e2c782bff379c7e347cba335429678450b8fe81c4ef96d"}, + {file = "coverage-7.4.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba3a8aaed13770e970b3df46980cb068d1c24af1a1968b7818b69af8c4347efb"}, + {file = "coverage-7.4.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ee866acc0861caebb4f2ab79f0b94dbfbdbfadc19f82e6e9c93930f74e11d7a0"}, + {file = "coverage-7.4.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:506edb1dd49e13a2d4cac6a5173317b82a23c9d6e8df63efb4f0380de0fbccbc"}, + {file = "coverage-7.4.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd6545d97c98a192c5ac995d21c894b581f1fd14cf389be90724d21808b657e2"}, + {file = "coverage-7.4.3-cp310-cp310-win32.whl", hash = "sha256:f6a09b360d67e589236a44f0c39218a8efba2593b6abdccc300a8862cffc2f94"}, + {file = "coverage-7.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:18d90523ce7553dd0b7e23cbb28865db23cddfd683a38fb224115f7826de78d0"}, + {file = "coverage-7.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cbbe5e739d45a52f3200a771c6d2c7acf89eb2524890a4a3aa1a7fa0695d2a47"}, + {file = "coverage-7.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:489763b2d037b164846ebac0cbd368b8a4ca56385c4090807ff9fad817de4113"}, + {file = "coverage-7.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:451f433ad901b3bb00184d83fd83d135fb682d780b38af7944c9faeecb1e0bfe"}, + {file = "coverage-7.4.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fcc66e222cf4c719fe7722a403888b1f5e1682d1679bd780e2b26c18bb648cdc"}, + {file = "coverage-7.4.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3ec74cfef2d985e145baae90d9b1b32f85e1741b04cd967aaf9cfa84c1334f3"}, + {file = "coverage-7.4.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:abbbd8093c5229c72d4c2926afaee0e6e3140de69d5dcd918b2921f2f0c8baba"}, + {file = "coverage-7.4.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:35eb581efdacf7b7422af677b92170da4ef34500467381e805944a3201df2079"}, + {file = "coverage-7.4.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8249b1c7334be8f8c3abcaaa996e1e4927b0e5a23b65f5bf6cfe3180d8ca7840"}, + {file = "coverage-7.4.3-cp311-cp311-win32.whl", hash = "sha256:cf30900aa1ba595312ae41978b95e256e419d8a823af79ce670835409fc02ad3"}, + {file = "coverage-7.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:18c7320695c949de11a351742ee001849912fd57e62a706d83dfc1581897fa2e"}, + {file = "coverage-7.4.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b51bfc348925e92a9bd9b2e48dad13431b57011fd1038f08316e6bf1df107d10"}, + {file = "coverage-7.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d6cdecaedea1ea9e033d8adf6a0ab11107b49571bbb9737175444cea6eb72328"}, + {file = "coverage-7.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b2eccb883368f9e972e216c7b4c7c06cabda925b5f06dde0650281cb7666a30"}, + {file = "coverage-7.4.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c00cdc8fa4e50e1cc1f941a7f2e3e0f26cb2a1233c9696f26963ff58445bac7"}, + {file = "coverage-7.4.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9a4a8dd3dcf4cbd3165737358e4d7dfbd9d59902ad11e3b15eebb6393b0446e"}, + {file = "coverage-7.4.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:062b0a75d9261e2f9c6d071753f7eef0fc9caf3a2c82d36d76667ba7b6470003"}, + {file = "coverage-7.4.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:ebe7c9e67a2d15fa97b77ea6571ce5e1e1f6b0db71d1d5e96f8d2bf134303c1d"}, + {file = "coverage-7.4.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c0a120238dd71c68484f02562f6d446d736adcc6ca0993712289b102705a9a3a"}, + {file = "coverage-7.4.3-cp312-cp312-win32.whl", hash = "sha256:37389611ba54fd6d278fde86eb2c013c8e50232e38f5c68235d09d0a3f8aa352"}, + {file = "coverage-7.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:d25b937a5d9ffa857d41be042b4238dd61db888533b53bc76dc082cb5a15e914"}, + {file = "coverage-7.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:28ca2098939eabab044ad68850aac8f8db6bf0b29bc7f2887d05889b17346454"}, + {file = "coverage-7.4.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:280459f0a03cecbe8800786cdc23067a8fc64c0bd51dc614008d9c36e1659d7e"}, + {file = "coverage-7.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c0cdedd3500e0511eac1517bf560149764b7d8e65cb800d8bf1c63ebf39edd2"}, + {file = "coverage-7.4.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a9babb9466fe1da12417a4aed923e90124a534736de6201794a3aea9d98484e"}, + {file = "coverage-7.4.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dec9de46a33cf2dd87a5254af095a409ea3bf952d85ad339751e7de6d962cde6"}, + {file = "coverage-7.4.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:16bae383a9cc5abab9bb05c10a3e5a52e0a788325dc9ba8499e821885928968c"}, + {file = "coverage-7.4.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2c854ce44e1ee31bda4e318af1dbcfc929026d12c5ed030095ad98197eeeaed0"}, + {file = "coverage-7.4.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ce8c50520f57ec57aa21a63ea4f325c7b657386b3f02ccaedeccf9ebe27686e1"}, + {file = "coverage-7.4.3-cp38-cp38-win32.whl", hash = "sha256:708a3369dcf055c00ddeeaa2b20f0dd1ce664eeabde6623e516c5228b753654f"}, + {file = "coverage-7.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:1bf25fbca0c8d121a3e92a2a0555c7e5bc981aee5c3fdaf4bb7809f410f696b9"}, + {file = "coverage-7.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3b253094dbe1b431d3a4ac2f053b6d7ede2664ac559705a704f621742e034f1f"}, + {file = "coverage-7.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77fbfc5720cceac9c200054b9fab50cb2a7d79660609200ab83f5db96162d20c"}, + {file = "coverage-7.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6679060424faa9c11808598504c3ab472de4531c571ab2befa32f4971835788e"}, + {file = "coverage-7.4.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4af154d617c875b52651dd8dd17a31270c495082f3d55f6128e7629658d63765"}, + {file = "coverage-7.4.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8640f1fde5e1b8e3439fe482cdc2b0bb6c329f4bb161927c28d2e8879c6029ee"}, + {file = "coverage-7.4.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:69b9f6f66c0af29642e73a520b6fed25ff9fd69a25975ebe6acb297234eda501"}, + {file = "coverage-7.4.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0842571634f39016a6c03e9d4aba502be652a6e4455fadb73cd3a3a49173e38f"}, + {file = "coverage-7.4.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a78ed23b08e8ab524551f52953a8a05d61c3a760781762aac49f8de6eede8c45"}, + {file = "coverage-7.4.3-cp39-cp39-win32.whl", hash = "sha256:c0524de3ff096e15fcbfe8f056fdb4ea0bf497d584454f344d59fce069d3e6e9"}, + {file = "coverage-7.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:0209a6369ccce576b43bb227dc8322d8ef9e323d089c6f3f26a597b09cb4d2aa"}, + {file = "coverage-7.4.3-pp38.pp39.pp310-none-any.whl", hash = "sha256:7cbde573904625509a3f37b6fecea974e363460b556a627c60dc2f47e2fffa51"}, + {file = "coverage-7.4.3.tar.gz", hash = "sha256:276f6077a5c61447a48d133ed13e759c09e62aff0dc84274a68dc18660104d52"}, ] [package.dependencies] @@ -487,69 +570,82 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "41.0.4" +version = "42.0.5" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-41.0.4-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:80907d3faa55dc5434a16579952ac6da800935cd98d14dbd62f6f042c7f5e839"}, - {file = "cryptography-41.0.4-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:35c00f637cd0b9d5b6c6bd11b6c3359194a8eba9c46d4e875a3660e3b400005f"}, - {file = "cryptography-41.0.4-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cecfefa17042941f94ab54f769c8ce0fe14beff2694e9ac684176a2535bf9714"}, - {file = "cryptography-41.0.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e40211b4923ba5a6dc9769eab704bdb3fbb58d56c5b336d30996c24fcf12aadb"}, - {file = "cryptography-41.0.4-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:23a25c09dfd0d9f28da2352503b23e086f8e78096b9fd585d1d14eca01613e13"}, - {file = "cryptography-41.0.4-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2ed09183922d66c4ec5fdaa59b4d14e105c084dd0febd27452de8f6f74704143"}, - {file = "cryptography-41.0.4-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5a0f09cefded00e648a127048119f77bc2b2ec61e736660b5789e638f43cc397"}, - {file = "cryptography-41.0.4-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:9eeb77214afae972a00dee47382d2591abe77bdae166bda672fb1e24702a3860"}, - {file = "cryptography-41.0.4-cp37-abi3-win32.whl", hash = "sha256:3b224890962a2d7b57cf5eeb16ccaafba6083f7b811829f00476309bce2fe0fd"}, - {file = "cryptography-41.0.4-cp37-abi3-win_amd64.whl", hash = "sha256:c880eba5175f4307129784eca96f4e70b88e57aa3f680aeba3bab0e980b0f37d"}, - {file = "cryptography-41.0.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:004b6ccc95943f6a9ad3142cfabcc769d7ee38a3f60fb0dddbfb431f818c3a67"}, - {file = "cryptography-41.0.4-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:86defa8d248c3fa029da68ce61fe735432b047e32179883bdb1e79ed9bb8195e"}, - {file = "cryptography-41.0.4-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:37480760ae08065437e6573d14be973112c9e6dcaf5f11d00147ee74f37a3829"}, - {file = "cryptography-41.0.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b5f4dfe950ff0479f1f00eda09c18798d4f49b98f4e2006d644b3301682ebdca"}, - {file = "cryptography-41.0.4-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7e53db173370dea832190870e975a1e09c86a879b613948f09eb49324218c14d"}, - {file = "cryptography-41.0.4-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5b72205a360f3b6176485a333256b9bcd48700fc755fef51c8e7e67c4b63e3ac"}, - {file = "cryptography-41.0.4-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:93530900d14c37a46ce3d6c9e6fd35dbe5f5601bf6b3a5c325c7bffc030344d9"}, - {file = "cryptography-41.0.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:efc8ad4e6fc4f1752ebfb58aefece8b4e3c4cae940b0994d43649bdfce8d0d4f"}, - {file = "cryptography-41.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c3391bd8e6de35f6f1140e50aaeb3e2b3d6a9012536ca23ab0d9c35ec18c8a91"}, - {file = "cryptography-41.0.4-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:0d9409894f495d465fe6fda92cb70e8323e9648af912d5b9141d616df40a87b8"}, - {file = "cryptography-41.0.4-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ac4f9ead4bbd0bc8ab2d318f97d85147167a488be0e08814a37eb2f439d5cf6"}, - {file = "cryptography-41.0.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:047c4603aeb4bbd8db2756e38f5b8bd7e94318c047cfe4efeb5d715e08b49311"}, - {file = "cryptography-41.0.4.tar.gz", hash = "sha256:7febc3094125fc126a7f6fb1f420d0da639f3f32cb15c8ff0dc3997c4549f51a"}, + {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:a30596bae9403a342c978fb47d9b0ee277699fa53bbafad14706af51fe543d16"}, + {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:b7ffe927ee6531c78f81aa17e684e2ff617daeba7f189f911065b2ea2d526dec"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2424ff4c4ac7f6b8177b53c17ed5d8fa74ae5955656867f5a8affaca36a27abb"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:329906dcc7b20ff3cad13c069a78124ed8247adcac44b10bea1130e36caae0b4"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:b03c2ae5d2f0fc05f9a2c0c997e1bc18c8229f392234e8a0194f202169ccd278"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f8837fe1d6ac4a8052a9a8ddab256bc006242696f03368a4009be7ee3075cdb7"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:0270572b8bd2c833c3981724b8ee9747b3ec96f699a9665470018594301439ee"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:b8cac287fafc4ad485b8a9b67d0ee80c66bf3574f655d3b97ef2e1082360faf1"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:16a48c23a62a2f4a285699dba2e4ff2d1cff3115b9df052cdd976a18856d8e3d"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2bce03af1ce5a5567ab89bd90d11e7bbdff56b8af3acbbec1faded8f44cb06da"}, + {file = "cryptography-42.0.5-cp37-abi3-win32.whl", hash = "sha256:b6cd2203306b63e41acdf39aa93b86fb566049aeb6dc489b70e34bcd07adca74"}, + {file = "cryptography-42.0.5-cp37-abi3-win_amd64.whl", hash = "sha256:98d8dc6d012b82287f2c3d26ce1d2dd130ec200c8679b6213b3c73c08b2b7940"}, + {file = "cryptography-42.0.5-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:5e6275c09d2badf57aea3afa80d975444f4be8d3bc58f7f80d2a484c6f9485c8"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4985a790f921508f36f81831817cbc03b102d643b5fcb81cd33df3fa291a1a1"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cde5f38e614f55e28d831754e8a3bacf9ace5d1566235e39d91b35502d6936e"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7367d7b2eca6513681127ebad53b2582911d1736dc2ffc19f2c3ae49997496bc"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cd2030f6650c089aeb304cf093f3244d34745ce0cfcc39f20c6fbfe030102e2a"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a2913c5375154b6ef2e91c10b5720ea6e21007412f6437504ffea2109b5a33d7"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:c41fb5e6a5fe9ebcd58ca3abfeb51dffb5d83d6775405305bfa8715b76521922"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3eaafe47ec0d0ffcc9349e1708be2aaea4c6dd4978d76bf6eb0cb2c13636c6fc"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1b95b98b0d2af784078fa69f637135e3c317091b615cd0905f8b8a087e86fa30"}, + {file = "cryptography-42.0.5-cp39-abi3-win32.whl", hash = "sha256:1f71c10d1e88467126f0efd484bd44bca5e14c664ec2ede64c32f20875c0d413"}, + {file = "cryptography-42.0.5-cp39-abi3-win_amd64.whl", hash = "sha256:a011a644f6d7d03736214d38832e030d8268bcff4a41f728e6030325fea3e400"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9481ffe3cf013b71b2428b905c4f7a9a4f76ec03065b05ff499bb5682a8d9ad8"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:ba334e6e4b1d92442b75ddacc615c5476d4ad55cc29b15d590cc6b86efa487e2"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ba3e4a42397c25b7ff88cdec6e2a16c2be18720f317506ee25210f6d31925f9c"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:111a0d8553afcf8eb02a4fea6ca4f59d48ddb34497aa8706a6cf536f1a5ec576"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cd65d75953847815962c84a4654a84850b2bb4aed3f26fadcc1c13892e1e29f6"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e807b3188f9eb0eaa7bbb579b462c5ace579f1cedb28107ce8b48a9f7ad3679e"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f12764b8fffc7a123f641d7d049d382b73f96a34117e0b637b80643169cec8ac"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:37dd623507659e08be98eec89323469e8c7b4c1407c85112634ae3dbdb926fdd"}, + {file = "cryptography-42.0.5.tar.gz", hash = "sha256:6fe07eec95dfd477eb9530aef5bead34fec819b3aaf6c5bd6d20565da607bfe1"}, ] [package.dependencies] -cffi = ">=1.12" +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} [package.extras] 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)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] nox = ["nox"] -pep8test = ["black", "check-sdist", "mypy", "ruff"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] -test = ["pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] [[package]] name = "cycler" -version = "0.11.0" +version = "0.12.1" description = "Composable style cycles" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "cycler-0.11.0-py3-none-any.whl", hash = "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3"}, - {file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"}, + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, ] +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] + [[package]] name = "distlib" -version = "0.3.6" +version = "0.3.8" description = "Distribution utilities" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, - {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, ] [[package]] @@ -565,13 +661,13 @@ files = [ [[package]] name = "dparse" -version = "0.6.3" +version = "0.6.4b0" description = "A parser for Python dependency files" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "dparse-0.6.3-py3-none-any.whl", hash = "sha256:0d8fe18714056ca632d98b24fbfc4e9791d4e47065285ab486182288813a5318"}, - {file = "dparse-0.6.3.tar.gz", hash = "sha256:27bb8b4bcaefec3997697ba3f6e06b2447200ba273c0b085c3d012a04571b528"}, + {file = "dparse-0.6.4b0-py3-none-any.whl", hash = "sha256:592ff183348b8a5ea0a18442a7965e29445d3a26063654ec2c7e8ef42cd5753c"}, + {file = "dparse-0.6.4b0.tar.gz", hash = "sha256:f8d49b41a527f3d16a269f854e6665245b325e50e41d2c213810cb984553e5c8"}, ] [package.dependencies] @@ -579,8 +675,10 @@ packaging = "*" tomli = {version = "*", markers = "python_version < \"3.11\""} [package.extras] +all = ["dparse[conda]", "dparse[pipenv]", "dparse[poetry]"] conda = ["pyyaml"] -pipenv = ["pipenv (<=2022.12.19)"] +pipenv = ["pipenv"] +poetry = ["poetry"] [[package]] name = "et-xmlfile" @@ -595,13 +693,13 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.1.2" +version = "1.2.0" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.1.2-py3-none-any.whl", hash = "sha256:e346e69d186172ca7cf029c8c1d16235aa0e04035e5750b4b95039e65204328f"}, - {file = "exceptiongroup-1.1.2.tar.gz", hash = "sha256:12c3e887d6485d16943a309616de20ae5582633e0a2eda17f4e10fd61c1e8af5"}, + {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, + {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, ] [package.extras] @@ -609,19 +707,19 @@ test = ["pytest (>=6)"] [[package]] name = "filelock" -version = "3.12.4" +version = "3.13.1" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.12.4-py3-none-any.whl", hash = "sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4"}, - {file = "filelock-3.12.4.tar.gz", hash = "sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"}, + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, ] [package.extras] -docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-timeout (>=2.1)"] -typing = ["typing-extensions (>=4.7.1)"] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +typing = ["typing-extensions (>=4.8)"] [[package]] name = "flake8" @@ -693,70 +791,78 @@ develop = ["build", "twine"] [[package]] name = "fonttools" -version = "4.41.0" +version = "4.49.0" description = "Tools to manipulate font files" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.41.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ba2a367ff478cd108d5319c0dc4fd4eb4ea3476dbfc45b00c45718e889cd9463"}, - {file = "fonttools-4.41.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:69178674505ec81adf4af2a3bbacd0cb9a37ba7831bc3fca307f80e48ab2767b"}, - {file = "fonttools-4.41.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86edb95c4d1fe4fae2111d7e0c10c6e42b7790b377bcf1952303469eee5b52bb"}, - {file = "fonttools-4.41.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50f8bdb421270f71b54695c62785e300fab4bb6127be40bf9f3084962a0c3adb"}, - {file = "fonttools-4.41.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c890061915e95b619c1d3cc3c107c6fb021406b701c0c24b03e74830d522f210"}, - {file = "fonttools-4.41.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b329ae7ce971b5c4148d6cdb8119c0ce4587265b2330d4f2f3776ef851bee020"}, - {file = "fonttools-4.41.0-cp310-cp310-win32.whl", hash = "sha256:bc9e7b1e268be7a23fc66471b615c324e99c5db39ce8c49dd6dd8e962c7bc1b8"}, - {file = "fonttools-4.41.0-cp310-cp310-win_amd64.whl", hash = "sha256:f3fe90dfb297bd8265238c06787911cd81c2cb89ac5b13e1c911928bdabfce0f"}, - {file = "fonttools-4.41.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e38bd91eae257f36c2b7245c0278e9cd9d754f3a66b8d2b548c623ba66e387b6"}, - {file = "fonttools-4.41.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:415cf7c806a3f56fb280dadcf3c92c85c0415e75665ca957b4a2a2e39c17a5c9"}, - {file = "fonttools-4.41.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:381558eafffc1432d08ca58063e71c7376ecaae48e9318354a90a1049a644845"}, - {file = "fonttools-4.41.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ee75b8ca48f6c48af25e967dce995ef94e46872b35c7d454b983c62c9c7006d"}, - {file = "fonttools-4.41.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d45f28c20bb67dee0f4a4caae709f40b0693d764b7b2bf2d58890f36b1bfcef0"}, - {file = "fonttools-4.41.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5448a87f6ed57ed844b64a05d3792827af584a8584613f6289867f4e77eb603b"}, - {file = "fonttools-4.41.0-cp311-cp311-win32.whl", hash = "sha256:69dbe0154e15b68dd671441ea8f23dad87488b24a6e650d45958f4722819a443"}, - {file = "fonttools-4.41.0-cp311-cp311-win_amd64.whl", hash = "sha256:ea879afd1d6189fca02a85a7868560c9bb8415dccff6b7ae6d81e4f06b3ab30d"}, - {file = "fonttools-4.41.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8f602dd5bcde7e4241419924f23c6f0d66723dd5408a58c3a2f781745c693f45"}, - {file = "fonttools-4.41.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:06eac087ea55b3ebb2207d93b5ac56c847163899f05f5a77e1910f688fe10030"}, - {file = "fonttools-4.41.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e22d0144d735f6c7df770509b8c0c33414bf460df0d5dddc98a159e5dbb10eb"}, - {file = "fonttools-4.41.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19d461c801b8904d201c6c38a99bfcfef673bfdfe0c7f026f582ef78896434e0"}, - {file = "fonttools-4.41.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:72d40a32d6443871ea0d147813caad58394b48729dfa4fbc45dcaac54f9506f2"}, - {file = "fonttools-4.41.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0614b6348866092d00df3dfb37e037fc06412ca67087de361a2777ea5ed62c16"}, - {file = "fonttools-4.41.0-cp38-cp38-win32.whl", hash = "sha256:e43f6c7f9ba4f9d29edee530e45f9aa162872ec9549398b85971477a99f2a806"}, - {file = "fonttools-4.41.0-cp38-cp38-win_amd64.whl", hash = "sha256:eb9dfa87152bd97019adc387b2f29ef6af601de4386f36570ca537ace96d96ed"}, - {file = "fonttools-4.41.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d2dae84a3d0f76884a6102c62f2795b2d6602c2c95cfcce74c8a590b6200e533"}, - {file = "fonttools-4.41.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cc3324e4159e6d1f55c3615b4c1c211f87cc96cc0cc7c946c8447dc1319f2e9d"}, - {file = "fonttools-4.41.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c654b1facf1f3b742e4d9b2dcdf0fa867b1f007b1b4981cc58a75ef5dca2a3c"}, - {file = "fonttools-4.41.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:560ea1a604c927399f36742abf342a4c5f3fee8e8e8a484b774dfe9630bd9a91"}, - {file = "fonttools-4.41.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9387b09694fbf8ac7dcf887069068f81fb4124d05e09557ac7daabfbec1744bd"}, - {file = "fonttools-4.41.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:465d0f24bf4f75160f441793b55076b7a080a57d3a1f738390af2c20bee24fbb"}, - {file = "fonttools-4.41.0-cp39-cp39-win32.whl", hash = "sha256:841c491fa3e9c54e8f9cd5dae059e88f45e086aea090c28be9d42f59c8b99e01"}, - {file = "fonttools-4.41.0-cp39-cp39-win_amd64.whl", hash = "sha256:efd59e83223cb77952997fb850c7a7c2a958c9af0642060f536722c2a9e9d53b"}, - {file = "fonttools-4.41.0-py3-none-any.whl", hash = "sha256:5b1c2b21b40229166a864f2b0aec06d37f0a204066deb1734c93370e0c76339d"}, - {file = "fonttools-4.41.0.tar.gz", hash = "sha256:6faff25991dec48f8cac882055a09ae1a29fd15bc160bc3d663e789e994664c2"}, + {file = "fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d970ecca0aac90d399e458f0b7a8a597e08f95de021f17785fb68e2dc0b99717"}, + {file = "fonttools-4.49.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac9a745b7609f489faa65e1dc842168c18530874a5f5b742ac3dd79e26bca8bc"}, + {file = "fonttools-4.49.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ba0e00620ca28d4ca11fc700806fd69144b463aa3275e1b36e56c7c09915559"}, + {file = "fonttools-4.49.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdee3ab220283057e7840d5fb768ad4c2ebe65bdba6f75d5d7bf47f4e0ed7d29"}, + {file = "fonttools-4.49.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ce7033cb61f2bb65d8849658d3786188afd80f53dad8366a7232654804529532"}, + {file = "fonttools-4.49.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:07bc5ea02bb7bc3aa40a1eb0481ce20e8d9b9642a9536cde0218290dd6085828"}, + {file = "fonttools-4.49.0-cp310-cp310-win32.whl", hash = "sha256:86eef6aab7fd7c6c8545f3ebd00fd1d6729ca1f63b0cb4d621bccb7d1d1c852b"}, + {file = "fonttools-4.49.0-cp310-cp310-win_amd64.whl", hash = "sha256:1fac1b7eebfce75ea663e860e7c5b4a8831b858c17acd68263bc156125201abf"}, + {file = "fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e"}, + {file = "fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814"}, + {file = "fonttools-4.49.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36c8865bdb5cfeec88f5028e7e592370a0657b676c6f1d84a2108e0564f90e22"}, + {file = "fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942"}, + {file = "fonttools-4.49.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8fb022d799b96df3eaa27263e9eea306bd3d437cc9aa981820850281a02b6c9a"}, + {file = "fonttools-4.49.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:33c584c0ef7dc54f5dd4f84082eabd8d09d1871a3d8ca2986b0c0c98165f8e86"}, + {file = "fonttools-4.49.0-cp311-cp311-win32.whl", hash = "sha256:cbe61b158deb09cffdd8540dc4a948d6e8f4d5b4f3bf5cd7db09bd6a61fee64e"}, + {file = "fonttools-4.49.0-cp311-cp311-win_amd64.whl", hash = "sha256:fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6"}, + {file = "fonttools-4.49.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d647a0e697e5daa98c87993726da8281c7233d9d4ffe410812a4896c7c57c075"}, + {file = "fonttools-4.49.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f3bbe672df03563d1f3a691ae531f2e31f84061724c319652039e5a70927167e"}, + {file = "fonttools-4.49.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bebd91041dda0d511b0d303180ed36e31f4f54b106b1259b69fade68413aa7ff"}, + {file = "fonttools-4.49.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4145f91531fd43c50f9eb893faa08399816bb0b13c425667c48475c9f3a2b9b5"}, + {file = "fonttools-4.49.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ea329dafb9670ffbdf4dbc3b0e5c264104abcd8441d56de77f06967f032943cb"}, + {file = "fonttools-4.49.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c076a9e548521ecc13d944b1d261ff3d7825048c338722a4bd126d22316087b7"}, + {file = "fonttools-4.49.0-cp312-cp312-win32.whl", hash = "sha256:b607ea1e96768d13be26d2b400d10d3ebd1456343eb5eaddd2f47d1c4bd00880"}, + {file = "fonttools-4.49.0-cp312-cp312-win_amd64.whl", hash = "sha256:a974c49a981e187381b9cc2c07c6b902d0079b88ff01aed34695ec5360767034"}, + {file = "fonttools-4.49.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b85ec0bdd7bdaa5c1946398cbb541e90a6dfc51df76dfa88e0aaa41b335940cb"}, + {file = "fonttools-4.49.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:af20acbe198a8a790618ee42db192eb128afcdcc4e96d99993aca0b60d1faeb4"}, + {file = "fonttools-4.49.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d418b1fee41a1d14931f7ab4b92dc0bc323b490e41d7a333eec82c9f1780c75"}, + {file = "fonttools-4.49.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b44a52b8e6244b6548851b03b2b377a9702b88ddc21dcaf56a15a0393d425cb9"}, + {file = "fonttools-4.49.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7c7125068e04a70739dad11857a4d47626f2b0bd54de39e8622e89701836eabd"}, + {file = "fonttools-4.49.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:29e89d0e1a7f18bc30f197cfadcbef5a13d99806447c7e245f5667579a808036"}, + {file = "fonttools-4.49.0-cp38-cp38-win32.whl", hash = "sha256:9d95fa0d22bf4f12d2fb7b07a46070cdfc19ef5a7b1c98bc172bfab5bf0d6844"}, + {file = "fonttools-4.49.0-cp38-cp38-win_amd64.whl", hash = "sha256:768947008b4dc552d02772e5ebd49e71430a466e2373008ce905f953afea755a"}, + {file = "fonttools-4.49.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:08877e355d3dde1c11973bb58d4acad1981e6d1140711230a4bfb40b2b937ccc"}, + {file = "fonttools-4.49.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fdb54b076f25d6b0f0298dc706acee5052de20c83530fa165b60d1f2e9cbe3cb"}, + {file = "fonttools-4.49.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0af65c720520710cc01c293f9c70bd69684365c6015cc3671db2b7d807fe51f2"}, + {file = "fonttools-4.49.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f255ce8ed7556658f6d23f6afd22a6d9bbc3edb9b96c96682124dc487e1bf42"}, + {file = "fonttools-4.49.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d00af0884c0e65f60dfaf9340e26658836b935052fdd0439952ae42e44fdd2be"}, + {file = "fonttools-4.49.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:263832fae27481d48dfafcc43174644b6706639661e242902ceb30553557e16c"}, + {file = "fonttools-4.49.0-cp39-cp39-win32.whl", hash = "sha256:0404faea044577a01bb82d47a8fa4bc7a54067fa7e324785dd65d200d6dd1133"}, + {file = "fonttools-4.49.0-cp39-cp39-win_amd64.whl", hash = "sha256:b050d362df50fc6e38ae3954d8c29bf2da52be384649ee8245fdb5186b620836"}, + {file = "fonttools-4.49.0-py3-none-any.whl", hash = "sha256:af281525e5dd7fa0b39fb1667b8d5ca0e2a9079967e14c4bfe90fd1cd13e0f18"}, + {file = "fonttools-4.49.0.tar.gz", hash = "sha256:ebf46e7f01b7af7861310417d7c49591a85d99146fc23a5ba82fdb28af156321"}, ] [package.extras] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.0.0)", "xattr", "zopfli (>=0.1.4)"] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] graphite = ["lz4 (>=1.7.4.2)"] -interpolatable = ["munkres", "scipy"] -lxml = ["lxml (>=4.0,<5)"] +interpolatable = ["munkres", "pycairo", "scipy"] +lxml = ["lxml (>=4.0)"] pathops = ["skia-pathops (>=0.5.0)"] plot = ["matplotlib"] repacker = ["uharfbuzz (>=0.23.0)"] symfont = ["sympy"] type1 = ["xattr"] ufo = ["fs (>=2.2.0,<3)"] -unicode = ["unicodedata2 (>=15.0.0)"] +unicode = ["unicodedata2 (>=15.1.0)"] woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] [[package]] name = "furo" -version = "2023.9.10" +version = "2024.1.29" description = "A clean customisable Sphinx documentation theme." optional = false python-versions = ">=3.8" files = [ - {file = "furo-2023.9.10-py3-none-any.whl", hash = "sha256:513092538537dc5c596691da06e3c370714ec99bc438680edc1debffb73e5bfc"}, - {file = "furo-2023.9.10.tar.gz", hash = "sha256:5707530a476d2a63b8cad83b4f961f3739a69f4b058bcf38a03a39fa537195b2"}, + {file = "furo-2024.1.29-py3-none-any.whl", hash = "sha256:3548be2cef45a32f8cdc0272d415fcb3e5fa6a0eb4ddfe21df3ecf1fe45a13cf"}, + {file = "furo-2024.1.29.tar.gz", hash = "sha256:4d6b2fe3f10a6e36eb9cc24c1e7beb38d7a23fc7b3c382867503b7fcac8a1e02"}, ] [package.dependencies] @@ -779,46 +885,15 @@ files = [ [package.dependencies] setuptools = ">=38.6.0" -[[package]] -name = "gitdb" -version = "4.0.10" -description = "Git Object Database" -optional = false -python-versions = ">=3.7" -files = [ - {file = "gitdb-4.0.10-py3-none-any.whl", hash = "sha256:c286cf298426064079ed96a9e4a9d39e7f3e9bf15ba60701e95f5492f28415c7"}, - {file = "gitdb-4.0.10.tar.gz", hash = "sha256:6eb990b69df4e15bad899ea868dc46572c3f75339735663b81de79b06f17eb9a"}, -] - -[package.dependencies] -smmap = ">=3.0.1,<6" - -[[package]] -name = "gitpython" -version = "3.1.37" -description = "GitPython is a Python library used to interact with Git repositories" -optional = false -python-versions = ">=3.7" -files = [ - {file = "GitPython-3.1.37-py3-none-any.whl", hash = "sha256:5f4c4187de49616d710a77e98ddf17b4782060a1788df441846bddefbb89ab33"}, - {file = "GitPython-3.1.37.tar.gz", hash = "sha256:f9b9ddc0761c125d5780eab2d64be4873fc6817c2899cbcb34b02344bdc7bc54"}, -] - -[package.dependencies] -gitdb = ">=4.0.1,<5" - -[package.extras] -test = ["black", "coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mypy", "pre-commit", "pytest", "pytest-cov", "pytest-sugar"] - [[package]] name = "identify" -version = "2.5.29" +version = "2.5.35" description = "File identification library for Python" optional = false python-versions = ">=3.8" files = [ - {file = "identify-2.5.29-py2.py3-none-any.whl", hash = "sha256:24437fbf6f4d3fe6efd0eb9d67e24dd9106db99af5ceb27996a5f7895f24bf1b"}, - {file = "identify-2.5.29.tar.gz", hash = "sha256:d43d52b86b15918c137e3a74fff5224f60385cd0e9c38e99d07c257f02f151a5"}, + {file = "identify-2.5.35-py2.py3-none-any.whl", hash = "sha256:c4de0081837b211594f8e877a6b4fad7ca32bbfc1a9307fdd61c28bfe923f13e"}, + {file = "identify-2.5.35.tar.gz", hash = "sha256:10a7ca245cfcd756a554a7288159f72ff105ad233c7c4b9c6f0f4d108f5f6791"}, ] [package.extras] @@ -826,13 +901,13 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.4" +version = "3.6" description = "Internationalized Domain Names in Applications (IDNA)" 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"}, + {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, + {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, ] [[package]] @@ -848,40 +923,40 @@ files = [ [[package]] name = "importlib-metadata" -version = "6.8.0" +version = "7.0.1" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, - {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, + {file = "importlib_metadata-7.0.1-py3-none-any.whl", hash = "sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e"}, + {file = "importlib_metadata-7.0.1.tar.gz", hash = "sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc"}, ] [package.dependencies] zipp = ">=0.5" [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] [[package]] name = "importlib-resources" -version = "6.0.0" +version = "6.1.2" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.0.0-py3-none-any.whl", hash = "sha256:d952faee11004c045f785bb5636e8f885bed30dc3c940d5d42798a2a4541c185"}, - {file = "importlib_resources-6.0.0.tar.gz", hash = "sha256:4cf94875a8368bd89531a756df9a9ebe1f150e0f885030b461237bc7f2d905f2"}, + {file = "importlib_resources-6.1.2-py3-none-any.whl", hash = "sha256:9a0a862501dc38b68adebc82970140c9e4209fc99601782925178f8386339938"}, + {file = "importlib_resources-6.1.2.tar.gz", hash = "sha256:308abf8474e2dba5f867d279237cd4076482c3de7104a40b41426370e891549b"}, ] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] [[package]] name = "iniconfig" @@ -896,30 +971,27 @@ files = [ [[package]] name = "isort" -version = "5.12.0" +version = "5.13.2" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.8.0" files = [ - {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, - {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, ] [package.extras] -colors = ["colorama (>=0.4.3)"] -pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] -plugins = ["setuptools"] -requirements-deprecated-finder = ["pip-api", "pipreqs"] +colors = ["colorama (>=0.4.6)"] [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.3" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, + {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, ] [package.dependencies] @@ -1082,121 +1154,146 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "markupsafe" -version = "2.1.3" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] + +[[package]] +name = "marshmallow" +version = "3.21.0" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.8" +files = [ + {file = "marshmallow-3.21.0-py3-none-any.whl", hash = "sha256:e7997f83571c7fd476042c2c188e4ee8a78900ca5e74bd9c8097afa56624e9bd"}, + {file = "marshmallow-3.21.0.tar.gz", hash = "sha256:20f53be28c6e374a711a16165fb22a8dc6003e3f7cda1285e3ca777b9193885b"}, ] +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<4.0)", "tox"] +docs = ["alabaster (==0.7.16)", "autodocsumm (==0.2.12)", "sphinx (==7.2.6)", "sphinx-issues (==4.0.0)", "sphinx-version-warning (==1.1.2)"] +tests = ["pytest", "pytz", "simplejson"] + [[package]] name = "matplotlib" -version = "3.7.2" +version = "3.7.5" description = "Python plotting package" optional = false python-versions = ">=3.8" files = [ - {file = "matplotlib-3.7.2-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:2699f7e73a76d4c110f4f25be9d2496d6ab4f17345307738557d345f099e07de"}, - {file = "matplotlib-3.7.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a8035ba590658bae7562786c9cc6ea1a84aa49d3afab157e414c9e2ea74f496d"}, - {file = "matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2f8e4a49493add46ad4a8c92f63e19d548b2b6ebbed75c6b4c7f46f57d36cdd1"}, - {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71667eb2ccca4c3537d9414b1bc00554cb7f91527c17ee4ec38027201f8f1603"}, - {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:152ee0b569a37630d8628534c628456b28686e085d51394da6b71ef84c4da201"}, - {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:070f8dddd1f5939e60aacb8fa08f19551f4b0140fab16a3669d5cd6e9cb28fc8"}, - {file = "matplotlib-3.7.2-cp310-cp310-win32.whl", hash = "sha256:fdbb46fad4fb47443b5b8ac76904b2e7a66556844f33370861b4788db0f8816a"}, - {file = "matplotlib-3.7.2-cp310-cp310-win_amd64.whl", hash = "sha256:23fb1750934e5f0128f9423db27c474aa32534cec21f7b2153262b066a581fd1"}, - {file = "matplotlib-3.7.2-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:30e1409b857aa8a747c5d4f85f63a79e479835f8dffc52992ac1f3f25837b544"}, - {file = "matplotlib-3.7.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:50e0a55ec74bf2d7a0ebf50ac580a209582c2dd0f7ab51bc270f1b4a0027454e"}, - {file = "matplotlib-3.7.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ac60daa1dc83e8821eed155796b0f7888b6b916cf61d620a4ddd8200ac70cd64"}, - {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:305e3da477dc8607336ba10bac96986d6308d614706cae2efe7d3ffa60465b24"}, - {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c308b255efb9b06b23874236ec0f10f026673ad6515f602027cc8ac7805352d"}, - {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60c521e21031632aa0d87ca5ba0c1c05f3daacadb34c093585a0be6780f698e4"}, - {file = "matplotlib-3.7.2-cp311-cp311-win32.whl", hash = "sha256:26bede320d77e469fdf1bde212de0ec889169b04f7f1179b8930d66f82b30cbc"}, - {file = "matplotlib-3.7.2-cp311-cp311-win_amd64.whl", hash = "sha256:af4860132c8c05261a5f5f8467f1b269bf1c7c23902d75f2be57c4a7f2394b3e"}, - {file = "matplotlib-3.7.2-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:a1733b8e84e7e40a9853e505fe68cc54339f97273bdfe6f3ed980095f769ddc7"}, - {file = "matplotlib-3.7.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d9881356dc48e58910c53af82b57183879129fa30492be69058c5b0d9fddf391"}, - {file = "matplotlib-3.7.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f081c03f413f59390a80b3e351cc2b2ea0205839714dbc364519bcf51f4b56ca"}, - {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1cd120fca3407a225168238b790bd5c528f0fafde6172b140a2f3ab7a4ea63e9"}, - {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2c1590b90aa7bd741b54c62b78de05d4186271e34e2377e0289d943b3522273"}, - {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d2ff3c984b8a569bc1383cd468fc06b70d7b59d5c2854ca39f1436ae8394117"}, - {file = "matplotlib-3.7.2-cp38-cp38-win32.whl", hash = "sha256:5dea00b62d28654b71ca92463656d80646675628d0828e08a5f3b57e12869e13"}, - {file = "matplotlib-3.7.2-cp38-cp38-win_amd64.whl", hash = "sha256:0f506a1776ee94f9e131af1ac6efa6e5bc7cb606a3e389b0ccb6e657f60bb676"}, - {file = "matplotlib-3.7.2-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:6515e878f91894c2e4340d81f0911857998ccaf04dbc1bba781e3d89cbf70608"}, - {file = "matplotlib-3.7.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:71f7a8c6b124e904db550f5b9fe483d28b896d4135e45c4ea381ad3b8a0e3256"}, - {file = "matplotlib-3.7.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:12f01b92ecd518e0697da4d97d163b2b3aa55eb3eb4e2c98235b3396d7dad55f"}, - {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7e28d6396563955f7af437894a36bf2b279462239a41028323e04b85179058b"}, - {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbcf59334ff645e6a67cd5f78b4b2cdb76384cdf587fa0d2dc85f634a72e1a3e"}, - {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:318c89edde72ff95d8df67d82aca03861240512994a597a435a1011ba18dbc7f"}, - {file = "matplotlib-3.7.2-cp39-cp39-win32.whl", hash = "sha256:ce55289d5659b5b12b3db4dc9b7075b70cef5631e56530f14b2945e8836f2d20"}, - {file = "matplotlib-3.7.2-cp39-cp39-win_amd64.whl", hash = "sha256:2ecb5be2b2815431c81dc115667e33da0f5a1bcf6143980d180d09a717c4a12e"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fdcd28360dbb6203fb5219b1a5658df226ac9bebc2542a9e8f457de959d713d0"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c3cca3e842b11b55b52c6fb8bd6a4088693829acbfcdb3e815fa9b7d5c92c1b"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebf577c7a6744e9e1bd3fee45fc74a02710b214f94e2bde344912d85e0c9af7c"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:936bba394682049919dda062d33435b3be211dc3dcaa011e09634f060ec878b2"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bc221ffbc2150458b1cd71cdd9ddd5bb37962b036e41b8be258280b5b01da1dd"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35d74ebdb3f71f112b36c2629cf32323adfbf42679e2751252acd468f5001c07"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:717157e61b3a71d3d26ad4e1770dc85156c9af435659a25ee6407dc866cb258d"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:20f844d6be031948148ba49605c8b96dfe7d3711d1b63592830d650622458c11"}, - {file = "matplotlib-3.7.2.tar.gz", hash = "sha256:a8cdb91dddb04436bd2f098b8fdf4b81352e68cf4d2c6756fcc414791076569b"}, + {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:4a87b69cb1cb20943010f63feb0b2901c17a3b435f75349fd9865713bfa63925"}, + {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d3ce45010fefb028359accebb852ca0c21bd77ec0f281952831d235228f15810"}, + {file = "matplotlib-3.7.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fbea1e762b28400393d71be1a02144aa16692a3c4c676ba0178ce83fc2928fdd"}, + {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec0e1adc0ad70ba8227e957551e25a9d2995e319c29f94a97575bb90fa1d4469"}, + {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6738c89a635ced486c8a20e20111d33f6398a9cbebce1ced59c211e12cd61455"}, + {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1210b7919b4ed94b5573870f316bca26de3e3b07ffdb563e79327dc0e6bba515"}, + {file = "matplotlib-3.7.5-cp310-cp310-win32.whl", hash = "sha256:068ebcc59c072781d9dcdb82f0d3f1458271c2de7ca9c78f5bd672141091e9e1"}, + {file = "matplotlib-3.7.5-cp310-cp310-win_amd64.whl", hash = "sha256:f098ffbaab9df1e3ef04e5a5586a1e6b1791380698e84938d8640961c79b1fc0"}, + {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:f65342c147572673f02a4abec2d5a23ad9c3898167df9b47c149f32ce61ca078"}, + {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4ddf7fc0e0dc553891a117aa083039088d8a07686d4c93fb8a810adca68810af"}, + {file = "matplotlib-3.7.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0ccb830fc29442360d91be48527809f23a5dcaee8da5f4d9b2d5b867c1b087b8"}, + {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efc6bb28178e844d1f408dd4d6341ee8a2e906fc9e0fa3dae497da4e0cab775d"}, + {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b15c4c2d374f249f324f46e883340d494c01768dd5287f8bc00b65b625ab56c"}, + {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d028555421912307845e59e3de328260b26d055c5dac9b182cc9783854e98fb"}, + {file = "matplotlib-3.7.5-cp311-cp311-win32.whl", hash = "sha256:fe184b4625b4052fa88ef350b815559dd90cc6cc8e97b62f966e1ca84074aafa"}, + {file = "matplotlib-3.7.5-cp311-cp311-win_amd64.whl", hash = "sha256:084f1f0f2f1010868c6f1f50b4e1c6f2fb201c58475494f1e5b66fed66093647"}, + {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_universal2.whl", hash = "sha256:34bceb9d8ddb142055ff27cd7135f539f2f01be2ce0bafbace4117abe58f8fe4"}, + {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c5a2134162273eb8cdfd320ae907bf84d171de948e62180fa372a3ca7cf0f433"}, + {file = "matplotlib-3.7.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:039ad54683a814002ff37bf7981aa1faa40b91f4ff84149beb53d1eb64617980"}, + {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d742ccd1b09e863b4ca58291728db645b51dab343eebb08d5d4b31b308296ce"}, + {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:743b1c488ca6a2bc7f56079d282e44d236bf375968bfd1b7ba701fd4d0fa32d6"}, + {file = "matplotlib-3.7.5-cp312-cp312-win_amd64.whl", hash = "sha256:fbf730fca3e1f23713bc1fae0a57db386e39dc81ea57dc305c67f628c1d7a342"}, + {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:cfff9b838531698ee40e40ea1a8a9dc2c01edb400b27d38de6ba44c1f9a8e3d2"}, + {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:1dbcca4508bca7847fe2d64a05b237a3dcaec1f959aedb756d5b1c67b770c5ee"}, + {file = "matplotlib-3.7.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4cdf4ef46c2a1609a50411b66940b31778db1e4b73d4ecc2eaa40bd588979b13"}, + {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:167200ccfefd1674b60e957186dfd9baf58b324562ad1a28e5d0a6b3bea77905"}, + {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:53e64522934df6e1818b25fd48cf3b645b11740d78e6ef765fbb5fa5ce080d02"}, + {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3e3bc79b2d7d615067bd010caff9243ead1fc95cf735c16e4b2583173f717eb"}, + {file = "matplotlib-3.7.5-cp38-cp38-win32.whl", hash = "sha256:6b641b48c6819726ed47c55835cdd330e53747d4efff574109fd79b2d8a13748"}, + {file = "matplotlib-3.7.5-cp38-cp38-win_amd64.whl", hash = "sha256:f0b60993ed3488b4532ec6b697059897891927cbfc2b8d458a891b60ec03d9d7"}, + {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:090964d0afaff9c90e4d8de7836757e72ecfb252fb02884016d809239f715651"}, + {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:9fc6fcfbc55cd719bc0bfa60bde248eb68cf43876d4c22864603bdd23962ba25"}, + {file = "matplotlib-3.7.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7cc3078b019bb863752b8b60e8b269423000f1603cb2299608231996bd9d54"}, + {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e4e9a868e8163abaaa8259842d85f949a919e1ead17644fb77a60427c90473c"}, + {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa7ebc995a7d747dacf0a717d0eb3aa0f0c6a0e9ea88b0194d3a3cd241a1500f"}, + {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3785bfd83b05fc0e0c2ae4c4a90034fe693ef96c679634756c50fe6efcc09856"}, + {file = "matplotlib-3.7.5-cp39-cp39-win32.whl", hash = "sha256:29b058738c104d0ca8806395f1c9089dfe4d4f0f78ea765c6c704469f3fffc81"}, + {file = "matplotlib-3.7.5-cp39-cp39-win_amd64.whl", hash = "sha256:fd4028d570fa4b31b7b165d4a685942ae9cdc669f33741e388c01857d9723eab"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2a9a3f4d6a7f88a62a6a18c7e6a84aedcaf4faf0708b4ca46d87b19f1b526f88"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9b3fd853d4a7f008a938df909b96db0b454225f935d3917520305b90680579c"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0ad550da9f160737d7890217c5eeed4337d07e83ca1b2ca6535078f354e7675"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:20da7924a08306a861b3f2d1da0d1aa9a6678e480cf8eacffe18b565af2813e7"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b45c9798ea6bb920cb77eb7306409756a7fab9db9b463e462618e0559aecb30e"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a99866267da1e561c7776fe12bf4442174b79aac1a47bd7e627c7e4d077ebd83"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b6aa62adb6c268fc87d80f963aca39c64615c31830b02697743c95590ce3fbb"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e530ab6a0afd082d2e9c17eb1eb064a63c5b09bb607b2b74fa41adbe3e162286"}, + {file = "matplotlib-3.7.5.tar.gz", hash = "sha256:1e5c971558ebc811aa07f54c7b7c677d78aa518ef4c390e14673a09e0860184a"}, ] [package.dependencies] @@ -1205,10 +1302,10 @@ cycler = ">=0.10" fonttools = ">=4.22.0" importlib-resources = {version = ">=3.2.0", markers = "python_version < \"3.10\""} kiwisolver = ">=1.0.1" -numpy = ">=1.20" +numpy = ">=1.20,<2" packaging = ">=20.0" pillow = ">=6.2.0" -pyparsing = ">=2.3.1,<3.1" +pyparsing = ">=2.3.1" python-dateutil = ">=2.7" [[package]] @@ -1254,37 +1351,38 @@ files = [ [[package]] name = "mypy" -version = "1.4.1" +version = "1.8.0" description = "Optional static typing for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mypy-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:566e72b0cd6598503e48ea610e0052d1b8168e60a46e0bfd34b3acf2d57f96a8"}, - {file = "mypy-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca637024ca67ab24a7fd6f65d280572c3794665eaf5edcc7e90a866544076878"}, - {file = "mypy-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dde1d180cd84f0624c5dcaaa89c89775550a675aff96b5848de78fb11adabcd"}, - {file = "mypy-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8c4d8e89aa7de683e2056a581ce63c46a0c41e31bd2b6d34144e2c80f5ea53dc"}, - {file = "mypy-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:bfdca17c36ae01a21274a3c387a63aa1aafe72bff976522886869ef131b937f1"}, - {file = "mypy-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7549fbf655e5825d787bbc9ecf6028731973f78088fbca3a1f4145c39ef09462"}, - {file = "mypy-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98324ec3ecf12296e6422939e54763faedbfcc502ea4a4c38502082711867258"}, - {file = "mypy-1.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:141dedfdbfe8a04142881ff30ce6e6653c9685b354876b12e4fe6c78598b45e2"}, - {file = "mypy-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8207b7105829eca6f3d774f64a904190bb2231de91b8b186d21ffd98005f14a7"}, - {file = "mypy-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:16f0db5b641ba159eff72cff08edc3875f2b62b2fa2bc24f68c1e7a4e8232d01"}, - {file = "mypy-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:470c969bb3f9a9efcedbadcd19a74ffb34a25f8e6b0e02dae7c0e71f8372f97b"}, - {file = "mypy-1.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5952d2d18b79f7dc25e62e014fe5a23eb1a3d2bc66318df8988a01b1a037c5b"}, - {file = "mypy-1.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:190b6bab0302cec4e9e6767d3eb66085aef2a1cc98fe04936d8a42ed2ba77bb7"}, - {file = "mypy-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9d40652cc4fe33871ad3338581dca3297ff5f2213d0df345bcfbde5162abf0c9"}, - {file = "mypy-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:01fd2e9f85622d981fd9063bfaef1aed6e336eaacca00892cd2d82801ab7c042"}, - {file = "mypy-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2460a58faeea905aeb1b9b36f5065f2dc9a9c6e4c992a6499a2360c6c74ceca3"}, - {file = "mypy-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2746d69a8196698146a3dbe29104f9eb6a2a4d8a27878d92169a6c0b74435b6"}, - {file = "mypy-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ae704dcfaa180ff7c4cfbad23e74321a2b774f92ca77fd94ce1049175a21c97f"}, - {file = "mypy-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:43d24f6437925ce50139a310a64b2ab048cb2d3694c84c71c3f2a1626d8101dc"}, - {file = "mypy-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c482e1246726616088532b5e964e39765b6d1520791348e6c9dc3af25b233828"}, - {file = "mypy-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:43b592511672017f5b1a483527fd2684347fdffc041c9ef53428c8dc530f79a3"}, - {file = "mypy-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34a9239d5b3502c17f07fd7c0b2ae6b7dd7d7f6af35fbb5072c6208e76295816"}, - {file = "mypy-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5703097c4936bbb9e9bce41478c8d08edd2865e177dc4c52be759f81ee4dd26c"}, - {file = "mypy-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e02d700ec8d9b1859790c0475df4e4092c7bf3272a4fd2c9f33d87fac4427b8f"}, - {file = "mypy-1.4.1-py3-none-any.whl", hash = "sha256:45d32cec14e7b97af848bddd97d85ea4f0db4d5a149ed9676caa4eb2f7402bb4"}, - {file = "mypy-1.4.1.tar.gz", hash = "sha256:9bbcd9ab8ea1f2e1c8031c21445b511442cc45c89951e49bbf852cbb70755b1b"}, + {file = "mypy-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:485a8942f671120f76afffff70f259e1cd0f0cfe08f81c05d8816d958d4577d3"}, + {file = "mypy-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:df9824ac11deaf007443e7ed2a4a26bebff98d2bc43c6da21b2b64185da011c4"}, + {file = "mypy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2afecd6354bbfb6e0160f4e4ad9ba6e4e003b767dd80d85516e71f2e955ab50d"}, + {file = "mypy-1.8.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8963b83d53ee733a6e4196954502b33567ad07dfd74851f32be18eb932fb1cb9"}, + {file = "mypy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:e46f44b54ebddbeedbd3d5b289a893219065ef805d95094d16a0af6630f5d410"}, + {file = "mypy-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:855fe27b80375e5c5878492f0729540db47b186509c98dae341254c8f45f42ae"}, + {file = "mypy-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c886c6cce2d070bd7df4ec4a05a13ee20c0aa60cb587e8d1265b6c03cf91da3"}, + {file = "mypy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d19c413b3c07cbecf1f991e2221746b0d2a9410b59cb3f4fb9557f0365a1a817"}, + {file = "mypy-1.8.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9261ed810972061388918c83c3f5cd46079d875026ba97380f3e3978a72f503d"}, + {file = "mypy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:51720c776d148bad2372ca21ca29256ed483aa9a4cdefefcef49006dff2a6835"}, + {file = "mypy-1.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:52825b01f5c4c1c4eb0db253ec09c7aa17e1a7304d247c48b6f3599ef40db8bd"}, + {file = "mypy-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f5ac9a4eeb1ec0f1ccdc6f326bcdb464de5f80eb07fb38b5ddd7b0de6bc61e55"}, + {file = "mypy-1.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afe3fe972c645b4632c563d3f3eff1cdca2fa058f730df2b93a35e3b0c538218"}, + {file = "mypy-1.8.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:42c6680d256ab35637ef88891c6bd02514ccb7e1122133ac96055ff458f93fc3"}, + {file = "mypy-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:720a5ca70e136b675af3af63db533c1c8c9181314d207568bbe79051f122669e"}, + {file = "mypy-1.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:028cf9f2cae89e202d7b6593cd98db6759379f17a319b5faf4f9978d7084cdc6"}, + {file = "mypy-1.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4e6d97288757e1ddba10dd9549ac27982e3e74a49d8d0179fc14d4365c7add66"}, + {file = "mypy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f1478736fcebb90f97e40aff11a5f253af890c845ee0c850fe80aa060a267c6"}, + {file = "mypy-1.8.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42419861b43e6962a649068a61f4a4839205a3ef525b858377a960b9e2de6e0d"}, + {file = "mypy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:2b5b6c721bd4aabaadead3a5e6fa85c11c6c795e0c81a7215776ef8afc66de02"}, + {file = "mypy-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5c1538c38584029352878a0466f03a8ee7547d7bd9f641f57a0f3017a7c905b8"}, + {file = "mypy-1.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ef4be7baf08a203170f29e89d79064463b7fc7a0908b9d0d5114e8009c3a259"}, + {file = "mypy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7178def594014aa6c35a8ff411cf37d682f428b3b5617ca79029d8ae72f5402b"}, + {file = "mypy-1.8.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab3c84fa13c04aeeeabb2a7f67a25ef5d77ac9d6486ff33ded762ef353aa5592"}, + {file = "mypy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:99b00bc72855812a60d253420d8a2eae839b0afa4938f09f4d2aa9bb4654263a"}, + {file = "mypy-1.8.0-py3-none-any.whl", hash = "sha256:538fd81bb5e430cc1381a443971c0475582ff9f434c16cd46d2c66763ce85d9d"}, + {file = "mypy-1.8.0.tar.gz", hash = "sha256:6ff8b244d7085a0b425b56d327b480c3b29cafbd2eff27316a004f9a7391ae07"}, ] [package.dependencies] @@ -1295,7 +1393,7 @@ typing-extensions = ">=4.1.0" [package.extras] dmypy = ["psutil (>=4.0)"] install-types = ["pip"] -python2 = ["typed-ast (>=1.4.0,<2)"] +mypyc = ["setuptools (>=50)"] reports = ["lxml"] [[package]] @@ -1402,14 +1500,33 @@ files = [ {file = "opencv_python-4.8.1.78-cp37-abi3-win_amd64.whl", hash = "sha256:b983197f97cfa6fcb74e1da1802c7497a6f94ed561aba6980f1f33123f904956"}, ] +[package.dependencies] +numpy = {version = ">=1.23.5", markers = "python_version >= \"3.11\""} + +[[package]] +name = "opencv-python" +version = "4.9.0.80" +description = "Wrapper package for OpenCV python bindings." +optional = false +python-versions = ">=3.6" +files = [ + {file = "opencv-python-4.9.0.80.tar.gz", hash = "sha256:1a9f0e6267de3a1a1db0c54213d022c7c8b5b9ca4b580e80bdc58516c922c9e1"}, + {file = "opencv_python-4.9.0.80-cp37-abi3-macosx_10_16_x86_64.whl", hash = "sha256:7e5f7aa4486651a6ebfa8ed4b594b65bd2d2f41beeb4241a3e4b1b85acbbbadb"}, + {file = "opencv_python-4.9.0.80-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:71dfb9555ccccdd77305fc3dcca5897fbf0cf28b297c51ee55e079c065d812a3"}, + {file = "opencv_python-4.9.0.80-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b34a52e9da36dda8c151c6394aed602e4b17fa041df0b9f5b93ae10b0fcca2a"}, + {file = "opencv_python-4.9.0.80-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4088cab82b66a3b37ffc452976b14a3c599269c247895ae9ceb4066d8188a57"}, + {file = "opencv_python-4.9.0.80-cp37-abi3-win32.whl", hash = "sha256:dcf000c36dd1651118a2462257e3a9e76db789a78432e1f303c7bac54f63ef6c"}, + {file = "opencv_python-4.9.0.80-cp37-abi3-win_amd64.whl", hash = "sha256:3f16f08e02b2a2da44259c7cc712e779eff1dd8b55fdb0323e8cab09548086c0"}, +] + [package.dependencies] numpy = [ {version = ">=1.21.0", markers = "python_version <= \"3.9\" and platform_system == \"Darwin\" and platform_machine == \"arm64\" and python_version >= \"3.8\""}, - {version = ">=1.23.5", markers = "python_version >= \"3.11\""}, - {version = ">=1.21.4", markers = "python_version >= \"3.10\" and platform_system == \"Darwin\" and python_version < \"3.11\""}, - {version = ">=1.21.2", markers = "platform_system != \"Darwin\" and python_version >= \"3.10\" and python_version < \"3.11\""}, {version = ">=1.19.3", markers = "platform_system == \"Linux\" and platform_machine == \"aarch64\" and python_version >= \"3.8\" and python_version < \"3.10\" or python_version > \"3.9\" and python_version < \"3.10\" or python_version >= \"3.9\" and platform_system != \"Darwin\" and python_version < \"3.10\" or python_version >= \"3.9\" and platform_machine != \"arm64\" and python_version < \"3.10\""}, {version = ">=1.17.3", markers = "(platform_system != \"Darwin\" and platform_system != \"Linux\") and python_version >= \"3.8\" and python_version < \"3.9\" or platform_system != \"Darwin\" and python_version >= \"3.8\" and python_version < \"3.9\" and platform_machine != \"aarch64\" or platform_machine != \"arm64\" and python_version >= \"3.8\" and python_version < \"3.9\" and platform_system != \"Linux\" or (platform_machine != \"arm64\" and platform_machine != \"aarch64\") and python_version >= \"3.8\" and python_version < \"3.9\""}, + {version = ">=1.23.5", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, + {version = ">=1.21.4", markers = "python_version >= \"3.10\" and platform_system == \"Darwin\" and python_version < \"3.11\""}, + {version = ">=1.21.2", markers = "platform_system != \"Darwin\" and python_version >= \"3.10\" and python_version < \"3.11\""}, ] [[package]] @@ -1428,13 +1545,13 @@ et-xmlfile = "*" [[package]] name = "packaging" -version = "23.1" +version = "23.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, - {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, ] [[package]] @@ -1487,24 +1604,24 @@ test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] [[package]] name = "pathspec" -version = "0.11.1" +version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"}, - {file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"}, + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] name = "pbr" -version = "5.11.1" +version = "6.0.0" description = "Python Build Reasonableness" optional = false python-versions = ">=2.6" files = [ - {file = "pbr-5.11.1-py2.py3-none-any.whl", hash = "sha256:567f09558bae2b3ab53cb3c1e2e33e726ff3338e7bae3db5dc954b3a44eef12b"}, - {file = "pbr-5.11.1.tar.gz", hash = "sha256:aefc51675b0b533d56bb5fd1c8c6c0522fe31896679882e1c4c63d5e4a0fccb3"}, + {file = "pbr-6.0.0-py2.py3-none-any.whl", hash = "sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda"}, + {file = "pbr-6.0.0.tar.gz", hash = "sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9"}, ] [[package]] @@ -1543,97 +1660,113 @@ flake8 = ">=5.0.0" [[package]] name = "pillow" -version = "10.0.0" +version = "10.2.0" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.8" files = [ - {file = "Pillow-10.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1f62406a884ae75fb2f818694469519fb685cc7eaff05d3451a9ebe55c646891"}, - {file = "Pillow-10.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d5db32e2a6ccbb3d34d87c87b432959e0db29755727afb37290e10f6e8e62614"}, - {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edf4392b77bdc81f36e92d3a07a5cd072f90253197f4a52a55a8cec48a12483b"}, - {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:520f2a520dc040512699f20fa1c363eed506e94248d71f85412b625026f6142c"}, - {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:8c11160913e3dd06c8ffdb5f233a4f254cb449f4dfc0f8f4549eda9e542c93d1"}, - {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a74ba0c356aaa3bb8e3eb79606a87669e7ec6444be352870623025d75a14a2bf"}, - {file = "Pillow-10.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5d0dae4cfd56969d23d94dc8e89fb6a217be461c69090768227beb8ed28c0a3"}, - {file = "Pillow-10.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22c10cc517668d44b211717fd9775799ccec4124b9a7f7b3635fc5386e584992"}, - {file = "Pillow-10.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:dffe31a7f47b603318c609f378ebcd57f1554a3a6a8effbc59c3c69f804296de"}, - {file = "Pillow-10.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:9fb218c8a12e51d7ead2a7c9e101a04982237d4855716af2e9499306728fb485"}, - {file = "Pillow-10.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d35e3c8d9b1268cbf5d3670285feb3528f6680420eafe35cccc686b73c1e330f"}, - {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ed64f9ca2f0a95411e88a4efbd7a29e5ce2cea36072c53dd9d26d9c76f753b3"}, - {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b6eb5502f45a60a3f411c63187db83a3d3107887ad0d036c13ce836f8a36f1d"}, - {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:c1fbe7621c167ecaa38ad29643d77a9ce7311583761abf7836e1510c580bf3dd"}, - {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:cd25d2a9d2b36fcb318882481367956d2cf91329f6892fe5d385c346c0649629"}, - {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3b08d4cc24f471b2c8ca24ec060abf4bebc6b144cb89cba638c720546b1cf538"}, - {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d737a602fbd82afd892ca746392401b634e278cb65d55c4b7a8f48e9ef8d008d"}, - {file = "Pillow-10.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:3a82c40d706d9aa9734289740ce26460a11aeec2d9c79b7af87bb35f0073c12f"}, - {file = "Pillow-10.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:bc2ec7c7b5d66b8ec9ce9f720dbb5fa4bace0f545acd34870eff4a369b44bf37"}, - {file = "Pillow-10.0.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:d80cf684b541685fccdd84c485b31ce73fc5c9b5d7523bf1394ce134a60c6883"}, - {file = "Pillow-10.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76de421f9c326da8f43d690110f0e79fe3ad1e54be811545d7d91898b4c8493e"}, - {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ff539a12457809666fef6624684c008e00ff6bf455b4b89fd00a140eecd640"}, - {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce543ed15570eedbb85df19b0a1a7314a9c8141a36ce089c0a894adbfccb4568"}, - {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:685ac03cc4ed5ebc15ad5c23bc555d68a87777586d970c2c3e216619a5476223"}, - {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d72e2ecc68a942e8cf9739619b7f408cc7b272b279b56b2c83c6123fcfa5cdff"}, - {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d50b6aec14bc737742ca96e85d6d0a5f9bfbded018264b3b70ff9d8c33485551"}, - {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:00e65f5e822decd501e374b0650146063fbb30a7264b4d2744bdd7b913e0cab5"}, - {file = "Pillow-10.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:f31f9fdbfecb042d046f9d91270a0ba28368a723302786c0009ee9b9f1f60199"}, - {file = "Pillow-10.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:1ce91b6ec08d866b14413d3f0bbdea7e24dfdc8e59f562bb77bc3fe60b6144ca"}, - {file = "Pillow-10.0.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:349930d6e9c685c089284b013478d6f76e3a534e36ddfa912cde493f235372f3"}, - {file = "Pillow-10.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3a684105f7c32488f7153905a4e3015a3b6c7182e106fe3c37fbb5ef3e6994c3"}, - {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4f69b3700201b80bb82c3a97d5e9254084f6dd5fb5b16fc1a7b974260f89f43"}, - {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f07ea8d2f827d7d2a49ecf1639ec02d75ffd1b88dcc5b3a61bbb37a8759ad8d"}, - {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:040586f7d37b34547153fa383f7f9aed68b738992380ac911447bb78f2abe530"}, - {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:f88a0b92277de8e3ca715a0d79d68dc82807457dae3ab8699c758f07c20b3c51"}, - {file = "Pillow-10.0.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c7cf14a27b0d6adfaebb3ae4153f1e516df54e47e42dcc073d7b3d76111a8d86"}, - {file = "Pillow-10.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3400aae60685b06bb96f99a21e1ada7bc7a413d5f49bce739828ecd9391bb8f7"}, - {file = "Pillow-10.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:dbc02381779d412145331789b40cc7b11fdf449e5d94f6bc0b080db0a56ea3f0"}, - {file = "Pillow-10.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:9211e7ad69d7c9401cfc0e23d49b69ca65ddd898976d660a2fa5904e3d7a9baa"}, - {file = "Pillow-10.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:faaf07ea35355b01a35cb442dd950d8f1bb5b040a7787791a535de13db15ed90"}, - {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9f72a021fbb792ce98306ffb0c348b3c9cb967dce0f12a49aa4c3d3fdefa967"}, - {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f7c16705f44e0504a3a2a14197c1f0b32a95731d251777dcb060aa83022cb2d"}, - {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:76edb0a1fa2b4745fb0c99fb9fb98f8b180a1bbceb8be49b087e0b21867e77d3"}, - {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:368ab3dfb5f49e312231b6f27b8820c823652b7cd29cfbd34090565a015e99ba"}, - {file = "Pillow-10.0.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:608bfdee0d57cf297d32bcbb3c728dc1da0907519d1784962c5f0c68bb93e5a3"}, - {file = "Pillow-10.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5c6e3df6bdd396749bafd45314871b3d0af81ff935b2d188385e970052091017"}, - {file = "Pillow-10.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:7be600823e4c8631b74e4a0d38384c73f680e6105a7d3c6824fcf226c178c7e6"}, - {file = "Pillow-10.0.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:92be919bbc9f7d09f7ae343c38f5bb21c973d2576c1d45600fce4b74bafa7ac0"}, - {file = "Pillow-10.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8182b523b2289f7c415f589118228d30ac8c355baa2f3194ced084dac2dbba"}, - {file = "Pillow-10.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:38250a349b6b390ee6047a62c086d3817ac69022c127f8a5dc058c31ccef17f3"}, - {file = "Pillow-10.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:88af2003543cc40c80f6fca01411892ec52b11021b3dc22ec3bc9d5afd1c5334"}, - {file = "Pillow-10.0.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:c189af0545965fa8d3b9613cfdb0cd37f9d71349e0f7750e1fd704648d475ed2"}, - {file = "Pillow-10.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce7b031a6fc11365970e6a5686d7ba8c63e4c1cf1ea143811acbb524295eabed"}, - {file = "Pillow-10.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:db24668940f82321e746773a4bc617bfac06ec831e5c88b643f91f122a785684"}, - {file = "Pillow-10.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:efe8c0681042536e0d06c11f48cebe759707c9e9abf880ee213541c5b46c5bf3"}, - {file = "Pillow-10.0.0.tar.gz", hash = "sha256:9c82b5b3e043c7af0d95792d0d20ccf68f61a1fec6b3530e718b688422727396"}, + {file = "pillow-10.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e"}, + {file = "pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2"}, + {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c"}, + {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0"}, + {file = "pillow-10.2.0-cp310-cp310-win32.whl", hash = "sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023"}, + {file = "pillow-10.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72"}, + {file = "pillow-10.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad"}, + {file = "pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5"}, + {file = "pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67"}, + {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61"}, + {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e"}, + {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f"}, + {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311"}, + {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1"}, + {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757"}, + {file = "pillow-10.2.0-cp311-cp311-win32.whl", hash = "sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068"}, + {file = "pillow-10.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56"}, + {file = "pillow-10.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1"}, + {file = "pillow-10.2.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef"}, + {file = "pillow-10.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04"}, + {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f"}, + {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb"}, + {file = "pillow-10.2.0-cp312-cp312-win32.whl", hash = "sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f"}, + {file = "pillow-10.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9"}, + {file = "pillow-10.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48"}, + {file = "pillow-10.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9"}, + {file = "pillow-10.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483"}, + {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129"}, + {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e"}, + {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213"}, + {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d"}, + {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6"}, + {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe"}, + {file = "pillow-10.2.0-cp38-cp38-win32.whl", hash = "sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e"}, + {file = "pillow-10.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39"}, + {file = "pillow-10.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67"}, + {file = "pillow-10.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364"}, + {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb"}, + {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e"}, + {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01"}, + {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13"}, + {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7"}, + {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591"}, + {file = "pillow-10.2.0-cp39-cp39-win32.whl", hash = "sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516"}, + {file = "pillow-10.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8"}, + {file = "pillow-10.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6"}, + {file = "pillow-10.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868"}, + {file = "pillow-10.2.0.tar.gz", hash = "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e"}, ] [package.extras] docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] [[package]] name = "platformdirs" -version = "3.8.1" +version = "4.2.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "platformdirs-3.8.1-py3-none-any.whl", hash = "sha256:cec7b889196b9144d088e4c57d9ceef7374f6c39694ad1577a0aab50d27ea28c"}, - {file = "platformdirs-3.8.1.tar.gz", hash = "sha256:f87ca4fcff7d2b0f81c6a748a77973d7af0f4d526f98f308477c3c436c74d528"}, + {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, + {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, ] [package.extras] -docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)"] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] [[package]] name = "pluggy" -version = "1.2.0" +version = "1.4.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, - {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, + {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, + {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, ] [package.extras] @@ -1642,13 +1775,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "3.4.0" +version = "3.5.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false python-versions = ">=3.8" files = [ - {file = "pre_commit-3.4.0-py2.py3-none-any.whl", hash = "sha256:96d529a951f8b677f730a7212442027e8ba53f9b04d217c4c67dc56c393ad945"}, - {file = "pre_commit-3.4.0.tar.gz", hash = "sha256:6bbd5129a64cad4c0dfaeeb12cd8f7ea7e15b77028d985341478c8af3c759522"}, + {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] @@ -1660,13 +1793,13 @@ virtualenv = ">=20.10.0" [[package]] name = "pre-commit-hooks" -version = "4.4.0" +version = "4.5.0" description = "Some out-of-the-box hooks for pre-commit." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pre_commit_hooks-4.4.0-py2.py3-none-any.whl", hash = "sha256:fc8837335476221ccccda3d176ed6ae29fe58753ce7e8b7863f5d0f987328fc6"}, - {file = "pre_commit_hooks-4.4.0.tar.gz", hash = "sha256:7011eed8e1a25cde94693da009cba76392194cecc2f3f06c51a44ea6ad6c2af9"}, + {file = "pre_commit_hooks-4.5.0-py2.py3-none-any.whl", hash = "sha256:b779d5c44ede9b1fda48e2d96b08e9aa5b1d2fdb8903ca09f0dbaca22d529edb"}, + {file = "pre_commit_hooks-4.5.0.tar.gz", hash = "sha256:ffbe2af1c85ac9a7695866955680b4dee98822638b748a6f3debefad79748c8a"}, ] [package.dependencies] @@ -1695,6 +1828,58 @@ files = [ {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, ] +[[package]] +name = "pydantic" +version = "1.10.14" +description = "Data validation and settings management using python type hints" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic-1.10.14-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7f4fcec873f90537c382840f330b90f4715eebc2bc9925f04cb92de593eae054"}, + {file = "pydantic-1.10.14-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e3a76f571970fcd3c43ad982daf936ae39b3e90b8a2e96c04113a369869dc87"}, + {file = "pydantic-1.10.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d886bd3c3fbeaa963692ef6b643159ccb4b4cefaf7ff1617720cbead04fd1d"}, + {file = "pydantic-1.10.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:798a3d05ee3b71967844a1164fd5bdb8c22c6d674f26274e78b9f29d81770c4e"}, + {file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:23d47a4b57a38e8652bcab15a658fdb13c785b9ce217cc3a729504ab4e1d6bc9"}, + {file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f9f674b5c3bebc2eba401de64f29948ae1e646ba2735f884d1594c5f675d6f2a"}, + {file = "pydantic-1.10.14-cp310-cp310-win_amd64.whl", hash = "sha256:24a7679fab2e0eeedb5a8924fc4a694b3bcaac7d305aeeac72dd7d4e05ecbebf"}, + {file = "pydantic-1.10.14-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9d578ac4bf7fdf10ce14caba6f734c178379bd35c486c6deb6f49006e1ba78a7"}, + {file = "pydantic-1.10.14-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa7790e94c60f809c95602a26d906eba01a0abee9cc24150e4ce2189352deb1b"}, + {file = "pydantic-1.10.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad4e10efa5474ed1a611b6d7f0d130f4aafadceb73c11d9e72823e8f508e663"}, + {file = "pydantic-1.10.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1245f4f61f467cb3dfeced2b119afef3db386aec3d24a22a1de08c65038b255f"}, + {file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:21efacc678a11114c765eb52ec0db62edffa89e9a562a94cbf8fa10b5db5c046"}, + {file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:412ab4a3f6dbd2bf18aefa9f79c7cca23744846b31f1d6555c2ee2b05a2e14ca"}, + {file = "pydantic-1.10.14-cp311-cp311-win_amd64.whl", hash = "sha256:e897c9f35281f7889873a3e6d6b69aa1447ceb024e8495a5f0d02ecd17742a7f"}, + {file = "pydantic-1.10.14-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d604be0f0b44d473e54fdcb12302495fe0467c56509a2f80483476f3ba92b33c"}, + {file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a42c7d17706911199798d4c464b352e640cab4351efe69c2267823d619a937e5"}, + {file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:596f12a1085e38dbda5cbb874d0973303e34227b400b6414782bf205cc14940c"}, + {file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bfb113860e9288d0886e3b9e49d9cf4a9d48b441f52ded7d96db7819028514cc"}, + {file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bc3ed06ab13660b565eed80887fcfbc0070f0aa0691fbb351657041d3e874efe"}, + {file = "pydantic-1.10.14-cp37-cp37m-win_amd64.whl", hash = "sha256:ad8c2bc677ae5f6dbd3cf92f2c7dc613507eafe8f71719727cbc0a7dec9a8c01"}, + {file = "pydantic-1.10.14-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c37c28449752bb1f47975d22ef2882d70513c546f8f37201e0fec3a97b816eee"}, + {file = "pydantic-1.10.14-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:49a46a0994dd551ec051986806122767cf144b9702e31d47f6d493c336462597"}, + {file = "pydantic-1.10.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53e3819bd20a42470d6dd0fe7fc1c121c92247bca104ce608e609b59bc7a77ee"}, + {file = "pydantic-1.10.14-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbb503bbbbab0c588ed3cd21975a1d0d4163b87e360fec17a792f7d8c4ff29f"}, + {file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:336709883c15c050b9c55a63d6c7ff09be883dbc17805d2b063395dd9d9d0022"}, + {file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4ae57b4d8e3312d486e2498d42aed3ece7b51848336964e43abbf9671584e67f"}, + {file = "pydantic-1.10.14-cp38-cp38-win_amd64.whl", hash = "sha256:dba49d52500c35cfec0b28aa8b3ea5c37c9df183ffc7210b10ff2a415c125c4a"}, + {file = "pydantic-1.10.14-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c66609e138c31cba607d8e2a7b6a5dc38979a06c900815495b2d90ce6ded35b4"}, + {file = "pydantic-1.10.14-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d986e115e0b39604b9eee3507987368ff8148222da213cd38c359f6f57b3b347"}, + {file = "pydantic-1.10.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:646b2b12df4295b4c3148850c85bff29ef6d0d9621a8d091e98094871a62e5c7"}, + {file = "pydantic-1.10.14-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282613a5969c47c83a8710cc8bfd1e70c9223feb76566f74683af889faadc0ea"}, + {file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:466669501d08ad8eb3c4fecd991c5e793c4e0bbd62299d05111d4f827cded64f"}, + {file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:13e86a19dca96373dcf3190fcb8797d40a6f12f154a244a8d1e8e03b8f280593"}, + {file = "pydantic-1.10.14-cp39-cp39-win_amd64.whl", hash = "sha256:08b6ec0917c30861e3fe71a93be1648a2aa4f62f866142ba21670b24444d7fd8"}, + {file = "pydantic-1.10.14-py3-none-any.whl", hash = "sha256:8ee853cd12ac2ddbf0ecbac1c289f95882b2d4482258048079d13be700aa114c"}, + {file = "pydantic-1.10.14.tar.gz", hash = "sha256:46f17b832fe27de7850896f3afee50ea682220dd218f7e9c88d436788419dca6"}, +] + +[package.dependencies] +typing-extensions = ">=4.2.0" + +[package.extras] +dotenv = ["python-dotenv (>=0.10.4)"] +email = ["email-validator (>=1.0.3)"] + [[package]] name = "pyflakes" version = "2.5.0" @@ -1708,27 +1893,28 @@ files = [ [[package]] name = "pygments" -version = "2.15.1" +version = "2.17.2" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.7" files = [ - {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"}, - {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"}, + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, ] [package.extras] plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyparsing" -version = "3.0.9" +version = "3.1.1" description = "pyparsing module - Classes and methods to define and execute parsing grammars" 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"}, + {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, + {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, ] [package.extras] @@ -1736,34 +1922,34 @@ diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pypdf" -version = "3.12.1" +version = "3.17.4" description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files" optional = false python-versions = ">=3.6" files = [ - {file = "pypdf-3.12.1-py3-none-any.whl", hash = "sha256:74aa287c83e9aad2ce4a3627458dad729e39b5deae52175fe9f97bfffdde41bc"}, - {file = "pypdf-3.12.1.tar.gz", hash = "sha256:68bf9e089caaab356518410168df9ed90f0a6109e29adac168449d4054fa0094"}, + {file = "pypdf-3.17.4-py3-none-any.whl", hash = "sha256:6aa0f61b33779b64486de3f42835d3668badd48dac4a536aeb87da187a5eacd2"}, + {file = "pypdf-3.17.4.tar.gz", hash = "sha256:ec96e2e4fc9648ac609d19c00d41e9d606e0ae2ce5a0bbe7691426f5f157166a"}, ] [package.dependencies] -typing_extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} +typing_extensions = {version = ">=3.7.4.3", markers = "python_version < \"3.10\""} [package.extras] -crypto = ["PyCryptodome"] -dev = ["black", "flit", "pip-tools", "pre-commit (<2.18.0)", "pytest-cov", "pytest-socket", "wheel"] +crypto = ["PyCryptodome", "cryptography"] +dev = ["black", "flit", "pip-tools", "pre-commit (<2.18.0)", "pytest-cov", "pytest-socket", "pytest-timeout", "pytest-xdist", "wheel"] docs = ["myst_parser", "sphinx", "sphinx_rtd_theme"] -full = ["Pillow", "PyCryptodome"] -image = ["Pillow"] +full = ["Pillow (>=8.0.0)", "PyCryptodome", "cryptography"] +image = ["Pillow (>=8.0.0)"] [[package]] name = "pytest" -version = "7.4.0" +version = "8.0.2" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.0-py3-none-any.whl", hash = "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32"}, - {file = "pytest-7.4.0.tar.gz", hash = "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"}, + {file = "pytest-8.0.2-py3-none-any.whl", hash = "sha256:edfaaef32ce5172d5466b5127b42e0d6d35ebbe4453f0e3505d96afd93f6b096"}, + {file = "pytest-8.0.2.tar.gz", hash = "sha256:d4051d623a2e0b7e51960ba963193b09ce6daeb9759a451844a21e4ddedfc1bd"}, ] [package.dependencies] @@ -1771,7 +1957,7 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" +pluggy = ">=1.3.0,<2.0" tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] @@ -1793,13 +1979,13 @@ six = ">=1.5" [[package]] name = "pytz" -version = "2023.3" +version = "2024.1" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" files = [ - {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, - {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] [[package]] @@ -1818,51 +2004,51 @@ tokenize-rt = ">=3.2.0" [[package]] name = "pyyaml" -version = "6.0" +version = "6.0.1" description = "YAML parser and emitter for Python" optional = false 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"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] [[package]] @@ -1901,13 +2087,13 @@ docutils = ">=0.11,<1.0" [[package]] name = "rich" -version = "13.4.2" +version = "13.7.0" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.4.2-py3-none-any.whl", hash = "sha256:8f87bc7ee54675732fa66a05ebfe489e27264caeeff3728c945d25971b6485ec"}, - {file = "rich-13.4.2.tar.gz", hash = "sha256:d653d6bccede5844304c605d5aac802c7cf9621efd700b46c7ec2b51ea914898"}, + {file = "rich-13.7.0-py3-none-any.whl", hash = "sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235"}, + {file = "rich-13.7.0.tar.gz", hash = "sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa"}, ] [package.dependencies] @@ -1920,106 +2106,127 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "ruamel-yaml" -version = "0.17.32" +version = "0.18.6" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" optional = false -python-versions = ">=3" +python-versions = ">=3.7" files = [ - {file = "ruamel.yaml-0.17.32-py3-none-any.whl", hash = "sha256:23cd2ed620231677564646b0c6a89d138b6822a0d78656df7abda5879ec4f447"}, - {file = "ruamel.yaml-0.17.32.tar.gz", hash = "sha256:ec939063761914e14542972a5cba6d33c23b0859ab6342f61cf070cfc600efc2"}, + {file = "ruamel.yaml-0.18.6-py3-none-any.whl", hash = "sha256:57b53ba33def16c4f3d807c0ccbc00f8a6081827e81ba2491691b76882d0c636"}, + {file = "ruamel.yaml-0.18.6.tar.gz", hash = "sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b"}, ] [package.dependencies] -"ruamel.yaml.clib" = {version = ">=0.2.7", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.12\""} +"ruamel.yaml.clib" = {version = ">=0.2.7", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.13\""} [package.extras] -docs = ["ryd"] +docs = ["mercurial (>5.7)", "ryd"] jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] [[package]] name = "ruamel-yaml-clib" -version = "0.2.7" +version = "0.2.8" description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" files = [ - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5859983f26d8cd7bb5c287ef452e8aacc86501487634573d260968f753e1d71"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:debc87a9516b237d0466a711b18b6ebeb17ba9f391eb7f91c649c5c4ec5006c7"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:df5828871e6648db72d1c19b4bd24819b80a755c4541d3409f0f7acd0f335c80"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:efa08d63ef03d079dcae1dfe334f6c8847ba8b645d08df286358b1f5293d24ab"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win32.whl", hash = "sha256:763d65baa3b952479c4e972669f679fe490eee058d5aa85da483ebae2009d231"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:d000f258cf42fec2b1bbf2863c61d7b8918d31ffee905da62dede869254d3b8a"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:045e0626baf1c52e5527bd5db361bc83180faaba2ff586e763d3d5982a876a9e"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:1a6391a7cabb7641c32517539ca42cf84b87b667bad38b78d4d42dd23e957c81"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:9c7617df90c1365638916b98cdd9be833d31d337dbcd722485597b43c4a215bf"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:41d0f1fa4c6830176eef5b276af04c89320ea616655d01327d5ce65e50575c94"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win32.whl", hash = "sha256:f6d3d39611ac2e4f62c3128a9eed45f19a6608670c5a2f4f07f24e8de3441d38"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:da538167284de58a52109a9b89b8f6a53ff8437dd6dc26d33b57bf6699153122"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:4b3a93bb9bc662fc1f99c5c3ea8e623d8b23ad22f861eb6fce9377ac07ad6072"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_12_0_arm64.whl", hash = "sha256:a234a20ae07e8469da311e182e70ef6b199d0fbeb6c6cc2901204dd87fb867e8"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:15910ef4f3e537eea7fe45f8a5d19997479940d9196f357152a09031c5be59f3"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:370445fd795706fd291ab00c9df38a0caed0f17a6fb46b0f607668ecb16ce763"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win32.whl", hash = "sha256:ecdf1a604009bd35c674b9225a8fa609e0282d9b896c03dd441a91e5f53b534e"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win_amd64.whl", hash = "sha256:f34019dced51047d6f70cb9383b2ae2853b7fc4dce65129a5acd49f4f9256646"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2aa261c29a5545adfef9296b7e33941f46aa5bbd21164228e833412af4c9c75f"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f01da5790e95815eb5a8a138508c01c758e5f5bc0ce4286c4f7028b8dd7ac3d0"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:40d030e2329ce5286d6b231b8726959ebbe0404c92f0a578c0e2482182e38282"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:c3ca1fbba4ae962521e5eb66d72998b51f0f4d0f608d3c0347a48e1af262efa7"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win32.whl", hash = "sha256:7bdb4c06b063f6fd55e472e201317a3bb6cdeeee5d5a38512ea5c01e1acbdd93"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:be2a7ad8fd8f7442b24323d24ba0b56c51219513cfa45b9ada3b87b76c374d4b"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:91a789b4aa0097b78c93e3dc4b40040ba55bef518f84a40d4442f713b4094acb"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:99e77daab5d13a48a4054803d052ff40780278240a902b880dd37a51ba01a307"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:3243f48ecd450eddadc2d11b5feb08aca941b5cd98c9b1db14b2fd128be8c697"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:8831a2cedcd0f0927f788c5bdf6567d9dc9cc235646a434986a852af1cb54b4b"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win32.whl", hash = "sha256:3110a99e0f94a4a3470ff67fc20d3f96c25b13d24c6980ff841e82bafe827cac"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:92460ce908546ab69770b2e576e4f99fbb4ce6ab4b245345a3869a0a0410488f"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5bc0667c1eb8f83a3752b71b9c4ba55ef7c7058ae57022dd9b29065186a113d9"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:4a4d8d417868d68b979076a9be6a38c676eca060785abaa6709c7b31593c35d1"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf9a6bc4a0221538b1a7de3ed7bca4c93c02346853f44e1cd764be0023cd3640"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a7b301ff08055d73223058b5c46c55638917f04d21577c95e00e0c4d79201a6b"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win32.whl", hash = "sha256:d5e51e2901ec2366b79f16c2299a03e74ba4531ddcfacc1416639c557aef0ad8"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:184faeaec61dbaa3cace407cffc5819f7b977e75360e8d5ca19461cd851a5fc5"}, - {file = "ruamel.yaml.clib-0.2.7.tar.gz", hash = "sha256:1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win32.whl", hash = "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win_amd64.whl", hash = "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win32.whl", hash = "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl", hash = "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92"}, + {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"}, + {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, ] [[package]] name = "safety" -version = "2.3.4" +version = "3.0.1" description = "Checks installed dependencies for known vulnerabilities and licenses." optional = false -python-versions = "*" +python-versions = ">=3.7" files = [ - {file = "safety-2.3.4-py3-none-any.whl", hash = "sha256:6224dcd9b20986a2b2c5e7acfdfba6bca42bb11b2783b24ed04f32317e5167ea"}, - {file = "safety-2.3.4.tar.gz", hash = "sha256:b9e74e794e82f54d11f4091c5d820c4d2d81de9f953bf0b4f33ac8bc402ae72c"}, + {file = "safety-3.0.1-py3-none-any.whl", hash = "sha256:1ed058bc4bef132b974e58d7fcad020fb897cd255328016f8a5a194b94ca91d2"}, + {file = "safety-3.0.1.tar.gz", hash = "sha256:1f2000f03652f3a0bfc67f8fd1e98bc5723ccb76e15cb1bdd68545c3d803df01"}, ] [package.dependencies] +Authlib = ">=1.2.0" Click = ">=8.0.2" -dparse = ">=0.6.2" +dparse = ">=0.6.4b0" +jinja2 = ">=3.1.0" +marshmallow = ">=3.15.0" packaging = ">=21.0" +pydantic = ">=1.10.12,<2.0" requests = "*" +rich = "*" "ruamel.yaml" = ">=0.17.21" -setuptools = ">=19.3" +safety-schemas = ">=0.0.1" +setuptools = ">=65.5.1" +typer = "*" +typing-extensions = ">=4.7.1" +urllib3 = ">=1.26.5" [package.extras] -github = ["jinja2 (>=3.1.0)", "pygithub (>=1.43.3)"] +github = ["pygithub (>=1.43.3)"] gitlab = ["python-gitlab (>=1.3.0)"] +spdx = ["spdx-tools (>=0.8.2)"] + +[[package]] +name = "safety-schemas" +version = "0.0.2" +description = "Schemas for Safety tools" +optional = false +python-versions = ">=3.7" +files = [ + {file = "safety_schemas-0.0.2-py3-none-any.whl", hash = "sha256:277c077ce6e53221874a87c29515ffdd2f3773a6db4d035a9f67cc98db3b8c7f"}, + {file = "safety_schemas-0.0.2.tar.gz", hash = "sha256:7d1b040ec06480f05cff6b45ea7a93e09c8942df864fb0d01ddeb67c323cfa8c"}, +] + +[package.dependencies] +dparse = ">=0.6.4b0" +packaging = ">=21.0" +pydantic = "*" +ruamel-yaml = ">=0.17.21" +typing-extensions = ">=4.7.1" [[package]] name = "setuptools" -version = "68.0.0" +version = "69.1.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "setuptools-68.0.0-py3-none-any.whl", hash = "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f"}, - {file = "setuptools-68.0.0.tar.gz", hash = "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"}, + {file = "setuptools-69.1.1-py3-none-any.whl", hash = "sha256:02fa291a0471b3a18b2b2481ed902af520c69e8ae0919c13da936542754b4c56"}, + {file = "setuptools-69.1.1.tar.gz", hash = "sha256:5c0806c7d9af348e6dd3777b4f4dbb42c7ad85b190104837488eab9a7c945cf8"}, ] [package.extras] -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-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-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "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"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" @@ -2032,17 +2239,6 @@ files = [ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] -[[package]] -name = "smmap" -version = "5.0.0" -description = "A pure Python implementation of a sliding window memory map manager" -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" version = "2.2.0" @@ -2056,24 +2252,24 @@ files = [ [[package]] name = "soupsieve" -version = "2.4.1" +version = "2.5" description = "A modern CSS selector implementation for Beautiful Soup." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "soupsieve-2.4.1-py3-none-any.whl", hash = "sha256:1c1bfee6819544a3447586c889157365a27e10d88cde3ad3da0cf0ddf646feb8"}, - {file = "soupsieve-2.4.1.tar.gz", hash = "sha256:89d12b2d5dfcd2c9e8c22326da9d9aa9cb3dfab0a83a024f05704076ee8d35ea"}, + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, ] [[package]] name = "sphinx" -version = "7.0.1" +version = "7.1.2" description = "Python documentation generator" optional = false python-versions = ">=3.8" files = [ - {file = "Sphinx-7.0.1.tar.gz", hash = "sha256:61e025f788c5977d9412587e733733a289e2b9fdc2fef8868ddfbfc4ccfe881d"}, - {file = "sphinx-7.0.1-py3-none-any.whl", hash = "sha256:60c5e04756c1709a98845ed27a2eed7a556af3993afb66e77fec48189f742616"}, + {file = "sphinx-7.1.2-py3-none-any.whl", hash = "sha256:d170a81825b2fcacb6dfd5a0d7f578a053e45d3f2b153fecc948c37344eb4cbe"}, + {file = "sphinx-7.1.2.tar.gz", hash = "sha256:780f4d32f1d7d1126576e0e5ecc19dc32ab76cd24e950228dcf7b1f6d3d9e22f"}, ] [package.dependencies] @@ -2138,13 +2334,13 @@ docs = ["furo", "ipython", "myst-parser", "sphinx-copybutton", "sphinx-inline-ta [[package]] name = "sphinx-click" -version = "4.4.0" +version = "5.1.0" description = "Sphinx extension that automatically documents click applications" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "sphinx-click-4.4.0.tar.gz", hash = "sha256:cc67692bd28f482c7f01531c61b64e9d2f069bfcf3d24cbbb51d4a84a749fa48"}, - {file = "sphinx_click-4.4.0-py3-none-any.whl", hash = "sha256:2821c10a68fc9ee6ce7c92fad26540d8d8c8f45e6d7258f0e4fb7529ae8fab49"}, + {file = "sphinx-click-5.1.0.tar.gz", hash = "sha256:6812c2db62d3fae71a4addbe5a8a0a16c97eb491f3cd63fe34b4ed7e07236f33"}, + {file = "sphinx_click-5.1.0-py3-none-any.whl", hash = "sha256:ae97557a4e9ec646045089326c3b90e026c58a45e083b8f35f17d5d6558d08a0"}, ] [package.dependencies] @@ -2243,13 +2439,13 @@ test = ["pytest"] [[package]] name = "stevedore" -version = "5.1.0" +version = "5.2.0" description = "Manage dynamic plugins for Python applications" optional = false python-versions = ">=3.8" files = [ - {file = "stevedore-5.1.0-py3-none-any.whl", hash = "sha256:8cc040628f3cea5d7128f2e76cf486b2251a4e543c7b938f58d9a377f6694a2d"}, - {file = "stevedore-5.1.0.tar.gz", hash = "sha256:a54534acf9b89bc7ed264807013b505bf07f74dbe4bcfa37d32bd063870b087c"}, + {file = "stevedore-5.2.0-py3-none-any.whl", hash = "sha256:1c15d95766ca0569cad14cb6272d4d31dae66b011a929d7c18219c176ea1b5c9"}, + {file = "stevedore-5.2.0.tar.gz", hash = "sha256:46b93ca40e1114cea93d738a6c1e365396981bb6bb78c27045b7587c9473544d"}, ] [package.dependencies] @@ -2271,13 +2467,13 @@ widechars = ["wcwidth"] [[package]] name = "tokenize-rt" -version = "5.1.0" +version = "5.2.0" description = "A wrapper around the stdlib `tokenize` which roundtrips." optional = false python-versions = ">=3.8" files = [ - {file = "tokenize_rt-5.1.0-py2.py3-none-any.whl", hash = "sha256:9b7bb843e77dd6ed0be5564bfaaba200083911e0497841cd3e9235a6a9794d74"}, - {file = "tokenize_rt-5.1.0.tar.gz", hash = "sha256:08f0c2daa94c4052e53c2fcaa8e32585e6ae9bdfc800974092d031401694e002"}, + {file = "tokenize_rt-5.2.0-py2.py3-none-any.whl", hash = "sha256:b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289"}, + {file = "tokenize_rt-5.2.0.tar.gz", hash = "sha256:9fe80f8a5c1edad2d3ede0f37481cc0cc1538a2f442c9c2f9e4feacd2792d054"}, ] [[package]] @@ -2293,133 +2489,152 @@ files = [ [[package]] name = "tornado" -version = "6.3.3" +version = "6.4" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." optional = false python-versions = ">= 3.8" files = [ - {file = "tornado-6.3.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:502fba735c84450974fec147340016ad928d29f1e91f49be168c0a4c18181e1d"}, - {file = "tornado-6.3.3-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:805d507b1f588320c26f7f097108eb4023bbaa984d63176d1652e184ba24270a"}, - {file = "tornado-6.3.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bd19ca6c16882e4d37368e0152f99c099bad93e0950ce55e71daed74045908f"}, - {file = "tornado-6.3.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ac51f42808cca9b3613f51ffe2a965c8525cb1b00b7b2d56828b8045354f76a"}, - {file = "tornado-6.3.3-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71a8db65160a3c55d61839b7302a9a400074c9c753040455494e2af74e2501f2"}, - {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ceb917a50cd35882b57600709dd5421a418c29ddc852da8bcdab1f0db33406b0"}, - {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:7d01abc57ea0dbb51ddfed477dfe22719d376119844e33c661d873bf9c0e4a16"}, - {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:9dc4444c0defcd3929d5c1eb5706cbe1b116e762ff3e0deca8b715d14bf6ec17"}, - {file = "tornado-6.3.3-cp38-abi3-win32.whl", hash = "sha256:65ceca9500383fbdf33a98c0087cb975b2ef3bfb874cb35b8de8740cf7f41bd3"}, - {file = "tornado-6.3.3-cp38-abi3-win_amd64.whl", hash = "sha256:22d3c2fa10b5793da13c807e6fc38ff49a4f6e1e3868b0a6f4164768bb8e20f5"}, - {file = "tornado-6.3.3.tar.gz", hash = "sha256:e7d8db41c0181c80d76c982aacc442c0783a2c54d6400fe028954201a2e032fe"}, + {file = "tornado-6.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0"}, + {file = "tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f"}, + {file = "tornado-6.4-cp38-abi3-win32.whl", hash = "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052"}, + {file = "tornado-6.4-cp38-abi3-win_amd64.whl", hash = "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63"}, + {file = "tornado-6.4.tar.gz", hash = "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"}, ] [[package]] name = "typeguard" -version = "4.0.0" +version = "4.1.5" description = "Run-time type checker for Python" optional = false -python-versions = ">=3.7.4" +python-versions = ">=3.8" files = [ - {file = "typeguard-4.0.0-py3-none-any.whl", hash = "sha256:c4a40af0ba8a41077221271b46d0a6d8d46045443e4d887887c69254ca861952"}, - {file = "typeguard-4.0.0.tar.gz", hash = "sha256:194fb3dbcb06ea9caf7088f3befee014de57961689f9c859ac5239b1ef61d987"}, + {file = "typeguard-4.1.5-py3-none-any.whl", hash = "sha256:8923e55f8873caec136c892c3bed1f676eae7be57cdb94819281b3d3bc9c0953"}, + {file = "typeguard-4.1.5.tar.gz", hash = "sha256:ea0a113bbc111bcffc90789ebb215625c963411f7096a7e9062d4e4630c155fd"}, ] [package.dependencies] importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} -typing-extensions = {version = ">=4.4.0", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.7.0", markers = "python_version < \"3.12\""} + +[package.extras] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)"] +test = ["coverage[toml] (>=7)", "mypy (>=1.2.0)", "pytest (>=7)"] + +[[package]] +name = "typer" +version = "0.9.0" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +optional = false +python-versions = ">=3.6" +files = [ + {file = "typer-0.9.0-py3-none-any.whl", hash = "sha256:5d96d986a21493606a358cae4461bd8cdf83cbf33a5aa950ae629ca3b51467ee"}, + {file = "typer-0.9.0.tar.gz", hash = "sha256:50922fd79aea2f4751a8e0408ff10d2662bd0c8bbfa84755a699f3bada2978b2"}, +] + +[package.dependencies] +click = ">=7.1.1,<9.0.0" +typing-extensions = ">=3.7.4.3" [package.extras] -doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["mypy (>=1.2.0)", "pytest (>=7)"] +all = ["colorama (>=0.4.3,<0.5.0)", "rich (>=10.11.0,<14.0.0)", "shellingham (>=1.3.0,<2.0.0)"] +dev = ["autoflake (>=1.3.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "pre-commit (>=2.17.0,<3.0.0)"] +doc = ["cairosvg (>=2.5.2,<3.0.0)", "mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "pillow (>=9.3.0,<10.0.0)"] +test = ["black (>=22.3.0,<23.0.0)", "coverage (>=6.2,<7.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.910)", "pytest (>=4.4.0,<8.0.0)", "pytest-cov (>=2.10.0,<5.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "pytest-xdist (>=1.32.0,<4.0.0)", "rich (>=10.11.0,<14.0.0)", "shellingham (>=1.3.0,<2.0.0)"] [[package]] name = "typing-extensions" -version = "4.7.1" -description = "Backported and Experimental Type Hints for Python 3.7+" +version = "4.10.0" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, - {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, + {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, + {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, ] [[package]] name = "urllib3" -version = "2.0.3" +version = "2.2.1" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "urllib3-2.0.3-py3-none-any.whl", hash = "sha256:48e7fafa40319d358848e1bc6809b208340fafe2096f1725d05d67443d0483d1"}, - {file = "urllib3-2.0.3.tar.gz", hash = "sha256:bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825"}, + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, ] [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.24.0" +version = "20.25.1" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.24.0-py3-none-any.whl", hash = "sha256:18d1b37fc75cc2670625702d76849a91ebd383768b4e91382a8d51be3246049e"}, - {file = "virtualenv-20.24.0.tar.gz", hash = "sha256:e2a7cef9da880d693b933db7654367754f14e20650dc60e8ee7385571f8593a3"}, + {file = "virtualenv-20.25.1-py3-none-any.whl", hash = "sha256:961c026ac520bac5f69acb8ea063e8a4f071bcc9457b9c1f28f6b085c511583a"}, + {file = "virtualenv-20.25.1.tar.gz", hash = "sha256:e08e13ecdca7a0bd53798f356d5831434afa5b07b93f0abdf0797b7a06ffe197"}, ] [package.dependencies] -distlib = ">=0.3.6,<1" -filelock = ">=3.12,<4" -platformdirs = ">=3.5.1,<4" +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" [package.extras] -docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "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.3.1)", "pytest-env (>=0.8.1)", "pytest-freezer (>=0.4.6)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=67.8)", "time-machine (>=2.9)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "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 = "xdoctest" -version = "1.1.1" +version = "1.1.3" description = "A rewrite of the builtin doctest module" optional = false python-versions = ">=3.6" files = [ - {file = "xdoctest-1.1.1-py3-none-any.whl", hash = "sha256:d59d4ed91cb92e4430ef0ad1b134a2bef02adff7d2fb9c9f057547bee44081a2"}, - {file = "xdoctest-1.1.1.tar.gz", hash = "sha256:2eac8131bdcdf2781b4e5a62d6de87f044b730cc8db8af142a51bb29c245e779"}, + {file = "xdoctest-1.1.3-py3-none-any.whl", hash = "sha256:9360535bd1a971ffc216d9613898cedceb81d0fd024587cc3c03c74d14c00a31"}, + {file = "xdoctest-1.1.3.tar.gz", hash = "sha256:84e76a42a11a5926ff66d9d84c616bc101821099672550481ad96549cbdd02ae"}, ] [package.dependencies] colorama = {version = "*", optional = true, markers = "platform_system == \"Windows\" and extra == \"colors\""} Pygments = {version = "*", optional = true, markers = "python_version >= \"3.5.0\" and extra == \"colors\""} -six = "*" [package.extras] -all = ["IPython", "IPython", "Pygments", "Pygments", "attrs", "codecov", "colorama", "debugpy", "debugpy", "debugpy", "debugpy", "debugpy", "ipykernel", "ipykernel", "ipython-genutils", "jedi", "jinja2", "jupyter-client", "jupyter-client", "jupyter-core", "nbconvert", "pyflakes", "pytest", "pytest", "pytest", "pytest-cov", "six", "tomli", "typing"] -all-strict = ["IPython (==7.10.0)", "IPython (==7.23.1)", "Pygments (==2.0.0)", "Pygments (==2.4.1)", "attrs (==19.2.0)", "codecov (==2.0.15)", "colorama (==0.4.1)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.3.0)", "debugpy (==1.6.0)", "ipykernel (==5.2.0)", "ipykernel (==6.0.0)", "ipython-genutils (==0.2.0)", "jedi (==0.16)", "jinja2 (==3.0.0)", "jupyter-client (==6.1.5)", "jupyter-client (==7.0.0)", "jupyter-core (==4.7.0)", "nbconvert (==6.0.0)", "pyflakes (==2.2.0)", "pytest (==4.6.0)", "pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)", "six (==1.11.0)", "tomli (==0.2.0)", "typing (==3.7.4)"] +all = ["IPython (>=7.10.0)", "IPython (>=7.23.1)", "Pygments (>=2.0.0)", "Pygments (>=2.4.1)", "attrs (>=19.2.0)", "colorama (>=0.4.1)", "debugpy (>=1.0.0)", "debugpy (>=1.0.0)", "debugpy (>=1.0.0)", "debugpy (>=1.3.0)", "debugpy (>=1.6.0)", "ipykernel (>=5.2.0)", "ipykernel (>=6.0.0)", "ipykernel (>=6.11.0)", "ipython-genutils (>=0.2.0)", "jedi (>=0.16)", "jinja2 (>=3.0.0)", "jupyter-client (>=6.1.5)", "jupyter-client (>=7.0.0)", "jupyter-core (>=4.7.0)", "nbconvert (>=6.0.0)", "nbconvert (>=6.1.0)", "pyflakes (>=2.2.0)", "pytest (>=4.6.0)", "pytest (>=4.6.0)", "pytest (>=6.2.5)", "pytest-cov (>=3.0.0)", "tomli (>=0.2.0)", "typing (>=3.7.4)"] +all-strict = ["IPython (==7.10.0)", "IPython (==7.23.1)", "Pygments (==2.0.0)", "Pygments (==2.4.1)", "attrs (==19.2.0)", "colorama (==0.4.1)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.3.0)", "debugpy (==1.6.0)", "ipykernel (==5.2.0)", "ipykernel (==6.0.0)", "ipykernel (==6.11.0)", "ipython-genutils (==0.2.0)", "jedi (==0.16)", "jinja2 (==3.0.0)", "jupyter-client (==6.1.5)", "jupyter-client (==7.0.0)", "jupyter-core (==4.7.0)", "nbconvert (==6.0.0)", "nbconvert (==6.1.0)", "pyflakes (==2.2.0)", "pytest (==4.6.0)", "pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)", "tomli (==0.2.0)", "typing (==3.7.4)"] colors = ["Pygments", "Pygments", "colorama"] -jupyter = ["IPython", "IPython", "attrs", "debugpy", "debugpy", "debugpy", "debugpy", "debugpy", "ipykernel", "ipykernel", "ipython-genutils", "jedi", "jinja2", "jupyter-client", "jupyter-client", "jupyter-core", "nbconvert"] -optional = ["IPython", "IPython", "Pygments", "Pygments", "attrs", "colorama", "debugpy", "debugpy", "debugpy", "debugpy", "debugpy", "ipykernel", "ipykernel", "ipython-genutils", "jedi", "jinja2", "jupyter-client", "jupyter-client", "jupyter-core", "nbconvert", "pyflakes", "tomli"] -optional-strict = ["IPython (==7.10.0)", "IPython (==7.23.1)", "Pygments (==2.0.0)", "Pygments (==2.4.1)", "attrs (==19.2.0)", "colorama (==0.4.1)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.3.0)", "debugpy (==1.6.0)", "ipykernel (==5.2.0)", "ipykernel (==6.0.0)", "ipython-genutils (==0.2.0)", "jedi (==0.16)", "jinja2 (==3.0.0)", "jupyter-client (==6.1.5)", "jupyter-client (==7.0.0)", "jupyter-core (==4.7.0)", "nbconvert (==6.0.0)", "pyflakes (==2.2.0)", "tomli (==0.2.0)"] -runtime-strict = ["six (==1.11.0)"] -tests = ["codecov", "pytest", "pytest", "pytest", "pytest-cov", "typing"] +jupyter = ["IPython", "IPython", "attrs", "debugpy", "debugpy", "debugpy", "debugpy", "debugpy", "ipykernel", "ipykernel", "ipykernel", "ipython-genutils", "jedi", "jinja2", "jupyter-client", "jupyter-client", "jupyter-core", "nbconvert", "nbconvert"] +optional = ["IPython (>=7.10.0)", "IPython (>=7.23.1)", "Pygments (>=2.0.0)", "Pygments (>=2.4.1)", "attrs (>=19.2.0)", "colorama (>=0.4.1)", "debugpy (>=1.0.0)", "debugpy (>=1.0.0)", "debugpy (>=1.0.0)", "debugpy (>=1.3.0)", "debugpy (>=1.6.0)", "ipykernel (>=5.2.0)", "ipykernel (>=6.0.0)", "ipykernel (>=6.11.0)", "ipython-genutils (>=0.2.0)", "jedi (>=0.16)", "jinja2 (>=3.0.0)", "jupyter-client (>=6.1.5)", "jupyter-client (>=7.0.0)", "jupyter-core (>=4.7.0)", "nbconvert (>=6.0.0)", "nbconvert (>=6.1.0)", "pyflakes (>=2.2.0)", "tomli (>=0.2.0)"] +optional-strict = ["IPython (==7.10.0)", "IPython (==7.23.1)", "Pygments (==2.0.0)", "Pygments (==2.4.1)", "attrs (==19.2.0)", "colorama (==0.4.1)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.0.0)", "debugpy (==1.3.0)", "debugpy (==1.6.0)", "ipykernel (==5.2.0)", "ipykernel (==6.0.0)", "ipykernel (==6.11.0)", "ipython-genutils (==0.2.0)", "jedi (==0.16)", "jinja2 (==3.0.0)", "jupyter-client (==6.1.5)", "jupyter-client (==7.0.0)", "jupyter-core (==4.7.0)", "nbconvert (==6.0.0)", "nbconvert (==6.1.0)", "pyflakes (==2.2.0)", "tomli (==0.2.0)"] +tests = ["pytest (>=4.6.0)", "pytest (>=4.6.0)", "pytest (>=6.2.5)", "pytest-cov (>=3.0.0)", "typing (>=3.7.4)"] tests-binary = ["cmake", "cmake", "ninja", "ninja", "pybind11", "pybind11", "scikit-build", "scikit-build"] tests-binary-strict = ["cmake (==3.21.2)", "cmake (==3.25.0)", "ninja (==1.10.2)", "ninja (==1.11.1)", "pybind11 (==2.10.3)", "pybind11 (==2.7.1)", "scikit-build (==0.11.1)", "scikit-build (==0.16.1)"] -tests-strict = ["codecov (==2.0.15)", "pytest (==4.6.0)", "pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)", "typing (==3.7.4)"] +tests-strict = ["pytest (==4.6.0)", "pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)", "typing (==3.7.4)"] [[package]] name = "zipp" -version = "3.16.2" +version = "3.17.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"}, - {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"}, + {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, + {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] [metadata] From 1b5a6216877ca64392fec743c0ac2b2bb723be9e Mon Sep 17 00:00:00 2001 From: orent Date: Mon, 26 Feb 2024 10:11:04 +0200 Subject: [PATCH 4/7] Poppler backend: search for pdftopng in current environment Fix situation where pdftopng is not found if executing python directly from an un-activated environment. --- camelot/backends/poppler_backend.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/camelot/backends/poppler_backend.py b/camelot/backends/poppler_backend.py index 90d37a97..ac41d831 100644 --- a/camelot/backends/poppler_backend.py +++ b/camelot/backends/poppler_backend.py @@ -1,10 +1,13 @@ +import os +import sys import shutil import subprocess +path = os.path.dirname(sys.executable) + os.pathsep + os.environ['PATH'] class PopplerBackend: def convert(self, pdf_path, png_path): - pdftopng_executable = shutil.which("pdftopng") + pdftopng_executable = shutil.which("pdftopng", path=path) if pdftopng_executable is None: raise OSError( "pdftopng is not installed. You can install it using the 'pip install pdftopng' command." From d606d880d565a89ac80dad777e3aa955c65ca5bd Mon Sep 17 00:00:00 2001 From: Wassim Date: Wed, 3 Apr 2024 08:06:23 +0200 Subject: [PATCH 5/7] Add support for parsing PDF pages in parallel (multiprocessing) (#17) Parse in parallel using multiprocessing library using available CPUs --- camelot/cli.py | 6 +++ camelot/handlers.py | 72 ++++++++++++++++++++++++++++----- camelot/io.py | 4 ++ docs/user/quickstart.rst | 20 +++++++++ tests/files/diesel_engines.pdf | Bin 0 -> 278888 bytes tests/test_cli.py | 24 +++++++++++ 6 files changed, 115 insertions(+), 11 deletions(-) create mode 100644 tests/files/diesel_engines.pdf diff --git a/camelot/cli.py b/camelot/cli.py index e45664c1..cc349176 100644 --- a/camelot/cli.py +++ b/camelot/cli.py @@ -39,6 +39,12 @@ def set_config(self, key, value): default="1", help="Comma-separated page numbers." " Example: 1,3,4 or 1,4-end or all.", ) +@click.option( + "--parallel", + is_flag=True, + default=False, + help="Read pdf pages in parallel using all CPU cores.", +) @click.option("-pw", "--password", help="Password for decryption.") @click.option("-o", "--output", help="Output file path.") @click.option( diff --git a/camelot/handlers.py b/camelot/handlers.py index 66ee1697..74ddde7a 100644 --- a/camelot/handlers.py +++ b/camelot/handlers.py @@ -1,3 +1,4 @@ +import multiprocessing as mp import os import sys from pathlib import Path @@ -143,7 +144,12 @@ def _save_page(self, filepath: Union[StrByteType, Path], page, temp): instream.close() def parse( - self, flavor="lattice", suppress_stdout=False, layout_kwargs=None, **kwargs + self, + flavor="lattice", + suppress_stdout=False, + parallel=False, + layout_kwargs=None, + **kwargs ): """Extracts tables by calling parser.get_tables on all single page PDFs. @@ -153,8 +159,10 @@ def parse( flavor : str (default: 'lattice') The parsing method to use ('lattice' or 'stream'). Lattice is used by default. - suppress_stdout : str (default: False) + suppress_stdout : bool (default: False) Suppress logs and warnings. + parallel : bool (default: False) + Process pages in parallel using all available cpu cores. layout_kwargs : dict, optional (default: {}) A dict of `pdfminer.layout.LAParams `_ kwargs. @@ -171,14 +179,56 @@ def parse( layout_kwargs = {} tables = [] + parser = Lattice(**kwargs) if flavor == "lattice" else Stream(**kwargs) with TemporaryDirectory() as tempdir: - for p in self.pages: - self._save_page(self.filepath, p, tempdir) - pages = [os.path.join(tempdir, f"page-{p}.pdf") for p in self.pages] - parser = Lattice(**kwargs) if flavor == "lattice" else Stream(**kwargs) - for p in pages: - t = parser.extract_tables( - p, suppress_stdout=suppress_stdout, layout_kwargs=layout_kwargs - ) - tables.extend(t) + cpu_count = mp.cpu_count() + # Using multiprocessing only when cpu_count > 1 to prevent a stallness issue + # when cpu_count is 1 + if parallel and len(self.pages) > 1 and cpu_count > 1: + with mp.get_context("spawn").Pool(processes=cpu_count) as pool: + jobs = [] + for p in self.pages: + j = pool.apply_async( + self._parse_page,(p, tempdir, parser, suppress_stdout, layout_kwargs) + ) + jobs.append(j) + + for j in jobs: + t = j.get() + tables.extend(t) + else: + for p in self.pages: + t = self._parse_page(p, tempdir, parser, suppress_stdout, layout_kwargs) + tables.extend(t) + return TableList(sorted(tables)) + + def _parse_page( + self, page, tempdir, parser, suppress_stdout, layout_kwargs + ): + """Extracts tables by calling parser.get_tables on a single + page PDF. + + Parameters + ---------- + page : str + Page number to parse + parser : Lattice or Stream + The parser to use (Lattice or Stream). + suppress_stdout : bool + Suppress logs and warnings. + layout_kwargs : dict, optional (default: {}) + A dict of `pdfminer.layout.LAParams `_ kwargs. + + Returns + ------- + tables : camelot.core.TableList + List of tables found in PDF. + + """ + self._save_page(self.filepath, page, tempdir) + page_path = os.path.join(tempdir, f"page-{page}.pdf") + tables = parser.extract_tables( + page_path, suppress_stdout=suppress_stdout, layout_kwargs=layout_kwargs + ) + return tables diff --git a/camelot/io.py b/camelot/io.py index 78319bc9..12718828 100644 --- a/camelot/io.py +++ b/camelot/io.py @@ -15,6 +15,7 @@ def read_pdf( password=None, flavor="lattice", suppress_stdout=False, + parallel=False, layout_kwargs=None, **kwargs ): @@ -37,6 +38,8 @@ def read_pdf( Lattice is used by default. suppress_stdout : bool, optional (default: True) Print all logs and warnings. + parallel : bool, optional (default: False) + Process pages in parallel using all available cpu cores. layout_kwargs : dict, optional (default: {}) A dict of `pdfminer.layout.LAParams `_ kwargs. @@ -122,6 +125,7 @@ def read_pdf( tables = p.parse( flavor=flavor, suppress_stdout=suppress_stdout, + parallel=parallel, layout_kwargs=layout_kwargs, **kwargs ) diff --git a/docs/user/quickstart.rst b/docs/user/quickstart.rst index aa9c9fa3..c3cff640 100644 --- a/docs/user/quickstart.rst +++ b/docs/user/quickstart.rst @@ -99,6 +99,26 @@ By default, Camelot only uses the first page of the PDF to extract tables. To sp The ``pages`` keyword argument accepts pages as comma-separated string of page numbers. You can also specify page ranges — for example, ``pages=1,4-10,20-30`` or ``pages=1,4-10,20-end``. +Extract tables in parallel +-------------------------- + +Camelot supports extracting tables in parrallel using all the available CPU cores. + +:: + + >>> tables = camelot.read_pdf('foo.pdf', page='all', parallel=True) + >>> tables + + +.. tip:: + Here's how you can do the same with the :ref:`command-line interface `. + :: + + $ camelot --pages all --parallel lattice foo.pdf + +.. note:: The reading of the PDF document is parallelized by processing pages by different CPU core. + Therefore, a document with a low page count could be slower to process in parallel. + Reading encrypted PDFs ---------------------- diff --git a/tests/files/diesel_engines.pdf b/tests/files/diesel_engines.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2f14f161675c1045764841a72d208df4cd6d8d2c GIT binary patch literal 278888 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�K6w^JIc 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 literal 0 HcmV?d00001 diff --git a/tests/test_cli.py b/tests/test_cli.py index 27ac41c5..0903dfa3 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -62,6 +62,30 @@ def test_cli_stream(testdir): assert format_error in result.output +@skip_on_windows +def test_cli_parallel(testdir): + with TemporaryDirectory() as tempdir: + infile = os.path.join(testdir, "diesel_engines.pdf") + outfile = os.path.join(tempdir, "diesel_engines.csv") + runner = CliRunner() + result = runner.invoke( + cli, + [ + "--parallel", + "--pages", + "1,2,3", + "--format", + "csv", + "--output", + outfile, + "lattice", + infile, + ], + ) + assert result.exit_code == 0 + assert result.output == "Found 2 tables\n" + + def test_cli_password(testdir): with TemporaryDirectory() as tempdir: infile = os.path.join(testdir, "health_protected.pdf") From 2a4be4aa86b17cda66df68fa5253612c9989a895 Mon Sep 17 00:00:00 2001 From: Jelmer Date: Fri, 26 Jul 2024 11:00:42 +0200 Subject: [PATCH 6/7] Use the absolute path to constraints.txt (#25) * Use absolute path for constraints argument in GitHub actions This fixes: Some possibly relevant errors from pip install: ERROR: Could not open requirements file: [Errno 2] No such file or directory: '.github/workflows/constraints.txt' Error installing poetry. --------- Co-authored-by: bosd --- .github/workflows/release.yml | 4 ++-- .github/workflows/tests.yml | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8de14986..3bd2f601 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,12 +22,12 @@ jobs: - name: Upgrade pip run: | - pip install --constraint=.github/workflows/constraints.txt pip + pip install --constraint=${PWD}/.github/workflows/constraints.txt pip pip --version - name: Install Poetry run: | - pip install --constraint=.github/workflows/constraints.txt poetry + pip install --constraint=${PWD}/.github/workflows/constraints.txt poetry poetry --version - name: Check if there is a parent commit diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6aacd160..8bce2f93 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -45,7 +45,7 @@ jobs: - name: Upgrade pip run: | - pip install --constraint=.github/workflows/constraints.txt pip + pip install --constraint=${PWD}/.github/workflows/constraints.txt pip pip --version - name: Upgrade pip in virtual environments @@ -59,13 +59,13 @@ jobs: - name: Install Poetry run: | - pipx install --pip-args=--constraint=.github/workflows/constraints.txt poetry + pipx install --pip-args=--constraint=${PWD}/.github/workflows/constraints.txt poetry poetry --version - name: Install Nox run: | - pipx install --pip-args=--constraint=.github/workflows/constraints.txt nox - pipx inject --pip-args=--constraint=.github/workflows/constraints.txt nox nox-poetry + pipx install --pip-args=--constraint=${PWD}/.github/workflows/constraints.txt nox + pipx inject --pip-args=--constraint=${PWD}/.github/workflows/constraints.txt nox nox-poetry nox --version - name: Install ghostscript @@ -130,18 +130,18 @@ jobs: - name: Upgrade pip run: | - pip install --constraint=.github/workflows/constraints.txt pip + pip install --constraint=${PWD}/.github/workflows/constraints.txt pip pip --version - name: Install Poetry run: | - pipx install --pip-args=--constraint=.github/workflows/constraints.txt poetry + pipx install --pip-args=--constraint=${PWD}/.github/workflows/constraints.txt poetry poetry --version - name: Install Nox run: | - pipx install --pip-args=--constraint=.github/workflows/constraints.txt nox - pipx inject --pip-args=--constraint=.github/workflows/constraints.txt nox nox-poetry + pipx install --pip-args=--constraint=${PWD}/.github/workflows/constraints.txt nox + pipx inject --pip-args=--constraint=${PWD}/.github/workflows/constraints.txt nox nox-poetry nox --version - name: Download coverage data From 2deeb93fc7203aa13e6fac1693aea53f8ed14703 Mon Sep 17 00:00:00 2001 From: Jelmer Draaijer Date: Fri, 26 Jul 2024 11:02:34 +0200 Subject: [PATCH 7/7] Run actions only against pull requests. This prevents running the actions twice for each PR. --- .github/workflows/tests.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8bce2f93..b65c03c5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,8 +1,9 @@ name: Tests on: - - push - - pull_request + push: + branches: [master] + pull_request: jobs: tests: