From cb659e79f09d414905e9af3b0bc14b380d7414d5 Mon Sep 17 00:00:00 2001 From: Matthew Heaton Date: Thu, 13 Nov 2025 13:54:54 +0000 Subject: [PATCH 01/10] Modernise package --- .github/workflows/python.yml | 31 +- MANIFEST.in | 2 - pyproject.toml | 73 ++ setup.py | 70 -- tests/test_pdf_generator.py | 2 +- traceflow/dev-requirements.txt | 3 +- uv.lock | 1506 ++++++++++++++++++++++++++++++++ 7 files changed, 1598 insertions(+), 89 deletions(-) create mode 100644 pyproject.toml delete mode 100644 setup.py create mode 100644 uv.lock diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 3438718..e1ecfcf 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -13,32 +13,33 @@ jobs: strategy: fail-fast: true matrix: - python-version: ["3.9", "3.10"] + python-version: ["3.13"] steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v1 + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - - name: Install python dependencies + check-latest: true + - name: Install uv and sync dependencies run: | - pip3 install -e .[dev] + python -m pip install --upgrade pip + python -m pip install uv + uv sync --all-groups - name: Lint with flake8 run: | - bash py-lint.sh - - name: Check static types with mypy + uv run bash py-lint.sh + - name: Check static types with ty run: | - mypy traceflow --ignore-missing-imports - mypy tests --ignore-missing-imports + uv run ty check traceflow tests - name: Test with pytest run: | - pytest -sv tests + uv run pytest -sv tests - name: Generate coverage report run: | sudo apt-get install -y lcov - coverage run -m pytest -sv tests - coverage html --omit tests/*.py - coverage lcov + uv run coverage run -m pytest -sv tests + uv run coverage html --omit tests/*.py + uv run coverage lcov ls # Coverage is now in htmlcov/ - diff --git a/MANIFEST.in b/MANIFEST.in index ba3b531..5c4b202 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,7 +1,5 @@ include LICENCE -include setup*.py include README.md -include requirements.txt include MANIFEST.in recursive-include traceflow * diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..0fa12f5 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,73 @@ +[build-system] +requires = ["setuptools>=68.0.0", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "traceflow" +version = "0.0.21" +description = "A Python library for managing software development documentation and testing that automates the generation of PDFs, validation packs, and traceability matrices." +readme = "README.md" +requires-python = ">=3.9" +license = "LicenseRef-Commercial" +license-files = ["LICENCE"] +authors = [ + {name = "Bioxydyn Ltd"}, +] +dependencies = [ + "cairosvg==2.7.1", + "Jinja2==3.1.4", + "latex==0.7.0", + "mistune==2.0.5", + "pyyaml==6.0.1", +] + +[project.scripts] +traceflow = "traceflow.__main__:main" + +[project.optional-dependencies] +dev = [ + "coverage", + "flake8", + "flake8-annotations", + "flake8-bandit", + "flake8-broken-line", + "flake8-bugbear", + "flake8-builtins", + "flake8-comprehensions", + "flake8-eradicate", + "flake8-executable", + "flake8-fixme", + "flake8-printf-formatting", + "flake8-return", + "flake8-walrus", + "pytest", + "ty==0.0.1a26", + "types-PyYAML", +] + +[dependency-groups] +dev = [ + "coverage", + "flake8", + "flake8-annotations", + "flake8-bandit", + "flake8-broken-line", + "flake8-bugbear", + "flake8-builtins", + "flake8-comprehensions", + "flake8-eradicate", + "flake8-executable", + "flake8-fixme", + "flake8-printf-formatting", + "flake8-return", + "flake8-walrus", + "pytest", + "ty==0.0.1a26", + "types-PyYAML", +] + +[tool.setuptools] +include-package-data = true + +[tool.setuptools.packages.find] +include = ["traceflow*"] diff --git a/setup.py b/setup.py deleted file mode 100644 index da19592..0000000 --- a/setup.py +++ /dev/null @@ -1,70 +0,0 @@ -from setuptools import setup, find_packages -from pathlib import Path -import re - - -def get_version(package: str) -> str: - """ - Return package version as listed in `__version__` in `pipelines/version.py`. - """ - version = Path(package, "version.py").read_text() - return re.search("__version__ = ['\"]([^'\"]+)['\"]", version).group(1) - - -def get_install_requires() -> list[str]: - return [ - "setuptools", - "wheel", - "mistune==2.0.5", - "latex==0.7.0", - "cairosvg==2.7.1", - "Jinja2==3.1.4", - "pyyaml==6.0.1", - ] - - -def get_extras_require() -> dict[str, list[str]]: - return { - "dev": [ - "flake8", - "flake8-bugbear", - "flake8-builtins", - "flake8-fixme", - "flake8-walrus", - "flake8-return", - "flake8-printf-formatting", - "flake8-broken-line", - "flake8-comprehensions", - "flake8-eradicate", - "flake8-executable", - "flake8-bandit", - "flake8-annotations", - "setuptools", - "pytest", - "mypy", - "types-PyYAML", - "coverage" - ] - } - - -setup( - name="traceflow", - description="A Python library for managing software development documentation and testing, automating the" - " generation of PDFs for requirements, design documents, and test cases with built-in compliance support.", - version=get_version("traceflow"), - author="Bioxydyn Ltd", - license="Commercial", - python_requires=">=3.9.0", - package_dir={"traceflow": "traceflow"}, - include_package_data=True, - zip_safe=False, - packages=find_packages(), - install_requires=get_install_requires(), - extras_require=get_extras_require(), - entry_points={ - "console_scripts": [ - "traceflow = traceflow.__main__:main", - ], - }, -) \ No newline at end of file diff --git a/tests/test_pdf_generator.py b/tests/test_pdf_generator.py index 63c88d7..870f4f9 100644 --- a/tests/test_pdf_generator.py +++ b/tests/test_pdf_generator.py @@ -4,6 +4,6 @@ class TestPdfGenerator(unittest.TestCase): def test_process_text(self) -> None: text = "This is some text with a UNIQUE-ID-001 and `code formatted` text too." - latex = PdfReport.process_text_impl(text, ["UNIQUE-ID-001"]) + latex = PdfReport.process_text_impl(text, {"UNIQUE-ID-001"}) expected = "This is some text with a \hyperref[UNIQUE-ID-001]{UNIQUE-ID-001} and \texttt{code formatted} text too." # noqa self.assertEqual(latex, expected) diff --git a/traceflow/dev-requirements.txt b/traceflow/dev-requirements.txt index a1ea4bc..1df93f8 100644 --- a/traceflow/dev-requirements.txt +++ b/traceflow/dev-requirements.txt @@ -12,5 +12,6 @@ flake8-executable flake8-bandit flake8-annotations pytest -mypy coverage +ty==0.0.1a26 +types-PyYAML diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..9b319e1 --- /dev/null +++ b/uv.lock @@ -0,0 +1,1506 @@ +version = 1 +revision = 3 +requires-python = ">=3.9" +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version < '3.10'", +] + +[[package]] +name = "attrs" +version = "25.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, +] + +[[package]] +name = "bandit" +version = "1.8.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "pyyaml" }, + { name = "rich" }, + { name = "stevedore" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fb/b5/7eb834e213d6f73aace21938e5e90425c92e5f42abafaf8a6d5d21beed51/bandit-1.8.6.tar.gz", hash = "sha256:dbfe9c25fc6961c2078593de55fd19f2559f9e45b99f1272341f5b95dea4e56b", size = 4240271, upload-time = "2025-07-06T03:10:50.9Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/ca/ba5f909b40ea12ec542d5d7bdd13ee31c4d65f3beed20211ef81c18fa1f3/bandit-1.8.6-py3-none-any.whl", hash = "sha256:3348e934d736fcdb68b6aa4030487097e23a501adf3e7827b63658df464dddd0", size = 133808, upload-time = "2025-07-06T03:10:49.134Z" }, +] + +[[package]] +name = "cairocffi" +version = "1.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/70/c5/1a4dc131459e68a173cbdab5fad6b524f53f9c1ef7861b7698e998b837cc/cairocffi-1.7.1.tar.gz", hash = "sha256:2e48ee864884ec4a3a34bfa8c9ab9999f688286eb714a15a43ec9d068c36557b", size = 88096, upload-time = "2024-06-18T10:56:06.741Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/d8/ba13451aa6b745c49536e87b6bf8f629b950e84bd0e8308f7dc6883b67e2/cairocffi-1.7.1-py3-none-any.whl", hash = "sha256:9803a0e11f6c962f3b0ae2ec8ba6ae45e957a146a004697a1ac1bbf16b073b3f", size = 75611, upload-time = "2024-06-18T10:55:59.489Z" }, +] + +[[package]] +name = "cairosvg" +version = "2.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cairocffi" }, + { name = "cssselect2" }, + { name = "defusedxml" }, + { name = "pillow", version = "11.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "pillow", version = "12.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "tinycss2" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d5/e6/ec5900b724e3c44af7f6f51f719919137284e5da4aabe96508baec8a1b40/CairoSVG-2.7.1.tar.gz", hash = "sha256:432531d72347291b9a9ebfb6777026b607563fd8719c46ee742db0aef7271ba0", size = 8399085, upload-time = "2023-08-05T09:08:05.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/a5/1866b42151f50453f1a0d28fc4c39f5be5f412a2e914f33449c42daafdf1/CairoSVG-2.7.1-py3-none-any.whl", hash = "sha256:8a5222d4e6c3f86f1f7046b63246877a63b49923a1cd202184c3a634ef546b3b", size = 43235, upload-time = "2023-08-05T09:08:01.583Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44", size = 184283, upload-time = "2025-09-08T23:22:08.01Z" }, + { url = "https://files.pythonhosted.org/packages/9e/84/ad6a0b408daa859246f57c03efd28e5dd1b33c21737c2db84cae8c237aa5/cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49", size = 180504, upload-time = "2025-09-08T23:22:10.637Z" }, + { url = "https://files.pythonhosted.org/packages/50/bd/b1a6362b80628111e6653c961f987faa55262b4002fcec42308cad1db680/cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c", size = 208811, upload-time = "2025-09-08T23:22:12.267Z" }, + { url = "https://files.pythonhosted.org/packages/4f/27/6933a8b2562d7bd1fb595074cf99cc81fc3789f6a6c05cdabb46284a3188/cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb", size = 216402, upload-time = "2025-09-08T23:22:13.455Z" }, + { url = "https://files.pythonhosted.org/packages/05/eb/b86f2a2645b62adcfff53b0dd97e8dfafb5c8aa864bd0d9a2c2049a0d551/cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0", size = 203217, upload-time = "2025-09-08T23:22:14.596Z" }, + { url = "https://files.pythonhosted.org/packages/9f/e0/6cbe77a53acf5acc7c08cc186c9928864bd7c005f9efd0d126884858a5fe/cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4", size = 203079, upload-time = "2025-09-08T23:22:15.769Z" }, + { url = "https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453", size = 216475, upload-time = "2025-09-08T23:22:17.427Z" }, + { url = "https://files.pythonhosted.org/packages/21/7a/13b24e70d2f90a322f2900c5d8e1f14fa7e2a6b3332b7309ba7b2ba51a5a/cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495", size = 218829, upload-time = "2025-09-08T23:22:19.069Z" }, + { url = "https://files.pythonhosted.org/packages/60/99/c9dc110974c59cc981b1f5b66e1d8af8af764e00f0293266824d9c4254bc/cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5", size = 211211, upload-time = "2025-09-08T23:22:20.588Z" }, + { url = "https://files.pythonhosted.org/packages/49/72/ff2d12dbf21aca1b32a40ed792ee6b40f6dc3a9cf1644bd7ef6e95e0ac5e/cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb", size = 218036, upload-time = "2025-09-08T23:22:22.143Z" }, + { url = "https://files.pythonhosted.org/packages/e2/cc/027d7fb82e58c48ea717149b03bcadcbdc293553edb283af792bd4bcbb3f/cffi-2.0.0-cp310-cp310-win32.whl", hash = "sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a", size = 172184, upload-time = "2025-09-08T23:22:23.328Z" }, + { url = "https://files.pythonhosted.org/packages/33/fa/072dd15ae27fbb4e06b437eb6e944e75b068deb09e2a2826039e49ee2045/cffi-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739", size = 182790, upload-time = "2025-09-08T23:22:24.752Z" }, + { url = "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", size = 184344, upload-time = "2025-09-08T23:22:26.456Z" }, + { url = "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", size = 180560, upload-time = "2025-09-08T23:22:28.197Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613, upload-time = "2025-09-08T23:22:29.475Z" }, + { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476, upload-time = "2025-09-08T23:22:31.063Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374, upload-time = "2025-09-08T23:22:32.507Z" }, + { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597, upload-time = "2025-09-08T23:22:34.132Z" }, + { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574, upload-time = "2025-09-08T23:22:35.443Z" }, + { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971, upload-time = "2025-09-08T23:22:36.805Z" }, + { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972, upload-time = "2025-09-08T23:22:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078, upload-time = "2025-09-08T23:22:39.776Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076, upload-time = "2025-09-08T23:22:40.95Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820, upload-time = "2025-09-08T23:22:42.463Z" }, + { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635, upload-time = "2025-09-08T23:22:43.623Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, + { url = "https://files.pythonhosted.org/packages/c0/cc/08ed5a43f2996a16b462f64a7055c6e962803534924b9b2f1371d8c00b7b/cffi-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:fe562eb1a64e67dd297ccc4f5addea2501664954f2692b69a76449ec7913ecbf", size = 184288, upload-time = "2025-09-08T23:23:48.404Z" }, + { url = "https://files.pythonhosted.org/packages/3d/de/38d9726324e127f727b4ecc376bc85e505bfe61ef130eaf3f290c6847dd4/cffi-2.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:de8dad4425a6ca6e4e5e297b27b5c824ecc7581910bf9aee86cb6835e6812aa7", size = 180509, upload-time = "2025-09-08T23:23:49.73Z" }, + { url = "https://files.pythonhosted.org/packages/9b/13/c92e36358fbcc39cf0962e83223c9522154ee8630e1df7c0b3a39a8124e2/cffi-2.0.0-cp39-cp39-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:4647afc2f90d1ddd33441e5b0e85b16b12ddec4fca55f0d9671fef036ecca27c", size = 208813, upload-time = "2025-09-08T23:23:51.263Z" }, + { url = "https://files.pythonhosted.org/packages/15/12/a7a79bd0df4c3bff744b2d7e52cc1b68d5e7e427b384252c42366dc1ecbc/cffi-2.0.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3f4d46d8b35698056ec29bca21546e1551a205058ae1a181d871e278b0b28165", size = 216498, upload-time = "2025-09-08T23:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ad/5c51c1c7600bdd7ed9a24a203ec255dccdd0ebf4527f7b922a0bde2fb6ed/cffi-2.0.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:e6e73b9e02893c764e7e8d5bb5ce277f1a009cd5243f8228f75f842bf937c534", size = 203243, upload-time = "2025-09-08T23:23:53.836Z" }, + { url = "https://files.pythonhosted.org/packages/32/f2/81b63e288295928739d715d00952c8c6034cb6c6a516b17d37e0c8be5600/cffi-2.0.0-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:cb527a79772e5ef98fb1d700678fe031e353e765d1ca2d409c92263c6d43e09f", size = 203158, upload-time = "2025-09-08T23:23:55.169Z" }, + { url = "https://files.pythonhosted.org/packages/1f/74/cc4096ce66f5939042ae094e2e96f53426a979864aa1f96a621ad128be27/cffi-2.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:61d028e90346df14fedc3d1e5441df818d095f3b87d286825dfcbd6459b7ef63", size = 216548, upload-time = "2025-09-08T23:23:56.506Z" }, + { url = "https://files.pythonhosted.org/packages/e8/be/f6424d1dc46b1091ffcc8964fa7c0ab0cd36839dd2761b49c90481a6ba1b/cffi-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0f6084a0ea23d05d20c3edcda20c3d006f9b6f3fefeac38f59262e10cef47ee2", size = 218897, upload-time = "2025-09-08T23:23:57.825Z" }, + { url = "https://files.pythonhosted.org/packages/f7/e0/dda537c2309817edf60109e39265f24f24aa7f050767e22c98c53fe7f48b/cffi-2.0.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1cd13c99ce269b3ed80b417dcd591415d3372bcac067009b6e0f59c7d4015e65", size = 211249, upload-time = "2025-09-08T23:23:59.139Z" }, + { url = "https://files.pythonhosted.org/packages/2b/e7/7c769804eb75e4c4b35e658dba01de1640a351a9653c3d49ca89d16ccc91/cffi-2.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89472c9762729b5ae1ad974b777416bfda4ac5642423fa93bd57a09204712322", size = 218041, upload-time = "2025-09-08T23:24:00.496Z" }, + { url = "https://files.pythonhosted.org/packages/aa/d9/6218d78f920dcd7507fc16a766b5ef8f3b913cc7aa938e7fc80b9978d089/cffi-2.0.0-cp39-cp39-win32.whl", hash = "sha256:2081580ebb843f759b9f617314a24ed5738c51d2aee65d31e02f6f7a2b97707a", size = 172138, upload-time = "2025-09-08T23:24:01.7Z" }, + { url = "https://files.pythonhosted.org/packages/54/8f/a1e836f82d8e32a97e6b29cc8f641779181ac7363734f12df27db803ebda/cffi-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:b882b3df248017dba09d6b16defe9b5c407fe32fc7c65a9c69798e6175601be9", size = 182794, upload-time = "2025-09-08T23:24:02.943Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "coverage" +version = "7.10.7" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/51/26/d22c300112504f5f9a9fd2297ce33c35f3d353e4aeb987c8419453b2a7c2/coverage-7.10.7.tar.gz", hash = "sha256:f4ab143ab113be368a3e9b795f9cd7906c5ef407d6173fe9675a902e1fffc239", size = 827704, upload-time = "2025-09-21T20:03:56.815Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/6c/3a3f7a46888e69d18abe3ccc6fe4cb16cccb1e6a2f99698931dafca489e6/coverage-7.10.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fc04cc7a3db33664e0c2d10eb8990ff6b3536f6842c9590ae8da4c614b9ed05a", size = 217987, upload-time = "2025-09-21T20:00:57.218Z" }, + { url = "https://files.pythonhosted.org/packages/03/94/952d30f180b1a916c11a56f5c22d3535e943aa22430e9e3322447e520e1c/coverage-7.10.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e201e015644e207139f7e2351980feb7040e6f4b2c2978892f3e3789d1c125e5", size = 218388, upload-time = "2025-09-21T20:01:00.081Z" }, + { url = "https://files.pythonhosted.org/packages/50/2b/9e0cf8ded1e114bcd8b2fd42792b57f1c4e9e4ea1824cde2af93a67305be/coverage-7.10.7-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:240af60539987ced2c399809bd34f7c78e8abe0736af91c3d7d0e795df633d17", size = 245148, upload-time = "2025-09-21T20:01:01.768Z" }, + { url = "https://files.pythonhosted.org/packages/19/20/d0384ac06a6f908783d9b6aa6135e41b093971499ec488e47279f5b846e6/coverage-7.10.7-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8421e088bc051361b01c4b3a50fd39a4b9133079a2229978d9d30511fd05231b", size = 246958, upload-time = "2025-09-21T20:01:03.355Z" }, + { url = "https://files.pythonhosted.org/packages/60/83/5c283cff3d41285f8eab897651585db908a909c572bdc014bcfaf8a8b6ae/coverage-7.10.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6be8ed3039ae7f7ac5ce058c308484787c86e8437e72b30bf5e88b8ea10f3c87", size = 248819, upload-time = "2025-09-21T20:01:04.968Z" }, + { url = "https://files.pythonhosted.org/packages/60/22/02eb98fdc5ff79f423e990d877693e5310ae1eab6cb20ae0b0b9ac45b23b/coverage-7.10.7-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e28299d9f2e889e6d51b1f043f58d5f997c373cc12e6403b90df95b8b047c13e", size = 245754, upload-time = "2025-09-21T20:01:06.321Z" }, + { url = "https://files.pythonhosted.org/packages/b4/bc/25c83bcf3ad141b32cd7dc45485ef3c01a776ca3aa8ef0a93e77e8b5bc43/coverage-7.10.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c4e16bd7761c5e454f4efd36f345286d6f7c5fa111623c355691e2755cae3b9e", size = 246860, upload-time = "2025-09-21T20:01:07.605Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b7/95574702888b58c0928a6e982038c596f9c34d52c5e5107f1eef729399b5/coverage-7.10.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b1c81d0e5e160651879755c9c675b974276f135558cf4ba79fee7b8413a515df", size = 244877, upload-time = "2025-09-21T20:01:08.829Z" }, + { url = "https://files.pythonhosted.org/packages/47/b6/40095c185f235e085df0e0b158f6bd68cc6e1d80ba6c7721dc81d97ec318/coverage-7.10.7-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:606cc265adc9aaedcc84f1f064f0e8736bc45814f15a357e30fca7ecc01504e0", size = 245108, upload-time = "2025-09-21T20:01:10.527Z" }, + { url = "https://files.pythonhosted.org/packages/c8/50/4aea0556da7a4b93ec9168420d170b55e2eb50ae21b25062513d020c6861/coverage-7.10.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:10b24412692df990dbc34f8fb1b6b13d236ace9dfdd68df5b28c2e39cafbba13", size = 245752, upload-time = "2025-09-21T20:01:11.857Z" }, + { url = "https://files.pythonhosted.org/packages/6a/28/ea1a84a60828177ae3b100cb6723838523369a44ec5742313ed7db3da160/coverage-7.10.7-cp310-cp310-win32.whl", hash = "sha256:b51dcd060f18c19290d9b8a9dd1e0181538df2ce0717f562fff6cf74d9fc0b5b", size = 220497, upload-time = "2025-09-21T20:01:13.459Z" }, + { url = "https://files.pythonhosted.org/packages/fc/1a/a81d46bbeb3c3fd97b9602ebaa411e076219a150489bcc2c025f151bd52d/coverage-7.10.7-cp310-cp310-win_amd64.whl", hash = "sha256:3a622ac801b17198020f09af3eaf45666b344a0d69fc2a6ffe2ea83aeef1d807", size = 221392, upload-time = "2025-09-21T20:01:14.722Z" }, + { url = "https://files.pythonhosted.org/packages/d2/5d/c1a17867b0456f2e9ce2d8d4708a4c3a089947d0bec9c66cdf60c9e7739f/coverage-7.10.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a609f9c93113be646f44c2a0256d6ea375ad047005d7f57a5c15f614dc1b2f59", size = 218102, upload-time = "2025-09-21T20:01:16.089Z" }, + { url = "https://files.pythonhosted.org/packages/54/f0/514dcf4b4e3698b9a9077f084429681bf3aad2b4a72578f89d7f643eb506/coverage-7.10.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:65646bb0359386e07639c367a22cf9b5bf6304e8630b565d0626e2bdf329227a", size = 218505, upload-time = "2025-09-21T20:01:17.788Z" }, + { url = "https://files.pythonhosted.org/packages/20/f6/9626b81d17e2a4b25c63ac1b425ff307ecdeef03d67c9a147673ae40dc36/coverage-7.10.7-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5f33166f0dfcce728191f520bd2692914ec70fac2713f6bf3ce59c3deacb4699", size = 248898, upload-time = "2025-09-21T20:01:19.488Z" }, + { url = "https://files.pythonhosted.org/packages/b0/ef/bd8e719c2f7417ba03239052e099b76ea1130ac0cbb183ee1fcaa58aaff3/coverage-7.10.7-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:35f5e3f9e455bb17831876048355dca0f758b6df22f49258cb5a91da23ef437d", size = 250831, upload-time = "2025-09-21T20:01:20.817Z" }, + { url = "https://files.pythonhosted.org/packages/a5/b6/bf054de41ec948b151ae2b79a55c107f5760979538f5fb80c195f2517718/coverage-7.10.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4da86b6d62a496e908ac2898243920c7992499c1712ff7c2b6d837cc69d9467e", size = 252937, upload-time = "2025-09-21T20:01:22.171Z" }, + { url = "https://files.pythonhosted.org/packages/0f/e5/3860756aa6f9318227443c6ce4ed7bf9e70bb7f1447a0353f45ac5c7974b/coverage-7.10.7-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6b8b09c1fad947c84bbbc95eca841350fad9cbfa5a2d7ca88ac9f8d836c92e23", size = 249021, upload-time = "2025-09-21T20:01:23.907Z" }, + { url = "https://files.pythonhosted.org/packages/26/0f/bd08bd042854f7fd07b45808927ebcce99a7ed0f2f412d11629883517ac2/coverage-7.10.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4376538f36b533b46f8971d3a3e63464f2c7905c9800db97361c43a2b14792ab", size = 250626, upload-time = "2025-09-21T20:01:25.721Z" }, + { url = "https://files.pythonhosted.org/packages/8e/a7/4777b14de4abcc2e80c6b1d430f5d51eb18ed1d75fca56cbce5f2db9b36e/coverage-7.10.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:121da30abb574f6ce6ae09840dae322bef734480ceafe410117627aa54f76d82", size = 248682, upload-time = "2025-09-21T20:01:27.105Z" }, + { url = "https://files.pythonhosted.org/packages/34/72/17d082b00b53cd45679bad682fac058b87f011fd8b9fe31d77f5f8d3a4e4/coverage-7.10.7-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:88127d40df529336a9836870436fc2751c339fbaed3a836d42c93f3e4bd1d0a2", size = 248402, upload-time = "2025-09-21T20:01:28.629Z" }, + { url = "https://files.pythonhosted.org/packages/81/7a/92367572eb5bdd6a84bfa278cc7e97db192f9f45b28c94a9ca1a921c3577/coverage-7.10.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ba58bbcd1b72f136080c0bccc2400d66cc6115f3f906c499013d065ac33a4b61", size = 249320, upload-time = "2025-09-21T20:01:30.004Z" }, + { url = "https://files.pythonhosted.org/packages/2f/88/a23cc185f6a805dfc4fdf14a94016835eeb85e22ac3a0e66d5e89acd6462/coverage-7.10.7-cp311-cp311-win32.whl", hash = "sha256:972b9e3a4094b053a4e46832b4bc829fc8a8d347160eb39d03f1690316a99c14", size = 220536, upload-time = "2025-09-21T20:01:32.184Z" }, + { url = "https://files.pythonhosted.org/packages/fe/ef/0b510a399dfca17cec7bc2f05ad8bd78cf55f15c8bc9a73ab20c5c913c2e/coverage-7.10.7-cp311-cp311-win_amd64.whl", hash = "sha256:a7b55a944a7f43892e28ad4bc0561dfd5f0d73e605d1aa5c3c976b52aea121d2", size = 221425, upload-time = "2025-09-21T20:01:33.557Z" }, + { url = "https://files.pythonhosted.org/packages/51/7f/023657f301a276e4ba1850f82749bc136f5a7e8768060c2e5d9744a22951/coverage-7.10.7-cp311-cp311-win_arm64.whl", hash = "sha256:736f227fb490f03c6488f9b6d45855f8e0fd749c007f9303ad30efab0e73c05a", size = 220103, upload-time = "2025-09-21T20:01:34.929Z" }, + { url = "https://files.pythonhosted.org/packages/13/e4/eb12450f71b542a53972d19117ea5a5cea1cab3ac9e31b0b5d498df1bd5a/coverage-7.10.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7bb3b9ddb87ef7725056572368040c32775036472d5a033679d1fa6c8dc08417", size = 218290, upload-time = "2025-09-21T20:01:36.455Z" }, + { url = "https://files.pythonhosted.org/packages/37/66/593f9be12fc19fb36711f19a5371af79a718537204d16ea1d36f16bd78d2/coverage-7.10.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:18afb24843cbc175687225cab1138c95d262337f5473512010e46831aa0c2973", size = 218515, upload-time = "2025-09-21T20:01:37.982Z" }, + { url = "https://files.pythonhosted.org/packages/66/80/4c49f7ae09cafdacc73fbc30949ffe77359635c168f4e9ff33c9ebb07838/coverage-7.10.7-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:399a0b6347bcd3822be369392932884b8216d0944049ae22925631a9b3d4ba4c", size = 250020, upload-time = "2025-09-21T20:01:39.617Z" }, + { url = "https://files.pythonhosted.org/packages/a6/90/a64aaacab3b37a17aaedd83e8000142561a29eb262cede42d94a67f7556b/coverage-7.10.7-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:314f2c326ded3f4b09be11bc282eb2fc861184bc95748ae67b360ac962770be7", size = 252769, upload-time = "2025-09-21T20:01:41.341Z" }, + { url = "https://files.pythonhosted.org/packages/98/2e/2dda59afd6103b342e096f246ebc5f87a3363b5412609946c120f4e7750d/coverage-7.10.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c41e71c9cfb854789dee6fc51e46743a6d138b1803fab6cb860af43265b42ea6", size = 253901, upload-time = "2025-09-21T20:01:43.042Z" }, + { url = "https://files.pythonhosted.org/packages/53/dc/8d8119c9051d50f3119bb4a75f29f1e4a6ab9415cd1fa8bf22fcc3fb3b5f/coverage-7.10.7-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc01f57ca26269c2c706e838f6422e2a8788e41b3e3c65e2f41148212e57cd59", size = 250413, upload-time = "2025-09-21T20:01:44.469Z" }, + { url = "https://files.pythonhosted.org/packages/98/b3/edaff9c5d79ee4d4b6d3fe046f2b1d799850425695b789d491a64225d493/coverage-7.10.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a6442c59a8ac8b85812ce33bc4d05bde3fb22321fa8294e2a5b487c3505f611b", size = 251820, upload-time = "2025-09-21T20:01:45.915Z" }, + { url = "https://files.pythonhosted.org/packages/11/25/9a0728564bb05863f7e513e5a594fe5ffef091b325437f5430e8cfb0d530/coverage-7.10.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:78a384e49f46b80fb4c901d52d92abe098e78768ed829c673fbb53c498bef73a", size = 249941, upload-time = "2025-09-21T20:01:47.296Z" }, + { url = "https://files.pythonhosted.org/packages/e0/fd/ca2650443bfbef5b0e74373aac4df67b08180d2f184b482c41499668e258/coverage-7.10.7-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:5e1e9802121405ede4b0133aa4340ad8186a1d2526de5b7c3eca519db7bb89fb", size = 249519, upload-time = "2025-09-21T20:01:48.73Z" }, + { url = "https://files.pythonhosted.org/packages/24/79/f692f125fb4299b6f963b0745124998ebb8e73ecdfce4ceceb06a8c6bec5/coverage-7.10.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d41213ea25a86f69efd1575073d34ea11aabe075604ddf3d148ecfec9e1e96a1", size = 251375, upload-time = "2025-09-21T20:01:50.529Z" }, + { url = "https://files.pythonhosted.org/packages/5e/75/61b9bbd6c7d24d896bfeec57acba78e0f8deac68e6baf2d4804f7aae1f88/coverage-7.10.7-cp312-cp312-win32.whl", hash = "sha256:77eb4c747061a6af8d0f7bdb31f1e108d172762ef579166ec84542f711d90256", size = 220699, upload-time = "2025-09-21T20:01:51.941Z" }, + { url = "https://files.pythonhosted.org/packages/ca/f3/3bf7905288b45b075918d372498f1cf845b5b579b723c8fd17168018d5f5/coverage-7.10.7-cp312-cp312-win_amd64.whl", hash = "sha256:f51328ffe987aecf6d09f3cd9d979face89a617eacdaea43e7b3080777f647ba", size = 221512, upload-time = "2025-09-21T20:01:53.481Z" }, + { url = "https://files.pythonhosted.org/packages/5c/44/3e32dbe933979d05cf2dac5e697c8599cfe038aaf51223ab901e208d5a62/coverage-7.10.7-cp312-cp312-win_arm64.whl", hash = "sha256:bda5e34f8a75721c96085903c6f2197dc398c20ffd98df33f866a9c8fd95f4bf", size = 220147, upload-time = "2025-09-21T20:01:55.2Z" }, + { url = "https://files.pythonhosted.org/packages/9a/94/b765c1abcb613d103b64fcf10395f54d69b0ef8be6a0dd9c524384892cc7/coverage-7.10.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:981a651f543f2854abd3b5fcb3263aac581b18209be49863ba575de6edf4c14d", size = 218320, upload-time = "2025-09-21T20:01:56.629Z" }, + { url = "https://files.pythonhosted.org/packages/72/4f/732fff31c119bb73b35236dd333030f32c4bfe909f445b423e6c7594f9a2/coverage-7.10.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:73ab1601f84dc804f7812dc297e93cd99381162da39c47040a827d4e8dafe63b", size = 218575, upload-time = "2025-09-21T20:01:58.203Z" }, + { url = "https://files.pythonhosted.org/packages/87/02/ae7e0af4b674be47566707777db1aa375474f02a1d64b9323e5813a6cdd5/coverage-7.10.7-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a8b6f03672aa6734e700bbcd65ff050fd19cddfec4b031cc8cf1c6967de5a68e", size = 249568, upload-time = "2025-09-21T20:01:59.748Z" }, + { url = "https://files.pythonhosted.org/packages/a2/77/8c6d22bf61921a59bce5471c2f1f7ac30cd4ac50aadde72b8c48d5727902/coverage-7.10.7-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:10b6ba00ab1132a0ce4428ff68cf50a25efd6840a42cdf4239c9b99aad83be8b", size = 252174, upload-time = "2025-09-21T20:02:01.192Z" }, + { url = "https://files.pythonhosted.org/packages/b1/20/b6ea4f69bbb52dac0aebd62157ba6a9dddbfe664f5af8122dac296c3ee15/coverage-7.10.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c79124f70465a150e89340de5963f936ee97097d2ef76c869708c4248c63ca49", size = 253447, upload-time = "2025-09-21T20:02:02.701Z" }, + { url = "https://files.pythonhosted.org/packages/f9/28/4831523ba483a7f90f7b259d2018fef02cb4d5b90bc7c1505d6e5a84883c/coverage-7.10.7-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:69212fbccdbd5b0e39eac4067e20a4a5256609e209547d86f740d68ad4f04911", size = 249779, upload-time = "2025-09-21T20:02:04.185Z" }, + { url = "https://files.pythonhosted.org/packages/a7/9f/4331142bc98c10ca6436d2d620c3e165f31e6c58d43479985afce6f3191c/coverage-7.10.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7ea7c6c9d0d286d04ed3541747e6597cbe4971f22648b68248f7ddcd329207f0", size = 251604, upload-time = "2025-09-21T20:02:06.034Z" }, + { url = "https://files.pythonhosted.org/packages/ce/60/bda83b96602036b77ecf34e6393a3836365481b69f7ed7079ab85048202b/coverage-7.10.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b9be91986841a75042b3e3243d0b3cb0b2434252b977baaf0cd56e960fe1e46f", size = 249497, upload-time = "2025-09-21T20:02:07.619Z" }, + { url = "https://files.pythonhosted.org/packages/5f/af/152633ff35b2af63977edd835d8e6430f0caef27d171edf2fc76c270ef31/coverage-7.10.7-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:b281d5eca50189325cfe1f365fafade89b14b4a78d9b40b05ddd1fc7d2a10a9c", size = 249350, upload-time = "2025-09-21T20:02:10.34Z" }, + { url = "https://files.pythonhosted.org/packages/9d/71/d92105d122bd21cebba877228990e1646d862e34a98bb3374d3fece5a794/coverage-7.10.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:99e4aa63097ab1118e75a848a28e40d68b08a5e19ce587891ab7fd04475e780f", size = 251111, upload-time = "2025-09-21T20:02:12.122Z" }, + { url = "https://files.pythonhosted.org/packages/a2/9e/9fdb08f4bf476c912f0c3ca292e019aab6712c93c9344a1653986c3fd305/coverage-7.10.7-cp313-cp313-win32.whl", hash = "sha256:dc7c389dce432500273eaf48f410b37886be9208b2dd5710aaf7c57fd442c698", size = 220746, upload-time = "2025-09-21T20:02:13.919Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b1/a75fd25df44eab52d1931e89980d1ada46824c7a3210be0d3c88a44aaa99/coverage-7.10.7-cp313-cp313-win_amd64.whl", hash = "sha256:cac0fdca17b036af3881a9d2729a850b76553f3f716ccb0360ad4dbc06b3b843", size = 221541, upload-time = "2025-09-21T20:02:15.57Z" }, + { url = "https://files.pythonhosted.org/packages/14/3a/d720d7c989562a6e9a14b2c9f5f2876bdb38e9367126d118495b89c99c37/coverage-7.10.7-cp313-cp313-win_arm64.whl", hash = "sha256:4b6f236edf6e2f9ae8fcd1332da4e791c1b6ba0dc16a2dc94590ceccb482e546", size = 220170, upload-time = "2025-09-21T20:02:17.395Z" }, + { url = "https://files.pythonhosted.org/packages/bb/22/e04514bf2a735d8b0add31d2b4ab636fc02370730787c576bb995390d2d5/coverage-7.10.7-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a0ec07fd264d0745ee396b666d47cef20875f4ff2375d7c4f58235886cc1ef0c", size = 219029, upload-time = "2025-09-21T20:02:18.936Z" }, + { url = "https://files.pythonhosted.org/packages/11/0b/91128e099035ece15da3445d9015e4b4153a6059403452d324cbb0a575fa/coverage-7.10.7-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:dd5e856ebb7bfb7672b0086846db5afb4567a7b9714b8a0ebafd211ec7ce6a15", size = 219259, upload-time = "2025-09-21T20:02:20.44Z" }, + { url = "https://files.pythonhosted.org/packages/8b/51/66420081e72801536a091a0c8f8c1f88a5c4bf7b9b1bdc6222c7afe6dc9b/coverage-7.10.7-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f57b2a3c8353d3e04acf75b3fed57ba41f5c0646bbf1d10c7c282291c97936b4", size = 260592, upload-time = "2025-09-21T20:02:22.313Z" }, + { url = "https://files.pythonhosted.org/packages/5d/22/9b8d458c2881b22df3db5bb3e7369e63d527d986decb6c11a591ba2364f7/coverage-7.10.7-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1ef2319dd15a0b009667301a3f84452a4dc6fddfd06b0c5c53ea472d3989fbf0", size = 262768, upload-time = "2025-09-21T20:02:24.287Z" }, + { url = "https://files.pythonhosted.org/packages/f7/08/16bee2c433e60913c610ea200b276e8eeef084b0d200bdcff69920bd5828/coverage-7.10.7-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:83082a57783239717ceb0ad584de3c69cf581b2a95ed6bf81ea66034f00401c0", size = 264995, upload-time = "2025-09-21T20:02:26.133Z" }, + { url = "https://files.pythonhosted.org/packages/20/9d/e53eb9771d154859b084b90201e5221bca7674ba449a17c101a5031d4054/coverage-7.10.7-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:50aa94fb1fb9a397eaa19c0d5ec15a5edd03a47bf1a3a6111a16b36e190cff65", size = 259546, upload-time = "2025-09-21T20:02:27.716Z" }, + { url = "https://files.pythonhosted.org/packages/ad/b0/69bc7050f8d4e56a89fb550a1577d5d0d1db2278106f6f626464067b3817/coverage-7.10.7-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2120043f147bebb41c85b97ac45dd173595ff14f2a584f2963891cbcc3091541", size = 262544, upload-time = "2025-09-21T20:02:29.216Z" }, + { url = "https://files.pythonhosted.org/packages/ef/4b/2514b060dbd1bc0aaf23b852c14bb5818f244c664cb16517feff6bb3a5ab/coverage-7.10.7-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:2fafd773231dd0378fdba66d339f84904a8e57a262f583530f4f156ab83863e6", size = 260308, upload-time = "2025-09-21T20:02:31.226Z" }, + { url = "https://files.pythonhosted.org/packages/54/78/7ba2175007c246d75e496f64c06e94122bdb914790a1285d627a918bd271/coverage-7.10.7-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:0b944ee8459f515f28b851728ad224fa2d068f1513ef6b7ff1efafeb2185f999", size = 258920, upload-time = "2025-09-21T20:02:32.823Z" }, + { url = "https://files.pythonhosted.org/packages/c0/b3/fac9f7abbc841409b9a410309d73bfa6cfb2e51c3fada738cb607ce174f8/coverage-7.10.7-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4b583b97ab2e3efe1b3e75248a9b333bd3f8b0b1b8e5b45578e05e5850dfb2c2", size = 261434, upload-time = "2025-09-21T20:02:34.86Z" }, + { url = "https://files.pythonhosted.org/packages/ee/51/a03bec00d37faaa891b3ff7387192cef20f01604e5283a5fabc95346befa/coverage-7.10.7-cp313-cp313t-win32.whl", hash = "sha256:2a78cd46550081a7909b3329e2266204d584866e8d97b898cd7fb5ac8d888b1a", size = 221403, upload-time = "2025-09-21T20:02:37.034Z" }, + { url = "https://files.pythonhosted.org/packages/53/22/3cf25d614e64bf6d8e59c7c669b20d6d940bb337bdee5900b9ca41c820bb/coverage-7.10.7-cp313-cp313t-win_amd64.whl", hash = "sha256:33a5e6396ab684cb43dc7befa386258acb2d7fae7f67330ebb85ba4ea27938eb", size = 222469, upload-time = "2025-09-21T20:02:39.011Z" }, + { url = "https://files.pythonhosted.org/packages/49/a1/00164f6d30d8a01c3c9c48418a7a5be394de5349b421b9ee019f380df2a0/coverage-7.10.7-cp313-cp313t-win_arm64.whl", hash = "sha256:86b0e7308289ddde73d863b7683f596d8d21c7d8664ce1dee061d0bcf3fbb4bb", size = 220731, upload-time = "2025-09-21T20:02:40.939Z" }, + { url = "https://files.pythonhosted.org/packages/23/9c/5844ab4ca6a4dd97a1850e030a15ec7d292b5c5cb93082979225126e35dd/coverage-7.10.7-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b06f260b16ead11643a5a9f955bd4b5fd76c1a4c6796aeade8520095b75de520", size = 218302, upload-time = "2025-09-21T20:02:42.527Z" }, + { url = "https://files.pythonhosted.org/packages/f0/89/673f6514b0961d1f0e20ddc242e9342f6da21eaba3489901b565c0689f34/coverage-7.10.7-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:212f8f2e0612778f09c55dd4872cb1f64a1f2b074393d139278ce902064d5b32", size = 218578, upload-time = "2025-09-21T20:02:44.468Z" }, + { url = "https://files.pythonhosted.org/packages/05/e8/261cae479e85232828fb17ad536765c88dd818c8470aca690b0ac6feeaa3/coverage-7.10.7-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3445258bcded7d4aa630ab8296dea4d3f15a255588dd535f980c193ab6b95f3f", size = 249629, upload-time = "2025-09-21T20:02:46.503Z" }, + { url = "https://files.pythonhosted.org/packages/82/62/14ed6546d0207e6eda876434e3e8475a3e9adbe32110ce896c9e0c06bb9a/coverage-7.10.7-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:bb45474711ba385c46a0bfe696c695a929ae69ac636cda8f532be9e8c93d720a", size = 252162, upload-time = "2025-09-21T20:02:48.689Z" }, + { url = "https://files.pythonhosted.org/packages/ff/49/07f00db9ac6478e4358165a08fb41b469a1b053212e8a00cb02f0d27a05f/coverage-7.10.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:813922f35bd800dca9994c5971883cbc0d291128a5de6b167c7aa697fcf59360", size = 253517, upload-time = "2025-09-21T20:02:50.31Z" }, + { url = "https://files.pythonhosted.org/packages/a2/59/c5201c62dbf165dfbc91460f6dbbaa85a8b82cfa6131ac45d6c1bfb52deb/coverage-7.10.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:93c1b03552081b2a4423091d6fb3787265b8f86af404cff98d1b5342713bdd69", size = 249632, upload-time = "2025-09-21T20:02:51.971Z" }, + { url = "https://files.pythonhosted.org/packages/07/ae/5920097195291a51fb00b3a70b9bbd2edbfe3c84876a1762bd1ef1565ebc/coverage-7.10.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:cc87dd1b6eaf0b848eebb1c86469b9f72a1891cb42ac7adcfbce75eadb13dd14", size = 251520, upload-time = "2025-09-21T20:02:53.858Z" }, + { url = "https://files.pythonhosted.org/packages/b9/3c/a815dde77a2981f5743a60b63df31cb322c944843e57dbd579326625a413/coverage-7.10.7-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:39508ffda4f343c35f3236fe8d1a6634a51f4581226a1262769d7f970e73bffe", size = 249455, upload-time = "2025-09-21T20:02:55.807Z" }, + { url = "https://files.pythonhosted.org/packages/aa/99/f5cdd8421ea656abefb6c0ce92556709db2265c41e8f9fc6c8ae0f7824c9/coverage-7.10.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:925a1edf3d810537c5a3abe78ec5530160c5f9a26b1f4270b40e62cc79304a1e", size = 249287, upload-time = "2025-09-21T20:02:57.784Z" }, + { url = "https://files.pythonhosted.org/packages/c3/7a/e9a2da6a1fc5d007dd51fca083a663ab930a8c4d149c087732a5dbaa0029/coverage-7.10.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2c8b9a0636f94c43cd3576811e05b89aa9bc2d0a85137affc544ae5cb0e4bfbd", size = 250946, upload-time = "2025-09-21T20:02:59.431Z" }, + { url = "https://files.pythonhosted.org/packages/ef/5b/0b5799aa30380a949005a353715095d6d1da81927d6dbed5def2200a4e25/coverage-7.10.7-cp314-cp314-win32.whl", hash = "sha256:b7b8288eb7cdd268b0304632da8cb0bb93fadcfec2fe5712f7b9cc8f4d487be2", size = 221009, upload-time = "2025-09-21T20:03:01.324Z" }, + { url = "https://files.pythonhosted.org/packages/da/b0/e802fbb6eb746de006490abc9bb554b708918b6774b722bb3a0e6aa1b7de/coverage-7.10.7-cp314-cp314-win_amd64.whl", hash = "sha256:1ca6db7c8807fb9e755d0379ccc39017ce0a84dcd26d14b5a03b78563776f681", size = 221804, upload-time = "2025-09-21T20:03:03.4Z" }, + { url = "https://files.pythonhosted.org/packages/9e/e8/71d0c8e374e31f39e3389bb0bd19e527d46f00ea8571ec7ec8fd261d8b44/coverage-7.10.7-cp314-cp314-win_arm64.whl", hash = "sha256:097c1591f5af4496226d5783d036bf6fd6cd0cbc132e071b33861de756efb880", size = 220384, upload-time = "2025-09-21T20:03:05.111Z" }, + { url = "https://files.pythonhosted.org/packages/62/09/9a5608d319fa3eba7a2019addeacb8c746fb50872b57a724c9f79f146969/coverage-7.10.7-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:a62c6ef0d50e6de320c270ff91d9dd0a05e7250cac2a800b7784bae474506e63", size = 219047, upload-time = "2025-09-21T20:03:06.795Z" }, + { url = "https://files.pythonhosted.org/packages/f5/6f/f58d46f33db9f2e3647b2d0764704548c184e6f5e014bef528b7f979ef84/coverage-7.10.7-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:9fa6e4dd51fe15d8738708a973470f67a855ca50002294852e9571cdbd9433f2", size = 219266, upload-time = "2025-09-21T20:03:08.495Z" }, + { url = "https://files.pythonhosted.org/packages/74/5c/183ffc817ba68e0b443b8c934c8795553eb0c14573813415bd59941ee165/coverage-7.10.7-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8fb190658865565c549b6b4706856d6a7b09302c797eb2cf8e7fe9dabb043f0d", size = 260767, upload-time = "2025-09-21T20:03:10.172Z" }, + { url = "https://files.pythonhosted.org/packages/0f/48/71a8abe9c1ad7e97548835e3cc1adbf361e743e9d60310c5f75c9e7bf847/coverage-7.10.7-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:affef7c76a9ef259187ef31599a9260330e0335a3011732c4b9effa01e1cd6e0", size = 262931, upload-time = "2025-09-21T20:03:11.861Z" }, + { url = "https://files.pythonhosted.org/packages/84/fd/193a8fb132acfc0a901f72020e54be5e48021e1575bb327d8ee1097a28fd/coverage-7.10.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e16e07d85ca0cf8bafe5f5d23a0b850064e8e945d5677492b06bbe6f09cc699", size = 265186, upload-time = "2025-09-21T20:03:13.539Z" }, + { url = "https://files.pythonhosted.org/packages/b1/8f/74ecc30607dd95ad50e3034221113ccb1c6d4e8085cc761134782995daae/coverage-7.10.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:03ffc58aacdf65d2a82bbeb1ffe4d01ead4017a21bfd0454983b88ca73af94b9", size = 259470, upload-time = "2025-09-21T20:03:15.584Z" }, + { url = "https://files.pythonhosted.org/packages/0f/55/79ff53a769f20d71b07023ea115c9167c0bb56f281320520cf64c5298a96/coverage-7.10.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1b4fd784344d4e52647fd7857b2af5b3fbe6c239b0b5fa63e94eb67320770e0f", size = 262626, upload-time = "2025-09-21T20:03:17.673Z" }, + { url = "https://files.pythonhosted.org/packages/88/e2/dac66c140009b61ac3fc13af673a574b00c16efdf04f9b5c740703e953c0/coverage-7.10.7-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:0ebbaddb2c19b71912c6f2518e791aa8b9f054985a0769bdb3a53ebbc765c6a1", size = 260386, upload-time = "2025-09-21T20:03:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/a2/f1/f48f645e3f33bb9ca8a496bc4a9671b52f2f353146233ebd7c1df6160440/coverage-7.10.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:a2d9a3b260cc1d1dbdb1c582e63ddcf5363426a1a68faa0f5da28d8ee3c722a0", size = 258852, upload-time = "2025-09-21T20:03:21.007Z" }, + { url = "https://files.pythonhosted.org/packages/bb/3b/8442618972c51a7affeead957995cfa8323c0c9bcf8fa5a027421f720ff4/coverage-7.10.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a3cc8638b2480865eaa3926d192e64ce6c51e3d29c849e09d5b4ad95efae5399", size = 261534, upload-time = "2025-09-21T20:03:23.12Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dc/101f3fa3a45146db0cb03f5b4376e24c0aac818309da23e2de0c75295a91/coverage-7.10.7-cp314-cp314t-win32.whl", hash = "sha256:67f8c5cbcd3deb7a60b3345dffc89a961a484ed0af1f6f73de91705cc6e31235", size = 221784, upload-time = "2025-09-21T20:03:24.769Z" }, + { url = "https://files.pythonhosted.org/packages/4c/a1/74c51803fc70a8a40d7346660379e144be772bab4ac7bb6e6b905152345c/coverage-7.10.7-cp314-cp314t-win_amd64.whl", hash = "sha256:e1ed71194ef6dea7ed2d5cb5f7243d4bcd334bfb63e59878519be558078f848d", size = 222905, upload-time = "2025-09-21T20:03:26.93Z" }, + { url = "https://files.pythonhosted.org/packages/12/65/f116a6d2127df30bcafbceef0302d8a64ba87488bf6f73a6d8eebf060873/coverage-7.10.7-cp314-cp314t-win_arm64.whl", hash = "sha256:7fe650342addd8524ca63d77b2362b02345e5f1a093266787d210c70a50b471a", size = 220922, upload-time = "2025-09-21T20:03:28.672Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ad/d1c25053764b4c42eb294aae92ab617d2e4f803397f9c7c8295caa77a260/coverage-7.10.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fff7b9c3f19957020cac546c70025331113d2e61537f6e2441bc7657913de7d3", size = 217978, upload-time = "2025-09-21T20:03:30.362Z" }, + { url = "https://files.pythonhosted.org/packages/52/2f/b9f9daa39b80ece0b9548bbb723381e29bc664822d9a12c2135f8922c22b/coverage-7.10.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bc91b314cef27742da486d6839b677b3f2793dfe52b51bbbb7cf736d5c29281c", size = 218370, upload-time = "2025-09-21T20:03:32.147Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6e/30d006c3b469e58449650642383dddf1c8fb63d44fdf92994bfd46570695/coverage-7.10.7-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:567f5c155eda8df1d3d439d40a45a6a5f029b429b06648235f1e7e51b522b396", size = 244802, upload-time = "2025-09-21T20:03:33.919Z" }, + { url = "https://files.pythonhosted.org/packages/b0/49/8a070782ce7e6b94ff6a0b6d7c65ba6bc3091d92a92cef4cd4eb0767965c/coverage-7.10.7-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2af88deffcc8a4d5974cf2d502251bc3b2db8461f0b66d80a449c33757aa9f40", size = 246625, upload-time = "2025-09-21T20:03:36.09Z" }, + { url = "https://files.pythonhosted.org/packages/6a/92/1c1c5a9e8677ce56d42b97bdaca337b2d4d9ebe703d8c174ede52dbabd5f/coverage-7.10.7-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7315339eae3b24c2d2fa1ed7d7a38654cba34a13ef19fbcb9425da46d3dc594", size = 248399, upload-time = "2025-09-21T20:03:38.342Z" }, + { url = "https://files.pythonhosted.org/packages/c0/54/b140edee7257e815de7426d5d9846b58505dffc29795fff2dfb7f8a1c5a0/coverage-7.10.7-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:912e6ebc7a6e4adfdbb1aec371ad04c68854cd3bf3608b3514e7ff9062931d8a", size = 245142, upload-time = "2025-09-21T20:03:40.591Z" }, + { url = "https://files.pythonhosted.org/packages/e4/9e/6d6b8295940b118e8b7083b29226c71f6154f7ff41e9ca431f03de2eac0d/coverage-7.10.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f49a05acd3dfe1ce9715b657e28d138578bc40126760efb962322c56e9ca344b", size = 246284, upload-time = "2025-09-21T20:03:42.355Z" }, + { url = "https://files.pythonhosted.org/packages/db/e5/5e957ca747d43dbe4d9714358375c7546cb3cb533007b6813fc20fce37ad/coverage-7.10.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cce2109b6219f22ece99db7644b9622f54a4e915dad65660ec435e89a3ea7cc3", size = 244353, upload-time = "2025-09-21T20:03:44.218Z" }, + { url = "https://files.pythonhosted.org/packages/9a/45/540fc5cc92536a1b783b7ef99450bd55a4b3af234aae35a18a339973ce30/coverage-7.10.7-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:f3c887f96407cea3916294046fc7dab611c2552beadbed4ea901cbc6a40cc7a0", size = 244430, upload-time = "2025-09-21T20:03:46.065Z" }, + { url = "https://files.pythonhosted.org/packages/75/0b/8287b2e5b38c8fe15d7e3398849bb58d382aedc0864ea0fa1820e8630491/coverage-7.10.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:635adb9a4507c9fd2ed65f39693fa31c9a3ee3a8e6dc64df033e8fdf52a7003f", size = 245311, upload-time = "2025-09-21T20:03:48.19Z" }, + { url = "https://files.pythonhosted.org/packages/0c/1d/29724999984740f0c86d03e6420b942439bf5bd7f54d4382cae386a9d1e9/coverage-7.10.7-cp39-cp39-win32.whl", hash = "sha256:5a02d5a850e2979b0a014c412573953995174743a3f7fa4ea5a6e9a3c5617431", size = 220500, upload-time = "2025-09-21T20:03:50.024Z" }, + { url = "https://files.pythonhosted.org/packages/43/11/4b1e6b129943f905ca54c339f343877b55b365ae2558806c1be4f7476ed5/coverage-7.10.7-cp39-cp39-win_amd64.whl", hash = "sha256:c134869d5ffe34547d14e174c866fd8fe2254918cc0a95e99052903bc1543e07", size = 221408, upload-time = "2025-09-21T20:03:51.803Z" }, + { url = "https://files.pythonhosted.org/packages/ec/16/114df1c291c22cac3b0c127a73e0af5c12ed7bbb6558d310429a0ae24023/coverage-7.10.7-py3-none-any.whl", hash = "sha256:f7941f6f2fe6dd6807a1208737b8a0cbcf1cc6d7b07d24998ad2d63590868260", size = 209952, upload-time = "2025-09-21T20:03:53.918Z" }, +] + +[[package]] +name = "coverage" +version = "7.11.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/d2/59/9698d57a3b11704c7b89b21d69e9d23ecf80d538cabb536c8b63f4a12322/coverage-7.11.3.tar.gz", hash = "sha256:0f59387f5e6edbbffec2281affb71cdc85e0776c1745150a3ab9b6c1d016106b", size = 815210, upload-time = "2025-11-10T00:13:17.18Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/68/b53157115ef76d50d1d916d6240e5cd5b3c14dba8ba1b984632b8221fc2e/coverage-7.11.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0c986537abca9b064510f3fd104ba33e98d3036608c7f2f5537f869bc10e1ee5", size = 216377, upload-time = "2025-11-10T00:10:27.317Z" }, + { url = "https://files.pythonhosted.org/packages/14/c1/d2f9d8e37123fe6e7ab8afcaab8195f13bc84a8b2f449a533fd4812ac724/coverage-7.11.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:28c5251b3ab1d23e66f1130ca0c419747edfbcb4690de19467cd616861507af7", size = 216892, upload-time = "2025-11-10T00:10:30.624Z" }, + { url = "https://files.pythonhosted.org/packages/83/73/18f05d8010149b650ed97ee5c9f7e4ae68c05c7d913391523281e41c2495/coverage-7.11.3-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:4f2bb4ee8dd40f9b2a80bb4adb2aecece9480ba1fa60d9382e8c8e0bd558e2eb", size = 243650, upload-time = "2025-11-10T00:10:32.392Z" }, + { url = "https://files.pythonhosted.org/packages/63/3c/c0cbb296c0ecc6dcbd70f4b473fcd7fe4517bbef8b09f4326d78f38adb87/coverage-7.11.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e5f4bfac975a2138215a38bda599ef00162e4143541cf7dd186da10a7f8e69f1", size = 245478, upload-time = "2025-11-10T00:10:34.157Z" }, + { url = "https://files.pythonhosted.org/packages/b9/9a/dad288cf9faa142a14e75e39dc646d968b93d74e15c83e9b13fd628f2cb3/coverage-7.11.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8f4cbfff5cf01fa07464439a8510affc9df281535f41a1f5312fbd2b59b4ab5c", size = 247337, upload-time = "2025-11-10T00:10:35.655Z" }, + { url = "https://files.pythonhosted.org/packages/e3/ba/f6148ebf5547b3502013175e41bf3107a4e34b7dd19f9793a6ce0e1cd61f/coverage-7.11.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:31663572f20bf3406d7ac00d6981c7bbbcec302539d26b5ac596ca499664de31", size = 244328, upload-time = "2025-11-10T00:10:37.459Z" }, + { url = "https://files.pythonhosted.org/packages/e6/4d/b93784d0b593c5df89a0d48cbbd2d0963e0ca089eaf877405849792e46d3/coverage-7.11.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9799bd6a910961cb666196b8583ed0ee125fa225c6fdee2cbf00232b861f29d2", size = 245381, upload-time = "2025-11-10T00:10:39.229Z" }, + { url = "https://files.pythonhosted.org/packages/3a/8d/6735bfd4f0f736d457642ee056a570d704c9d57fdcd5c91ea5d6b15c944e/coverage-7.11.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:097acc18bedf2c6e3144eaf09b5f6034926c3c9bb9e10574ffd0942717232507", size = 243390, upload-time = "2025-11-10T00:10:40.984Z" }, + { url = "https://files.pythonhosted.org/packages/db/3d/7ba68ed52d1873d450aefd8d2f5a353e67b421915cb6c174e4222c7b918c/coverage-7.11.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:6f033dec603eea88204589175782290a038b436105a8f3637a81c4359df27832", size = 243654, upload-time = "2025-11-10T00:10:42.496Z" }, + { url = "https://files.pythonhosted.org/packages/14/26/be2720c4c7bf73c6591ae4ab503a7b5a31c7a60ced6dba855cfcb4a5af7e/coverage-7.11.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dd9ca2d44ed8018c90efb72f237a2a140325a4c3339971364d758e78b175f58e", size = 244272, upload-time = "2025-11-10T00:10:44.39Z" }, + { url = "https://files.pythonhosted.org/packages/90/20/086f5697780df146dbc0df4ae9b6db2b23ddf5aa550f977b2825137728e9/coverage-7.11.3-cp310-cp310-win32.whl", hash = "sha256:900580bc99c145e2561ea91a2d207e639171870d8a18756eb57db944a017d4bb", size = 218969, upload-time = "2025-11-10T00:10:45.863Z" }, + { url = "https://files.pythonhosted.org/packages/98/5c/cc6faba945ede5088156da7770e30d06c38b8591785ac99bcfb2074f9ef6/coverage-7.11.3-cp310-cp310-win_amd64.whl", hash = "sha256:c8be5bfcdc7832011b2652db29ed7672ce9d353dd19bce5272ca33dbcf60aaa8", size = 219903, upload-time = "2025-11-10T00:10:47.676Z" }, + { url = "https://files.pythonhosted.org/packages/92/92/43a961c0f57b666d01c92bcd960c7f93677de5e4ee7ca722564ad6dee0fa/coverage-7.11.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:200bb89fd2a8a07780eafcdff6463104dec459f3c838d980455cfa84f5e5e6e1", size = 216504, upload-time = "2025-11-10T00:10:49.524Z" }, + { url = "https://files.pythonhosted.org/packages/5d/5c/dbfc73329726aef26dbf7fefef81b8a2afd1789343a579ea6d99bf15d26e/coverage-7.11.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8d264402fc179776d43e557e1ca4a7d953020d3ee95f7ec19cc2c9d769277f06", size = 217006, upload-time = "2025-11-10T00:10:51.32Z" }, + { url = "https://files.pythonhosted.org/packages/a5/e0/878c84fb6661964bc435beb1e28c050650aa30e4c1cdc12341e298700bda/coverage-7.11.3-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:385977d94fc155f8731c895accdfcc3dd0d9dd9ef90d102969df95d3c637ab80", size = 247415, upload-time = "2025-11-10T00:10:52.805Z" }, + { url = "https://files.pythonhosted.org/packages/56/9e/0677e78b1e6a13527f39c4b39c767b351e256b333050539861c63f98bd61/coverage-7.11.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0542ddf6107adbd2592f29da9f59f5d9cff7947b5bb4f734805085c327dcffaa", size = 249332, upload-time = "2025-11-10T00:10:54.35Z" }, + { url = "https://files.pythonhosted.org/packages/54/90/25fc343e4ce35514262451456de0953bcae5b37dda248aed50ee51234cee/coverage-7.11.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d60bf4d7f886989ddf80e121a7f4d140d9eac91f1d2385ce8eb6bda93d563297", size = 251443, upload-time = "2025-11-10T00:10:55.832Z" }, + { url = "https://files.pythonhosted.org/packages/13/56/bc02bbc890fd8b155a64285c93e2ab38647486701ac9c980d457cdae857a/coverage-7.11.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0a3b6e32457535df0d41d2d895da46434706dd85dbaf53fbc0d3bd7d914b362", size = 247554, upload-time = "2025-11-10T00:10:57.829Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ab/0318888d091d799a82d788c1e8d8bd280f1d5c41662bbb6e11187efe33e8/coverage-7.11.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:876a3ee7fd2613eb79602e4cdb39deb6b28c186e76124c3f29e580099ec21a87", size = 249139, upload-time = "2025-11-10T00:10:59.465Z" }, + { url = "https://files.pythonhosted.org/packages/79/d8/3ee50929c4cd36fcfcc0f45d753337001001116c8a5b8dd18d27ea645737/coverage-7.11.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a730cd0824e8083989f304e97b3f884189efb48e2151e07f57e9e138ab104200", size = 247209, upload-time = "2025-11-10T00:11:01.432Z" }, + { url = "https://files.pythonhosted.org/packages/94/7c/3cf06e327401c293e60c962b4b8a2ceb7167c1a428a02be3adbd1d7c7e4c/coverage-7.11.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:b5cd111d3ab7390be0c07ad839235d5ad54d2ca497b5f5db86896098a77180a4", size = 246936, upload-time = "2025-11-10T00:11:02.964Z" }, + { url = "https://files.pythonhosted.org/packages/99/0b/ffc03dc8f4083817900fd367110015ef4dd227b37284104a5eb5edc9c106/coverage-7.11.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:074e6a5cd38e06671580b4d872c1a67955d4e69639e4b04e87fc03b494c1f060", size = 247835, upload-time = "2025-11-10T00:11:04.405Z" }, + { url = "https://files.pythonhosted.org/packages/17/4d/dbe54609ee066553d0bcdcdf108b177c78dab836292bee43f96d6a5674d1/coverage-7.11.3-cp311-cp311-win32.whl", hash = "sha256:86d27d2dd7c7c5a44710565933c7dc9cd70e65ef97142e260d16d555667deef7", size = 218994, upload-time = "2025-11-10T00:11:05.966Z" }, + { url = "https://files.pythonhosted.org/packages/94/11/8e7155df53f99553ad8114054806c01a2c0b08f303ea7e38b9831652d83d/coverage-7.11.3-cp311-cp311-win_amd64.whl", hash = "sha256:ca90ef33a152205fb6f2f0c1f3e55c50df4ef049bb0940ebba666edd4cdebc55", size = 219926, upload-time = "2025-11-10T00:11:07.936Z" }, + { url = "https://files.pythonhosted.org/packages/1f/93/bea91b6a9e35d89c89a1cd5824bc72e45151a9c2a9ca0b50d9e9a85e3ae3/coverage-7.11.3-cp311-cp311-win_arm64.whl", hash = "sha256:56f909a40d68947ef726ce6a34eb38f0ed241ffbe55c5007c64e616663bcbafc", size = 218599, upload-time = "2025-11-10T00:11:09.578Z" }, + { url = "https://files.pythonhosted.org/packages/c2/39/af056ec7a27c487e25c7f6b6e51d2ee9821dba1863173ddf4dc2eebef4f7/coverage-7.11.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5b771b59ac0dfb7f139f70c85b42717ef400a6790abb6475ebac1ecee8de782f", size = 216676, upload-time = "2025-11-10T00:11:11.566Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f8/21126d34b174d037b5d01bea39077725cbb9a0da94a95c5f96929c695433/coverage-7.11.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:603c4414125fc9ae9000f17912dcfd3d3eb677d4e360b85206539240c96ea76e", size = 217034, upload-time = "2025-11-10T00:11:13.12Z" }, + { url = "https://files.pythonhosted.org/packages/d5/3f/0fd35f35658cdd11f7686303214bd5908225838f374db47f9e457c8d6df8/coverage-7.11.3-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:77ffb3b7704eb7b9b3298a01fe4509cef70117a52d50bcba29cffc5f53dd326a", size = 248531, upload-time = "2025-11-10T00:11:15.023Z" }, + { url = "https://files.pythonhosted.org/packages/8f/59/0bfc5900fc15ce4fd186e092451de776bef244565c840c9c026fd50857e1/coverage-7.11.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4d4ca49f5ba432b0755ebb0fc3a56be944a19a16bb33802264bbc7311622c0d1", size = 251290, upload-time = "2025-11-10T00:11:16.628Z" }, + { url = "https://files.pythonhosted.org/packages/71/88/d5c184001fa2ac82edf1b8f2cd91894d2230d7c309e937c54c796176e35b/coverage-7.11.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:05fd3fb6edff0c98874d752013588836f458261e5eba587afe4c547bba544afd", size = 252375, upload-time = "2025-11-10T00:11:18.249Z" }, + { url = "https://files.pythonhosted.org/packages/5c/29/f60af9f823bf62c7a00ce1ac88441b9a9a467e499493e5cc65028c8b8dd2/coverage-7.11.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0e920567f8c3a3ce68ae5a42cf7c2dc4bb6cc389f18bff2235dd8c03fa405de5", size = 248946, upload-time = "2025-11-10T00:11:20.202Z" }, + { url = "https://files.pythonhosted.org/packages/67/16/4662790f3b1e03fce5280cad93fd18711c35980beb3c6f28dca41b5230c6/coverage-7.11.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4bec8c7160688bd5a34e65c82984b25409563134d63285d8943d0599efbc448e", size = 250310, upload-time = "2025-11-10T00:11:21.689Z" }, + { url = "https://files.pythonhosted.org/packages/8f/75/dd6c2e28308a83e5fc1ee602f8204bd3aa5af685c104cb54499230cf56db/coverage-7.11.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:adb9b7b42c802bd8cb3927de8c1c26368ce50c8fdaa83a9d8551384d77537044", size = 248461, upload-time = "2025-11-10T00:11:23.384Z" }, + { url = "https://files.pythonhosted.org/packages/16/fe/b71af12be9f59dc9eb060688fa19a95bf3223f56c5af1e9861dfa2275d2c/coverage-7.11.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:c8f563b245b4ddb591e99f28e3cd140b85f114b38b7f95b2e42542f0603eb7d7", size = 248039, upload-time = "2025-11-10T00:11:25.07Z" }, + { url = "https://files.pythonhosted.org/packages/11/b8/023b2003a2cd96bdf607afe03d9b96c763cab6d76e024abe4473707c4eb8/coverage-7.11.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e2a96fdc7643c9517a317553aca13b5cae9bad9a5f32f4654ce247ae4d321405", size = 249903, upload-time = "2025-11-10T00:11:26.992Z" }, + { url = "https://files.pythonhosted.org/packages/d6/ee/5f1076311aa67b1fa4687a724cc044346380e90ce7d94fec09fd384aa5fd/coverage-7.11.3-cp312-cp312-win32.whl", hash = "sha256:e8feeb5e8705835f0622af0fe7ff8d5cb388948454647086494d6c41ec142c2e", size = 219201, upload-time = "2025-11-10T00:11:28.619Z" }, + { url = "https://files.pythonhosted.org/packages/4f/24/d21688f48fe9fcc778956680fd5aaf69f4e23b245b7c7a4755cbd421d25b/coverage-7.11.3-cp312-cp312-win_amd64.whl", hash = "sha256:abb903ffe46bd319d99979cdba350ae7016759bb69f47882242f7b93f3356055", size = 220012, upload-time = "2025-11-10T00:11:30.234Z" }, + { url = "https://files.pythonhosted.org/packages/4f/9e/d5eb508065f291456378aa9b16698b8417d87cb084c2b597f3beb00a8084/coverage-7.11.3-cp312-cp312-win_arm64.whl", hash = "sha256:1451464fd855d9bd000c19b71bb7dafea9ab815741fb0bd9e813d9b671462d6f", size = 218652, upload-time = "2025-11-10T00:11:32.165Z" }, + { url = "https://files.pythonhosted.org/packages/6d/f6/d8572c058211c7d976f24dab71999a565501fb5b3cdcb59cf782f19c4acb/coverage-7.11.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84b892e968164b7a0498ddc5746cdf4e985700b902128421bb5cec1080a6ee36", size = 216694, upload-time = "2025-11-10T00:11:34.296Z" }, + { url = "https://files.pythonhosted.org/packages/4a/f6/b6f9764d90c0ce1bce8d995649fa307fff21f4727b8d950fa2843b7b0de5/coverage-7.11.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f761dbcf45e9416ec4698e1a7649248005f0064ce3523a47402d1bff4af2779e", size = 217065, upload-time = "2025-11-10T00:11:36.281Z" }, + { url = "https://files.pythonhosted.org/packages/a5/8d/a12cb424063019fd077b5be474258a0ed8369b92b6d0058e673f0a945982/coverage-7.11.3-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1410bac9e98afd9623f53876fae7d8a5db9f5a0ac1c9e7c5188463cb4b3212e2", size = 248062, upload-time = "2025-11-10T00:11:37.903Z" }, + { url = "https://files.pythonhosted.org/packages/7f/9c/dab1a4e8e75ce053d14259d3d7485d68528a662e286e184685ea49e71156/coverage-7.11.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:004cdcea3457c0ea3233622cd3464c1e32ebba9b41578421097402bee6461b63", size = 250657, upload-time = "2025-11-10T00:11:39.509Z" }, + { url = "https://files.pythonhosted.org/packages/3f/89/a14f256438324f33bae36f9a1a7137729bf26b0a43f5eda60b147ec7c8c7/coverage-7.11.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8f067ada2c333609b52835ca4d4868645d3b63ac04fb2b9a658c55bba7f667d3", size = 251900, upload-time = "2025-11-10T00:11:41.372Z" }, + { url = "https://files.pythonhosted.org/packages/04/07/75b0d476eb349f1296486b1418b44f2d8780cc8db47493de3755e5340076/coverage-7.11.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:07bc7745c945a6d95676953e86ba7cebb9f11de7773951c387f4c07dc76d03f5", size = 248254, upload-time = "2025-11-10T00:11:43.27Z" }, + { url = "https://files.pythonhosted.org/packages/5a/4b/0c486581fa72873489ca092c52792d008a17954aa352809a7cbe6cf0bf07/coverage-7.11.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8bba7e4743e37484ae17d5c3b8eb1ce78b564cb91b7ace2e2182b25f0f764cb5", size = 250041, upload-time = "2025-11-10T00:11:45.274Z" }, + { url = "https://files.pythonhosted.org/packages/af/a3/0059dafb240ae3e3291f81b8de00e9c511d3dd41d687a227dd4b529be591/coverage-7.11.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbffc22d80d86fbe456af9abb17f7a7766e7b2101f7edaacc3535501691563f7", size = 248004, upload-time = "2025-11-10T00:11:46.93Z" }, + { url = "https://files.pythonhosted.org/packages/83/93/967d9662b1eb8c7c46917dcc7e4c1875724ac3e73c3cb78e86d7a0ac719d/coverage-7.11.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:0dba4da36730e384669e05b765a2c49f39514dd3012fcc0398dd66fba8d746d5", size = 247828, upload-time = "2025-11-10T00:11:48.563Z" }, + { url = "https://files.pythonhosted.org/packages/4c/1c/5077493c03215701e212767e470b794548d817dfc6247a4718832cc71fac/coverage-7.11.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ae12fe90b00b71a71b69f513773310782ce01d5f58d2ceb2b7c595ab9d222094", size = 249588, upload-time = "2025-11-10T00:11:50.581Z" }, + { url = "https://files.pythonhosted.org/packages/7f/a5/77f64de461016e7da3e05d7d07975c89756fe672753e4cf74417fc9b9052/coverage-7.11.3-cp313-cp313-win32.whl", hash = "sha256:12d821de7408292530b0d241468b698bce18dd12ecaf45316149f53877885f8c", size = 219223, upload-time = "2025-11-10T00:11:52.184Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1c/ec51a3c1a59d225b44bdd3a4d463135b3159a535c2686fac965b698524f4/coverage-7.11.3-cp313-cp313-win_amd64.whl", hash = "sha256:6bb599052a974bb6cedfa114f9778fedfad66854107cf81397ec87cb9b8fbcf2", size = 220033, upload-time = "2025-11-10T00:11:53.871Z" }, + { url = "https://files.pythonhosted.org/packages/01/ec/e0ce39746ed558564c16f2cc25fa95ce6fc9fa8bfb3b9e62855d4386b886/coverage-7.11.3-cp313-cp313-win_arm64.whl", hash = "sha256:bb9d7efdb063903b3fdf77caec7b77c3066885068bdc0d44bc1b0c171033f944", size = 218661, upload-time = "2025-11-10T00:11:55.597Z" }, + { url = "https://files.pythonhosted.org/packages/46/cb/483f130bc56cbbad2638248915d97b185374d58b19e3cc3107359715949f/coverage-7.11.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:fb58da65e3339b3dbe266b607bb936efb983d86b00b03eb04c4ad5b442c58428", size = 217389, upload-time = "2025-11-10T00:11:57.59Z" }, + { url = "https://files.pythonhosted.org/packages/cb/ae/81f89bae3afef75553cf10e62feb57551535d16fd5859b9ee5a2a97ddd27/coverage-7.11.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8d16bbe566e16a71d123cd66382c1315fcd520c7573652a8074a8fe281b38c6a", size = 217742, upload-time = "2025-11-10T00:11:59.519Z" }, + { url = "https://files.pythonhosted.org/packages/db/6e/a0fb897041949888191a49c36afd5c6f5d9f5fd757e0b0cd99ec198a324b/coverage-7.11.3-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a8258f10059b5ac837232c589a350a2df4a96406d6d5f2a09ec587cbdd539655", size = 259049, upload-time = "2025-11-10T00:12:01.592Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b6/d13acc67eb402d91eb94b9bd60593411799aed09ce176ee8d8c0e39c94ca/coverage-7.11.3-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4c5627429f7fbff4f4131cfdd6abd530734ef7761116811a707b88b7e205afd7", size = 261113, upload-time = "2025-11-10T00:12:03.639Z" }, + { url = "https://files.pythonhosted.org/packages/ea/07/a6868893c48191d60406df4356aa7f0f74e6de34ef1f03af0d49183e0fa1/coverage-7.11.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:465695268414e149bab754c54b0c45c8ceda73dd4a5c3ba255500da13984b16d", size = 263546, upload-time = "2025-11-10T00:12:05.485Z" }, + { url = "https://files.pythonhosted.org/packages/24/e5/28598f70b2c1098332bac47925806353b3313511d984841111e6e760c016/coverage-7.11.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4ebcddfcdfb4c614233cff6e9a3967a09484114a8b2e4f2c7a62dc83676ba13f", size = 258260, upload-time = "2025-11-10T00:12:07.137Z" }, + { url = "https://files.pythonhosted.org/packages/0e/58/58e2d9e6455a4ed746a480c4b9cf96dc3cb2a6b8f3efbee5efd33ae24b06/coverage-7.11.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:13b2066303a1c1833c654d2af0455bb009b6e1727b3883c9964bc5c2f643c1d0", size = 261121, upload-time = "2025-11-10T00:12:09.138Z" }, + { url = "https://files.pythonhosted.org/packages/17/57/38803eefb9b0409934cbc5a14e3978f0c85cb251d2b6f6a369067a7105a0/coverage-7.11.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d8750dd20362a1b80e3cf84f58013d4672f89663aee457ea59336df50fab6739", size = 258736, upload-time = "2025-11-10T00:12:11.195Z" }, + { url = "https://files.pythonhosted.org/packages/a8/f3/f94683167156e93677b3442be1d4ca70cb33718df32a2eea44a5898f04f6/coverage-7.11.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:ab6212e62ea0e1006531a2234e209607f360d98d18d532c2fa8e403c1afbdd71", size = 257625, upload-time = "2025-11-10T00:12:12.843Z" }, + { url = "https://files.pythonhosted.org/packages/87/ed/42d0bf1bc6bfa7d65f52299a31daaa866b4c11000855d753857fe78260ac/coverage-7.11.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a6b17c2b5e0b9bb7702449200f93e2d04cb04b1414c41424c08aa1e5d352da76", size = 259827, upload-time = "2025-11-10T00:12:15.128Z" }, + { url = "https://files.pythonhosted.org/packages/d3/76/5682719f5d5fbedb0c624c9851ef847407cae23362deb941f185f489c54e/coverage-7.11.3-cp313-cp313t-win32.whl", hash = "sha256:426559f105f644b69290ea414e154a0d320c3ad8a2bb75e62884731f69cf8e2c", size = 219897, upload-time = "2025-11-10T00:12:17.274Z" }, + { url = "https://files.pythonhosted.org/packages/10/e0/1da511d0ac3d39e6676fa6cc5ec35320bbf1cebb9b24e9ee7548ee4e931a/coverage-7.11.3-cp313-cp313t-win_amd64.whl", hash = "sha256:90a96fcd824564eae6137ec2563bd061d49a32944858d4bdbae5c00fb10e76ac", size = 220959, upload-time = "2025-11-10T00:12:19.292Z" }, + { url = "https://files.pythonhosted.org/packages/e5/9d/e255da6a04e9ec5f7b633c54c0fdfa221a9e03550b67a9c83217de12e96c/coverage-7.11.3-cp313-cp313t-win_arm64.whl", hash = "sha256:1e33d0bebf895c7a0905fcfaff2b07ab900885fc78bba2a12291a2cfbab014cc", size = 219234, upload-time = "2025-11-10T00:12:21.251Z" }, + { url = "https://files.pythonhosted.org/packages/84/d6/634ec396e45aded1772dccf6c236e3e7c9604bc47b816e928f32ce7987d1/coverage-7.11.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fdc5255eb4815babcdf236fa1a806ccb546724c8a9b129fd1ea4a5448a0bf07c", size = 216746, upload-time = "2025-11-10T00:12:23.089Z" }, + { url = "https://files.pythonhosted.org/packages/28/76/1079547f9d46f9c7c7d0dad35b6873c98bc5aa721eeabceafabd722cd5e7/coverage-7.11.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fe3425dc6021f906c6325d3c415e048e7cdb955505a94f1eb774dafc779ba203", size = 217077, upload-time = "2025-11-10T00:12:24.863Z" }, + { url = "https://files.pythonhosted.org/packages/2d/71/6ad80d6ae0d7cb743b9a98df8bb88b1ff3dc54491508a4a97549c2b83400/coverage-7.11.3-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:4ca5f876bf41b24378ee67c41d688155f0e54cdc720de8ef9ad6544005899240", size = 248122, upload-time = "2025-11-10T00:12:26.553Z" }, + { url = "https://files.pythonhosted.org/packages/20/1d/784b87270784b0b88e4beec9d028e8d58f73ae248032579c63ad2ac6f69a/coverage-7.11.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9061a3e3c92b27fd8036dafa26f25d95695b6aa2e4514ab16a254f297e664f83", size = 250638, upload-time = "2025-11-10T00:12:28.555Z" }, + { url = "https://files.pythonhosted.org/packages/f5/26/b6dd31e23e004e9de84d1a8672cd3d73e50f5dae65dbd0f03fa2cdde6100/coverage-7.11.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:abcea3b5f0dc44e1d01c27090bc32ce6ffb7aa665f884f1890710454113ea902", size = 251972, upload-time = "2025-11-10T00:12:30.246Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ef/f9c64d76faac56b82daa036b34d4fe9ab55eb37f22062e68e9470583e688/coverage-7.11.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:68c4eb92997dbaaf839ea13527be463178ac0ddd37a7ac636b8bc11a51af2428", size = 248147, upload-time = "2025-11-10T00:12:32.195Z" }, + { url = "https://files.pythonhosted.org/packages/b6/eb/5b666f90a8f8053bd264a1ce693d2edef2368e518afe70680070fca13ecd/coverage-7.11.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:149eccc85d48c8f06547534068c41d69a1a35322deaa4d69ba1561e2e9127e75", size = 249995, upload-time = "2025-11-10T00:12:33.969Z" }, + { url = "https://files.pythonhosted.org/packages/eb/7b/871e991ffb5d067f8e67ffb635dabba65b231d6e0eb724a4a558f4a702a5/coverage-7.11.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:08c0bcf932e47795c49f0406054824b9d45671362dfc4269e0bc6e4bff010704", size = 247948, upload-time = "2025-11-10T00:12:36.341Z" }, + { url = "https://files.pythonhosted.org/packages/0a/8b/ce454f0af9609431b06dbe5485fc9d1c35ddc387e32ae8e374f49005748b/coverage-7.11.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:39764c6167c82d68a2d8c97c33dba45ec0ad9172570860e12191416f4f8e6e1b", size = 247770, upload-time = "2025-11-10T00:12:38.167Z" }, + { url = "https://files.pythonhosted.org/packages/61/8f/79002cb58a61dfbd2085de7d0a46311ef2476823e7938db80284cedd2428/coverage-7.11.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3224c7baf34e923ffc78cb45e793925539d640d42c96646db62dbd61bbcfa131", size = 249431, upload-time = "2025-11-10T00:12:40.354Z" }, + { url = "https://files.pythonhosted.org/packages/58/cc/d06685dae97468ed22999440f2f2f5060940ab0e7952a7295f236d98cce7/coverage-7.11.3-cp314-cp314-win32.whl", hash = "sha256:c713c1c528284d636cd37723b0b4c35c11190da6f932794e145fc40f8210a14a", size = 219508, upload-time = "2025-11-10T00:12:42.231Z" }, + { url = "https://files.pythonhosted.org/packages/5f/ed/770cd07706a3598c545f62d75adf2e5bd3791bffccdcf708ec383ad42559/coverage-7.11.3-cp314-cp314-win_amd64.whl", hash = "sha256:c381a252317f63ca0179d2c7918e83b99a4ff3101e1b24849b999a00f9cd4f86", size = 220325, upload-time = "2025-11-10T00:12:44.065Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ac/6a1c507899b6fb1b9a56069954365f655956bcc648e150ce64c2b0ecbed8/coverage-7.11.3-cp314-cp314-win_arm64.whl", hash = "sha256:3e33a968672be1394eded257ec10d4acbb9af2ae263ba05a99ff901bb863557e", size = 218899, upload-time = "2025-11-10T00:12:46.18Z" }, + { url = "https://files.pythonhosted.org/packages/9a/58/142cd838d960cd740654d094f7b0300d7b81534bb7304437d2439fb685fb/coverage-7.11.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:f9c96a29c6d65bd36a91f5634fef800212dff69dacdb44345c4c9783943ab0df", size = 217471, upload-time = "2025-11-10T00:12:48.392Z" }, + { url = "https://files.pythonhosted.org/packages/bc/2c/2f44d39eb33e41ab3aba80571daad32e0f67076afcf27cb443f9e5b5a3ee/coverage-7.11.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2ec27a7a991d229213c8070d31e3ecf44d005d96a9edc30c78eaeafaa421c001", size = 217742, upload-time = "2025-11-10T00:12:50.182Z" }, + { url = "https://files.pythonhosted.org/packages/32/76/8ebc66c3c699f4de3174a43424c34c086323cd93c4930ab0f835731c443a/coverage-7.11.3-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:72c8b494bd20ae1c58528b97c4a67d5cfeafcb3845c73542875ecd43924296de", size = 259120, upload-time = "2025-11-10T00:12:52.451Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/78a3302b9595f331b86e4f12dfbd9252c8e93d97b8631500888f9a3a2af7/coverage-7.11.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:60ca149a446da255d56c2a7a813b51a80d9497a62250532598d249b3cdb1a926", size = 261229, upload-time = "2025-11-10T00:12:54.667Z" }, + { url = "https://files.pythonhosted.org/packages/07/59/1a9c0844dadef2a6efac07316d9781e6c5a3f3ea7e5e701411e99d619bfd/coverage-7.11.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb5069074db19a534de3859c43eec78e962d6d119f637c41c8e028c5ab3f59dd", size = 263642, upload-time = "2025-11-10T00:12:56.841Z" }, + { url = "https://files.pythonhosted.org/packages/37/86/66c15d190a8e82eee777793cabde730640f555db3c020a179625a2ad5320/coverage-7.11.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac5d5329c9c942bbe6295f4251b135d860ed9f86acd912d418dce186de7c19ac", size = 258193, upload-time = "2025-11-10T00:12:58.687Z" }, + { url = "https://files.pythonhosted.org/packages/c7/c7/4a4aeb25cb6f83c3ec4763e5f7cc78da1c6d4ef9e22128562204b7f39390/coverage-7.11.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e22539b676fafba17f0a90ac725f029a309eb6e483f364c86dcadee060429d46", size = 261107, upload-time = "2025-11-10T00:13:00.502Z" }, + { url = "https://files.pythonhosted.org/packages/ed/91/b986b5035f23cf0272446298967ecdd2c3c0105ee31f66f7e6b6948fd7f8/coverage-7.11.3-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:2376e8a9c889016f25472c452389e98bc6e54a19570b107e27cde9d47f387b64", size = 258717, upload-time = "2025-11-10T00:13:02.747Z" }, + { url = "https://files.pythonhosted.org/packages/f0/c7/6c084997f5a04d050c513545d3344bfa17bd3b67f143f388b5757d762b0b/coverage-7.11.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:4234914b8c67238a3c4af2bba648dc716aa029ca44d01f3d51536d44ac16854f", size = 257541, upload-time = "2025-11-10T00:13:04.689Z" }, + { url = "https://files.pythonhosted.org/packages/3b/c5/38e642917e406930cb67941210a366ccffa767365c8f8d9ec0f465a8b218/coverage-7.11.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f0b4101e2b3c6c352ff1f70b3a6fcc7c17c1ab1a91ccb7a33013cb0782af9820", size = 259872, upload-time = "2025-11-10T00:13:06.559Z" }, + { url = "https://files.pythonhosted.org/packages/b7/67/5e812979d20c167f81dbf9374048e0193ebe64c59a3d93d7d947b07865fa/coverage-7.11.3-cp314-cp314t-win32.whl", hash = "sha256:305716afb19133762e8cf62745c46c4853ad6f9eeba54a593e373289e24ea237", size = 220289, upload-time = "2025-11-10T00:13:08.635Z" }, + { url = "https://files.pythonhosted.org/packages/24/3a/b72573802672b680703e0df071faadfab7dcd4d659aaaffc4626bc8bbde8/coverage-7.11.3-cp314-cp314t-win_amd64.whl", hash = "sha256:9245bd392572b9f799261c4c9e7216bafc9405537d0f4ce3ad93afe081a12dc9", size = 221398, upload-time = "2025-11-10T00:13:10.734Z" }, + { url = "https://files.pythonhosted.org/packages/f8/4e/649628f28d38bad81e4e8eb3f78759d20ac173e3c456ac629123815feb40/coverage-7.11.3-cp314-cp314t-win_arm64.whl", hash = "sha256:9a1d577c20b4334e5e814c3d5fe07fa4a8c3ae42a601945e8d7940bab811d0bd", size = 219435, upload-time = "2025-11-10T00:13:12.712Z" }, + { url = "https://files.pythonhosted.org/packages/19/8f/92bdd27b067204b99f396a1414d6342122f3e2663459baf787108a6b8b84/coverage-7.11.3-py3-none-any.whl", hash = "sha256:351511ae28e2509c8d8cae5311577ea7dd511ab8e746ffc8814a0896c3d33fbe", size = 208478, upload-time = "2025-11-10T00:13:14.908Z" }, +] + +[[package]] +name = "cssselect2" +version = "0.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "tinycss2" }, + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/86/fd7f58fc498b3166f3a7e8e0cddb6e620fe1da35b02248b1bd59e95dbaaa/cssselect2-0.8.0.tar.gz", hash = "sha256:7674ffb954a3b46162392aee2a3a0aedb2e14ecf99fcc28644900f4e6e3e9d3a", size = 35716, upload-time = "2025-03-05T14:46:07.988Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/e7/aa315e6a749d9b96c2504a1ba0ba031ba2d0517e972ce22682e3fccecb09/cssselect2-0.8.0-py3-none-any.whl", hash = "sha256:46fc70ebc41ced7a32cd42d58b1884d72ade23d21e5a4eaaf022401c13f0e76e", size = 15454, upload-time = "2025-03-05T14:46:06.463Z" }, +] + +[[package]] +name = "data" +version = "0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "decorator" }, + { name = "funcsigs" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/e9/623be82fac4250fc614741f5b1ead83d339794f94b19ac8665b6ea12ee05/data-0.4.tar.gz", hash = "sha256:2726a65da1af31e2345b6bba81ae4cee87dddf17f7c62f5c63ba7327a8480667", size = 7042, upload-time = "2015-06-10T22:53:59.635Z" } + +[[package]] +name = "decorator" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520, upload-time = "2021-03-08T10:59:26.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, +] + +[[package]] +name = "eradicate" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7a/e1/665186aedea2d6ebf0415cf97c0629c8123a721e7afc417deeade5598215/eradicate-2.3.0.tar.gz", hash = "sha256:06df115be3b87d0fc1c483db22a2ebb12bcf40585722810d809cc770f5031c37", size = 8536, upload-time = "2023-06-09T06:31:41.814Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/c2/533e1338429aeba1f089566a2314d69d3e78ab57a73006f16a923bf2b24c/eradicate-2.3.0-py3-none-any.whl", hash = "sha256:2b29b3dd27171f209e4ddd8204b70c02f0682ae95eecb353f10e8d72b149c63e", size = 6113, upload-time = "2023-06-09T06:31:40.209Z" }, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10", size = 16674, upload-time = "2025-05-10T17:42:49.33Z" }, +] + +[[package]] +name = "flake8" +version = "7.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mccabe" }, + { name = "pycodestyle" }, + { name = "pyflakes" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9b/af/fbfe3c4b5a657d79e5c47a2827a362f9e1b763336a52f926126aa6dc7123/flake8-7.3.0.tar.gz", hash = "sha256:fe044858146b9fc69b551a4b490d69cf960fcb78ad1edcb84e7fbb1b4a8e3872", size = 48326, upload-time = "2025-06-20T19:31:35.838Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/56/13ab06b4f93ca7cac71078fbe37fcea175d3216f31f85c3168a6bbd0bb9a/flake8-7.3.0-py2.py3-none-any.whl", hash = "sha256:b9696257b9ce8beb888cdbe31cf885c90d31928fe202be0889a7cdafad32f01e", size = 57922, upload-time = "2025-06-20T19:31:34.425Z" }, +] + +[[package]] +name = "flake8-annotations" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +dependencies = [ + { name = "attrs", marker = "python_full_version < '3.10'" }, + { name = "flake8", marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/5d/fade294924cb9fa654eb3753181db021d73cc456c584ccfb71b1b3fa89e0/flake8_annotations-3.1.1.tar.gz", hash = "sha256:6c98968ccc6bdc0581d363bf147a87df2f01d0d078264b2da805799d911cf5fe", size = 20113, upload-time = "2024-05-17T14:08:01.96Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/ce/55b1908ccfd729b896a57111c40772d81c506d3710dcc15ed827c9dec661/flake8_annotations-3.1.1-py3-none-any.whl", hash = "sha256:102935bdcbfa714759a152aeb07b14aee343fc0b6f7c55ad16968ce3e0e91a8a", size = 16988, upload-time = "2024-05-17T14:07:58.855Z" }, +] + +[[package]] +name = "flake8-annotations" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +dependencies = [ + { name = "flake8", marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/ea/f36a8e013154f214715de01d46d98f12a673c7b978533079ac5caf4cbcce/flake8_annotations-3.2.0.tar.gz", hash = "sha256:71b52ec85a4ec82a10edfad497fe2b390609c95b2ad7d61cc94704bc88a498a0", size = 14169, upload-time = "2025-10-09T21:17:57.816Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/49/ae687154c2cfe623e273143000b81dbd3901d29e13ef30155f1652c18e7c/flake8_annotations-3.2.0-py3-none-any.whl", hash = "sha256:2b0203cac0eb33c43463f1a986c3cc70a448d9d593da75567173f46f64e9213c", size = 16873, upload-time = "2025-10-09T21:17:56.265Z" }, +] + +[[package]] +name = "flake8-bandit" +version = "4.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bandit" }, + { name = "flake8" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/77/1c/4f66a7a52a246d6c64312b5c40da3af3630cd60b27af81b137796af3c0bc/flake8_bandit-4.1.1.tar.gz", hash = "sha256:068e09287189cbfd7f986e92605adea2067630b75380c6b5733dab7d87f9a84e", size = 5403, upload-time = "2022-08-29T13:48:41.225Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/5f/55bab0ac89f9ad9f4c6e38087faa80c252daec4ccb7776b4dac216ca9e3f/flake8_bandit-4.1.1-py3-none-any.whl", hash = "sha256:4c8a53eb48f23d4ef1e59293657181a3c989d0077c9952717e98a0eace43e06d", size = 4828, upload-time = "2022-08-29T13:48:39.737Z" }, +] + +[[package]] +name = "flake8-broken-line" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flake8" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/30/5e/eca08446205afb79e74b6af8e227f06f0b1a26ae892708adbc4e65ccaa86/flake8_broken_line-1.0.0.tar.gz", hash = "sha256:e2c6a17f8d9a129e99c1320fce89b33843e2963871025c4c2bb7b8b8d8732a85", size = 3458, upload-time = "2023-05-31T10:09:11.716Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/ff/57d0101933527b5202cc9f80bc15aa85b207916c722a00e7adde0e33f413/flake8_broken_line-1.0.0-py3-none-any.whl", hash = "sha256:96c964336024a5030dc536a9f6fb02aa679e2d2a6b35b80a558b5136c35832a9", size = 4202, upload-time = "2023-05-31T10:09:10.027Z" }, +] + +[[package]] +name = "flake8-bugbear" +version = "24.12.12" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +dependencies = [ + { name = "attrs", marker = "python_full_version < '3.10'" }, + { name = "flake8", marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c7/25/48ba712ff589b0149f21135234f9bb45c14d6689acc6151b5e2ff8ac2ae9/flake8_bugbear-24.12.12.tar.gz", hash = "sha256:46273cef0a6b6ff48ca2d69e472f41420a42a46e24b2a8972e4f0d6733d12a64", size = 82907, upload-time = "2024-12-12T16:49:26.307Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/21/0a875f75fbe4008bd171e2fefa413536258fe6b4cfaaa087986de74588f4/flake8_bugbear-24.12.12-py3-none-any.whl", hash = "sha256:1b6967436f65ca22a42e5373aaa6f2d87966ade9aa38d4baf2a1be550767545e", size = 36664, upload-time = "2024-12-12T16:49:23.584Z" }, +] + +[[package]] +name = "flake8-bugbear" +version = "25.10.21" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +dependencies = [ + { name = "attrs", marker = "python_full_version >= '3.10'" }, + { name = "flake8", marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/30/54/0f6e431adbc67fd420540e386cb20b57e73e8aeb393f0ae2311e91b4548f/flake8_bugbear-25.10.21.tar.gz", hash = "sha256:2876afcaed8bfb3464cf33e3ec42cc3bec0a004165b84400dc3392b0547c2714", size = 83080, upload-time = "2025-10-22T01:27:03.63Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/09/0e/8ba976f7d477cad69cc7af08dc7b0163181a5e19a82fe721f954e369c067/flake8_bugbear-25.10.21-py3-none-any.whl", hash = "sha256:f1c5654f9d9d3e62e90da1f0335551fdbc565c51749713177dbcfb9edb105405", size = 37257, upload-time = "2025-10-22T01:27:02.105Z" }, +] + +[[package]] +name = "flake8-builtins" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +dependencies = [ + { name = "flake8", marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/88/96/abb083bdde679597d0ccee3cf7117ca092607a7efe657fbf0363dcf47eee/flake8_builtins-3.0.0.tar.gz", hash = "sha256:bab4d458de6b828634f789f84cb31aff2ab5f92cd37b4f3888ffa5e78cd9d373", size = 16661, upload-time = "2025-08-17T06:33:50.249Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/57/ec9248238058a894a07768026dcad6e9c2f868b3503d79e697b7754fb1f7/flake8_builtins-3.0.0-py3-none-any.whl", hash = "sha256:d5d3c545ff3a71c8f1b2f7589a06d6740b26e38e6ce1f3954a25f32ec5829b42", size = 11955, upload-time = "2025-08-17T06:33:48.785Z" }, +] + +[[package]] +name = "flake8-builtins" +version = "3.1.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +dependencies = [ + { name = "flake8", marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/d9/8c7f3e411e65ec169c95f5069a5307b2c5b3f258d3a3d2ecf0a09ecc63ad/flake8_builtins-3.1.0.tar.gz", hash = "sha256:10d29d7a81ba6546a26461e83ce1936644764a678ff6337b97a894ebc4db07c1", size = 18378, upload-time = "2025-10-25T13:45:58.587Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/a9/bf3f0e4b18002c0dc4ebe58c2950ae30a83ae82cf05a96d569818c7f0eb6/flake8_builtins-3.1.0-py3-none-any.whl", hash = "sha256:ac09803ddfcce7f67899d24b1ecf4f4bff303d8ebc07a0dde4a2a587cf9d9363", size = 18892, upload-time = "2025-10-25T13:45:56.881Z" }, +] + +[[package]] +name = "flake8-comprehensions" +version = "3.17.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flake8" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/93/da2d30987ce4c06404326e7c8e6636cae18c2b2f2d5542891a8ad64a34f4/flake8_comprehensions-3.17.0.tar.gz", hash = "sha256:bf4fa102b2bf4d6c9e999e29e4b2724cbadffb70b937600fc782161be4dc0f4a", size = 13269, upload-time = "2025-09-09T22:37:18.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/bd/d6739d685fdd79349aa51c37bdedc0d8eab6ae9c6e6ed2ca935b3f88210d/flake8_comprehensions-3.17.0-py3-none-any.whl", hash = "sha256:3943a9c6f2593c3bc5cc64106c2f89d63c6ecd49c8343597f8257b8fcfc8b0a2", size = 8185, upload-time = "2025-09-09T22:37:17.149Z" }, +] + +[[package]] +name = "flake8-eradicate" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "eradicate" }, + { name = "flake8" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9e/72/a3975dfa4287396e9fb8fc2b4ee94a80d0809babbf92abed5af9c8e29c95/flake8_eradicate-1.5.0.tar.gz", hash = "sha256:aee636cb9ecb5594a7cd92d67ad73eb69909e5cc7bd81710cf9d00970f3983a6", size = 4508, upload-time = "2023-05-31T09:57:15.484Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/a9/1319b9e5eeb7d948f6db0b0ed4209bae0ec12d30ab3ee43a0ac1d8ce455f/flake8_eradicate-1.5.0-py3-none-any.whl", hash = "sha256:18acc922ad7de623f5247c7d5595da068525ec5437dd53b22ec2259b96ce9d22", size = 5144, upload-time = "2023-05-31T09:57:13.589Z" }, +] + +[[package]] +name = "flake8-executable" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flake8" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3b/41/f0687401d76d6031aa5fc447615e1a337308a9c5c586913f70c5a2abe832/flake8-executable-2.1.3.tar.gz", hash = "sha256:619fe023e00c3d8e5113521d7200e1ebb04587c12d157f9a2fb167feb8cae66b", size = 23035, upload-time = "2023-01-23T00:39:57.537Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/d7/311104f82226a6b108f7f05c56cfb7fe773847a879f622d6450ab0a227b3/flake8_executable-2.1.3-py3-none-any.whl", hash = "sha256:f0a66c97c3b99ce63bc1f01ce602d6bd048e4fc5dc0d7a13be2bfa3deb023a34", size = 35302, upload-time = "2023-01-23T00:39:55.485Z" }, +] + +[[package]] +name = "flake8-fixme" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/96/51adbf26b1cc4c2f3a434fa06972a6bc9b3d96f6a4c04dfe9a604b5ce10e/flake8-fixme-1.1.1.tar.gz", hash = "sha256:50cade07d27a4c30d4f12351478df87339e67640c83041b664724bda6d16f33a", size = 3423, upload-time = "2019-05-06T19:06:45.852Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/a2/f3c813f06cbc1b38b1a1e3647ae204254844c7f28ce9c8eaee053d14e43d/flake8_fixme-1.1.1-py2.py3-none-any.whl", hash = "sha256:226a6f2ef916730899f29ac140bed5d4a17e5aba79f00a0e3ae1eff1997cb1ac", size = 7975, upload-time = "2019-05-06T19:06:44.658Z" }, +] + +[[package]] +name = "flake8-plugin-utils" +version = "1.3.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/51/14/53727a2bc5bbda1e1f7e266e0e2d2718e5eb6c943a1e8cc2b33e5af002e0/flake8-plugin-utils-1.3.3.tar.gz", hash = "sha256:39f6f338d038b301c6fd344b06f2e81e382b68fa03c0560dff0d9b1791a11a2c", size = 10459, upload-time = "2023-06-26T16:42:20.946Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/a7/23c012c9becaacb24e9ba8e359e48db5f96982d505e38a3e7003902c5b9f/flake8_plugin_utils-1.3.3-py3-none-any.whl", hash = "sha256:e4848c57d9d50f19100c2d75fa794b72df068666a9041b4b0409be923356a3ed", size = 9664, upload-time = "2023-06-26T16:42:23.939Z" }, +] + +[[package]] +name = "flake8-printf-formatting" +version = "1.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flake8" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/67/83/8ce88e9dfb6b3eb100bb7535ebddc09b26a7027251ff0d4d9ea79c55958a/flake8-printf-formatting-1.1.2.tar.gz", hash = "sha256:0f9e1308ac290356e4b271d4f26adfc3f9165680a7b6c221503b0f3e155a2784", size = 3986, upload-time = "2021-02-01T02:14:59.918Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/f2/ec11ecb58b368c4ff894286cf09564c34d36bd43df6822ee1c2f8825a2fd/flake8_printf_formatting-1.1.2-py2.py3-none-any.whl", hash = "sha256:d908ffabdf08581043a50572744fd60563d82386630b0335445894120089d2df", size = 4134, upload-time = "2021-02-01T02:14:58.801Z" }, +] + +[[package]] +name = "flake8-return" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flake8-plugin-utils" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/49/43ee60c21b61fbec8e86858b2dac7d11a9bdd9958fd7f59077387b6a7197/flake8-return-1.2.0.tar.gz", hash = "sha256:68dfa56582cd704febd02ad86dcf5df67e38e0836d62f1ceae7930d76d3dd955", size = 10033, upload-time = "2022-10-28T09:37:12.507Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f0/8c/6aece77ad2d0d68d8f6e8d5471fd06638de11df656db7d76de810815c437/flake8_return-1.2.0-py3-none-any.whl", hash = "sha256:1f07af12954ed03ebe2c2aac2418f78b55374e9929d4956109664588f31582a1", size = 10121, upload-time = "2022-10-28T09:37:14.468Z" }, +] + +[[package]] +name = "flake8-walrus" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flake8" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/1b/b42d60e72bd90fb679fff33ab5cb82bcbdfd7ec93838628632e2b52f732b/flake8_walrus-1.2.0.tar.gz", hash = "sha256:5dff966f0cc67abae104349812cd255ef3b5e09a7f768eac39b5a4a39f4d1e73", size = 2920, upload-time = "2022-08-01T16:37:23.389Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/80/11/24a66341aba4b456e4abdbf09c67954dbf5ea78a755be4a6681700d622ae/flake8_walrus-1.2.0-py2.py3-none-any.whl", hash = "sha256:a9f72722188b95a393f8727a0eaeb8f31d9796eeb5a4328c9c4499ccd57e589d", size = 3288, upload-time = "2022-08-01T16:37:22.113Z" }, +] + +[[package]] +name = "funcsigs" +version = "1.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/4a/db842e7a0545de1cdb0439bb80e6e42dfe82aaeaadd4072f2263a4fbed23/funcsigs-1.0.2.tar.gz", hash = "sha256:a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50", size = 27947, upload-time = "2016-04-25T22:22:33.882Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/cb/f5be453359271714c01b9bd06126eaf2e368f1fddfff30818754b5ac2328/funcsigs-1.0.2-py2.py3-none-any.whl", hash = "sha256:330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca", size = 17697, upload-time = "2016-04-25T22:22:05.222Z" }, +] + +[[package]] +name = "future" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/b2/4140c69c6a66432916b26158687e821ba631a4c9273c474343badf84d3ba/future-1.0.0.tar.gz", hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05", size = 1228490, upload-time = "2024-02-21T11:52:38.461Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/71/ae30dadffc90b9006d77af76b393cb9dfbfc9629f339fc1574a1c52e6806/future-1.0.0-py3-none-any.whl", hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216", size = 491326, upload-time = "2024-02-21T11:52:35.956Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793, upload-time = "2025-03-19T20:09:59.721Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", size = 240245, upload-time = "2024-05-05T23:42:02.455Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", size = 133271, upload-time = "2024-05-05T23:41:59.928Z" }, +] + +[[package]] +name = "latex" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "data" }, + { name = "future" }, + { name = "shutilwhich" }, + { name = "tempdir" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e3/f3/c2562ee509faadaaf4f9d5b9491de146c6522ed2843dcecfd4f8e1a72f1d/latex-0.7.0.tar.gz", hash = "sha256:bf10c3fe27e9f3adccebc12e90ec239c86dcba101b89221f6775918211482a79", size = 6523, upload-time = "2017-11-16T12:33:12.526Z" } + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +dependencies = [ + { name = "mdurl", marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596, upload-time = "2023-06-03T06:41:14.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +dependencies = [ + { name = "mdurl", marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" }, + { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" }, + { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" }, + { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" }, + { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, + { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, + { url = "https://files.pythonhosted.org/packages/56/23/0d8c13a44bde9154821586520840643467aee574d8ce79a17da539ee7fed/markupsafe-3.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26", size = 11623, upload-time = "2025-09-27T18:37:29.296Z" }, + { url = "https://files.pythonhosted.org/packages/fd/23/07a2cb9a8045d5f3f0890a8c3bc0859d7a47bfd9a560b563899bec7b72ed/markupsafe-3.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc", size = 12049, upload-time = "2025-09-27T18:37:30.234Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e4/6be85eb81503f8e11b61c0b6369b6e077dcf0a74adbd9ebf6b349937b4e9/markupsafe-3.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c", size = 21923, upload-time = "2025-09-27T18:37:31.177Z" }, + { url = "https://files.pythonhosted.org/packages/6f/bc/4dc914ead3fe6ddaef035341fee0fc956949bbd27335b611829292b89ee2/markupsafe-3.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42", size = 20543, upload-time = "2025-09-27T18:37:32.168Z" }, + { url = "https://files.pythonhosted.org/packages/89/6e/5fe81fbcfba4aef4093d5f856e5c774ec2057946052d18d168219b7bd9f9/markupsafe-3.0.3-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b", size = 20585, upload-time = "2025-09-27T18:37:33.166Z" }, + { url = "https://files.pythonhosted.org/packages/f6/f6/e0e5a3d3ae9c4020f696cd055f940ef86b64fe88de26f3a0308b9d3d048c/markupsafe-3.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758", size = 21387, upload-time = "2025-09-27T18:37:34.185Z" }, + { url = "https://files.pythonhosted.org/packages/c8/25/651753ef4dea08ea790f4fbb65146a9a44a014986996ca40102e237aa49a/markupsafe-3.0.3-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2", size = 20133, upload-time = "2025-09-27T18:37:35.138Z" }, + { url = "https://files.pythonhosted.org/packages/dc/0a/c3cf2b4fef5f0426e8a6d7fce3cb966a17817c568ce59d76b92a233fdbec/markupsafe-3.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d", size = 20588, upload-time = "2025-09-27T18:37:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/cd/1b/a7782984844bd519ad4ffdbebbba2671ec5d0ebbeac34736c15fb86399e8/markupsafe-3.0.3-cp39-cp39-win32.whl", hash = "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7", size = 14566, upload-time = "2025-09-27T18:37:37.09Z" }, + { url = "https://files.pythonhosted.org/packages/18/1f/8d9c20e1c9440e215a44be5ab64359e207fcb4f675543f1cf9a2a7f648d0/markupsafe-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e", size = 15053, upload-time = "2025-09-27T18:37:38.054Z" }, + { url = "https://files.pythonhosted.org/packages/4e/d3/fe08482b5cd995033556d45041a4f4e76e7f0521112a9c9991d40d39825f/markupsafe-3.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8", size = 13928, upload-time = "2025-09-27T18:37:39.037Z" }, +] + +[[package]] +name = "mccabe" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", size = 9658, upload-time = "2022-01-24T01:14:51.113Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e", size = 7350, upload-time = "2022-01-24T01:14:49.62Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "mistune" +version = "2.0.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fb/6b/d8013058fcdb0088b4130164fc961e15c50d30302f60a349c16bdfda9770/mistune-2.0.5.tar.gz", hash = "sha256:0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34", size = 75854, upload-time = "2023-02-07T05:42:06.739Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/e5/780d22d19543f339aad583304f58002975b586757aa590cbe7bea5cc6f13/mistune-2.0.5-py2.py3-none-any.whl", hash = "sha256:bad7f5d431886fcbaf5f758118ecff70d31f75231b34024a1341120340a65ce8", size = 24549, upload-time = "2023-02-07T05:42:05.089Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, +] + +[[package]] +name = "pillow" +version = "11.3.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069, upload-time = "2025-07-01T09:16:30.666Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4c/5d/45a3553a253ac8763f3561371432a90bdbe6000fbdcf1397ffe502aa206c/pillow-11.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b9c17fd4ace828b3003dfd1e30bff24863e0eb59b535e8f80194d9cc7ecf860", size = 5316554, upload-time = "2025-07-01T09:13:39.342Z" }, + { url = "https://files.pythonhosted.org/packages/7c/c8/67c12ab069ef586a25a4a79ced553586748fad100c77c0ce59bb4983ac98/pillow-11.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:65dc69160114cdd0ca0f35cb434633c75e8e7fad4cf855177a05bf38678f73ad", size = 4686548, upload-time = "2025-07-01T09:13:41.835Z" }, + { url = "https://files.pythonhosted.org/packages/2f/bd/6741ebd56263390b382ae4c5de02979af7f8bd9807346d068700dd6d5cf9/pillow-11.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7107195ddc914f656c7fc8e4a5e1c25f32e9236ea3ea860f257b0436011fddd0", size = 5859742, upload-time = "2025-07-03T13:09:47.439Z" }, + { url = "https://files.pythonhosted.org/packages/ca/0b/c412a9e27e1e6a829e6ab6c2dca52dd563efbedf4c9c6aa453d9a9b77359/pillow-11.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc3e831b563b3114baac7ec2ee86819eb03caa1a2cef0b481a5675b59c4fe23b", size = 7633087, upload-time = "2025-07-03T13:09:51.796Z" }, + { url = "https://files.pythonhosted.org/packages/59/9d/9b7076aaf30f5dd17e5e5589b2d2f5a5d7e30ff67a171eb686e4eecc2adf/pillow-11.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1f182ebd2303acf8c380a54f615ec883322593320a9b00438eb842c1f37ae50", size = 5963350, upload-time = "2025-07-01T09:13:43.865Z" }, + { url = "https://files.pythonhosted.org/packages/f0/16/1a6bf01fb622fb9cf5c91683823f073f053005c849b1f52ed613afcf8dae/pillow-11.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4445fa62e15936a028672fd48c4c11a66d641d2c05726c7ec1f8ba6a572036ae", size = 6631840, upload-time = "2025-07-01T09:13:46.161Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e6/6ff7077077eb47fde78739e7d570bdcd7c10495666b6afcd23ab56b19a43/pillow-11.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:71f511f6b3b91dd543282477be45a033e4845a40278fa8dcdbfdb07109bf18f9", size = 6074005, upload-time = "2025-07-01T09:13:47.829Z" }, + { url = "https://files.pythonhosted.org/packages/c3/3a/b13f36832ea6d279a697231658199e0a03cd87ef12048016bdcc84131601/pillow-11.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:040a5b691b0713e1f6cbe222e0f4f74cd233421e105850ae3b3c0ceda520f42e", size = 6708372, upload-time = "2025-07-01T09:13:52.145Z" }, + { url = "https://files.pythonhosted.org/packages/6c/e4/61b2e1a7528740efbc70b3d581f33937e38e98ef3d50b05007267a55bcb2/pillow-11.3.0-cp310-cp310-win32.whl", hash = "sha256:89bd777bc6624fe4115e9fac3352c79ed60f3bb18651420635f26e643e3dd1f6", size = 6277090, upload-time = "2025-07-01T09:13:53.915Z" }, + { url = "https://files.pythonhosted.org/packages/a9/d3/60c781c83a785d6afbd6a326ed4d759d141de43aa7365725cbcd65ce5e54/pillow-11.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:19d2ff547c75b8e3ff46f4d9ef969a06c30ab2d4263a9e287733aa8b2429ce8f", size = 6985988, upload-time = "2025-07-01T09:13:55.699Z" }, + { url = "https://files.pythonhosted.org/packages/9f/28/4f4a0203165eefb3763939c6789ba31013a2e90adffb456610f30f613850/pillow-11.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:819931d25e57b513242859ce1876c58c59dc31587847bf74cfe06b2e0cb22d2f", size = 2422899, upload-time = "2025-07-01T09:13:57.497Z" }, + { url = "https://files.pythonhosted.org/packages/db/26/77f8ed17ca4ffd60e1dcd220a6ec6d71210ba398cfa33a13a1cd614c5613/pillow-11.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1cd110edf822773368b396281a2293aeb91c90a2db00d78ea43e7e861631b722", size = 5316531, upload-time = "2025-07-01T09:13:59.203Z" }, + { url = "https://files.pythonhosted.org/packages/cb/39/ee475903197ce709322a17a866892efb560f57900d9af2e55f86db51b0a5/pillow-11.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c412fddd1b77a75aa904615ebaa6001f169b26fd467b4be93aded278266b288", size = 4686560, upload-time = "2025-07-01T09:14:01.101Z" }, + { url = "https://files.pythonhosted.org/packages/d5/90/442068a160fd179938ba55ec8c97050a612426fae5ec0a764e345839f76d/pillow-11.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1aa4de119a0ecac0a34a9c8bde33f34022e2e8f99104e47a3ca392fd60e37d", size = 5870978, upload-time = "2025-07-03T13:09:55.638Z" }, + { url = "https://files.pythonhosted.org/packages/13/92/dcdd147ab02daf405387f0218dcf792dc6dd5b14d2573d40b4caeef01059/pillow-11.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:91da1d88226663594e3f6b4b8c3c8d85bd504117d043740a8e0ec449087cc494", size = 7641168, upload-time = "2025-07-03T13:10:00.37Z" }, + { url = "https://files.pythonhosted.org/packages/6e/db/839d6ba7fd38b51af641aa904e2960e7a5644d60ec754c046b7d2aee00e5/pillow-11.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:643f189248837533073c405ec2f0bb250ba54598cf80e8c1e043381a60632f58", size = 5973053, upload-time = "2025-07-01T09:14:04.491Z" }, + { url = "https://files.pythonhosted.org/packages/f2/2f/d7675ecae6c43e9f12aa8d58b6012683b20b6edfbdac7abcb4e6af7a3784/pillow-11.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:106064daa23a745510dabce1d84f29137a37224831d88eb4ce94bb187b1d7e5f", size = 6640273, upload-time = "2025-07-01T09:14:06.235Z" }, + { url = "https://files.pythonhosted.org/packages/45/ad/931694675ede172e15b2ff03c8144a0ddaea1d87adb72bb07655eaffb654/pillow-11.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd8ff254faf15591e724dc7c4ddb6bf4793efcbe13802a4ae3e863cd300b493e", size = 6082043, upload-time = "2025-07-01T09:14:07.978Z" }, + { url = "https://files.pythonhosted.org/packages/3a/04/ba8f2b11fc80d2dd462d7abec16351b45ec99cbbaea4387648a44190351a/pillow-11.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:932c754c2d51ad2b2271fd01c3d121daaa35e27efae2a616f77bf164bc0b3e94", size = 6715516, upload-time = "2025-07-01T09:14:10.233Z" }, + { url = "https://files.pythonhosted.org/packages/48/59/8cd06d7f3944cc7d892e8533c56b0acb68399f640786313275faec1e3b6f/pillow-11.3.0-cp311-cp311-win32.whl", hash = "sha256:b4b8f3efc8d530a1544e5962bd6b403d5f7fe8b9e08227c6b255f98ad82b4ba0", size = 6274768, upload-time = "2025-07-01T09:14:11.921Z" }, + { url = "https://files.pythonhosted.org/packages/f1/cc/29c0f5d64ab8eae20f3232da8f8571660aa0ab4b8f1331da5c2f5f9a938e/pillow-11.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:1a992e86b0dd7aeb1f053cd506508c0999d710a8f07b4c791c63843fc6a807ac", size = 6986055, upload-time = "2025-07-01T09:14:13.623Z" }, + { url = "https://files.pythonhosted.org/packages/c6/df/90bd886fabd544c25addd63e5ca6932c86f2b701d5da6c7839387a076b4a/pillow-11.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:30807c931ff7c095620fe04448e2c2fc673fcbb1ffe2a7da3fb39613489b1ddd", size = 2423079, upload-time = "2025-07-01T09:14:15.268Z" }, + { url = "https://files.pythonhosted.org/packages/40/fe/1bc9b3ee13f68487a99ac9529968035cca2f0a51ec36892060edcc51d06a/pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4", size = 5278800, upload-time = "2025-07-01T09:14:17.648Z" }, + { url = "https://files.pythonhosted.org/packages/2c/32/7e2ac19b5713657384cec55f89065fb306b06af008cfd87e572035b27119/pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69", size = 4686296, upload-time = "2025-07-01T09:14:19.828Z" }, + { url = "https://files.pythonhosted.org/packages/8e/1e/b9e12bbe6e4c2220effebc09ea0923a07a6da1e1f1bfbc8d7d29a01ce32b/pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d", size = 5871726, upload-time = "2025-07-03T13:10:04.448Z" }, + { url = "https://files.pythonhosted.org/packages/8d/33/e9200d2bd7ba00dc3ddb78df1198a6e80d7669cce6c2bdbeb2530a74ec58/pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6", size = 7644652, upload-time = "2025-07-03T13:10:10.391Z" }, + { url = "https://files.pythonhosted.org/packages/41/f1/6f2427a26fc683e00d985bc391bdd76d8dd4e92fac33d841127eb8fb2313/pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7", size = 5977787, upload-time = "2025-07-01T09:14:21.63Z" }, + { url = "https://files.pythonhosted.org/packages/e4/c9/06dd4a38974e24f932ff5f98ea3c546ce3f8c995d3f0985f8e5ba48bba19/pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024", size = 6645236, upload-time = "2025-07-01T09:14:23.321Z" }, + { url = "https://files.pythonhosted.org/packages/40/e7/848f69fb79843b3d91241bad658e9c14f39a32f71a301bcd1d139416d1be/pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809", size = 6086950, upload-time = "2025-07-01T09:14:25.237Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1a/7cff92e695a2a29ac1958c2a0fe4c0b2393b60aac13b04a4fe2735cad52d/pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d", size = 6723358, upload-time = "2025-07-01T09:14:27.053Z" }, + { url = "https://files.pythonhosted.org/packages/26/7d/73699ad77895f69edff76b0f332acc3d497f22f5d75e5360f78cbcaff248/pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149", size = 6275079, upload-time = "2025-07-01T09:14:30.104Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ce/e7dfc873bdd9828f3b6e5c2bbb74e47a98ec23cc5c74fc4e54462f0d9204/pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d", size = 6986324, upload-time = "2025-07-01T09:14:31.899Z" }, + { url = "https://files.pythonhosted.org/packages/16/8f/b13447d1bf0b1f7467ce7d86f6e6edf66c0ad7cf44cf5c87a37f9bed9936/pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542", size = 2423067, upload-time = "2025-07-01T09:14:33.709Z" }, + { url = "https://files.pythonhosted.org/packages/1e/93/0952f2ed8db3a5a4c7a11f91965d6184ebc8cd7cbb7941a260d5f018cd2d/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1c627742b539bba4309df89171356fcb3cc5a9178355b2727d1b74a6cf155fbd", size = 2128328, upload-time = "2025-07-01T09:14:35.276Z" }, + { url = "https://files.pythonhosted.org/packages/4b/e8/100c3d114b1a0bf4042f27e0f87d2f25e857e838034e98ca98fe7b8c0a9c/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30b7c02f3899d10f13d7a48163c8969e4e653f8b43416d23d13d1bbfdc93b9f8", size = 2170652, upload-time = "2025-07-01T09:14:37.203Z" }, + { url = "https://files.pythonhosted.org/packages/aa/86/3f758a28a6e381758545f7cdb4942e1cb79abd271bea932998fc0db93cb6/pillow-11.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7859a4cc7c9295f5838015d8cc0a9c215b77e43d07a25e460f35cf516df8626f", size = 2227443, upload-time = "2025-07-01T09:14:39.344Z" }, + { url = "https://files.pythonhosted.org/packages/01/f4/91d5b3ffa718df2f53b0dc109877993e511f4fd055d7e9508682e8aba092/pillow-11.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec1ee50470b0d050984394423d96325b744d55c701a439d2bd66089bff963d3c", size = 5278474, upload-time = "2025-07-01T09:14:41.843Z" }, + { url = "https://files.pythonhosted.org/packages/f9/0e/37d7d3eca6c879fbd9dba21268427dffda1ab00d4eb05b32923d4fbe3b12/pillow-11.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7db51d222548ccfd274e4572fdbf3e810a5e66b00608862f947b163e613b67dd", size = 4686038, upload-time = "2025-07-01T09:14:44.008Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b0/3426e5c7f6565e752d81221af9d3676fdbb4f352317ceafd42899aaf5d8a/pillow-11.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2d6fcc902a24ac74495df63faad1884282239265c6839a0a6416d33faedfae7e", size = 5864407, upload-time = "2025-07-03T13:10:15.628Z" }, + { url = "https://files.pythonhosted.org/packages/fc/c1/c6c423134229f2a221ee53f838d4be9d82bab86f7e2f8e75e47b6bf6cd77/pillow-11.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f0f5d8f4a08090c6d6d578351a2b91acf519a54986c055af27e7a93feae6d3f1", size = 7639094, upload-time = "2025-07-03T13:10:21.857Z" }, + { url = "https://files.pythonhosted.org/packages/ba/c9/09e6746630fe6372c67c648ff9deae52a2bc20897d51fa293571977ceb5d/pillow-11.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c37d8ba9411d6003bba9e518db0db0c58a680ab9fe5179f040b0463644bc9805", size = 5973503, upload-time = "2025-07-01T09:14:45.698Z" }, + { url = "https://files.pythonhosted.org/packages/d5/1c/a2a29649c0b1983d3ef57ee87a66487fdeb45132df66ab30dd37f7dbe162/pillow-11.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13f87d581e71d9189ab21fe0efb5a23e9f28552d5be6979e84001d3b8505abe8", size = 6642574, upload-time = "2025-07-01T09:14:47.415Z" }, + { url = "https://files.pythonhosted.org/packages/36/de/d5cc31cc4b055b6c6fd990e3e7f0f8aaf36229a2698501bcb0cdf67c7146/pillow-11.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:023f6d2d11784a465f09fd09a34b150ea4672e85fb3d05931d89f373ab14abb2", size = 6084060, upload-time = "2025-07-01T09:14:49.636Z" }, + { url = "https://files.pythonhosted.org/packages/d5/ea/502d938cbaeec836ac28a9b730193716f0114c41325db428e6b280513f09/pillow-11.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:45dfc51ac5975b938e9809451c51734124e73b04d0f0ac621649821a63852e7b", size = 6721407, upload-time = "2025-07-01T09:14:51.962Z" }, + { url = "https://files.pythonhosted.org/packages/45/9c/9c5e2a73f125f6cbc59cc7087c8f2d649a7ae453f83bd0362ff7c9e2aee2/pillow-11.3.0-cp313-cp313-win32.whl", hash = "sha256:a4d336baed65d50d37b88ca5b60c0fa9d81e3a87d4a7930d3880d1624d5b31f3", size = 6273841, upload-time = "2025-07-01T09:14:54.142Z" }, + { url = "https://files.pythonhosted.org/packages/23/85/397c73524e0cd212067e0c969aa245b01d50183439550d24d9f55781b776/pillow-11.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bce5c4fd0921f99d2e858dc4d4d64193407e1b99478bc5cacecba2311abde51", size = 6978450, upload-time = "2025-07-01T09:14:56.436Z" }, + { url = "https://files.pythonhosted.org/packages/17/d2/622f4547f69cd173955194b78e4d19ca4935a1b0f03a302d655c9f6aae65/pillow-11.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:1904e1264881f682f02b7f8167935cce37bc97db457f8e7849dc3a6a52b99580", size = 2423055, upload-time = "2025-07-01T09:14:58.072Z" }, + { url = "https://files.pythonhosted.org/packages/dd/80/a8a2ac21dda2e82480852978416cfacd439a4b490a501a288ecf4fe2532d/pillow-11.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4c834a3921375c48ee6b9624061076bc0a32a60b5532b322cc0ea64e639dd50e", size = 5281110, upload-time = "2025-07-01T09:14:59.79Z" }, + { url = "https://files.pythonhosted.org/packages/44/d6/b79754ca790f315918732e18f82a8146d33bcd7f4494380457ea89eb883d/pillow-11.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e05688ccef30ea69b9317a9ead994b93975104a677a36a8ed8106be9260aa6d", size = 4689547, upload-time = "2025-07-01T09:15:01.648Z" }, + { url = "https://files.pythonhosted.org/packages/49/20/716b8717d331150cb00f7fdd78169c01e8e0c219732a78b0e59b6bdb2fd6/pillow-11.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1019b04af07fc0163e2810167918cb5add8d74674b6267616021ab558dc98ced", size = 5901554, upload-time = "2025-07-03T13:10:27.018Z" }, + { url = "https://files.pythonhosted.org/packages/74/cf/a9f3a2514a65bb071075063a96f0a5cf949c2f2fce683c15ccc83b1c1cab/pillow-11.3.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f944255db153ebb2b19c51fe85dd99ef0ce494123f21b9db4877ffdfc5590c7c", size = 7669132, upload-time = "2025-07-03T13:10:33.01Z" }, + { url = "https://files.pythonhosted.org/packages/98/3c/da78805cbdbee9cb43efe8261dd7cc0b4b93f2ac79b676c03159e9db2187/pillow-11.3.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f85acb69adf2aaee8b7da124efebbdb959a104db34d3a2cb0f3793dbae422a8", size = 6005001, upload-time = "2025-07-01T09:15:03.365Z" }, + { url = "https://files.pythonhosted.org/packages/6c/fa/ce044b91faecf30e635321351bba32bab5a7e034c60187fe9698191aef4f/pillow-11.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f6ecbeff5005399bb48d198f098a9b4b6bdf27b8487c7f38ca16eeb070cd59", size = 6668814, upload-time = "2025-07-01T09:15:05.655Z" }, + { url = "https://files.pythonhosted.org/packages/7b/51/90f9291406d09bf93686434f9183aba27b831c10c87746ff49f127ee80cb/pillow-11.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bc6e6fd0395bc052f16b1a8670859964dbd7003bd0af2ff08342eb6e442cfe", size = 6113124, upload-time = "2025-07-01T09:15:07.358Z" }, + { url = "https://files.pythonhosted.org/packages/cd/5a/6fec59b1dfb619234f7636d4157d11fb4e196caeee220232a8d2ec48488d/pillow-11.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:83e1b0161c9d148125083a35c1c5a89db5b7054834fd4387499e06552035236c", size = 6747186, upload-time = "2025-07-01T09:15:09.317Z" }, + { url = "https://files.pythonhosted.org/packages/49/6b/00187a044f98255225f172de653941e61da37104a9ea60e4f6887717e2b5/pillow-11.3.0-cp313-cp313t-win32.whl", hash = "sha256:2a3117c06b8fb646639dce83694f2f9eac405472713fcb1ae887469c0d4f6788", size = 6277546, upload-time = "2025-07-01T09:15:11.311Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5c/6caaba7e261c0d75bab23be79f1d06b5ad2a2ae49f028ccec801b0e853d6/pillow-11.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:857844335c95bea93fb39e0fa2726b4d9d758850b34075a7e3ff4f4fa3aa3b31", size = 6985102, upload-time = "2025-07-01T09:15:13.164Z" }, + { url = "https://files.pythonhosted.org/packages/f3/7e/b623008460c09a0cb38263c93b828c666493caee2eb34ff67f778b87e58c/pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e", size = 2424803, upload-time = "2025-07-01T09:15:15.695Z" }, + { url = "https://files.pythonhosted.org/packages/73/f4/04905af42837292ed86cb1b1dabe03dce1edc008ef14c473c5c7e1443c5d/pillow-11.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d9da3df5f9ea2a89b81bb6087177fb1f4d1c7146d583a3fe5c672c0d94e55e12", size = 5278520, upload-time = "2025-07-01T09:15:17.429Z" }, + { url = "https://files.pythonhosted.org/packages/41/b0/33d79e377a336247df6348a54e6d2a2b85d644ca202555e3faa0cf811ecc/pillow-11.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0b275ff9b04df7b640c59ec5a3cb113eefd3795a8df80bac69646ef699c6981a", size = 4686116, upload-time = "2025-07-01T09:15:19.423Z" }, + { url = "https://files.pythonhosted.org/packages/49/2d/ed8bc0ab219ae8768f529597d9509d184fe8a6c4741a6864fea334d25f3f/pillow-11.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0743841cabd3dba6a83f38a92672cccbd69af56e3e91777b0ee7f4dba4385632", size = 5864597, upload-time = "2025-07-03T13:10:38.404Z" }, + { url = "https://files.pythonhosted.org/packages/b5/3d/b932bb4225c80b58dfadaca9d42d08d0b7064d2d1791b6a237f87f661834/pillow-11.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2465a69cf967b8b49ee1b96d76718cd98c4e925414ead59fdf75cf0fd07df673", size = 7638246, upload-time = "2025-07-03T13:10:44.987Z" }, + { url = "https://files.pythonhosted.org/packages/09/b5/0487044b7c096f1b48f0d7ad416472c02e0e4bf6919541b111efd3cae690/pillow-11.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41742638139424703b4d01665b807c6468e23e699e8e90cffefe291c5832b027", size = 5973336, upload-time = "2025-07-01T09:15:21.237Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2d/524f9318f6cbfcc79fbc004801ea6b607ec3f843977652fdee4857a7568b/pillow-11.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93efb0b4de7e340d99057415c749175e24c8864302369e05914682ba642e5d77", size = 6642699, upload-time = "2025-07-01T09:15:23.186Z" }, + { url = "https://files.pythonhosted.org/packages/6f/d2/a9a4f280c6aefedce1e8f615baaa5474e0701d86dd6f1dede66726462bbd/pillow-11.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7966e38dcd0fa11ca390aed7c6f20454443581d758242023cf36fcb319b1a874", size = 6083789, upload-time = "2025-07-01T09:15:25.1Z" }, + { url = "https://files.pythonhosted.org/packages/fe/54/86b0cd9dbb683a9d5e960b66c7379e821a19be4ac5810e2e5a715c09a0c0/pillow-11.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:98a9afa7b9007c67ed84c57c9e0ad86a6000da96eaa638e4f8abe5b65ff83f0a", size = 6720386, upload-time = "2025-07-01T09:15:27.378Z" }, + { url = "https://files.pythonhosted.org/packages/e7/95/88efcaf384c3588e24259c4203b909cbe3e3c2d887af9e938c2022c9dd48/pillow-11.3.0-cp314-cp314-win32.whl", hash = "sha256:02a723e6bf909e7cea0dac1b0e0310be9d7650cd66222a5f1c571455c0a45214", size = 6370911, upload-time = "2025-07-01T09:15:29.294Z" }, + { url = "https://files.pythonhosted.org/packages/2e/cc/934e5820850ec5eb107e7b1a72dd278140731c669f396110ebc326f2a503/pillow-11.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:a418486160228f64dd9e9efcd132679b7a02a5f22c982c78b6fc7dab3fefb635", size = 7117383, upload-time = "2025-07-01T09:15:31.128Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e9/9c0a616a71da2a5d163aa37405e8aced9a906d574b4a214bede134e731bc/pillow-11.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:155658efb5e044669c08896c0c44231c5e9abcaadbc5cd3648df2f7c0b96b9a6", size = 2511385, upload-time = "2025-07-01T09:15:33.328Z" }, + { url = "https://files.pythonhosted.org/packages/1a/33/c88376898aff369658b225262cd4f2659b13e8178e7534df9e6e1fa289f6/pillow-11.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:59a03cdf019efbfeeed910bf79c7c93255c3d54bc45898ac2a4140071b02b4ae", size = 5281129, upload-time = "2025-07-01T09:15:35.194Z" }, + { url = "https://files.pythonhosted.org/packages/1f/70/d376247fb36f1844b42910911c83a02d5544ebd2a8bad9efcc0f707ea774/pillow-11.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f8a5827f84d973d8636e9dc5764af4f0cf2318d26744b3d902931701b0d46653", size = 4689580, upload-time = "2025-07-01T09:15:37.114Z" }, + { url = "https://files.pythonhosted.org/packages/eb/1c/537e930496149fbac69efd2fc4329035bbe2e5475b4165439e3be9cb183b/pillow-11.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ee92f2fd10f4adc4b43d07ec5e779932b4eb3dbfbc34790ada5a6669bc095aa6", size = 5902860, upload-time = "2025-07-03T13:10:50.248Z" }, + { url = "https://files.pythonhosted.org/packages/bd/57/80f53264954dcefeebcf9dae6e3eb1daea1b488f0be8b8fef12f79a3eb10/pillow-11.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c96d333dcf42d01f47b37e0979b6bd73ec91eae18614864622d9b87bbd5bbf36", size = 7670694, upload-time = "2025-07-03T13:10:56.432Z" }, + { url = "https://files.pythonhosted.org/packages/70/ff/4727d3b71a8578b4587d9c276e90efad2d6fe0335fd76742a6da08132e8c/pillow-11.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c96f993ab8c98460cd0c001447bff6194403e8b1d7e149ade5f00594918128b", size = 6005888, upload-time = "2025-07-01T09:15:39.436Z" }, + { url = "https://files.pythonhosted.org/packages/05/ae/716592277934f85d3be51d7256f3636672d7b1abfafdc42cf3f8cbd4b4c8/pillow-11.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41342b64afeba938edb034d122b2dda5db2139b9a4af999729ba8818e0056477", size = 6670330, upload-time = "2025-07-01T09:15:41.269Z" }, + { url = "https://files.pythonhosted.org/packages/e7/bb/7fe6cddcc8827b01b1a9766f5fdeb7418680744f9082035bdbabecf1d57f/pillow-11.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:068d9c39a2d1b358eb9f245ce7ab1b5c3246c7c8c7d9ba58cfa5b43146c06e50", size = 6114089, upload-time = "2025-07-01T09:15:43.13Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f5/06bfaa444c8e80f1a8e4bff98da9c83b37b5be3b1deaa43d27a0db37ef84/pillow-11.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a1bc6ba083b145187f648b667e05a2534ecc4b9f2784c2cbe3089e44868f2b9b", size = 6748206, upload-time = "2025-07-01T09:15:44.937Z" }, + { url = "https://files.pythonhosted.org/packages/f0/77/bc6f92a3e8e6e46c0ca78abfffec0037845800ea38c73483760362804c41/pillow-11.3.0-cp314-cp314t-win32.whl", hash = "sha256:118ca10c0d60b06d006be10a501fd6bbdfef559251ed31b794668ed569c87e12", size = 6377370, upload-time = "2025-07-01T09:15:46.673Z" }, + { url = "https://files.pythonhosted.org/packages/4a/82/3a721f7d69dca802befb8af08b7c79ebcab461007ce1c18bd91a5d5896f9/pillow-11.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8924748b688aa210d79883357d102cd64690e56b923a186f35a82cbc10f997db", size = 7121500, upload-time = "2025-07-01T09:15:48.512Z" }, + { url = "https://files.pythonhosted.org/packages/89/c7/5572fa4a3f45740eaab6ae86fcdf7195b55beac1371ac8c619d880cfe948/pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa", size = 2512835, upload-time = "2025-07-01T09:15:50.399Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8e/9c089f01677d1264ab8648352dcb7773f37da6ad002542760c80107da816/pillow-11.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:48d254f8a4c776de343051023eb61ffe818299eeac478da55227d96e241de53f", size = 5316478, upload-time = "2025-07-01T09:15:52.209Z" }, + { url = "https://files.pythonhosted.org/packages/b5/a9/5749930caf674695867eb56a581e78eb5f524b7583ff10b01b6e5048acb3/pillow-11.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7aee118e30a4cf54fdd873bd3a29de51e29105ab11f9aad8c32123f58c8f8081", size = 4686522, upload-time = "2025-07-01T09:15:54.162Z" }, + { url = "https://files.pythonhosted.org/packages/43/46/0b85b763eb292b691030795f9f6bb6fcaf8948c39413c81696a01c3577f7/pillow-11.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:23cff760a9049c502721bdb743a7cb3e03365fafcdfc2ef9784610714166e5a4", size = 5853376, upload-time = "2025-07-03T13:11:01.066Z" }, + { url = "https://files.pythonhosted.org/packages/5e/c6/1a230ec0067243cbd60bc2dad5dc3ab46a8a41e21c15f5c9b52b26873069/pillow-11.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6359a3bc43f57d5b375d1ad54a0074318a0844d11b76abccf478c37c986d3cfc", size = 7626020, upload-time = "2025-07-03T13:11:06.479Z" }, + { url = "https://files.pythonhosted.org/packages/63/dd/f296c27ffba447bfad76c6a0c44c1ea97a90cb9472b9304c94a732e8dbfb/pillow-11.3.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:092c80c76635f5ecb10f3f83d76716165c96f5229addbd1ec2bdbbda7d496e06", size = 5956732, upload-time = "2025-07-01T09:15:56.111Z" }, + { url = "https://files.pythonhosted.org/packages/a5/a0/98a3630f0b57f77bae67716562513d3032ae70414fcaf02750279c389a9e/pillow-11.3.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cadc9e0ea0a2431124cde7e1697106471fc4c1da01530e679b2391c37d3fbb3a", size = 6624404, upload-time = "2025-07-01T09:15:58.245Z" }, + { url = "https://files.pythonhosted.org/packages/de/e6/83dfba5646a290edd9a21964da07674409e410579c341fc5b8f7abd81620/pillow-11.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6a418691000f2a418c9135a7cf0d797c1bb7d9a485e61fe8e7722845b95ef978", size = 6067760, upload-time = "2025-07-01T09:16:00.003Z" }, + { url = "https://files.pythonhosted.org/packages/bc/41/15ab268fe6ee9a2bc7391e2bbb20a98d3974304ab1a406a992dcb297a370/pillow-11.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:97afb3a00b65cc0804d1c7abddbf090a81eaac02768af58cbdcaaa0a931e0b6d", size = 6700534, upload-time = "2025-07-01T09:16:02.29Z" }, + { url = "https://files.pythonhosted.org/packages/64/79/6d4f638b288300bed727ff29f2a3cb63db054b33518a95f27724915e3fbc/pillow-11.3.0-cp39-cp39-win32.whl", hash = "sha256:ea944117a7974ae78059fcc1800e5d3295172bb97035c0c1d9345fca1419da71", size = 6277091, upload-time = "2025-07-01T09:16:04.4Z" }, + { url = "https://files.pythonhosted.org/packages/46/05/4106422f45a05716fd34ed21763f8ec182e8ea00af6e9cb05b93a247361a/pillow-11.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:e5c5858ad8ec655450a7c7df532e9842cf8df7cc349df7225c60d5d348c8aada", size = 6986091, upload-time = "2025-07-01T09:16:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/63/c6/287fd55c2c12761d0591549d48885187579b7c257bef0c6660755b0b59ae/pillow-11.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:6abdbfd3aea42be05702a8dd98832329c167ee84400a1d1f61ab11437f1717eb", size = 2422632, upload-time = "2025-07-01T09:16:08.142Z" }, + { url = "https://files.pythonhosted.org/packages/6f/8b/209bd6b62ce8367f47e68a218bffac88888fdf2c9fcf1ecadc6c3ec1ebc7/pillow-11.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3cee80663f29e3843b68199b9d6f4f54bd1d4a6b59bdd91bceefc51238bcb967", size = 5270556, upload-time = "2025-07-01T09:16:09.961Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e6/231a0b76070c2cfd9e260a7a5b504fb72da0a95279410fa7afd99d9751d6/pillow-11.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b5f56c3f344f2ccaf0dd875d3e180f631dc60a51b314295a3e681fe8cf851fbe", size = 4654625, upload-time = "2025-07-01T09:16:11.913Z" }, + { url = "https://files.pythonhosted.org/packages/13/f4/10cf94fda33cb12765f2397fc285fa6d8eb9c29de7f3185165b702fc7386/pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e67d793d180c9df62f1f40aee3accca4829d3794c95098887edc18af4b8b780c", size = 4874207, upload-time = "2025-07-03T13:11:10.201Z" }, + { url = "https://files.pythonhosted.org/packages/72/c9/583821097dc691880c92892e8e2d41fe0a5a3d6021f4963371d2f6d57250/pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d000f46e2917c705e9fb93a3606ee4a819d1e3aa7a9b442f6444f07e77cf5e25", size = 6583939, upload-time = "2025-07-03T13:11:15.68Z" }, + { url = "https://files.pythonhosted.org/packages/3b/8e/5c9d410f9217b12320efc7c413e72693f48468979a013ad17fd690397b9a/pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:527b37216b6ac3a12d7838dc3bd75208ec57c1c6d11ef01902266a5a0c14fc27", size = 4957166, upload-time = "2025-07-01T09:16:13.74Z" }, + { url = "https://files.pythonhosted.org/packages/62/bb/78347dbe13219991877ffb3a91bf09da8317fbfcd4b5f9140aeae020ad71/pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:be5463ac478b623b9dd3937afd7fb7ab3d79dd290a28e2b6df292dc75063eb8a", size = 5581482, upload-time = "2025-07-01T09:16:16.107Z" }, + { url = "https://files.pythonhosted.org/packages/d9/28/1000353d5e61498aaeaaf7f1e4b49ddb05f2c6575f9d4f9f914a3538b6e1/pillow-11.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8dc70ca24c110503e16918a658b869019126ecfe03109b754c402daff12b3d9f", size = 6984596, upload-time = "2025-07-01T09:16:18.07Z" }, + { url = "https://files.pythonhosted.org/packages/9e/e3/6fa84033758276fb31da12e5fb66ad747ae83b93c67af17f8c6ff4cc8f34/pillow-11.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7c8ec7a017ad1bd562f93dbd8505763e688d388cde6e4a010ae1486916e713e6", size = 5270566, upload-time = "2025-07-01T09:16:19.801Z" }, + { url = "https://files.pythonhosted.org/packages/5b/ee/e8d2e1ab4892970b561e1ba96cbd59c0d28cf66737fc44abb2aec3795a4e/pillow-11.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:9ab6ae226de48019caa8074894544af5b53a117ccb9d3b3dcb2871464c829438", size = 4654618, upload-time = "2025-07-01T09:16:21.818Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6d/17f80f4e1f0761f02160fc433abd4109fa1548dcfdca46cfdadaf9efa565/pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fe27fb049cdcca11f11a7bfda64043c37b30e6b91f10cb5bab275806c32f6ab3", size = 4874248, upload-time = "2025-07-03T13:11:20.738Z" }, + { url = "https://files.pythonhosted.org/packages/de/5f/c22340acd61cef960130585bbe2120e2fd8434c214802f07e8c03596b17e/pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:465b9e8844e3c3519a983d58b80be3f668e2a7a5db97f2784e7079fbc9f9822c", size = 6583963, upload-time = "2025-07-03T13:11:26.283Z" }, + { url = "https://files.pythonhosted.org/packages/31/5e/03966aedfbfcbb4d5f8aa042452d3361f325b963ebbadddac05b122e47dd/pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5418b53c0d59b3824d05e029669efa023bbef0f3e92e75ec8428f3799487f361", size = 4957170, upload-time = "2025-07-01T09:16:23.762Z" }, + { url = "https://files.pythonhosted.org/packages/cc/2d/e082982aacc927fc2cab48e1e731bdb1643a1406acace8bed0900a61464e/pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:504b6f59505f08ae014f724b6207ff6222662aab5cc9542577fb084ed0676ac7", size = 5581505, upload-time = "2025-07-01T09:16:25.593Z" }, + { url = "https://files.pythonhosted.org/packages/34/e7/ae39f538fd6844e982063c3a5e4598b8ced43b9633baa3a85ef33af8c05c/pillow-11.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c84d689db21a1c397d001aa08241044aa2069e7587b398c8cc63020390b1c1b8", size = 6984598, upload-time = "2025-07-01T09:16:27.732Z" }, +] + +[[package]] +name = "pillow" +version = "12.0.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/cace85a1b0c9775a9f8f5d5423c8261c858760e2466c79b2dd184638b056/pillow-12.0.0.tar.gz", hash = "sha256:87d4f8125c9988bfbed67af47dd7a953e2fc7b0cc1e7800ec6d2080d490bb353", size = 47008828, upload-time = "2025-10-15T18:24:14.008Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/08/26e68b6b5da219c2a2cb7b563af008b53bb8e6b6fcb3fa40715fcdb2523a/pillow-12.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:3adfb466bbc544b926d50fe8f4a4e6abd8c6bffd28a26177594e6e9b2b76572b", size = 5289809, upload-time = "2025-10-15T18:21:27.791Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/4e58fb097fb74c7b4758a680aacd558810a417d1edaa7000142976ef9d2f/pillow-12.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1ac11e8ea4f611c3c0147424eae514028b5e9077dd99ab91e1bd7bc33ff145e1", size = 4650606, upload-time = "2025-10-15T18:21:29.823Z" }, + { url = "https://files.pythonhosted.org/packages/4b/e0/1fa492aa9f77b3bc6d471c468e62bfea1823056bf7e5e4f1914d7ab2565e/pillow-12.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d49e2314c373f4c2b39446fb1a45ed333c850e09d0c59ac79b72eb3b95397363", size = 6221023, upload-time = "2025-10-15T18:21:31.415Z" }, + { url = "https://files.pythonhosted.org/packages/c1/09/4de7cd03e33734ccd0c876f0251401f1314e819cbfd89a0fcb6e77927cc6/pillow-12.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c7b2a63fd6d5246349f3d3f37b14430d73ee7e8173154461785e43036ffa96ca", size = 8024937, upload-time = "2025-10-15T18:21:33.453Z" }, + { url = "https://files.pythonhosted.org/packages/2e/69/0688e7c1390666592876d9d474f5e135abb4acb39dcb583c4dc5490f1aff/pillow-12.0.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d64317d2587c70324b79861babb9c09f71fbb780bad212018874b2c013d8600e", size = 6334139, upload-time = "2025-10-15T18:21:35.395Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1c/880921e98f525b9b44ce747ad1ea8f73fd7e992bafe3ca5e5644bf433dea/pillow-12.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d77153e14b709fd8b8af6f66a3afbb9ed6e9fc5ccf0b6b7e1ced7b036a228782", size = 7026074, upload-time = "2025-10-15T18:21:37.219Z" }, + { url = "https://files.pythonhosted.org/packages/28/03/96f718331b19b355610ef4ebdbbde3557c726513030665071fd025745671/pillow-12.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:32ed80ea8a90ee3e6fa08c21e2e091bba6eda8eccc83dbc34c95169507a91f10", size = 6448852, upload-time = "2025-10-15T18:21:39.168Z" }, + { url = "https://files.pythonhosted.org/packages/3a/a0/6a193b3f0cc9437b122978d2c5cbce59510ccf9a5b48825096ed7472da2f/pillow-12.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c828a1ae702fc712978bda0320ba1b9893d99be0badf2647f693cc01cf0f04fa", size = 7117058, upload-time = "2025-10-15T18:21:40.997Z" }, + { url = "https://files.pythonhosted.org/packages/a7/c4/043192375eaa4463254e8e61f0e2ec9a846b983929a8d0a7122e0a6d6fff/pillow-12.0.0-cp310-cp310-win32.whl", hash = "sha256:bd87e140e45399c818fac4247880b9ce719e4783d767e030a883a970be632275", size = 6295431, upload-time = "2025-10-15T18:21:42.518Z" }, + { url = "https://files.pythonhosted.org/packages/92/c6/c2f2fc7e56301c21827e689bb8b0b465f1b52878b57471a070678c0c33cd/pillow-12.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:455247ac8a4cfb7b9bc45b7e432d10421aea9fc2e74d285ba4072688a74c2e9d", size = 7000412, upload-time = "2025-10-15T18:21:44.404Z" }, + { url = "https://files.pythonhosted.org/packages/b2/d2/5f675067ba82da7a1c238a73b32e3fd78d67f9d9f80fbadd33a40b9c0481/pillow-12.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:6ace95230bfb7cd79ef66caa064bbe2f2a1e63d93471c3a2e1f1348d9f22d6b7", size = 2435903, upload-time = "2025-10-15T18:21:46.29Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5a/a2f6773b64edb921a756eb0729068acad9fc5208a53f4a349396e9436721/pillow-12.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0fd00cac9c03256c8b2ff58f162ebcd2587ad3e1f2e397eab718c47e24d231cc", size = 5289798, upload-time = "2025-10-15T18:21:47.763Z" }, + { url = "https://files.pythonhosted.org/packages/2e/05/069b1f8a2e4b5a37493da6c5868531c3f77b85e716ad7a590ef87d58730d/pillow-12.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3475b96f5908b3b16c47533daaa87380c491357d197564e0ba34ae75c0f3257", size = 4650589, upload-time = "2025-10-15T18:21:49.515Z" }, + { url = "https://files.pythonhosted.org/packages/61/e3/2c820d6e9a36432503ead175ae294f96861b07600a7156154a086ba7111a/pillow-12.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:110486b79f2d112cf6add83b28b627e369219388f64ef2f960fef9ebaf54c642", size = 6230472, upload-time = "2025-10-15T18:21:51.052Z" }, + { url = "https://files.pythonhosted.org/packages/4f/89/63427f51c64209c5e23d4d52071c8d0f21024d3a8a487737caaf614a5795/pillow-12.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5269cc1caeedb67e6f7269a42014f381f45e2e7cd42d834ede3c703a1d915fe3", size = 8033887, upload-time = "2025-10-15T18:21:52.604Z" }, + { url = "https://files.pythonhosted.org/packages/f6/1b/c9711318d4901093c15840f268ad649459cd81984c9ec9887756cca049a5/pillow-12.0.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa5129de4e174daccbc59d0a3b6d20eaf24417d59851c07ebb37aeb02947987c", size = 6343964, upload-time = "2025-10-15T18:21:54.619Z" }, + { url = "https://files.pythonhosted.org/packages/41/1e/db9470f2d030b4995083044cd8738cdd1bf773106819f6d8ba12597d5352/pillow-12.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bee2a6db3a7242ea309aa7ee8e2780726fed67ff4e5b40169f2c940e7eb09227", size = 7034756, upload-time = "2025-10-15T18:21:56.151Z" }, + { url = "https://files.pythonhosted.org/packages/cc/b0/6177a8bdd5ee4ed87cba2de5a3cc1db55ffbbec6176784ce5bb75aa96798/pillow-12.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:90387104ee8400a7b4598253b4c406f8958f59fcf983a6cea2b50d59f7d63d0b", size = 6458075, upload-time = "2025-10-15T18:21:57.759Z" }, + { url = "https://files.pythonhosted.org/packages/bc/5e/61537aa6fa977922c6a03253a0e727e6e4a72381a80d63ad8eec350684f2/pillow-12.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bc91a56697869546d1b8f0a3ff35224557ae7f881050e99f615e0119bf934b4e", size = 7125955, upload-time = "2025-10-15T18:21:59.372Z" }, + { url = "https://files.pythonhosted.org/packages/1f/3d/d5033539344ee3cbd9a4d69e12e63ca3a44a739eb2d4c8da350a3d38edd7/pillow-12.0.0-cp311-cp311-win32.whl", hash = "sha256:27f95b12453d165099c84f8a8bfdfd46b9e4bda9e0e4b65f0635430027f55739", size = 6298440, upload-time = "2025-10-15T18:22:00.982Z" }, + { url = "https://files.pythonhosted.org/packages/4d/42/aaca386de5cc8bd8a0254516957c1f265e3521c91515b16e286c662854c4/pillow-12.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:b583dc9070312190192631373c6c8ed277254aa6e6084b74bdd0a6d3b221608e", size = 6999256, upload-time = "2025-10-15T18:22:02.617Z" }, + { url = "https://files.pythonhosted.org/packages/ba/f1/9197c9c2d5708b785f631a6dfbfa8eb3fb9672837cb92ae9af812c13b4ed/pillow-12.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:759de84a33be3b178a64c8ba28ad5c135900359e85fb662bc6e403ad4407791d", size = 2436025, upload-time = "2025-10-15T18:22:04.598Z" }, + { url = "https://files.pythonhosted.org/packages/2c/90/4fcce2c22caf044e660a198d740e7fbc14395619e3cb1abad12192c0826c/pillow-12.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:53561a4ddc36facb432fae7a9d8afbfaf94795414f5cdc5fc52f28c1dca90371", size = 5249377, upload-time = "2025-10-15T18:22:05.993Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e0/ed960067543d080691d47d6938ebccbf3976a931c9567ab2fbfab983a5dd/pillow-12.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71db6b4c1653045dacc1585c1b0d184004f0d7e694c7b34ac165ca70c0838082", size = 4650343, upload-time = "2025-10-15T18:22:07.718Z" }, + { url = "https://files.pythonhosted.org/packages/e7/a1/f81fdeddcb99c044bf7d6faa47e12850f13cee0849537a7d27eeab5534d4/pillow-12.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2fa5f0b6716fc88f11380b88b31fe591a06c6315e955c096c35715788b339e3f", size = 6232981, upload-time = "2025-10-15T18:22:09.287Z" }, + { url = "https://files.pythonhosted.org/packages/88/e1/9098d3ce341a8750b55b0e00c03f1630d6178f38ac191c81c97a3b047b44/pillow-12.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:82240051c6ca513c616f7f9da06e871f61bfd7805f566275841af15015b8f98d", size = 8041399, upload-time = "2025-10-15T18:22:10.872Z" }, + { url = "https://files.pythonhosted.org/packages/a7/62/a22e8d3b602ae8cc01446d0c57a54e982737f44b6f2e1e019a925143771d/pillow-12.0.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:55f818bd74fe2f11d4d7cbc65880a843c4075e0ac7226bc1a23261dbea531953", size = 6347740, upload-time = "2025-10-15T18:22:12.769Z" }, + { url = "https://files.pythonhosted.org/packages/4f/87/424511bdcd02c8d7acf9f65caa09f291a519b16bd83c3fb3374b3d4ae951/pillow-12.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b87843e225e74576437fd5b6a4c2205d422754f84a06942cfaf1dc32243e45a8", size = 7040201, upload-time = "2025-10-15T18:22:14.813Z" }, + { url = "https://files.pythonhosted.org/packages/dc/4d/435c8ac688c54d11755aedfdd9f29c9eeddf68d150fe42d1d3dbd2365149/pillow-12.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c607c90ba67533e1b2355b821fef6764d1dd2cbe26b8c1005ae84f7aea25ff79", size = 6462334, upload-time = "2025-10-15T18:22:16.375Z" }, + { url = "https://files.pythonhosted.org/packages/2b/f2/ad34167a8059a59b8ad10bc5c72d4d9b35acc6b7c0877af8ac885b5f2044/pillow-12.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:21f241bdd5080a15bc86d3466a9f6074a9c2c2b314100dd896ac81ee6db2f1ba", size = 7134162, upload-time = "2025-10-15T18:22:17.996Z" }, + { url = "https://files.pythonhosted.org/packages/0c/b1/a7391df6adacf0a5c2cf6ac1cf1fcc1369e7d439d28f637a847f8803beb3/pillow-12.0.0-cp312-cp312-win32.whl", hash = "sha256:dd333073e0cacdc3089525c7df7d39b211bcdf31fc2824e49d01c6b6187b07d0", size = 6298769, upload-time = "2025-10-15T18:22:19.923Z" }, + { url = "https://files.pythonhosted.org/packages/a2/0b/d87733741526541c909bbf159e338dcace4f982daac6e5a8d6be225ca32d/pillow-12.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:9fe611163f6303d1619bbcb653540a4d60f9e55e622d60a3108be0d5b441017a", size = 7001107, upload-time = "2025-10-15T18:22:21.644Z" }, + { url = "https://files.pythonhosted.org/packages/bc/96/aaa61ce33cc98421fb6088af2a03be4157b1e7e0e87087c888e2370a7f45/pillow-12.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:7dfb439562f234f7d57b1ac6bc8fe7f838a4bd49c79230e0f6a1da93e82f1fad", size = 2436012, upload-time = "2025-10-15T18:22:23.621Z" }, + { url = "https://files.pythonhosted.org/packages/62/f2/de993bb2d21b33a98d031ecf6a978e4b61da207bef02f7b43093774c480d/pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0869154a2d0546545cde61d1789a6524319fc1897d9ee31218eae7a60ccc5643", size = 4045493, upload-time = "2025-10-15T18:22:25.758Z" }, + { url = "https://files.pythonhosted.org/packages/0e/b6/bc8d0c4c9f6f111a783d045310945deb769b806d7574764234ffd50bc5ea/pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a7921c5a6d31b3d756ec980f2f47c0cfdbce0fc48c22a39347a895f41f4a6ea4", size = 4120461, upload-time = "2025-10-15T18:22:27.286Z" }, + { url = "https://files.pythonhosted.org/packages/5d/57/d60d343709366a353dc56adb4ee1e7d8a2cc34e3fbc22905f4167cfec119/pillow-12.0.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:1ee80a59f6ce048ae13cda1abf7fbd2a34ab9ee7d401c46be3ca685d1999a399", size = 3576912, upload-time = "2025-10-15T18:22:28.751Z" }, + { url = "https://files.pythonhosted.org/packages/a4/a4/a0a31467e3f83b94d37568294b01d22b43ae3c5d85f2811769b9c66389dd/pillow-12.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c50f36a62a22d350c96e49ad02d0da41dbd17ddc2e29750dbdba4323f85eb4a5", size = 5249132, upload-time = "2025-10-15T18:22:30.641Z" }, + { url = "https://files.pythonhosted.org/packages/83/06/48eab21dd561de2914242711434c0c0eb992ed08ff3f6107a5f44527f5e9/pillow-12.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5193fde9a5f23c331ea26d0cf171fbf67e3f247585f50c08b3e205c7aeb4589b", size = 4650099, upload-time = "2025-10-15T18:22:32.73Z" }, + { url = "https://files.pythonhosted.org/packages/fc/bd/69ed99fd46a8dba7c1887156d3572fe4484e3f031405fcc5a92e31c04035/pillow-12.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bde737cff1a975b70652b62d626f7785e0480918dece11e8fef3c0cf057351c3", size = 6230808, upload-time = "2025-10-15T18:22:34.337Z" }, + { url = "https://files.pythonhosted.org/packages/ea/94/8fad659bcdbf86ed70099cb60ae40be6acca434bbc8c4c0d4ef356d7e0de/pillow-12.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a6597ff2b61d121172f5844b53f21467f7082f5fb385a9a29c01414463f93b07", size = 8037804, upload-time = "2025-10-15T18:22:36.402Z" }, + { url = "https://files.pythonhosted.org/packages/20/39/c685d05c06deecfd4e2d1950e9a908aa2ca8bc4e6c3b12d93b9cafbd7837/pillow-12.0.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b817e7035ea7f6b942c13aa03bb554fc44fea70838ea21f8eb31c638326584e", size = 6345553, upload-time = "2025-10-15T18:22:38.066Z" }, + { url = "https://files.pythonhosted.org/packages/38/57/755dbd06530a27a5ed74f8cb0a7a44a21722ebf318edbe67ddbd7fb28f88/pillow-12.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f4f1231b7dec408e8670264ce63e9c71409d9583dd21d32c163e25213ee2a344", size = 7037729, upload-time = "2025-10-15T18:22:39.769Z" }, + { url = "https://files.pythonhosted.org/packages/ca/b6/7e94f4c41d238615674d06ed677c14883103dce1c52e4af16f000338cfd7/pillow-12.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e51b71417049ad6ab14c49608b4a24d8fb3fe605e5dfabfe523b58064dc3d27", size = 6459789, upload-time = "2025-10-15T18:22:41.437Z" }, + { url = "https://files.pythonhosted.org/packages/9c/14/4448bb0b5e0f22dd865290536d20ec8a23b64e2d04280b89139f09a36bb6/pillow-12.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d120c38a42c234dc9a8c5de7ceaaf899cf33561956acb4941653f8bdc657aa79", size = 7130917, upload-time = "2025-10-15T18:22:43.152Z" }, + { url = "https://files.pythonhosted.org/packages/dd/ca/16c6926cc1c015845745d5c16c9358e24282f1e588237a4c36d2b30f182f/pillow-12.0.0-cp313-cp313-win32.whl", hash = "sha256:4cc6b3b2efff105c6a1656cfe59da4fdde2cda9af1c5e0b58529b24525d0a098", size = 6302391, upload-time = "2025-10-15T18:22:44.753Z" }, + { url = "https://files.pythonhosted.org/packages/6d/2a/dd43dcfd6dae9b6a49ee28a8eedb98c7d5ff2de94a5d834565164667b97b/pillow-12.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:4cf7fed4b4580601c4345ceb5d4cbf5a980d030fd5ad07c4d2ec589f95f09905", size = 7007477, upload-time = "2025-10-15T18:22:46.838Z" }, + { url = "https://files.pythonhosted.org/packages/77/f0/72ea067f4b5ae5ead653053212af05ce3705807906ba3f3e8f58ddf617e6/pillow-12.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:9f0b04c6b8584c2c193babcccc908b38ed29524b29dd464bc8801bf10d746a3a", size = 2435918, upload-time = "2025-10-15T18:22:48.399Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5e/9046b423735c21f0487ea6cb5b10f89ea8f8dfbe32576fe052b5ba9d4e5b/pillow-12.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7fa22993bac7b77b78cae22bad1e2a987ddf0d9015c63358032f84a53f23cdc3", size = 5251406, upload-time = "2025-10-15T18:22:49.905Z" }, + { url = "https://files.pythonhosted.org/packages/12/66/982ceebcdb13c97270ef7a56c3969635b4ee7cd45227fa707c94719229c5/pillow-12.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f135c702ac42262573fe9714dfe99c944b4ba307af5eb507abef1667e2cbbced", size = 4653218, upload-time = "2025-10-15T18:22:51.587Z" }, + { url = "https://files.pythonhosted.org/packages/16/b3/81e625524688c31859450119bf12674619429cab3119eec0e30a7a1029cb/pillow-12.0.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c85de1136429c524e55cfa4e033b4a7940ac5c8ee4d9401cc2d1bf48154bbc7b", size = 6266564, upload-time = "2025-10-15T18:22:53.215Z" }, + { url = "https://files.pythonhosted.org/packages/98/59/dfb38f2a41240d2408096e1a76c671d0a105a4a8471b1871c6902719450c/pillow-12.0.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:38df9b4bfd3db902c9c2bd369bcacaf9d935b2fff73709429d95cc41554f7b3d", size = 8069260, upload-time = "2025-10-15T18:22:54.933Z" }, + { url = "https://files.pythonhosted.org/packages/dc/3d/378dbea5cd1874b94c312425ca77b0f47776c78e0df2df751b820c8c1d6c/pillow-12.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d87ef5795da03d742bf49439f9ca4d027cde49c82c5371ba52464aee266699a", size = 6379248, upload-time = "2025-10-15T18:22:56.605Z" }, + { url = "https://files.pythonhosted.org/packages/84/b0/d525ef47d71590f1621510327acec75ae58c721dc071b17d8d652ca494d8/pillow-12.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aff9e4d82d082ff9513bdd6acd4f5bd359f5b2c870907d2b0a9c5e10d40c88fe", size = 7066043, upload-time = "2025-10-15T18:22:58.53Z" }, + { url = "https://files.pythonhosted.org/packages/61/2c/aced60e9cf9d0cde341d54bf7932c9ffc33ddb4a1595798b3a5150c7ec4e/pillow-12.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8d8ca2b210ada074d57fcee40c30446c9562e542fc46aedc19baf758a93532ee", size = 6490915, upload-time = "2025-10-15T18:23:00.582Z" }, + { url = "https://files.pythonhosted.org/packages/ef/26/69dcb9b91f4e59f8f34b2332a4a0a951b44f547c4ed39d3e4dcfcff48f89/pillow-12.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:99a7f72fb6249302aa62245680754862a44179b545ded638cf1fef59befb57ef", size = 7157998, upload-time = "2025-10-15T18:23:02.627Z" }, + { url = "https://files.pythonhosted.org/packages/61/2b/726235842220ca95fa441ddf55dd2382b52ab5b8d9c0596fe6b3f23dafe8/pillow-12.0.0-cp313-cp313t-win32.whl", hash = "sha256:4078242472387600b2ce8d93ade8899c12bf33fa89e55ec89fe126e9d6d5d9e9", size = 6306201, upload-time = "2025-10-15T18:23:04.709Z" }, + { url = "https://files.pythonhosted.org/packages/c0/3d/2afaf4e840b2df71344ababf2f8edd75a705ce500e5dc1e7227808312ae1/pillow-12.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2c54c1a783d6d60595d3514f0efe9b37c8808746a66920315bfd34a938d7994b", size = 7013165, upload-time = "2025-10-15T18:23:06.46Z" }, + { url = "https://files.pythonhosted.org/packages/6f/75/3fa09aa5cf6ed04bee3fa575798ddf1ce0bace8edb47249c798077a81f7f/pillow-12.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:26d9f7d2b604cd23aba3e9faf795787456ac25634d82cd060556998e39c6fa47", size = 2437834, upload-time = "2025-10-15T18:23:08.194Z" }, + { url = "https://files.pythonhosted.org/packages/54/2a/9a8c6ba2c2c07b71bec92cf63e03370ca5e5f5c5b119b742bcc0cde3f9c5/pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:beeae3f27f62308f1ddbcfb0690bf44b10732f2ef43758f169d5e9303165d3f9", size = 4045531, upload-time = "2025-10-15T18:23:10.121Z" }, + { url = "https://files.pythonhosted.org/packages/84/54/836fdbf1bfb3d66a59f0189ff0b9f5f666cee09c6188309300df04ad71fa/pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d4827615da15cd59784ce39d3388275ec093ae3ee8d7f0c089b76fa87af756c2", size = 4120554, upload-time = "2025-10-15T18:23:12.14Z" }, + { url = "https://files.pythonhosted.org/packages/0d/cd/16aec9f0da4793e98e6b54778a5fbce4f375c6646fe662e80600b8797379/pillow-12.0.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:3e42edad50b6909089750e65c91aa09aaf1e0a71310d383f11321b27c224ed8a", size = 3576812, upload-time = "2025-10-15T18:23:13.962Z" }, + { url = "https://files.pythonhosted.org/packages/f6/b7/13957fda356dc46339298b351cae0d327704986337c3c69bb54628c88155/pillow-12.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e5d8efac84c9afcb40914ab49ba063d94f5dbdf5066db4482c66a992f47a3a3b", size = 5252689, upload-time = "2025-10-15T18:23:15.562Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f5/eae31a306341d8f331f43edb2e9122c7661b975433de5e447939ae61c5da/pillow-12.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:266cd5f2b63ff316d5a1bba46268e603c9caf5606d44f38c2873c380950576ad", size = 4650186, upload-time = "2025-10-15T18:23:17.379Z" }, + { url = "https://files.pythonhosted.org/packages/86/62/2a88339aa40c4c77e79108facbd307d6091e2c0eb5b8d3cf4977cfca2fe6/pillow-12.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:58eea5ebe51504057dd95c5b77d21700b77615ab0243d8152793dc00eb4faf01", size = 6230308, upload-time = "2025-10-15T18:23:18.971Z" }, + { url = "https://files.pythonhosted.org/packages/c7/33/5425a8992bcb32d1cb9fa3dd39a89e613d09a22f2c8083b7bf43c455f760/pillow-12.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f13711b1a5ba512d647a0e4ba79280d3a9a045aaf7e0cc6fbe96b91d4cdf6b0c", size = 8039222, upload-time = "2025-10-15T18:23:20.909Z" }, + { url = "https://files.pythonhosted.org/packages/d8/61/3f5d3b35c5728f37953d3eec5b5f3e77111949523bd2dd7f31a851e50690/pillow-12.0.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6846bd2d116ff42cba6b646edf5bf61d37e5cbd256425fa089fee4ff5c07a99e", size = 6346657, upload-time = "2025-10-15T18:23:23.077Z" }, + { url = "https://files.pythonhosted.org/packages/3a/be/ee90a3d79271227e0f0a33c453531efd6ed14b2e708596ba5dd9be948da3/pillow-12.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c98fa880d695de164b4135a52fd2e9cd7b7c90a9d8ac5e9e443a24a95ef9248e", size = 7038482, upload-time = "2025-10-15T18:23:25.005Z" }, + { url = "https://files.pythonhosted.org/packages/44/34/a16b6a4d1ad727de390e9bd9f19f5f669e079e5826ec0f329010ddea492f/pillow-12.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa3ed2a29a9e9d2d488b4da81dcb54720ac3104a20bf0bd273f1e4648aff5af9", size = 6461416, upload-time = "2025-10-15T18:23:27.009Z" }, + { url = "https://files.pythonhosted.org/packages/b6/39/1aa5850d2ade7d7ba9f54e4e4c17077244ff7a2d9e25998c38a29749eb3f/pillow-12.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d034140032870024e6b9892c692fe2968493790dd57208b2c37e3fb35f6df3ab", size = 7131584, upload-time = "2025-10-15T18:23:29.752Z" }, + { url = "https://files.pythonhosted.org/packages/bf/db/4fae862f8fad0167073a7733973bfa955f47e2cac3dc3e3e6257d10fab4a/pillow-12.0.0-cp314-cp314-win32.whl", hash = "sha256:1b1b133e6e16105f524a8dec491e0586d072948ce15c9b914e41cdadd209052b", size = 6400621, upload-time = "2025-10-15T18:23:32.06Z" }, + { url = "https://files.pythonhosted.org/packages/2b/24/b350c31543fb0107ab2599464d7e28e6f856027aadda995022e695313d94/pillow-12.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:8dc232e39d409036af549c86f24aed8273a40ffa459981146829a324e0848b4b", size = 7142916, upload-time = "2025-10-15T18:23:34.71Z" }, + { url = "https://files.pythonhosted.org/packages/0f/9b/0ba5a6fd9351793996ef7487c4fdbde8d3f5f75dbedc093bb598648fddf0/pillow-12.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:d52610d51e265a51518692045e372a4c363056130d922a7351429ac9f27e70b0", size = 2523836, upload-time = "2025-10-15T18:23:36.967Z" }, + { url = "https://files.pythonhosted.org/packages/f5/7a/ceee0840aebc579af529b523d530840338ecf63992395842e54edc805987/pillow-12.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1979f4566bb96c1e50a62d9831e2ea2d1211761e5662afc545fa766f996632f6", size = 5255092, upload-time = "2025-10-15T18:23:38.573Z" }, + { url = "https://files.pythonhosted.org/packages/44/76/20776057b4bfd1aef4eeca992ebde0f53a4dce874f3ae693d0ec90a4f79b/pillow-12.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b2e4b27a6e15b04832fe9bf292b94b5ca156016bbc1ea9c2c20098a0320d6cf6", size = 4653158, upload-time = "2025-10-15T18:23:40.238Z" }, + { url = "https://files.pythonhosted.org/packages/82/3f/d9ff92ace07be8836b4e7e87e6a4c7a8318d47c2f1463ffcf121fc57d9cb/pillow-12.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fb3096c30df99fd01c7bf8e544f392103d0795b9f98ba71a8054bcbf56b255f1", size = 6267882, upload-time = "2025-10-15T18:23:42.434Z" }, + { url = "https://files.pythonhosted.org/packages/9f/7a/4f7ff87f00d3ad33ba21af78bfcd2f032107710baf8280e3722ceec28cda/pillow-12.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7438839e9e053ef79f7112c881cef684013855016f928b168b81ed5835f3e75e", size = 8071001, upload-time = "2025-10-15T18:23:44.29Z" }, + { url = "https://files.pythonhosted.org/packages/75/87/fcea108944a52dad8cca0715ae6247e271eb80459364a98518f1e4f480c1/pillow-12.0.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d5c411a8eaa2299322b647cd932586b1427367fd3184ffbb8f7a219ea2041ca", size = 6380146, upload-time = "2025-10-15T18:23:46.065Z" }, + { url = "https://files.pythonhosted.org/packages/91/52/0d31b5e571ef5fd111d2978b84603fce26aba1b6092f28e941cb46570745/pillow-12.0.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7e091d464ac59d2c7ad8e7e08105eaf9dafbc3883fd7265ffccc2baad6ac925", size = 7067344, upload-time = "2025-10-15T18:23:47.898Z" }, + { url = "https://files.pythonhosted.org/packages/7b/f4/2dd3d721f875f928d48e83bb30a434dee75a2531bca839bb996bb0aa5a91/pillow-12.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:792a2c0be4dcc18af9d4a2dfd8a11a17d5e25274a1062b0ec1c2d79c76f3e7f8", size = 6491864, upload-time = "2025-10-15T18:23:49.607Z" }, + { url = "https://files.pythonhosted.org/packages/30/4b/667dfcf3d61fc309ba5a15b141845cece5915e39b99c1ceab0f34bf1d124/pillow-12.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:afbefa430092f71a9593a99ab6a4e7538bc9eabbf7bf94f91510d3503943edc4", size = 7158911, upload-time = "2025-10-15T18:23:51.351Z" }, + { url = "https://files.pythonhosted.org/packages/a2/2f/16cabcc6426c32218ace36bf0d55955e813f2958afddbf1d391849fee9d1/pillow-12.0.0-cp314-cp314t-win32.whl", hash = "sha256:3830c769decf88f1289680a59d4f4c46c72573446352e2befec9a8512104fa52", size = 6408045, upload-time = "2025-10-15T18:23:53.177Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/e29aa0c9c666cf787628d3f0dcf379f4791fba79f4936d02f8b37165bdf8/pillow-12.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:905b0365b210c73afb0ebe9101a32572152dfd1c144c7e28968a331b9217b94a", size = 7148282, upload-time = "2025-10-15T18:23:55.316Z" }, + { url = "https://files.pythonhosted.org/packages/c1/70/6b41bdcddf541b437bbb9f47f94d2db5d9ddef6c37ccab8c9107743748a4/pillow-12.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:99353a06902c2e43b43e8ff74ee65a7d90307d82370604746738a1e0661ccca7", size = 2525630, upload-time = "2025-10-15T18:23:57.149Z" }, + { url = "https://files.pythonhosted.org/packages/1d/b3/582327e6c9f86d037b63beebe981425d6811104cb443e8193824ef1a2f27/pillow-12.0.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b22bd8c974942477156be55a768f7aa37c46904c175be4e158b6a86e3a6b7ca8", size = 5215068, upload-time = "2025-10-15T18:23:59.594Z" }, + { url = "https://files.pythonhosted.org/packages/fd/d6/67748211d119f3b6540baf90f92fae73ae51d5217b171b0e8b5f7e5d558f/pillow-12.0.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:805ebf596939e48dbb2e4922a1d3852cfc25c38160751ce02da93058b48d252a", size = 4614994, upload-time = "2025-10-15T18:24:01.669Z" }, + { url = "https://files.pythonhosted.org/packages/2d/e1/f8281e5d844c41872b273b9f2c34a4bf64ca08905668c8ae730eedc7c9fa/pillow-12.0.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cae81479f77420d217def5f54b5b9d279804d17e982e0f2fa19b1d1e14ab5197", size = 5246639, upload-time = "2025-10-15T18:24:03.403Z" }, + { url = "https://files.pythonhosted.org/packages/94/5a/0d8ab8ffe8a102ff5df60d0de5af309015163bf710c7bb3e8311dd3b3ad0/pillow-12.0.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aeaefa96c768fc66818730b952a862235d68825c178f1b3ffd4efd7ad2edcb7c", size = 6986839, upload-time = "2025-10-15T18:24:05.344Z" }, + { url = "https://files.pythonhosted.org/packages/20/2e/3434380e8110b76cd9eb00a363c484b050f949b4bbe84ba770bb8508a02c/pillow-12.0.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09f2d0abef9e4e2f349305a4f8cc784a8a6c2f58a8c4892eea13b10a943bd26e", size = 5313505, upload-time = "2025-10-15T18:24:07.137Z" }, + { url = "https://files.pythonhosted.org/packages/57/ca/5a9d38900d9d74785141d6580950fe705de68af735ff6e727cb911b64740/pillow-12.0.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bdee52571a343d721fb2eb3b090a82d959ff37fc631e3f70422e0c2e029f3e76", size = 5963654, upload-time = "2025-10-15T18:24:09.579Z" }, + { url = "https://files.pythonhosted.org/packages/95/7e/f896623c3c635a90537ac093c6a618ebe1a90d87206e42309cb5d98a1b9e/pillow-12.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:b290fd8aa38422444d4b50d579de197557f182ef1068b75f5aa8558638b8d0a5", size = 6997850, upload-time = "2025-10-15T18:24:11.495Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "pycodestyle" +version = "2.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/11/e0/abfd2a0d2efe47670df87f3e3a0e2edda42f055053c85361f19c0e2c1ca8/pycodestyle-2.14.0.tar.gz", hash = "sha256:c4b5b517d278089ff9d0abdec919cd97262a3367449ea1c8b49b91529167b783", size = 39472, upload-time = "2025-06-20T18:49:48.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/27/a58ddaf8c588a3ef080db9d0b7e0b97215cee3a45df74f3a94dbbf5c893a/pycodestyle-2.14.0-py2.py3-none-any.whl", hash = "sha256:dd6bf7cb4ee77f8e016f9c8e74a35ddd9f67e1d5fd4184d86c3b98e07099f42d", size = 31594, upload-time = "2025-06-20T18:49:47.491Z" }, +] + +[[package]] +name = "pycparser" +version = "2.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, +] + +[[package]] +name = "pyflakes" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/45/dc/fd034dc20b4b264b3d015808458391acbf9df40b1e54750ef175d39180b1/pyflakes-3.4.0.tar.gz", hash = "sha256:b24f96fafb7d2ab0ec5075b7350b3d2d2218eab42003821c06344973d3ea2f58", size = 64669, upload-time = "2025-06-20T18:45:27.834Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/2f/81d580a0fb83baeb066698975cb14a618bdbed7720678566f1b046a95fe8/pyflakes-3.4.0-py2.py3-none-any.whl", hash = "sha256:f742a7dbd0d9cb9ea41e9a24a918996e8170c799fa528688d40dd582c8265f4f", size = 63551, upload-time = "2025-06-20T18:45:26.937Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pytest" +version = "8.4.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.10'" }, + { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "packaging", marker = "python_full_version < '3.10'" }, + { name = "pluggy", marker = "python_full_version < '3.10'" }, + { name = "pygments", marker = "python_full_version < '3.10'" }, + { name = "tomli", marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618, upload-time = "2025-09-04T14:34:22.711Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365750, upload-time = "2025-09-04T14:34:20.226Z" }, +] + +[[package]] +name = "pytest" +version = "9.0.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version == '3.10.*'" }, + { name = "iniconfig", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "packaging", marker = "python_full_version >= '3.10'" }, + { name = "pluggy", marker = "python_full_version >= '3.10'" }, + { name = "pygments", marker = "python_full_version >= '3.10'" }, + { name = "tomli", marker = "python_full_version == '3.10.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/07/56/f013048ac4bc4c1d9be45afd4ab209ea62822fb1598f40687e6bf45dcea4/pytest-9.0.1.tar.gz", hash = "sha256:3e9c069ea73583e255c3b21cf46b8d3c56f6e3a1a8f6da94ccb0fcf57b9d73c8", size = 1564125, upload-time = "2025-11-12T13:05:09.333Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/8b/6300fb80f858cda1c51ffa17075df5d846757081d11ab4aa35cef9e6258b/pytest-9.0.1-py3-none-any.whl", hash = "sha256:67be0030d194df2dfa7b556f2e56fb3c3315bd5c8822c6951162b92b32ce7dad", size = 373668, upload-time = "2025-11-12T13:05:07.379Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/e5/af35f7ea75cf72f2cd079c95ee16797de7cd71f29ea7c68ae5ce7be1eda0/PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43", size = 125201, upload-time = "2023-07-18T00:00:23.308Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/06/4beb652c0fe16834032e54f0956443d4cc797fe645527acee59e7deaa0a2/PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a", size = 189447, upload-time = "2023-07-17T23:57:04.325Z" }, + { url = "https://files.pythonhosted.org/packages/5b/07/10033a403b23405a8fc48975444463d3d10a5c2736b7eb2550b07b367429/PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f", size = 169264, upload-time = "2023-07-17T23:57:07.787Z" }, + { url = "https://files.pythonhosted.org/packages/f1/26/55e4f21db1f72eaef092015d9017c11510e7e6301c62a6cfee91295d13c6/PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938", size = 677003, upload-time = "2023-07-17T23:57:13.144Z" }, + { url = "https://files.pythonhosted.org/packages/ba/91/090818dfa62e85181f3ae23dd1e8b7ea7f09684864a900cab72d29c57346/PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d", size = 699070, upload-time = "2023-07-17T23:57:19.402Z" }, + { url = "https://files.pythonhosted.org/packages/29/61/bf33c6c85c55bc45a29eee3195848ff2d518d84735eb0e2d8cb42e0d285e/PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515", size = 705525, upload-time = "2023-07-17T23:57:25.272Z" }, + { url = "https://files.pythonhosted.org/packages/07/91/45dfd0ef821a7f41d9d0136ea3608bb5b1653e42fd56a7970532cb5c003f/PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290", size = 707514, upload-time = "2023-08-28T18:43:20.945Z" }, + { url = "https://files.pythonhosted.org/packages/b6/a0/b6700da5d49e9fed49dc3243d3771b598dad07abb37cc32e524607f96adc/PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924", size = 130488, upload-time = "2023-07-17T23:57:28.144Z" }, + { url = "https://files.pythonhosted.org/packages/24/97/9b59b43431f98d01806b288532da38099cc6f2fea0f3d712e21e269c0279/PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d", size = 145338, upload-time = "2023-07-17T23:57:31.118Z" }, + { url = "https://files.pythonhosted.org/packages/ec/0d/26fb23e8863e0aeaac0c64e03fd27367ad2ae3f3cccf3798ee98ce160368/PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007", size = 187867, upload-time = "2023-07-17T23:57:34.35Z" }, + { url = "https://files.pythonhosted.org/packages/28/09/55f715ddbf95a054b764b547f617e22f1d5e45d83905660e9a088078fe67/PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab", size = 167530, upload-time = "2023-07-17T23:57:36.975Z" }, + { url = "https://files.pythonhosted.org/packages/5e/94/7d5ee059dfb92ca9e62f4057dcdec9ac08a9e42679644854dc01177f8145/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d", size = 732244, upload-time = "2023-07-17T23:57:43.774Z" }, + { url = "https://files.pythonhosted.org/packages/06/92/e0224aa6ebf9dc54a06a4609da37da40bb08d126f5535d81bff6b417b2ae/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc", size = 752871, upload-time = "2023-07-17T23:57:51.921Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5e/efd033ab7199a0b2044dab3b9f7a4f6670e6a52c089de572e928d2873b06/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673", size = 757729, upload-time = "2023-07-17T23:57:59.865Z" }, + { url = "https://files.pythonhosted.org/packages/03/5c/c4671451b2f1d76ebe352c0945d4cd13500adb5d05f5a51ee296d80152f7/PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b", size = 748528, upload-time = "2023-08-28T18:43:23.207Z" }, + { url = "https://files.pythonhosted.org/packages/73/9c/766e78d1efc0d1fca637a6b62cea1b4510a7fb93617eb805223294fef681/PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741", size = 130286, upload-time = "2023-07-17T23:58:02.964Z" }, + { url = "https://files.pythonhosted.org/packages/b3/34/65bb4b2d7908044963ebf614fe0fdb080773fc7030d7e39c8d3eddcd4257/PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34", size = 144699, upload-time = "2023-07-17T23:58:05.586Z" }, + { url = "https://files.pythonhosted.org/packages/bc/06/1b305bf6aa704343be85444c9d011f626c763abb40c0edc1cad13bfd7f86/PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28", size = 178692, upload-time = "2023-08-28T18:43:24.924Z" }, + { url = "https://files.pythonhosted.org/packages/84/02/404de95ced348b73dd84f70e15a41843d817ff8c1744516bf78358f2ffd2/PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9", size = 165622, upload-time = "2023-08-28T18:43:26.54Z" }, + { url = "https://files.pythonhosted.org/packages/c7/4c/4a2908632fc980da6d918b9de9c1d9d7d7e70b2672b1ad5166ed27841ef7/PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef", size = 696937, upload-time = "2024-01-18T20:40:22.92Z" }, + { url = "https://files.pythonhosted.org/packages/b4/33/720548182ffa8344418126017aa1d4ab4aeec9a2275f04ce3f3573d8ace8/PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0", size = 724969, upload-time = "2023-08-28T18:43:28.56Z" }, + { url = "https://files.pythonhosted.org/packages/4f/78/77b40157b6cb5f2d3d31a3d9b2efd1ba3505371f76730d267e8b32cf4b7f/PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4", size = 712604, upload-time = "2023-08-28T18:43:30.206Z" }, + { url = "https://files.pythonhosted.org/packages/2e/97/3e0e089ee85e840f4b15bfa00e4e63d84a3691ababbfea92d6f820ea6f21/PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54", size = 126098, upload-time = "2023-08-28T18:43:31.835Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9f/fbade56564ad486809c27b322d0f7e6a89c01f6b4fe208402e90d4443a99/PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df", size = 138675, upload-time = "2023-08-28T18:43:33.613Z" }, + { url = "https://files.pythonhosted.org/packages/57/c5/5d09b66b41d549914802f482a2118d925d876dc2a35b2d127694c1345c34/PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8", size = 197846, upload-time = "2023-07-17T23:59:46.424Z" }, + { url = "https://files.pythonhosted.org/packages/0e/88/21b2f16cb2123c1e9375f2c93486e35fdc86e63f02e274f0e99c589ef153/PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859", size = 174396, upload-time = "2023-07-17T23:59:49.538Z" }, + { url = "https://files.pythonhosted.org/packages/ac/6c/967d91a8edf98d2b2b01d149bd9e51b8f9fb527c98d80ebb60c6b21d60c4/PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6", size = 731824, upload-time = "2023-07-17T23:59:58.111Z" }, + { url = "https://files.pythonhosted.org/packages/4a/4b/c71ef18ef83c82f99e6da8332910692af78ea32bd1d1d76c9787dfa36aea/PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0", size = 754777, upload-time = "2023-07-18T00:00:06.716Z" }, + { url = "https://files.pythonhosted.org/packages/7d/39/472f2554a0f1e825bd7c5afc11c817cd7a2f3657460f7159f691fbb37c51/PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c", size = 738883, upload-time = "2023-07-18T00:00:14.423Z" }, + { url = "https://files.pythonhosted.org/packages/40/da/a175a35cf5583580e90ac3e2a3dbca90e43011593ae62ce63f79d7b28d92/PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5", size = 750294, upload-time = "2023-08-28T18:43:37.153Z" }, + { url = "https://files.pythonhosted.org/packages/24/62/7fcc372442ec8ea331da18c24b13710e010c5073ab851ef36bf9dacb283f/PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c", size = 136936, upload-time = "2023-07-18T00:00:17.167Z" }, + { url = "https://files.pythonhosted.org/packages/84/4d/82704d1ab9290b03da94e6425f5e87396b999fd7eb8e08f3a92c158402bf/PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486", size = 152751, upload-time = "2023-07-18T00:00:19.939Z" }, +] + +[[package]] +name = "rich" +version = "14.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "markdown-it-py", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fb/d2/8920e102050a0de7bfabeb4c4614a49248cf8d5d7a8d01885fbb24dc767a/rich-14.2.0.tar.gz", hash = "sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4", size = 219990, upload-time = "2025-10-09T14:16:53.064Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/7a/b0178788f8dc6cafce37a212c99565fa1fe7872c70c6c9c1e1a372d9d88f/rich-14.2.0-py3-none-any.whl", hash = "sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd", size = 243393, upload-time = "2025-10-09T14:16:51.245Z" }, +] + +[[package]] +name = "shutilwhich" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/be/783f181594bb8bcfde174d6cd1e41956b986d0d8d337d535eb2555b92f8d/shutilwhich-1.1.0.tar.gz", hash = "sha256:db1f39c6461e42f630fa617bb8c79090f7711c9ca493e615e43d0610ecb64dc6", size = 2300, upload-time = "2015-04-25T14:03:13.563Z" } + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "stevedore" +version = "5.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2a/5f/8418daad5c353300b7661dd8ce2574b0410a6316a8be650a189d5c68d938/stevedore-5.5.0.tar.gz", hash = "sha256:d31496a4f4df9825e1a1e4f1f74d19abb0154aff311c3b376fcc89dae8fccd73", size = 513878, upload-time = "2025-08-25T12:54:26.806Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/80/c5/0c06759b95747882bb50abda18f5fb48c3e9b0fbfc6ebc0e23550b52415d/stevedore-5.5.0-py3-none-any.whl", hash = "sha256:18363d4d268181e8e8452e71a38cd77630f345b2ef6b4a8d5614dac5ee0d18cf", size = 49518, upload-time = "2025-08-25T12:54:25.445Z" }, +] + +[[package]] +name = "tempdir" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dd/b2/b931869a9f9ad9fa14deecbcfc28e514b0755f8b904d9fe48864951b1a60/tempdir-0.7.1.tar.gz", hash = "sha256:689680ed3ba4cc8347a70e67efc25086ce85b53b9d24a1420899c585bbf7ba8e", size = 5890, upload-time = "2016-03-02T16:42:22.066Z" } + +[[package]] +name = "tinycss2" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/fd/7a5ee21fd08ff70d3d33a5781c255cbe779659bd03278feb98b19ee550f4/tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7", size = 87085, upload-time = "2024-10-24T14:58:29.895Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/34/ebdc18bae6aa14fbee1a08b63c015c72b64868ff7dae68808ab500c492e2/tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289", size = 26610, upload-time = "2024-10-24T14:58:28.029Z" }, +] + +[[package]] +name = "tomli" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/52/ed/3f73f72945444548f33eba9a87fc7a6e969915e7b1acc8260b30e1f76a2f/tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549", size = 17392, upload-time = "2025-10-08T22:01:47.119Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/2e/299f62b401438d5fe1624119c723f5d877acc86a4c2492da405626665f12/tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45", size = 153236, upload-time = "2025-10-08T22:01:00.137Z" }, + { url = "https://files.pythonhosted.org/packages/86/7f/d8fffe6a7aefdb61bced88fcb5e280cfd71e08939da5894161bd71bea022/tomli-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba", size = 148084, upload-time = "2025-10-08T22:01:01.63Z" }, + { url = "https://files.pythonhosted.org/packages/47/5c/24935fb6a2ee63e86d80e4d3b58b222dafaf438c416752c8b58537c8b89a/tomli-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf", size = 234832, upload-time = "2025-10-08T22:01:02.543Z" }, + { url = "https://files.pythonhosted.org/packages/89/da/75dfd804fc11e6612846758a23f13271b76d577e299592b4371a4ca4cd09/tomli-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441", size = 242052, upload-time = "2025-10-08T22:01:03.836Z" }, + { url = "https://files.pythonhosted.org/packages/70/8c/f48ac899f7b3ca7eb13af73bacbc93aec37f9c954df3c08ad96991c8c373/tomli-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845", size = 239555, upload-time = "2025-10-08T22:01:04.834Z" }, + { url = "https://files.pythonhosted.org/packages/ba/28/72f8afd73f1d0e7829bfc093f4cb98ce0a40ffc0cc997009ee1ed94ba705/tomli-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c", size = 245128, upload-time = "2025-10-08T22:01:05.84Z" }, + { url = "https://files.pythonhosted.org/packages/b6/eb/a7679c8ac85208706d27436e8d421dfa39d4c914dcf5fa8083a9305f58d9/tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456", size = 96445, upload-time = "2025-10-08T22:01:06.896Z" }, + { url = "https://files.pythonhosted.org/packages/0a/fe/3d3420c4cb1ad9cb462fb52967080575f15898da97e21cb6f1361d505383/tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be", size = 107165, upload-time = "2025-10-08T22:01:08.107Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b7/40f36368fcabc518bb11c8f06379a0fd631985046c038aca08c6d6a43c6e/tomli-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac", size = 154891, upload-time = "2025-10-08T22:01:09.082Z" }, + { url = "https://files.pythonhosted.org/packages/f9/3f/d9dd692199e3b3aab2e4e4dd948abd0f790d9ded8cd10cbaae276a898434/tomli-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22", size = 148796, upload-time = "2025-10-08T22:01:10.266Z" }, + { url = "https://files.pythonhosted.org/packages/60/83/59bff4996c2cf9f9387a0f5a3394629c7efa5ef16142076a23a90f1955fa/tomli-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f", size = 242121, upload-time = "2025-10-08T22:01:11.332Z" }, + { url = "https://files.pythonhosted.org/packages/45/e5/7c5119ff39de8693d6baab6c0b6dcb556d192c165596e9fc231ea1052041/tomli-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52", size = 250070, upload-time = "2025-10-08T22:01:12.498Z" }, + { url = "https://files.pythonhosted.org/packages/45/12/ad5126d3a278f27e6701abde51d342aa78d06e27ce2bb596a01f7709a5a2/tomli-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8", size = 245859, upload-time = "2025-10-08T22:01:13.551Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a1/4d6865da6a71c603cfe6ad0e6556c73c76548557a8d658f9e3b142df245f/tomli-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6", size = 250296, upload-time = "2025-10-08T22:01:14.614Z" }, + { url = "https://files.pythonhosted.org/packages/a0/b7/a7a7042715d55c9ba6e8b196d65d2cb662578b4d8cd17d882d45322b0d78/tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876", size = 97124, upload-time = "2025-10-08T22:01:15.629Z" }, + { url = "https://files.pythonhosted.org/packages/06/1e/f22f100db15a68b520664eb3328fb0ae4e90530887928558112c8d1f4515/tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878", size = 107698, upload-time = "2025-10-08T22:01:16.51Z" }, + { url = "https://files.pythonhosted.org/packages/89/48/06ee6eabe4fdd9ecd48bf488f4ac783844fd777f547b8d1b61c11939974e/tomli-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b", size = 154819, upload-time = "2025-10-08T22:01:17.964Z" }, + { url = "https://files.pythonhosted.org/packages/f1/01/88793757d54d8937015c75dcdfb673c65471945f6be98e6a0410fba167ed/tomli-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae", size = 148766, upload-time = "2025-10-08T22:01:18.959Z" }, + { url = "https://files.pythonhosted.org/packages/42/17/5e2c956f0144b812e7e107f94f1cc54af734eb17b5191c0bbfb72de5e93e/tomli-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b", size = 240771, upload-time = "2025-10-08T22:01:20.106Z" }, + { url = "https://files.pythonhosted.org/packages/d5/f4/0fbd014909748706c01d16824eadb0307115f9562a15cbb012cd9b3512c5/tomli-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf", size = 248586, upload-time = "2025-10-08T22:01:21.164Z" }, + { url = "https://files.pythonhosted.org/packages/30/77/fed85e114bde5e81ecf9bc5da0cc69f2914b38f4708c80ae67d0c10180c5/tomli-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f", size = 244792, upload-time = "2025-10-08T22:01:22.417Z" }, + { url = "https://files.pythonhosted.org/packages/55/92/afed3d497f7c186dc71e6ee6d4fcb0acfa5f7d0a1a2878f8beae379ae0cc/tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05", size = 248909, upload-time = "2025-10-08T22:01:23.859Z" }, + { url = "https://files.pythonhosted.org/packages/f8/84/ef50c51b5a9472e7265ce1ffc7f24cd4023d289e109f669bdb1553f6a7c2/tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606", size = 96946, upload-time = "2025-10-08T22:01:24.893Z" }, + { url = "https://files.pythonhosted.org/packages/b2/b7/718cd1da0884f281f95ccfa3a6cc572d30053cba64603f79d431d3c9b61b/tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999", size = 107705, upload-time = "2025-10-08T22:01:26.153Z" }, + { url = "https://files.pythonhosted.org/packages/19/94/aeafa14a52e16163008060506fcb6aa1949d13548d13752171a755c65611/tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e", size = 154244, upload-time = "2025-10-08T22:01:27.06Z" }, + { url = "https://files.pythonhosted.org/packages/db/e4/1e58409aa78eefa47ccd19779fc6f36787edbe7d4cd330eeeedb33a4515b/tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3", size = 148637, upload-time = "2025-10-08T22:01:28.059Z" }, + { url = "https://files.pythonhosted.org/packages/26/b6/d1eccb62f665e44359226811064596dd6a366ea1f985839c566cd61525ae/tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc", size = 241925, upload-time = "2025-10-08T22:01:29.066Z" }, + { url = "https://files.pythonhosted.org/packages/70/91/7cdab9a03e6d3d2bb11beae108da5bdc1c34bdeb06e21163482544ddcc90/tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0", size = 249045, upload-time = "2025-10-08T22:01:31.98Z" }, + { url = "https://files.pythonhosted.org/packages/15/1b/8c26874ed1f6e4f1fcfeb868db8a794cbe9f227299402db58cfcc858766c/tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879", size = 245835, upload-time = "2025-10-08T22:01:32.989Z" }, + { url = "https://files.pythonhosted.org/packages/fd/42/8e3c6a9a4b1a1360c1a2a39f0b972cef2cc9ebd56025168c4137192a9321/tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005", size = 253109, upload-time = "2025-10-08T22:01:34.052Z" }, + { url = "https://files.pythonhosted.org/packages/22/0c/b4da635000a71b5f80130937eeac12e686eefb376b8dee113b4a582bba42/tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463", size = 97930, upload-time = "2025-10-08T22:01:35.082Z" }, + { url = "https://files.pythonhosted.org/packages/b9/74/cb1abc870a418ae99cd5c9547d6bce30701a954e0e721821df483ef7223c/tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8", size = 107964, upload-time = "2025-10-08T22:01:36.057Z" }, + { url = "https://files.pythonhosted.org/packages/54/78/5c46fff6432a712af9f792944f4fcd7067d8823157949f4e40c56b8b3c83/tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77", size = 163065, upload-time = "2025-10-08T22:01:37.27Z" }, + { url = "https://files.pythonhosted.org/packages/39/67/f85d9bd23182f45eca8939cd2bc7050e1f90c41f4a2ecbbd5963a1d1c486/tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf", size = 159088, upload-time = "2025-10-08T22:01:38.235Z" }, + { url = "https://files.pythonhosted.org/packages/26/5a/4b546a0405b9cc0659b399f12b6adb750757baf04250b148d3c5059fc4eb/tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530", size = 268193, upload-time = "2025-10-08T22:01:39.712Z" }, + { url = "https://files.pythonhosted.org/packages/42/4f/2c12a72ae22cf7b59a7fe75b3465b7aba40ea9145d026ba41cb382075b0e/tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b", size = 275488, upload-time = "2025-10-08T22:01:40.773Z" }, + { url = "https://files.pythonhosted.org/packages/92/04/a038d65dbe160c3aa5a624e93ad98111090f6804027d474ba9c37c8ae186/tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67", size = 272669, upload-time = "2025-10-08T22:01:41.824Z" }, + { url = "https://files.pythonhosted.org/packages/be/2f/8b7c60a9d1612a7cbc39ffcca4f21a73bf368a80fc25bccf8253e2563267/tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f", size = 279709, upload-time = "2025-10-08T22:01:43.177Z" }, + { url = "https://files.pythonhosted.org/packages/7e/46/cc36c679f09f27ded940281c38607716c86cf8ba4a518d524e349c8b4874/tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0", size = 107563, upload-time = "2025-10-08T22:01:44.233Z" }, + { url = "https://files.pythonhosted.org/packages/84/ff/426ca8683cf7b753614480484f6437f568fd2fda2edbdf57a2d3d8b27a0b/tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba", size = 119756, upload-time = "2025-10-08T22:01:45.234Z" }, + { url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408, upload-time = "2025-10-08T22:01:46.04Z" }, +] + +[[package]] +name = "traceflow" +version = "0.0.21" +source = { editable = "." } +dependencies = [ + { name = "cairosvg" }, + { name = "jinja2" }, + { name = "latex" }, + { name = "mistune" }, + { name = "pyyaml" }, +] + +[package.optional-dependencies] +dev = [ + { name = "coverage", version = "7.10.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "coverage", version = "7.11.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "flake8" }, + { name = "flake8-annotations", version = "3.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "flake8-annotations", version = "3.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "flake8-bandit" }, + { name = "flake8-broken-line" }, + { name = "flake8-bugbear", version = "24.12.12", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "flake8-bugbear", version = "25.10.21", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "flake8-builtins", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "flake8-builtins", version = "3.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "flake8-comprehensions" }, + { name = "flake8-eradicate" }, + { name = "flake8-executable" }, + { name = "flake8-fixme" }, + { name = "flake8-printf-formatting" }, + { name = "flake8-return" }, + { name = "flake8-walrus" }, + { name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "pytest", version = "9.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "ty" }, + { name = "types-pyyaml" }, +] + +[package.dev-dependencies] +dev = [ + { name = "coverage", version = "7.10.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "coverage", version = "7.11.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "flake8" }, + { name = "flake8-annotations", version = "3.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "flake8-annotations", version = "3.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "flake8-bandit" }, + { name = "flake8-broken-line" }, + { name = "flake8-bugbear", version = "24.12.12", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "flake8-bugbear", version = "25.10.21", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "flake8-builtins", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "flake8-builtins", version = "3.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "flake8-comprehensions" }, + { name = "flake8-eradicate" }, + { name = "flake8-executable" }, + { name = "flake8-fixme" }, + { name = "flake8-printf-formatting" }, + { name = "flake8-return" }, + { name = "flake8-walrus" }, + { name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "pytest", version = "9.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "ty" }, + { name = "types-pyyaml" }, +] + +[package.metadata] +requires-dist = [ + { name = "cairosvg", specifier = "==2.7.1" }, + { name = "coverage", marker = "extra == 'dev'" }, + { name = "flake8", marker = "extra == 'dev'" }, + { name = "flake8-annotations", marker = "extra == 'dev'" }, + { name = "flake8-bandit", marker = "extra == 'dev'" }, + { name = "flake8-broken-line", marker = "extra == 'dev'" }, + { name = "flake8-bugbear", marker = "extra == 'dev'" }, + { name = "flake8-builtins", marker = "extra == 'dev'" }, + { name = "flake8-comprehensions", marker = "extra == 'dev'" }, + { name = "flake8-eradicate", marker = "extra == 'dev'" }, + { name = "flake8-executable", marker = "extra == 'dev'" }, + { name = "flake8-fixme", marker = "extra == 'dev'" }, + { name = "flake8-printf-formatting", marker = "extra == 'dev'" }, + { name = "flake8-return", marker = "extra == 'dev'" }, + { name = "flake8-walrus", marker = "extra == 'dev'" }, + { name = "jinja2", specifier = "==3.1.4" }, + { name = "latex", specifier = "==0.7.0" }, + { name = "mistune", specifier = "==2.0.5" }, + { name = "pytest", marker = "extra == 'dev'" }, + { name = "pyyaml", specifier = "==6.0.1" }, + { name = "ty", marker = "extra == 'dev'", specifier = "==0.0.1a26" }, + { name = "types-pyyaml", marker = "extra == 'dev'" }, +] +provides-extras = ["dev"] + +[package.metadata.requires-dev] +dev = [ + { name = "coverage" }, + { name = "flake8" }, + { name = "flake8-annotations" }, + { name = "flake8-bandit" }, + { name = "flake8-broken-line" }, + { name = "flake8-bugbear" }, + { name = "flake8-builtins" }, + { name = "flake8-comprehensions" }, + { name = "flake8-eradicate" }, + { name = "flake8-executable" }, + { name = "flake8-fixme" }, + { name = "flake8-printf-formatting" }, + { name = "flake8-return" }, + { name = "flake8-walrus" }, + { name = "pytest" }, + { name = "ty", specifier = "==0.0.1a26" }, + { name = "types-pyyaml" }, +] + +[[package]] +name = "ty" +version = "0.0.1a26" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/39/39/b4b4ecb6ca6d7e937fa56f0b92a8f48d7719af8fe55bdbf667638e9f93e2/ty-0.0.1a26.tar.gz", hash = "sha256:65143f8efeb2da1644821b710bf6b702a31ddcf60a639d5a576db08bded91db4", size = 4432154, upload-time = "2025-11-10T18:02:30.142Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/6a/661833ecacc4d994f7e30a7f1307bfd3a4a91392a6b03fb6a018723e75b8/ty-0.0.1a26-py3-none-linux_armv6l.whl", hash = "sha256:09208dca99bb548e9200136d4d42618476bfe1f4d2066511f2c8e2e4dfeced5e", size = 9173869, upload-time = "2025-11-10T18:01:46.012Z" }, + { url = "https://files.pythonhosted.org/packages/66/a8/32ea50f064342de391a7267f84349287e2f1c2eb0ad4811d6110916179d6/ty-0.0.1a26-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:91d12b66c91a1b82e698a2aa73fe043a1a9da83ff0dfd60b970500bee0963b91", size = 8973420, upload-time = "2025-11-10T18:01:49.32Z" }, + { url = "https://files.pythonhosted.org/packages/d1/f6/6659d55940cd5158a6740ae46a65be84a7ee9167738033a9b1259c36eef5/ty-0.0.1a26-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c5bc6dfcea5477c81ad01d6a29ebc9bfcbdb21c34664f79c9e1b84be7aa8f289", size = 8528888, upload-time = "2025-11-10T18:01:51.511Z" }, + { url = "https://files.pythonhosted.org/packages/79/c9/4cbe7295013cc412b4f100b509aaa21982c08c59764a2efa537ead049345/ty-0.0.1a26-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40e5d15635e9918924138e8d3fb1cbf80822dfb8dc36ea8f3e72df598c0c4bea", size = 8801867, upload-time = "2025-11-10T18:01:53.888Z" }, + { url = "https://files.pythonhosted.org/packages/ed/b3/25099b219a6444c4b29f175784a275510c1cd85a23a926d687ab56915027/ty-0.0.1a26-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:86dc147ed0790c7c8fd3f0d6c16c3c5135b01e99c440e89c6ca1e0e592bb6682", size = 8975519, upload-time = "2025-11-10T18:01:56.231Z" }, + { url = "https://files.pythonhosted.org/packages/73/3e/3ad570f4f592cb1d11982dd2c426c90d2aa9f3d38bf77a7e2ce8aa614302/ty-0.0.1a26-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fbe0e07c9d5e624edfc79a468f2ef191f9435581546a5bb6b92713ddc86ad4a6", size = 9331932, upload-time = "2025-11-10T18:01:58.476Z" }, + { url = "https://files.pythonhosted.org/packages/04/fa/62c72eead0302787f9cc0d613fc671107afeecdaf76ebb04db8f91bb9f7e/ty-0.0.1a26-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:0dcebbfe9f24b43d98a078f4a41321ae7b08bea40f5c27d81394b3f54e9f7fb5", size = 9921353, upload-time = "2025-11-10T18:02:00.749Z" }, + { url = "https://files.pythonhosted.org/packages/6c/1f/3b329c4b60d878704e09eb9d05467f911f188e699961c044b75932893e0a/ty-0.0.1a26-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0901b75afc7738224ffc98bbc8ea03a20f167a2a83a4b23a6550115e8b3ddbc6", size = 9700800, upload-time = "2025-11-10T18:02:03.544Z" }, + { url = "https://files.pythonhosted.org/packages/92/24/13fcba20dd86a7c3f83c814279aa3eb6a29c5f1b38a3b3a4a0fd22159189/ty-0.0.1a26-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4788f34d384c132977958d76fef7f274f8d181b22e33933c4d16cff2bb5ca3b9", size = 9728289, upload-time = "2025-11-10T18:02:06.386Z" }, + { url = "https://files.pythonhosted.org/packages/40/7a/798894ff0b948425570b969be35e672693beeb6b852815b7340bc8de1575/ty-0.0.1a26-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b98851c11c560ce63cd972ed9728aa079d9cf40483f2cdcf3626a55849bfe107", size = 9279735, upload-time = "2025-11-10T18:02:09.425Z" }, + { url = "https://files.pythonhosted.org/packages/1a/54/71261cc1b8dc7d3c4ad92a83b4d1681f5cb7ea5965ebcbc53311ae8c6424/ty-0.0.1a26-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c20b4625a20059adecd86fe2c4df87cd6115fea28caee45d3bdcf8fb83d29510", size = 8767428, upload-time = "2025-11-10T18:02:11.956Z" }, + { url = "https://files.pythonhosted.org/packages/8e/07/b248b73a640badba2b301e6845699b7dd241f40a321b9b1bce684d440f70/ty-0.0.1a26-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d9909e96276f8d16382d285db92ae902174cae842aa953003ec0c06642db2f8a", size = 9009170, upload-time = "2025-11-10T18:02:14.878Z" }, + { url = "https://files.pythonhosted.org/packages/f8/35/ec8353f2bb7fd2f41bca6070b29ecb58e2de9af043e649678b8c132d5439/ty-0.0.1a26-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a76d649ceefe9baa9bbae97d217bee076fd8eeb2a961f66f1dff73cc70af4ac8", size = 9119215, upload-time = "2025-11-10T18:02:18.329Z" }, + { url = "https://files.pythonhosted.org/packages/70/48/db49fe1b7e66edf90dc285869043f99c12aacf7a99c36ee760e297bac6d5/ty-0.0.1a26-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a0ee0f6366bcf70fae114e714d45335cacc8daa936037441e02998a9110b7a29", size = 9398655, upload-time = "2025-11-10T18:02:21.031Z" }, + { url = "https://files.pythonhosted.org/packages/10/f8/d869492bdbb21ae8cf4c99b02f20812bbbf49aa187cfeb387dfaa03036a8/ty-0.0.1a26-py3-none-win32.whl", hash = "sha256:86689b90024810cac7750bf0c6e1652e4b4175a9de7b82b8b1583202aeb47287", size = 8645669, upload-time = "2025-11-10T18:02:23.23Z" }, + { url = "https://files.pythonhosted.org/packages/b4/18/8a907575d2b335afee7556cb92233ebb5efcefe17752fc9dcab21cffb23b/ty-0.0.1a26-py3-none-win_amd64.whl", hash = "sha256:829e6e6dbd7d9d370f97b2398b4804552554bdcc2d298114fed5e2ea06cbc05c", size = 9442975, upload-time = "2025-11-10T18:02:25.68Z" }, + { url = "https://files.pythonhosted.org/packages/e9/22/af92dcfdd84b78dd97ac6b7154d6a763781f04a400140444885c297cc213/ty-0.0.1a26-py3-none-win_arm64.whl", hash = "sha256:b8f431c784d4cf5b4195a3521b2eca9c15902f239b91154cb920da33f943c62b", size = 8958958, upload-time = "2025-11-10T18:02:28.071Z" }, +] + +[[package]] +name = "types-pyyaml" +version = "6.0.12.20250915" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/69/3c51b36d04da19b92f9e815be12753125bd8bc247ba0470a982e6979e71c/types_pyyaml-6.0.12.20250915.tar.gz", hash = "sha256:0f8b54a528c303f0e6f7165687dd33fafa81c807fcac23f632b63aa624ced1d3", size = 17522, upload-time = "2025-09-15T03:01:00.728Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/e0/1eed384f02555dde685fff1a1ac805c1c7dcb6dd019c916fe659b1c1f9ec/types_pyyaml-6.0.12.20250915-py3-none-any.whl", hash = "sha256:e7d4d9e064e89a3b3cae120b4990cd370874d2bf12fa5f46c97018dd5d3c9ab6", size = 20338, upload-time = "2025-09-15T03:00:59.218Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721, upload-time = "2017-04-05T20:21:34.189Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" }, +] From 5d73fb01a814e233a1a51a9ad327be10c247b3db Mon Sep 17 00:00:00 2001 From: Matthew Heaton Date: Thu, 13 Nov 2025 16:03:42 +0000 Subject: [PATCH 02/10] Fix tests --- tests/test_pdf_generator.py | 3 ++- traceflow/parser.py | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/test_pdf_generator.py b/tests/test_pdf_generator.py index 870f4f9..363460f 100644 --- a/tests/test_pdf_generator.py +++ b/tests/test_pdf_generator.py @@ -1,9 +1,10 @@ import unittest from traceflow.pdf_generator import PdfReport + class TestPdfGenerator(unittest.TestCase): def test_process_text(self) -> None: text = "This is some text with a UNIQUE-ID-001 and `code formatted` text too." latex = PdfReport.process_text_impl(text, {"UNIQUE-ID-001"}) - expected = "This is some text with a \hyperref[UNIQUE-ID-001]{UNIQUE-ID-001} and \texttt{code formatted} text too." # noqa + expected = r"This is some text with a \hyperref[UNIQUE-ID-001]{UNIQUE-ID-001} and \texttt{code formatted} text too." # noqa self.assertEqual(latex, expected) diff --git a/traceflow/parser.py b/traceflow/parser.py index a90558f..33806df 100644 --- a/traceflow/parser.py +++ b/traceflow/parser.py @@ -232,11 +232,11 @@ def is_ast_element_heading(elem: dict) -> int: def get_heading_text(elem: dict) -> str: text: str = "" - for elem in elem["children"]: - if elem["type"] == "text": - text += elem["text"] - if elem["type"] == "codespan": - text += f" `{elem['text']}` " + for child in elem["children"]: + if child["type"] == "text": + text += child["text"] + if child["type"] == "codespan": + text += f" `{child['text']}` " return text.strip() From 57ce63cc49dec210162e15bf8d7633cac935d33f Mon Sep 17 00:00:00 2001 From: Matthew Heaton Date: Thu, 13 Nov 2025 16:08:28 +0000 Subject: [PATCH 03/10] Change package name --- pyproject.toml | 2 +- uv.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0fa12f5..b58f254 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires = ["setuptools>=68.0.0", "wheel"] build-backend = "setuptools.build_meta" [project] -name = "traceflow" +name = "traceflow-rtm" version = "0.0.21" description = "A Python library for managing software development documentation and testing that automates the generation of PDFs, validation packs, and traceability matrices." readme = "README.md" diff --git a/uv.lock b/uv.lock index 9b319e1..258e703 100644 --- a/uv.lock +++ b/uv.lock @@ -1342,7 +1342,7 @@ wheels = [ ] [[package]] -name = "traceflow" +name = "traceflow-rtm" version = "0.0.21" source = { editable = "." } dependencies = [ From 07d0fb5702be5e796554b53425b5736168098f55 Mon Sep 17 00:00:00 2001 From: Matthew Heaton Date: Thu, 13 Nov 2025 16:09:17 +0000 Subject: [PATCH 04/10] 0.0.22 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index b58f254..29cbad8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "traceflow-rtm" -version = "0.0.21" +version = "0.0.22" description = "A Python library for managing software development documentation and testing that automates the generation of PDFs, validation packs, and traceability matrices." readme = "README.md" requires-python = ">=3.9" From 0a37d1fb53510dbe52bf23984ebed4c9c79ecd55 Mon Sep 17 00:00:00 2001 From: Matthew Heaton Date: Thu, 13 Nov 2025 17:51:29 +0000 Subject: [PATCH 05/10] Support custom header/footer Updates --- README.md | 13 +++++- pyproject.toml | 1 + traceflow/__main__.py | 49 +++++++++++++++++----- traceflow/pdf_generator.py | 72 ++++++++++++++++++++++++++++----- traceflow/res/report-header.tex | 4 +- uv.lock | 51 ++++++++++++++++++++++- 6 files changed, 166 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index a77b05f..9b2bcb7 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,18 @@ Create your Markdown files based on the provided examples: With your Markdown files in place, you can run TraceFlow using the following command: - traceflow path/to/project-docs project.pdf + traceflow path/to/project-docs 1.0.0 project.pdf + +The second argument is the version string that will be shown on the report (change it to whatever release identifier you need). + +Two optional arguments let you replace the logos that appear in the header (top-left) and footer (top-right): + +- `--top-left-logo` (alias `--traceflow-logo`) points to the image shown in the top-left of every page (header). +- `--top-right-logo` (alias `--voxelflow-logo`) points to the image shown in the bottom-left of every page (footer). + +If you do not pass these options, TraceFlow falls back to the packaged images in `traceflow/res/`. + + traceflow path/to/project-docs 1.0.0 project.pdf --top-left-logo assets/traceflow.png --top-right-logo assets/voxelflow.png This command will generate a PDF for all of your documentation and test cases, as well as a validation pack and traceability matrix. diff --git a/pyproject.toml b/pyproject.toml index 29cbad8..663340b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,7 @@ dependencies = [ "latex==0.7.0", "mistune==2.0.5", "pyyaml==6.0.1", + "cyclopts==3.24.0", ] [project.scripts] diff --git a/traceflow/__main__.py b/traceflow/__main__.py index 9881231..c53062f 100644 --- a/traceflow/__main__.py +++ b/traceflow/__main__.py @@ -1,22 +1,49 @@ -import sys +from typing import Annotated, Optional + +from cyclopts import App, Parameter from traceflow.parser import process_directory, Document from traceflow.pdf_generator import PdfReport +from traceflow.version import __version__ +app = App(name="traceflow", version=__version__) -def main() -> int: - if len(sys.argv) < 4: - print("Usage: traceflow ") - sys.exit(1) - - directory = sys.argv[1] - version = sys.argv[2] - output = sys.argv[3] +@app.default +def _run( + directory: str, + version: str, + output: str, + top_left_logo: Annotated[ + Optional[str], + Parameter( + name=("--top-left-logo", "--traceflow-logo"), + help="Path to the top-left logo (header).", + ), + ] = None, + top_right_logo: Annotated[ + Optional[str], + Parameter( + name=("--top-right-logo", "--voxelflow-logo"), + help="Path to the top-right logo (footer).", + ), + ] = None, +) -> int: document: Document = process_directory(directory, version=version) - report: PdfReport = PdfReport(document) + report: PdfReport = PdfReport( + document, + top_left_logo_path=top_left_logo, + top_right_logo_path=top_right_logo, + ) output_file: bytes = report.render() - with open(output, "wb") as f: f.write(output_file) return 0 + + +def main() -> int: + return app() + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/traceflow/pdf_generator.py b/traceflow/pdf_generator.py index c1d86fa..79bbcb1 100644 --- a/traceflow/pdf_generator.py +++ b/traceflow/pdf_generator.py @@ -10,7 +10,14 @@ from typing import Generator, Optional import latex.jinja2 -import cairosvg + +try: + import cairosvg +except OSError as exc: + cairosvg = None # type: ignore[assignment] + _CAIROSVG_IMPORT_ERROR = exc +else: + _CAIROSVG_IMPORT_ERROR = None from traceflow.parser import Document, RequirementDocument, parse_markdown from traceflow.version import __version__ @@ -327,6 +334,11 @@ def handle_mermaid(item: dict) -> str: subprocess.run(["mmdc", "-i", mmd_path, "-o", svg_path], check=True) # noqa S607, S603 + if cairosvg is None: + raise RuntimeError( + "Rendering mermaid diagrams requires cairosvg, but importing it failed" + f" with: {_CAIROSVG_IMPORT_ERROR}" + ) # Convert the SVG to PDF pdf_path = svg_path.replace(".svg", ".pdf") cairosvg.svg2pdf(url=svg_path, write_to=pdf_path) @@ -371,9 +383,17 @@ def get_temporary_filename(suffix: str = ".temp", force_random: bool = False) -> return "test" + suffix return "".join(random.choices(string.ascii_uppercase, k=10)) + suffix # noqa S311 - def __init__(self, document: Document): + def __init__( + self, + document: Document, + *, + top_left_logo_path: Optional[str] = None, + top_right_logo_path: Optional[str] = None, + ): self.document = document self.original_working_directory = os.getcwd() + self.top_left_logo_path = top_left_logo_path + self.top_right_logo_path = top_right_logo_path # Build a set containing all the test and requiremnt IDs self.unique_ids = set() @@ -384,6 +404,28 @@ def __init__(self, document: Document): for requirement in req_page.items: self.unique_ids.add(requirement.req_id) + @staticmethod + def _logo_basename(path: Optional[str], default_name: str) -> str: + if path: + return os.path.basename(path) + return default_name + + def _ensure_logo( + self, + *, + filename: str, + resource_name: str, + provided_path: Optional[str], + ) -> None: + destination = os.path.join(os.getcwd(), filename) + if provided_path: + if not os.path.isfile(provided_path): + raise FileNotFoundError(f"Logo path does not exist: {provided_path}") + shutil.copy(provided_path, destination) + else: + with open(destination, "wb") as f: + f.write(load_resource("traceflow.res", resource_name)) + def render(self) -> bytes: header = _latex_jinja2_env.from_string( @@ -394,6 +436,11 @@ def render(self) -> bytes: tex_vars["report_title"] = self.process_text( self.document.name + " " + self.document.version + ": Validation Pack" ) + top_left_logo_name = PdfReport._logo_basename(self.top_left_logo_path, "traceflow-logo.png") + top_right_logo_name = PdfReport._logo_basename(self.top_right_logo_path, "voxelflow-logo.png") + + tex_vars["top_left_logo"] = top_left_logo_name + tex_vars["top_right_logo"] = top_right_logo_name document = header.render(**tex_vars) # Create the "report" directory if it doesn't exist @@ -438,10 +485,16 @@ def render(self) -> bytes: document += r"%%%%%%%%%%% END DOCUMENT" + "\n\n" r"\label{LastPage}" + "\n\n" + r"\end{document}" + "\n" - with open("traceflow-logo.png", "wb") as f: - f.write(load_resource("traceflow.res", "traceflow-logo.png")) - with open("voxelflow-logo.png", "wb") as f: - f.write(load_resource("traceflow.res", "voxelflow-logo.png")) + self._ensure_logo( + filename=top_left_logo_name, + resource_name="traceflow-logo.png", + provided_path=self.top_left_logo_path, + ) + self._ensure_logo( + filename=top_right_logo_name, + resource_name="voxelflow-logo.png", + provided_path=self.top_right_logo_path, + ) # Recursively copy all files from the document.input_dir folder to the current folder for root, _, files in os.walk(self.document.input_dir): @@ -453,21 +506,22 @@ def render(self) -> bytes: with open(output_filename, "w") as output_file: output_file.write(document) + pdflatex_command = f"pdflatex -interaction=nonstopmode -halt-on-error {output_filename}" try: subprocess.check_output( - f"pdflatex -halt-on-error {output_filename}", + pdflatex_command, shell=True, # noqa: S602 stderr=subprocess.STDOUT, universal_newlines=True, ) # nopep8 subprocess.check_output( - f"pdflatex -halt-on-error {output_filename}", + pdflatex_command, shell=True, # noqa: S602 stderr=subprocess.STDOUT, universal_newlines=True, ) # nopep8 subprocess.check_output( - f"pdflatex -halt-on-error {output_filename}", + pdflatex_command, shell=True, # noqa: S602 stderr=subprocess.STDOUT, universal_newlines=True, diff --git a/traceflow/res/report-header.tex b/traceflow/res/report-header.tex index 92786c7..9539100 100644 --- a/traceflow/res/report-header.tex +++ b/traceflow/res/report-header.tex @@ -78,13 +78,13 @@ \fancypagestyle{plain}{ \fancyhf{}% Clear header/footer \fancyhead[L]{ - \includegraphics[width=4cm,keepaspectratio]{traceflow-logo.png} + \includegraphics[width=4cm,keepaspectratio]{\VAR{top_left_logo}} } \fancyhead[R]{ \textbf{\Large{\VAR{report_title}}} } \lfoot{ - \includegraphics[width=3cm,keepaspectratio]{voxelflow-logo.png} + \includegraphics[width=3cm,keepaspectratio]{\VAR{top_right_logo}} } \rfoot{\emph{Page \thepage\ of \pageref{LastPage}}} \cfoot{Report produced using TraceFlow \VAR{version} } diff --git a/uv.lock b/uv.lock index 258e703..d261b62 100644 --- a/uv.lock +++ b/uv.lock @@ -391,6 +391,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0f/e7/aa315e6a749d9b96c2504a1ba0ba031ba2d0517e972ce22682e3fccecb09/cssselect2-0.8.0-py3-none-any.whl", hash = "sha256:46fc70ebc41ced7a32cd42d58b1884d72ade23d21e5a4eaaf022401c13f0e76e", size = 15454, upload-time = "2025-03-05T14:46:06.463Z" }, ] +[[package]] +name = "cyclopts" +version = "3.24.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "docstring-parser", marker = "python_full_version < '4'" }, + { name = "rich" }, + { name = "rich-rst" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/30/ca/7782da3b03242d5f0a16c20371dff99d4bd1fedafe26bc48ff82e42be8c9/cyclopts-3.24.0.tar.gz", hash = "sha256:de6964a041dfb3c57bf043b41e68c43548227a17de1bad246e3a0bfc5c4b7417", size = 76131, upload-time = "2025-09-08T15:40:57.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f0/8b/2c95f0645c6f40211896375e6fa51f504b8ccb29c21f6ae661fe87ab044e/cyclopts-3.24.0-py3-none-any.whl", hash = "sha256:809d04cde9108617106091140c3964ee6fceb33cecdd537f7ffa360bde13ed71", size = 86154, upload-time = "2025-09-08T15:40:56.41Z" }, +] + [[package]] name = "data" version = "0.4" @@ -420,6 +436,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, ] +[[package]] +name = "docstring-parser" +version = "0.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/9d/c3b43da9515bd270df0f80548d9944e389870713cc1fe2b8fb35fe2bcefd/docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912", size = 27442, upload-time = "2025-07-21T07:35:01.868Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/e2/2537ebcff11c1ee1ff17d8d0b6f4db75873e3b0fb32c2d4a2ee31ecb310a/docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708", size = 36896, upload-time = "2025-07-21T07:35:00.684Z" }, +] + +[[package]] +name = "docutils" +version = "0.22.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d9/02/111134bfeb6e6c7ac4c74594e39a59f6c0195dc4846afbeac3cba60f1927/docutils-0.22.3.tar.gz", hash = "sha256:21486ae730e4ca9f622677b1412b879af1791efcfba517e4c6f60be543fc8cdd", size = 2290153, upload-time = "2025-11-06T02:35:55.655Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/a8/c6a4b901d17399c77cd81fb001ce8961e9f5e04d3daf27e8925cb012e163/docutils-0.22.3-py3-none-any.whl", hash = "sha256:bd772e4aca73aff037958d44f2be5229ded4c09927fcf8690c577b66234d6ceb", size = 633032, upload-time = "2025-11-06T02:35:52.391Z" }, +] + [[package]] name = "eradicate" version = "2.3.0" @@ -1250,6 +1284,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/25/7a/b0178788f8dc6cafce37a212c99565fa1fe7872c70c6c9c1e1a372d9d88f/rich-14.2.0-py3-none-any.whl", hash = "sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd", size = 243393, upload-time = "2025-10-09T14:16:51.245Z" }, ] +[[package]] +name = "rich-rst" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils" }, + { name = "rich" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/6d/a506aaa4a9eaa945ed8ab2b7347859f53593864289853c5d6d62b77246e0/rich_rst-1.3.2.tar.gz", hash = "sha256:a1196fdddf1e364b02ec68a05e8ff8f6914fee10fbca2e6b6735f166bb0da8d4", size = 14936, upload-time = "2025-10-14T16:49:45.332Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/2f/b4530fbf948867702d0a3f27de4a6aab1d156f406d72852ab902c4d04de9/rich_rst-1.3.2-py3-none-any.whl", hash = "sha256:a99b4907cbe118cf9d18b0b44de272efa61f15117c61e39ebdc431baf5df722a", size = 12567, upload-time = "2025-10-14T16:49:42.953Z" }, +] + [[package]] name = "shutilwhich" version = "1.1.0" @@ -1343,10 +1390,11 @@ wheels = [ [[package]] name = "traceflow-rtm" -version = "0.0.21" +version = "0.0.22" source = { editable = "." } dependencies = [ { name = "cairosvg" }, + { name = "cyclopts" }, { name = "jinja2" }, { name = "latex" }, { name = "mistune" }, @@ -1409,6 +1457,7 @@ dev = [ requires-dist = [ { name = "cairosvg", specifier = "==2.7.1" }, { name = "coverage", marker = "extra == 'dev'" }, + { name = "cyclopts", specifier = "==3.24.0" }, { name = "flake8", marker = "extra == 'dev'" }, { name = "flake8-annotations", marker = "extra == 'dev'" }, { name = "flake8-bandit", marker = "extra == 'dev'" }, From ee838682a188e927c3726e76a2ce4b2b5da744c2 Mon Sep 17 00:00:00 2001 From: Matthew Heaton Date: Thu, 13 Nov 2025 19:36:38 +0000 Subject: [PATCH 06/10] Minimal playwright example --- .gitignore | 2 + playwright/index.html | 34 +++++++++++++++ playwright/package-lock.json | 62 ++++++++++++++++++++++++++++ playwright/package.json | 11 +++++ playwright/run.sh | 8 ++++ playwright/test.js | 80 ++++++++++++++++++++++++++++++++++++ 6 files changed, 197 insertions(+) create mode 100644 playwright/index.html create mode 100644 playwright/package-lock.json create mode 100644 playwright/package.json create mode 100644 playwright/run.sh create mode 100644 playwright/test.js diff --git a/.gitignore b/.gitignore index 21ece49..8981813 100644 --- a/.gitignore +++ b/.gitignore @@ -163,3 +163,5 @@ cython_debug/ .DS_Store test.pdf +playwright/node_modules/ +*.webm \ No newline at end of file diff --git a/playwright/index.html b/playwright/index.html new file mode 100644 index 0000000..8329005 --- /dev/null +++ b/playwright/index.html @@ -0,0 +1,34 @@ + + + + + Simple Counter App + + + +

Simple Counter App

+
+ 0 + +
+ + + + diff --git a/playwright/package-lock.json b/playwright/package-lock.json new file mode 100644 index 0000000..70548b6 --- /dev/null +++ b/playwright/package-lock.json @@ -0,0 +1,62 @@ +{ + "name": "playwright-simple-example", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "playwright-simple-example", + "version": "1.0.0", + "devDependencies": { + "playwright": "^1.48.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/playwright": { + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz", + "integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.56.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz", + "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + } + } +} diff --git a/playwright/package.json b/playwright/package.json new file mode 100644 index 0000000..9eec929 --- /dev/null +++ b/playwright/package.json @@ -0,0 +1,11 @@ +{ + "name": "playwright-simple-example", + "version": "1.0.0", + "private": true, + "scripts": { + "test": "node test.js" + }, + "devDependencies": { + "playwright": "^1.48.0" + } +} diff --git a/playwright/run.sh b/playwright/run.sh new file mode 100644 index 0000000..d9fbbcd --- /dev/null +++ b/playwright/run.sh @@ -0,0 +1,8 @@ +# 1. Install dependencies +npm install + +# 2. Install Playwright browsers (once) +npx playwright install + +# 3. Run the test +npm test diff --git a/playwright/test.js b/playwright/test.js new file mode 100644 index 0000000..c2207e9 --- /dev/null +++ b/playwright/test.js @@ -0,0 +1,80 @@ +// test.js +const { chromium } = require('playwright'); +const path = require('path'); +const fs = require('fs'); +const assert = require('assert'); + +// Parse CLI args (e.g. "--video=run1.webm") +const args = process.argv.slice(2); +let videoFile = null; + +for (const arg of args) { + if (arg.startsWith('--video=')) { + videoFile = arg.split('=')[1]; + } +} + +(async () => { + const browser = await chromium.launch(); + + // If we want video, set up a directory for it + let context; + let page; + + if (videoFile) { + const videosDir = path.join(__dirname, 'videos'); + if (!fs.existsSync(videosDir)) { + fs.mkdirSync(videosDir, { recursive: true }); + } + + context = await browser.newContext({ + recordVideo: { dir: videosDir } + }); + } else { + context = await browser.newContext(); + } + + page = await context.newPage(); + + // Load the local HTML file + const filePath = path.join(__dirname, 'index.html'); + await page.goto('file://' + filePath); + await page.waitForTimeout(300); + + // --- Test logic --- + const initialText = await page.textContent('#count'); + assert.strictEqual(initialText, '0', 'Initial count should be 0'); + + await page.click('#increment'); + + const updatedText = await page.textContent('#count'); + assert.strictEqual(updatedText, '1', 'Count after one click should be 1'); + + console.log('✅ Test passed!'); + + // --- Video handling --- + if (videoFile) { + // Ensure final state is visible + await page.waitForTimeout(500); + + // Get the video object while the page still exists + const video = await page.video(); + + // Closing the context flushes the video to disk + await context.close(); + await browser.close(); + + if (video) { + const savedPath = await video.path(); + const destination = path.join(__dirname, videoFile); + fs.renameSync(savedPath, destination); + console.log(`🎥 Video saved to: ${destination}`); + } + } else { + await context.close(); + await browser.close(); + } +})().catch(err => { + console.error('❌ Test failed:', err); + process.exit(1); +}); From 7883a61f161b4a743975384dc06772cacb6ff3f5 Mon Sep 17 00:00:00 2001 From: Matthew Heaton Date: Thu, 13 Nov 2025 20:18:54 +0000 Subject: [PATCH 07/10] Playwrght --- .gitignore | 3 +- playwright/counter.spec.js | 15 +++++++++ playwright/package-lock.json | 17 ++++++++++ playwright/package.json | 3 +- playwright/playwright.config.js | 5 +++ playwright/run-test-video.sh | 55 +++++++++++++++++++++++++++++++++ playwright/run.sh | 2 +- 7 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 playwright/counter.spec.js create mode 100644 playwright/playwright.config.js create mode 100755 playwright/run-test-video.sh diff --git a/.gitignore b/.gitignore index 8981813..2e051f4 100644 --- a/.gitignore +++ b/.gitignore @@ -164,4 +164,5 @@ cython_debug/ test.pdf playwright/node_modules/ -*.webm \ No newline at end of file +*.webm +playwright/test-results/ diff --git a/playwright/counter.spec.js b/playwright/counter.spec.js new file mode 100644 index 0000000..64c6761 --- /dev/null +++ b/playwright/counter.spec.js @@ -0,0 +1,15 @@ +// counter.spec.js +const { test, expect } = require('@playwright/test'); +const path = require('path'); + +test('counter increments once', async ({ page }) => { + await page.goto('file://' + path.join(__dirname, 'index.html')); + + await expect(page.locator('#count')).toHaveText('0'); + await page.waitForTimeout(300); + + await page.click('#increment'); + + await expect(page.locator('#count')).toHaveText('1'); + await page.waitForTimeout(300); // To improve video output +}); diff --git a/playwright/package-lock.json b/playwright/package-lock.json index 70548b6..60a0bf0 100644 --- a/playwright/package-lock.json +++ b/playwright/package-lock.json @@ -8,9 +8,26 @@ "name": "playwright-simple-example", "version": "1.0.0", "devDependencies": { + "@playwright/test": "^1.56.1", "playwright": "^1.48.0" } }, + "node_modules/@playwright/test": { + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.1.tgz", + "integrity": "sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.56.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", diff --git a/playwright/package.json b/playwright/package.json index 9eec929..7f0692f 100644 --- a/playwright/package.json +++ b/playwright/package.json @@ -3,9 +3,10 @@ "version": "1.0.0", "private": true, "scripts": { - "test": "node test.js" + "test": "playwright test" }, "devDependencies": { + "@playwright/test": "^1.56.1", "playwright": "^1.48.0" } } diff --git a/playwright/playwright.config.js b/playwright/playwright.config.js new file mode 100644 index 0000000..cddf77f --- /dev/null +++ b/playwright/playwright.config.js @@ -0,0 +1,5 @@ +module.exports = { + use: { + video: 'on', + } +}; \ No newline at end of file diff --git a/playwright/run-test-video.sh b/playwright/run-test-video.sh new file mode 100755 index 0000000..804a17b --- /dev/null +++ b/playwright/run-test-video.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [ $# -ne 3 ]; then + echo "Usage: ./run-test-video.sh \"test name regex\" output.webm output.txt" + exit 1 +fi + +TEST_NAME="$1" +OUTPUT_VIDEO="$2" +OUTPUT_TEXT="$3" + +# Ensure clean test-results +if [ -d test-results ]; then + echo "▶ Removing old test-results folder..." + rm -rf test-results +fi + +echo "▶ Running test: $TEST_NAME" +echo "▶ Video will be saved as: $OUTPUT_VIDEO" +echo "▶ Text output will be saved as: $OUTPUT_TEXT" + +# Temporary file to capture test output +TMP_OUTPUT=$(mktemp) + +# Run Playwright, capturing output while also displaying it live +# tee duplicates output: both to terminal AND TMP_OUTPUT +set +e +npx playwright test -g "$TEST_NAME" 2>&1 | tee "$TMP_OUTPUT" +TEST_EXIT_CODE=${PIPESTATUS[0]} +set -e + +echo "▶ Playwright exit code: $TEST_EXIT_CODE" + +# Write captured output to desired file +mv "$TMP_OUTPUT" "$OUTPUT_TEXT" +echo "📝 Saved test output to: $OUTPUT_TEXT" + +# Find the generated video file +VIDEO_PATH=$(find test-results -type f -name "video.webm" | head -n 1 || true) + +if [ -z "$VIDEO_PATH" ]; then + echo "❌ ERROR: Could not find video.webm in test-results/" + exit 2 +fi + +echo "▶ Found video: $VIDEO_PATH" +echo "▶ Moving to: $OUTPUT_VIDEO" + +mv "$VIDEO_PATH" "$OUTPUT_VIDEO" + +echo "🎥 Saved video as: $OUTPUT_VIDEO" + +# Exit using the test’s exit code +exit $TEST_EXIT_CODE diff --git a/playwright/run.sh b/playwright/run.sh index d9fbbcd..bc7a26d 100644 --- a/playwright/run.sh +++ b/playwright/run.sh @@ -5,4 +5,4 @@ npm install npx playwright install # 3. Run the test -npm test +npm test -- --video=run1.webm From e07fab5d7ed6a0ef746dd472fcbbb4b08e5dae79 Mon Sep 17 00:00:00 2001 From: Matthew Heaton Date: Thu, 13 Nov 2025 21:05:09 +0000 Subject: [PATCH 08/10] Show playwright run --- README.md | 2 + examples/tests/manual-acceptance-test.md | 8 +- playwright/counter.spec.js | 2 +- playwright/run-test-video.sh | 3 +- pyproject.toml | 1 + traceflow/__main__.py | 8 + traceflow/pdf_generator.py | 236 ++++++++++++++++++++ uv.lock | 266 +++++------------------ 8 files changed, 306 insertions(+), 220 deletions(-) diff --git a/README.md b/README.md index 9b2bcb7..40e3865 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,8 @@ If you do not pass these options, TraceFlow falls back to the packaged images in This command will generate a PDF for all of your documentation and test cases, as well as a validation pack and traceability matrix. +If your documentation contains `autoplaywright` test blocks that capture Playwright runs, append `--playwright-dir PATH` so TraceFlow can invoke the runner and gather the videos + logs that back these tests. + ### Requirements ``` # Requirements diff --git a/examples/tests/manual-acceptance-test.md b/examples/tests/manual-acceptance-test.md index eaa4600..543edd2 100644 --- a/examples/tests/manual-acceptance-test.md +++ b/examples/tests/manual-acceptance-test.md @@ -39,6 +39,8 @@ The test should pass successfully. ### Test Outcome: -```autotest -pytest --disable-warnings -sv tests/test_hello_world.py -``` \ No newline at end of file +```autoplaywright +0001-test-counter +``` + +> The `autoplaywright` block runs the Playwright sample located in the `playwright/` directory and captures the video, stdout/stderr, and a 3×3 key frame grid. diff --git a/playwright/counter.spec.js b/playwright/counter.spec.js index 64c6761..e91d860 100644 --- a/playwright/counter.spec.js +++ b/playwright/counter.spec.js @@ -2,7 +2,7 @@ const { test, expect } = require('@playwright/test'); const path = require('path'); -test('counter increments once', async ({ page }) => { +test('0001-test-counter', async ({ page }) => { await page.goto('file://' + path.join(__dirname, 'index.html')); await expect(page.locator('#count')).toHaveText('0'); diff --git a/playwright/run-test-video.sh b/playwright/run-test-video.sh index 804a17b..954d8ff 100755 --- a/playwright/run-test-video.sh +++ b/playwright/run-test-video.sh @@ -26,7 +26,8 @@ TMP_OUTPUT=$(mktemp) # Run Playwright, capturing output while also displaying it live # tee duplicates output: both to terminal AND TMP_OUTPUT set +e -npx playwright test -g "$TEST_NAME" 2>&1 | tee "$TMP_OUTPUT" +set +e +NODE_NO_WARNINGS=1 npx playwright test -g "$TEST_NAME" 2>&1 | tee "$TMP_OUTPUT" TEST_EXIT_CODE=${PIPESTATUS[0]} set -e diff --git a/pyproject.toml b/pyproject.toml index 663340b..820c61e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,7 @@ dependencies = [ "latex==0.7.0", "mistune==2.0.5", "pyyaml==6.0.1", + "Pillow==10.0.1", "cyclopts==3.24.0", ] diff --git a/traceflow/__main__.py b/traceflow/__main__.py index c53062f..409e4ff 100644 --- a/traceflow/__main__.py +++ b/traceflow/__main__.py @@ -14,6 +14,13 @@ def _run( directory: str, version: str, output: str, + playwright_dir: Annotated[ + Optional[str], + Parameter( + name="--playwright-dir", + help="Path to the Playwright folder used for `autoplaywright` tests.", + ), + ] = None, top_left_logo: Annotated[ Optional[str], Parameter( @@ -32,6 +39,7 @@ def _run( document: Document = process_directory(directory, version=version) report: PdfReport = PdfReport( document, + playwright_dir=playwright_dir, top_left_logo_path=top_left_logo, top_right_logo_path=top_right_logo, ) diff --git a/traceflow/pdf_generator.py b/traceflow/pdf_generator.py index 79bbcb1..12a6b6e 100644 --- a/traceflow/pdf_generator.py +++ b/traceflow/pdf_generator.py @@ -10,6 +10,7 @@ from typing import Generator, Optional import latex.jinja2 +from PIL import Image try: import cairosvg @@ -24,6 +25,8 @@ _latex_jinja2_env = latex.jinja2.make_env() +PLAYWRIGHT_MAX_FRAMES = 9 + def load_resource(package: str, filename: str) -> bytes: data = get_data(package, filename) @@ -218,6 +221,8 @@ def handle_block_code(item: dict) -> str: return handle_test_cover_page(item) if code_type == "autotest": return handle_auto_test(item) + if code_type == "autoplaywright": + return handle_playwright_test(item) return handle_code(item) def handle_test_cover_page(_: dict) -> str: @@ -298,6 +303,15 @@ def create_latex_markup(is_pass: bool) -> str: """ + output_str + "\n" + r""" \end{lstlisting}""" # noqa E501 + def handle_playwright_test(item: dict) -> str: + content: str = item.get("text", "") + lines = [line.strip() for line in content.splitlines() if line.strip()] + if not lines: + raise ValueError("autoplaywright blocks must include the Playwright test ID") + test_name = lines[0] + notes_text = " ".join(lines[1:]) + return self._render_playwright_test_section(test_name, notes_text) + def handle_manual_test(_: dict) -> str: pass_id = ''.join(random.choices(string.ascii_uppercase + string.digits, k=10)) # noqa S311 fail_id = ''.join(random.choices(string.ascii_uppercase + string.digits, k=10)) # noqa S311 @@ -373,6 +387,218 @@ def handle_item(item: dict) -> str: latex.append(handle_item(item)) return "\n".join(latex) + def _render_playwright_test_section(self, test_name: str, notes_text: str) -> str: + video_path, log_path, exit_code = self._execute_playwright_test(test_name) + log_output = self._read_playwright_log(log_path) + grid_basename = self._build_playwright_grid(video_path) + + def create_latex_markup(is_pass: bool) -> str: + if is_pass: + return ( + r"\textbf{Pass} \CheckedBox \hspace{2cm} \textbf{Fail} \Square " + r"\hspace{2cm} \textbf{Skip} \Square \\" + ) + return ( + r"\textbf{Pass} \Square \hspace{2cm} \textbf{Fail} \CheckedBox " + r"\hspace{2cm} \textbf{Skip} \Square \\" + ) + + status_block = create_latex_markup(is_pass=exit_code == 0) + body: list[str] = [r"\noindent", status_block, r"\vspace{0.2cm}"] + body.append(f"\\textbf{{Playwright Test:}} {self.process_text(test_name)} \\\\") + if notes_text: + body.append(f"\\textbf{{Test Notes:}} {self.process_text(notes_text)} \\\\") + + if os.path.exists(video_path): + video_name = os.path.basename(video_path) + body.append(f"\\textbf{{Video recording:}} {self.process_text(video_name)} \\\\") + else: + body.append("\\textbf{Video recording:} Not captured \\\\") + + if grid_basename: + body.append( + "\\begin{figure}[h]\n" + "\\centering\n" + f"\\includegraphics[width=\\linewidth]{{{grid_basename}}}\n" + f"\\caption{{Key frames captured from {self.process_text(test_name)}}}\n" + "\\end{figure}" + ) + else: + body.append("\\textit{Key frames not available for this run.}") + + body.append( + "\\vspace{0.2cm}\n" + "\\begin{lstlisting}[language=bash, basicstyle=\\ttfamily\\small, " + "breaklines=true, breakatwhitespace=true, " + "showstringspaces=false, escapeinside={(*}{*)}]\n" + + log_output + + "\n" + + "\\end{lstlisting}" + ) + + return "\n".join(body) + + def _execute_playwright_test(self, test_name: str) -> tuple[str, str, int]: + if not self.playwright_dir: + raise RuntimeError( + "autoplaywright tests require --playwright-dir to be set so Playwright artifacts can be produced." + ) + script_path = os.path.join(self.playwright_dir, "run-test-video.sh") + if not os.path.isfile(script_path): + raise FileNotFoundError(f"Playwright runner script not found: {script_path}") + + video_output = os.path.join(os.getcwd(), self.get_temporary_filename(suffix=".webm")) + log_output = os.path.join(os.getcwd(), self.get_temporary_filename(suffix=".txt")) + + command = ["bash", script_path, test_name, video_output, log_output] + try: + subprocess.run(command, cwd=self.playwright_dir, check=True) # noqa S603 + exit_code = 0 + except subprocess.CalledProcessError as exc: + exit_code = exc.returncode + + return video_output, log_output, exit_code + + def _read_playwright_log(self, log_path: str) -> str: + if not os.path.exists(log_path): + return "No Playwright output captured." + with open(log_path, "r", encoding="utf-8", errors="replace") as log_file: + log_content = log_file.read() + sanitized = log_content.encode("ascii", "backslashreplace").decode("ascii") + if len(sanitized) > 40000: + return sanitized[:40000] + " ... [truncated]" + return sanitized + + def _build_playwright_grid(self, video_path: str) -> Optional[str]: + if not os.path.exists(video_path): + return None + + ffmpeg_path, ffprobe_path = self._ensure_ffmpeg_available() + timestamps = self._select_keyframe_timestamps(video_path, ffprobe_path) + if not timestamps: + return None + + frame_paths: list[str] = [] + try: + for ts in timestamps: + frame_output = os.path.join( + os.getcwd(), self.get_temporary_filename(suffix=".png", force_random=True) + ) + command = [ + ffmpeg_path, "-hide_banner", "-loglevel", "error", "-y", + "-ss", f"{ts:.3f}", "-i", video_path, "-frames:v", "1", frame_output + ] + try: + subprocess.run(command, check=True) # noqa S603 + if os.path.exists(frame_output): + frame_paths.append(frame_output) + except subprocess.CalledProcessError: + continue + + if not frame_paths: + return None + + collage_path = os.path.join( + os.getcwd(), self.get_temporary_filename(suffix=".png", force_random=True) + ) + self._compose_frame_grid(frame_paths, collage_path) + if os.path.exists(collage_path): + return os.path.basename(collage_path) + + return None + finally: + for frame_path in frame_paths: + try: + os.remove(frame_path) + except OSError: + pass + + def _compose_frame_grid(self, frame_paths: list[str], collage_path: str) -> None: + images = [Image.open(path).convert("RGB") for path in frame_paths] + if not images: + return + + try: + resample = Image.Resampling.LANCZOS + except AttributeError: + resample = getattr(Image, "LANCZOS", 1) + + base_width, base_height = images[0].size + scale = min(1.0, 360 / base_width) if base_width else 1.0 + target_width = max(1, int(base_width * scale)) + target_height = max(1, int(base_height * scale)) + resized = [img.resize((target_width, target_height), resample=resample) for img in images] + + grid_size = 3 + grid_image = Image.new("RGB", (target_width * grid_size, target_height * grid_size), (20, 20, 20)) + + for position in range(grid_size * grid_size): + row = position // grid_size + col = position % grid_size + x = col * target_width + y = row * target_height + if position < len(resized): + grid_image.paste(resized[position], (x, y)) + + grid_image.save(collage_path, format="PNG") + + def _select_keyframe_timestamps(self, video_path: str, ffprobe_path: str) -> list[float]: + duration = self._get_video_duration(video_path, ffprobe_path) + if duration <= 0: + return [0.0] + + timestamps: list[float] = [] + for index in range(PLAYWRIGHT_MAX_FRAMES): + if PLAYWRIGHT_MAX_FRAMES == 1: + ts = 0.0 + else: + ts = duration * index / (PLAYWRIGHT_MAX_FRAMES - 1) + timestamps.append(ts) + + unique_timestamps: list[float] = [] + for ts in timestamps: + if not unique_timestamps or abs(ts - unique_timestamps[-1]) > 1e-6: + unique_timestamps.append(ts) + return unique_timestamps + + def _get_video_duration(self, video_path: str, ffprobe_path: str) -> float: + try: + completed = subprocess.run( # noqa S603 + [ + ffprobe_path, + "-v", "error", + "-show_entries", "format=duration", + "-of", "default=noprint_wrappers=1:nokey=1", + video_path, + ], + capture_output=True, + text=True, + check=True, + ) + except subprocess.CalledProcessError as exc: + raise RuntimeError(f"Failed to read video duration: {exc}") from exc + + try: + return max(0.0, float(completed.stdout.strip())) + except ValueError: + return 0.0 + + def _ensure_ffmpeg_available(self) -> tuple[str, str]: + ffmpeg_path = shutil.which("ffmpeg") + ffprobe_path = shutil.which("ffprobe") + missing = [] + if not ffmpeg_path: + missing.append("ffmpeg") + if not ffprobe_path: + missing.append("ffprobe") + if missing: + raise RuntimeError( + "The autoplaywright feature requires ffmpeg/ffprobe but the following binaries were not found: " + + ", ".join(missing) + ) + assert ffmpeg_path is not None and ffprobe_path is not None + return ffmpeg_path, ffprobe_path + @staticmethod def get_global_tex_vars() -> dict[str, str]: return {"version": __version__} @@ -387,6 +613,7 @@ def __init__( self, document: Document, *, + playwright_dir: Optional[str] = None, top_left_logo_path: Optional[str] = None, top_right_logo_path: Optional[str] = None, ): @@ -394,6 +621,12 @@ def __init__( self.original_working_directory = os.getcwd() self.top_left_logo_path = top_left_logo_path self.top_right_logo_path = top_right_logo_path + self.playwright_dir: Optional[str] = None + if playwright_dir: + resolved_playwright_dir = os.path.abspath(playwright_dir) + if not os.path.isdir(resolved_playwright_dir): + raise FileNotFoundError(f"Playwright directory does not exist: {resolved_playwright_dir}") + self.playwright_dir = resolved_playwright_dir # Build a set containing all the test and requiremnt IDs self.unique_ids = set() @@ -513,18 +746,21 @@ def render(self) -> bytes: shell=True, # noqa: S602 stderr=subprocess.STDOUT, universal_newlines=True, + errors="replace", ) # nopep8 subprocess.check_output( pdflatex_command, shell=True, # noqa: S602 stderr=subprocess.STDOUT, universal_newlines=True, + errors="replace", ) # nopep8 subprocess.check_output( pdflatex_command, shell=True, # noqa: S602 stderr=subprocess.STDOUT, universal_newlines=True, + errors="replace", ) # nopep8 except subprocess.CalledProcessError as exc: print("Status : FAIL", exc.returncode, exc.output) diff --git a/uv.lock b/uv.lock index d261b62..e911c12 100644 --- a/uv.lock +++ b/uv.lock @@ -50,8 +50,7 @@ dependencies = [ { name = "cairocffi" }, { name = "cssselect2" }, { name = "defusedxml" }, - { name = "pillow", version = "11.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pillow", version = "12.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "pillow" }, { name = "tinycss2" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d5/e6/ec5900b724e3c44af7f6f51f719919137284e5da4aabe96508baec8a1b40/CairoSVG-2.7.1.tar.gz", hash = "sha256:432531d72347291b9a9ebfb6777026b607563fd8719c46ee742db0aef7271ba0", size = 8399085, upload-time = "2023-08-05T09:08:05.75Z" } @@ -929,219 +928,54 @@ wheels = [ [[package]] name = "pillow" -version = "11.3.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069, upload-time = "2025-07-01T09:16:30.666Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4c/5d/45a3553a253ac8763f3561371432a90bdbe6000fbdcf1397ffe502aa206c/pillow-11.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b9c17fd4ace828b3003dfd1e30bff24863e0eb59b535e8f80194d9cc7ecf860", size = 5316554, upload-time = "2025-07-01T09:13:39.342Z" }, - { url = "https://files.pythonhosted.org/packages/7c/c8/67c12ab069ef586a25a4a79ced553586748fad100c77c0ce59bb4983ac98/pillow-11.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:65dc69160114cdd0ca0f35cb434633c75e8e7fad4cf855177a05bf38678f73ad", size = 4686548, upload-time = "2025-07-01T09:13:41.835Z" }, - { url = "https://files.pythonhosted.org/packages/2f/bd/6741ebd56263390b382ae4c5de02979af7f8bd9807346d068700dd6d5cf9/pillow-11.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7107195ddc914f656c7fc8e4a5e1c25f32e9236ea3ea860f257b0436011fddd0", size = 5859742, upload-time = "2025-07-03T13:09:47.439Z" }, - { url = "https://files.pythonhosted.org/packages/ca/0b/c412a9e27e1e6a829e6ab6c2dca52dd563efbedf4c9c6aa453d9a9b77359/pillow-11.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc3e831b563b3114baac7ec2ee86819eb03caa1a2cef0b481a5675b59c4fe23b", size = 7633087, upload-time = "2025-07-03T13:09:51.796Z" }, - { url = "https://files.pythonhosted.org/packages/59/9d/9b7076aaf30f5dd17e5e5589b2d2f5a5d7e30ff67a171eb686e4eecc2adf/pillow-11.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1f182ebd2303acf8c380a54f615ec883322593320a9b00438eb842c1f37ae50", size = 5963350, upload-time = "2025-07-01T09:13:43.865Z" }, - { url = "https://files.pythonhosted.org/packages/f0/16/1a6bf01fb622fb9cf5c91683823f073f053005c849b1f52ed613afcf8dae/pillow-11.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4445fa62e15936a028672fd48c4c11a66d641d2c05726c7ec1f8ba6a572036ae", size = 6631840, upload-time = "2025-07-01T09:13:46.161Z" }, - { url = "https://files.pythonhosted.org/packages/7b/e6/6ff7077077eb47fde78739e7d570bdcd7c10495666b6afcd23ab56b19a43/pillow-11.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:71f511f6b3b91dd543282477be45a033e4845a40278fa8dcdbfdb07109bf18f9", size = 6074005, upload-time = "2025-07-01T09:13:47.829Z" }, - { url = "https://files.pythonhosted.org/packages/c3/3a/b13f36832ea6d279a697231658199e0a03cd87ef12048016bdcc84131601/pillow-11.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:040a5b691b0713e1f6cbe222e0f4f74cd233421e105850ae3b3c0ceda520f42e", size = 6708372, upload-time = "2025-07-01T09:13:52.145Z" }, - { url = "https://files.pythonhosted.org/packages/6c/e4/61b2e1a7528740efbc70b3d581f33937e38e98ef3d50b05007267a55bcb2/pillow-11.3.0-cp310-cp310-win32.whl", hash = "sha256:89bd777bc6624fe4115e9fac3352c79ed60f3bb18651420635f26e643e3dd1f6", size = 6277090, upload-time = "2025-07-01T09:13:53.915Z" }, - { url = "https://files.pythonhosted.org/packages/a9/d3/60c781c83a785d6afbd6a326ed4d759d141de43aa7365725cbcd65ce5e54/pillow-11.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:19d2ff547c75b8e3ff46f4d9ef969a06c30ab2d4263a9e287733aa8b2429ce8f", size = 6985988, upload-time = "2025-07-01T09:13:55.699Z" }, - { url = "https://files.pythonhosted.org/packages/9f/28/4f4a0203165eefb3763939c6789ba31013a2e90adffb456610f30f613850/pillow-11.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:819931d25e57b513242859ce1876c58c59dc31587847bf74cfe06b2e0cb22d2f", size = 2422899, upload-time = "2025-07-01T09:13:57.497Z" }, - { url = "https://files.pythonhosted.org/packages/db/26/77f8ed17ca4ffd60e1dcd220a6ec6d71210ba398cfa33a13a1cd614c5613/pillow-11.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1cd110edf822773368b396281a2293aeb91c90a2db00d78ea43e7e861631b722", size = 5316531, upload-time = "2025-07-01T09:13:59.203Z" }, - { url = "https://files.pythonhosted.org/packages/cb/39/ee475903197ce709322a17a866892efb560f57900d9af2e55f86db51b0a5/pillow-11.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c412fddd1b77a75aa904615ebaa6001f169b26fd467b4be93aded278266b288", size = 4686560, upload-time = "2025-07-01T09:14:01.101Z" }, - { url = "https://files.pythonhosted.org/packages/d5/90/442068a160fd179938ba55ec8c97050a612426fae5ec0a764e345839f76d/pillow-11.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1aa4de119a0ecac0a34a9c8bde33f34022e2e8f99104e47a3ca392fd60e37d", size = 5870978, upload-time = "2025-07-03T13:09:55.638Z" }, - { url = "https://files.pythonhosted.org/packages/13/92/dcdd147ab02daf405387f0218dcf792dc6dd5b14d2573d40b4caeef01059/pillow-11.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:91da1d88226663594e3f6b4b8c3c8d85bd504117d043740a8e0ec449087cc494", size = 7641168, upload-time = "2025-07-03T13:10:00.37Z" }, - { url = "https://files.pythonhosted.org/packages/6e/db/839d6ba7fd38b51af641aa904e2960e7a5644d60ec754c046b7d2aee00e5/pillow-11.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:643f189248837533073c405ec2f0bb250ba54598cf80e8c1e043381a60632f58", size = 5973053, upload-time = "2025-07-01T09:14:04.491Z" }, - { url = "https://files.pythonhosted.org/packages/f2/2f/d7675ecae6c43e9f12aa8d58b6012683b20b6edfbdac7abcb4e6af7a3784/pillow-11.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:106064daa23a745510dabce1d84f29137a37224831d88eb4ce94bb187b1d7e5f", size = 6640273, upload-time = "2025-07-01T09:14:06.235Z" }, - { url = "https://files.pythonhosted.org/packages/45/ad/931694675ede172e15b2ff03c8144a0ddaea1d87adb72bb07655eaffb654/pillow-11.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd8ff254faf15591e724dc7c4ddb6bf4793efcbe13802a4ae3e863cd300b493e", size = 6082043, upload-time = "2025-07-01T09:14:07.978Z" }, - { url = "https://files.pythonhosted.org/packages/3a/04/ba8f2b11fc80d2dd462d7abec16351b45ec99cbbaea4387648a44190351a/pillow-11.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:932c754c2d51ad2b2271fd01c3d121daaa35e27efae2a616f77bf164bc0b3e94", size = 6715516, upload-time = "2025-07-01T09:14:10.233Z" }, - { url = "https://files.pythonhosted.org/packages/48/59/8cd06d7f3944cc7d892e8533c56b0acb68399f640786313275faec1e3b6f/pillow-11.3.0-cp311-cp311-win32.whl", hash = "sha256:b4b8f3efc8d530a1544e5962bd6b403d5f7fe8b9e08227c6b255f98ad82b4ba0", size = 6274768, upload-time = "2025-07-01T09:14:11.921Z" }, - { url = "https://files.pythonhosted.org/packages/f1/cc/29c0f5d64ab8eae20f3232da8f8571660aa0ab4b8f1331da5c2f5f9a938e/pillow-11.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:1a992e86b0dd7aeb1f053cd506508c0999d710a8f07b4c791c63843fc6a807ac", size = 6986055, upload-time = "2025-07-01T09:14:13.623Z" }, - { url = "https://files.pythonhosted.org/packages/c6/df/90bd886fabd544c25addd63e5ca6932c86f2b701d5da6c7839387a076b4a/pillow-11.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:30807c931ff7c095620fe04448e2c2fc673fcbb1ffe2a7da3fb39613489b1ddd", size = 2423079, upload-time = "2025-07-01T09:14:15.268Z" }, - { url = "https://files.pythonhosted.org/packages/40/fe/1bc9b3ee13f68487a99ac9529968035cca2f0a51ec36892060edcc51d06a/pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4", size = 5278800, upload-time = "2025-07-01T09:14:17.648Z" }, - { url = "https://files.pythonhosted.org/packages/2c/32/7e2ac19b5713657384cec55f89065fb306b06af008cfd87e572035b27119/pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69", size = 4686296, upload-time = "2025-07-01T09:14:19.828Z" }, - { url = "https://files.pythonhosted.org/packages/8e/1e/b9e12bbe6e4c2220effebc09ea0923a07a6da1e1f1bfbc8d7d29a01ce32b/pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d", size = 5871726, upload-time = "2025-07-03T13:10:04.448Z" }, - { url = "https://files.pythonhosted.org/packages/8d/33/e9200d2bd7ba00dc3ddb78df1198a6e80d7669cce6c2bdbeb2530a74ec58/pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6", size = 7644652, upload-time = "2025-07-03T13:10:10.391Z" }, - { url = "https://files.pythonhosted.org/packages/41/f1/6f2427a26fc683e00d985bc391bdd76d8dd4e92fac33d841127eb8fb2313/pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7", size = 5977787, upload-time = "2025-07-01T09:14:21.63Z" }, - { url = "https://files.pythonhosted.org/packages/e4/c9/06dd4a38974e24f932ff5f98ea3c546ce3f8c995d3f0985f8e5ba48bba19/pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024", size = 6645236, upload-time = "2025-07-01T09:14:23.321Z" }, - { url = "https://files.pythonhosted.org/packages/40/e7/848f69fb79843b3d91241bad658e9c14f39a32f71a301bcd1d139416d1be/pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809", size = 6086950, upload-time = "2025-07-01T09:14:25.237Z" }, - { url = "https://files.pythonhosted.org/packages/0b/1a/7cff92e695a2a29ac1958c2a0fe4c0b2393b60aac13b04a4fe2735cad52d/pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d", size = 6723358, upload-time = "2025-07-01T09:14:27.053Z" }, - { url = "https://files.pythonhosted.org/packages/26/7d/73699ad77895f69edff76b0f332acc3d497f22f5d75e5360f78cbcaff248/pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149", size = 6275079, upload-time = "2025-07-01T09:14:30.104Z" }, - { url = "https://files.pythonhosted.org/packages/8c/ce/e7dfc873bdd9828f3b6e5c2bbb74e47a98ec23cc5c74fc4e54462f0d9204/pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d", size = 6986324, upload-time = "2025-07-01T09:14:31.899Z" }, - { url = "https://files.pythonhosted.org/packages/16/8f/b13447d1bf0b1f7467ce7d86f6e6edf66c0ad7cf44cf5c87a37f9bed9936/pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542", size = 2423067, upload-time = "2025-07-01T09:14:33.709Z" }, - { url = "https://files.pythonhosted.org/packages/1e/93/0952f2ed8db3a5a4c7a11f91965d6184ebc8cd7cbb7941a260d5f018cd2d/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1c627742b539bba4309df89171356fcb3cc5a9178355b2727d1b74a6cf155fbd", size = 2128328, upload-time = "2025-07-01T09:14:35.276Z" }, - { url = "https://files.pythonhosted.org/packages/4b/e8/100c3d114b1a0bf4042f27e0f87d2f25e857e838034e98ca98fe7b8c0a9c/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30b7c02f3899d10f13d7a48163c8969e4e653f8b43416d23d13d1bbfdc93b9f8", size = 2170652, upload-time = "2025-07-01T09:14:37.203Z" }, - { url = "https://files.pythonhosted.org/packages/aa/86/3f758a28a6e381758545f7cdb4942e1cb79abd271bea932998fc0db93cb6/pillow-11.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7859a4cc7c9295f5838015d8cc0a9c215b77e43d07a25e460f35cf516df8626f", size = 2227443, upload-time = "2025-07-01T09:14:39.344Z" }, - { url = "https://files.pythonhosted.org/packages/01/f4/91d5b3ffa718df2f53b0dc109877993e511f4fd055d7e9508682e8aba092/pillow-11.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec1ee50470b0d050984394423d96325b744d55c701a439d2bd66089bff963d3c", size = 5278474, upload-time = "2025-07-01T09:14:41.843Z" }, - { url = "https://files.pythonhosted.org/packages/f9/0e/37d7d3eca6c879fbd9dba21268427dffda1ab00d4eb05b32923d4fbe3b12/pillow-11.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7db51d222548ccfd274e4572fdbf3e810a5e66b00608862f947b163e613b67dd", size = 4686038, upload-time = "2025-07-01T09:14:44.008Z" }, - { url = "https://files.pythonhosted.org/packages/ff/b0/3426e5c7f6565e752d81221af9d3676fdbb4f352317ceafd42899aaf5d8a/pillow-11.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2d6fcc902a24ac74495df63faad1884282239265c6839a0a6416d33faedfae7e", size = 5864407, upload-time = "2025-07-03T13:10:15.628Z" }, - { url = "https://files.pythonhosted.org/packages/fc/c1/c6c423134229f2a221ee53f838d4be9d82bab86f7e2f8e75e47b6bf6cd77/pillow-11.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f0f5d8f4a08090c6d6d578351a2b91acf519a54986c055af27e7a93feae6d3f1", size = 7639094, upload-time = "2025-07-03T13:10:21.857Z" }, - { url = "https://files.pythonhosted.org/packages/ba/c9/09e6746630fe6372c67c648ff9deae52a2bc20897d51fa293571977ceb5d/pillow-11.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c37d8ba9411d6003bba9e518db0db0c58a680ab9fe5179f040b0463644bc9805", size = 5973503, upload-time = "2025-07-01T09:14:45.698Z" }, - { url = "https://files.pythonhosted.org/packages/d5/1c/a2a29649c0b1983d3ef57ee87a66487fdeb45132df66ab30dd37f7dbe162/pillow-11.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13f87d581e71d9189ab21fe0efb5a23e9f28552d5be6979e84001d3b8505abe8", size = 6642574, upload-time = "2025-07-01T09:14:47.415Z" }, - { url = "https://files.pythonhosted.org/packages/36/de/d5cc31cc4b055b6c6fd990e3e7f0f8aaf36229a2698501bcb0cdf67c7146/pillow-11.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:023f6d2d11784a465f09fd09a34b150ea4672e85fb3d05931d89f373ab14abb2", size = 6084060, upload-time = "2025-07-01T09:14:49.636Z" }, - { url = "https://files.pythonhosted.org/packages/d5/ea/502d938cbaeec836ac28a9b730193716f0114c41325db428e6b280513f09/pillow-11.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:45dfc51ac5975b938e9809451c51734124e73b04d0f0ac621649821a63852e7b", size = 6721407, upload-time = "2025-07-01T09:14:51.962Z" }, - { url = "https://files.pythonhosted.org/packages/45/9c/9c5e2a73f125f6cbc59cc7087c8f2d649a7ae453f83bd0362ff7c9e2aee2/pillow-11.3.0-cp313-cp313-win32.whl", hash = "sha256:a4d336baed65d50d37b88ca5b60c0fa9d81e3a87d4a7930d3880d1624d5b31f3", size = 6273841, upload-time = "2025-07-01T09:14:54.142Z" }, - { url = "https://files.pythonhosted.org/packages/23/85/397c73524e0cd212067e0c969aa245b01d50183439550d24d9f55781b776/pillow-11.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bce5c4fd0921f99d2e858dc4d4d64193407e1b99478bc5cacecba2311abde51", size = 6978450, upload-time = "2025-07-01T09:14:56.436Z" }, - { url = "https://files.pythonhosted.org/packages/17/d2/622f4547f69cd173955194b78e4d19ca4935a1b0f03a302d655c9f6aae65/pillow-11.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:1904e1264881f682f02b7f8167935cce37bc97db457f8e7849dc3a6a52b99580", size = 2423055, upload-time = "2025-07-01T09:14:58.072Z" }, - { url = "https://files.pythonhosted.org/packages/dd/80/a8a2ac21dda2e82480852978416cfacd439a4b490a501a288ecf4fe2532d/pillow-11.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4c834a3921375c48ee6b9624061076bc0a32a60b5532b322cc0ea64e639dd50e", size = 5281110, upload-time = "2025-07-01T09:14:59.79Z" }, - { url = "https://files.pythonhosted.org/packages/44/d6/b79754ca790f315918732e18f82a8146d33bcd7f4494380457ea89eb883d/pillow-11.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e05688ccef30ea69b9317a9ead994b93975104a677a36a8ed8106be9260aa6d", size = 4689547, upload-time = "2025-07-01T09:15:01.648Z" }, - { url = "https://files.pythonhosted.org/packages/49/20/716b8717d331150cb00f7fdd78169c01e8e0c219732a78b0e59b6bdb2fd6/pillow-11.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1019b04af07fc0163e2810167918cb5add8d74674b6267616021ab558dc98ced", size = 5901554, upload-time = "2025-07-03T13:10:27.018Z" }, - { url = "https://files.pythonhosted.org/packages/74/cf/a9f3a2514a65bb071075063a96f0a5cf949c2f2fce683c15ccc83b1c1cab/pillow-11.3.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f944255db153ebb2b19c51fe85dd99ef0ce494123f21b9db4877ffdfc5590c7c", size = 7669132, upload-time = "2025-07-03T13:10:33.01Z" }, - { url = "https://files.pythonhosted.org/packages/98/3c/da78805cbdbee9cb43efe8261dd7cc0b4b93f2ac79b676c03159e9db2187/pillow-11.3.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f85acb69adf2aaee8b7da124efebbdb959a104db34d3a2cb0f3793dbae422a8", size = 6005001, upload-time = "2025-07-01T09:15:03.365Z" }, - { url = "https://files.pythonhosted.org/packages/6c/fa/ce044b91faecf30e635321351bba32bab5a7e034c60187fe9698191aef4f/pillow-11.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f6ecbeff5005399bb48d198f098a9b4b6bdf27b8487c7f38ca16eeb070cd59", size = 6668814, upload-time = "2025-07-01T09:15:05.655Z" }, - { url = "https://files.pythonhosted.org/packages/7b/51/90f9291406d09bf93686434f9183aba27b831c10c87746ff49f127ee80cb/pillow-11.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bc6e6fd0395bc052f16b1a8670859964dbd7003bd0af2ff08342eb6e442cfe", size = 6113124, upload-time = "2025-07-01T09:15:07.358Z" }, - { url = "https://files.pythonhosted.org/packages/cd/5a/6fec59b1dfb619234f7636d4157d11fb4e196caeee220232a8d2ec48488d/pillow-11.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:83e1b0161c9d148125083a35c1c5a89db5b7054834fd4387499e06552035236c", size = 6747186, upload-time = "2025-07-01T09:15:09.317Z" }, - { url = "https://files.pythonhosted.org/packages/49/6b/00187a044f98255225f172de653941e61da37104a9ea60e4f6887717e2b5/pillow-11.3.0-cp313-cp313t-win32.whl", hash = "sha256:2a3117c06b8fb646639dce83694f2f9eac405472713fcb1ae887469c0d4f6788", size = 6277546, upload-time = "2025-07-01T09:15:11.311Z" }, - { url = "https://files.pythonhosted.org/packages/e8/5c/6caaba7e261c0d75bab23be79f1d06b5ad2a2ae49f028ccec801b0e853d6/pillow-11.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:857844335c95bea93fb39e0fa2726b4d9d758850b34075a7e3ff4f4fa3aa3b31", size = 6985102, upload-time = "2025-07-01T09:15:13.164Z" }, - { url = "https://files.pythonhosted.org/packages/f3/7e/b623008460c09a0cb38263c93b828c666493caee2eb34ff67f778b87e58c/pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e", size = 2424803, upload-time = "2025-07-01T09:15:15.695Z" }, - { url = "https://files.pythonhosted.org/packages/73/f4/04905af42837292ed86cb1b1dabe03dce1edc008ef14c473c5c7e1443c5d/pillow-11.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d9da3df5f9ea2a89b81bb6087177fb1f4d1c7146d583a3fe5c672c0d94e55e12", size = 5278520, upload-time = "2025-07-01T09:15:17.429Z" }, - { url = "https://files.pythonhosted.org/packages/41/b0/33d79e377a336247df6348a54e6d2a2b85d644ca202555e3faa0cf811ecc/pillow-11.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0b275ff9b04df7b640c59ec5a3cb113eefd3795a8df80bac69646ef699c6981a", size = 4686116, upload-time = "2025-07-01T09:15:19.423Z" }, - { url = "https://files.pythonhosted.org/packages/49/2d/ed8bc0ab219ae8768f529597d9509d184fe8a6c4741a6864fea334d25f3f/pillow-11.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0743841cabd3dba6a83f38a92672cccbd69af56e3e91777b0ee7f4dba4385632", size = 5864597, upload-time = "2025-07-03T13:10:38.404Z" }, - { url = "https://files.pythonhosted.org/packages/b5/3d/b932bb4225c80b58dfadaca9d42d08d0b7064d2d1791b6a237f87f661834/pillow-11.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2465a69cf967b8b49ee1b96d76718cd98c4e925414ead59fdf75cf0fd07df673", size = 7638246, upload-time = "2025-07-03T13:10:44.987Z" }, - { url = "https://files.pythonhosted.org/packages/09/b5/0487044b7c096f1b48f0d7ad416472c02e0e4bf6919541b111efd3cae690/pillow-11.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41742638139424703b4d01665b807c6468e23e699e8e90cffefe291c5832b027", size = 5973336, upload-time = "2025-07-01T09:15:21.237Z" }, - { url = "https://files.pythonhosted.org/packages/a8/2d/524f9318f6cbfcc79fbc004801ea6b607ec3f843977652fdee4857a7568b/pillow-11.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93efb0b4de7e340d99057415c749175e24c8864302369e05914682ba642e5d77", size = 6642699, upload-time = "2025-07-01T09:15:23.186Z" }, - { url = "https://files.pythonhosted.org/packages/6f/d2/a9a4f280c6aefedce1e8f615baaa5474e0701d86dd6f1dede66726462bbd/pillow-11.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7966e38dcd0fa11ca390aed7c6f20454443581d758242023cf36fcb319b1a874", size = 6083789, upload-time = "2025-07-01T09:15:25.1Z" }, - { url = "https://files.pythonhosted.org/packages/fe/54/86b0cd9dbb683a9d5e960b66c7379e821a19be4ac5810e2e5a715c09a0c0/pillow-11.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:98a9afa7b9007c67ed84c57c9e0ad86a6000da96eaa638e4f8abe5b65ff83f0a", size = 6720386, upload-time = "2025-07-01T09:15:27.378Z" }, - { url = "https://files.pythonhosted.org/packages/e7/95/88efcaf384c3588e24259c4203b909cbe3e3c2d887af9e938c2022c9dd48/pillow-11.3.0-cp314-cp314-win32.whl", hash = "sha256:02a723e6bf909e7cea0dac1b0e0310be9d7650cd66222a5f1c571455c0a45214", size = 6370911, upload-time = "2025-07-01T09:15:29.294Z" }, - { url = "https://files.pythonhosted.org/packages/2e/cc/934e5820850ec5eb107e7b1a72dd278140731c669f396110ebc326f2a503/pillow-11.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:a418486160228f64dd9e9efcd132679b7a02a5f22c982c78b6fc7dab3fefb635", size = 7117383, upload-time = "2025-07-01T09:15:31.128Z" }, - { url = "https://files.pythonhosted.org/packages/d6/e9/9c0a616a71da2a5d163aa37405e8aced9a906d574b4a214bede134e731bc/pillow-11.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:155658efb5e044669c08896c0c44231c5e9abcaadbc5cd3648df2f7c0b96b9a6", size = 2511385, upload-time = "2025-07-01T09:15:33.328Z" }, - { url = "https://files.pythonhosted.org/packages/1a/33/c88376898aff369658b225262cd4f2659b13e8178e7534df9e6e1fa289f6/pillow-11.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:59a03cdf019efbfeeed910bf79c7c93255c3d54bc45898ac2a4140071b02b4ae", size = 5281129, upload-time = "2025-07-01T09:15:35.194Z" }, - { url = "https://files.pythonhosted.org/packages/1f/70/d376247fb36f1844b42910911c83a02d5544ebd2a8bad9efcc0f707ea774/pillow-11.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f8a5827f84d973d8636e9dc5764af4f0cf2318d26744b3d902931701b0d46653", size = 4689580, upload-time = "2025-07-01T09:15:37.114Z" }, - { url = "https://files.pythonhosted.org/packages/eb/1c/537e930496149fbac69efd2fc4329035bbe2e5475b4165439e3be9cb183b/pillow-11.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ee92f2fd10f4adc4b43d07ec5e779932b4eb3dbfbc34790ada5a6669bc095aa6", size = 5902860, upload-time = "2025-07-03T13:10:50.248Z" }, - { url = "https://files.pythonhosted.org/packages/bd/57/80f53264954dcefeebcf9dae6e3eb1daea1b488f0be8b8fef12f79a3eb10/pillow-11.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c96d333dcf42d01f47b37e0979b6bd73ec91eae18614864622d9b87bbd5bbf36", size = 7670694, upload-time = "2025-07-03T13:10:56.432Z" }, - { url = "https://files.pythonhosted.org/packages/70/ff/4727d3b71a8578b4587d9c276e90efad2d6fe0335fd76742a6da08132e8c/pillow-11.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c96f993ab8c98460cd0c001447bff6194403e8b1d7e149ade5f00594918128b", size = 6005888, upload-time = "2025-07-01T09:15:39.436Z" }, - { url = "https://files.pythonhosted.org/packages/05/ae/716592277934f85d3be51d7256f3636672d7b1abfafdc42cf3f8cbd4b4c8/pillow-11.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41342b64afeba938edb034d122b2dda5db2139b9a4af999729ba8818e0056477", size = 6670330, upload-time = "2025-07-01T09:15:41.269Z" }, - { url = "https://files.pythonhosted.org/packages/e7/bb/7fe6cddcc8827b01b1a9766f5fdeb7418680744f9082035bdbabecf1d57f/pillow-11.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:068d9c39a2d1b358eb9f245ce7ab1b5c3246c7c8c7d9ba58cfa5b43146c06e50", size = 6114089, upload-time = "2025-07-01T09:15:43.13Z" }, - { url = "https://files.pythonhosted.org/packages/8b/f5/06bfaa444c8e80f1a8e4bff98da9c83b37b5be3b1deaa43d27a0db37ef84/pillow-11.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a1bc6ba083b145187f648b667e05a2534ecc4b9f2784c2cbe3089e44868f2b9b", size = 6748206, upload-time = "2025-07-01T09:15:44.937Z" }, - { url = "https://files.pythonhosted.org/packages/f0/77/bc6f92a3e8e6e46c0ca78abfffec0037845800ea38c73483760362804c41/pillow-11.3.0-cp314-cp314t-win32.whl", hash = "sha256:118ca10c0d60b06d006be10a501fd6bbdfef559251ed31b794668ed569c87e12", size = 6377370, upload-time = "2025-07-01T09:15:46.673Z" }, - { url = "https://files.pythonhosted.org/packages/4a/82/3a721f7d69dca802befb8af08b7c79ebcab461007ce1c18bd91a5d5896f9/pillow-11.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8924748b688aa210d79883357d102cd64690e56b923a186f35a82cbc10f997db", size = 7121500, upload-time = "2025-07-01T09:15:48.512Z" }, - { url = "https://files.pythonhosted.org/packages/89/c7/5572fa4a3f45740eaab6ae86fcdf7195b55beac1371ac8c619d880cfe948/pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa", size = 2512835, upload-time = "2025-07-01T09:15:50.399Z" }, - { url = "https://files.pythonhosted.org/packages/9e/8e/9c089f01677d1264ab8648352dcb7773f37da6ad002542760c80107da816/pillow-11.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:48d254f8a4c776de343051023eb61ffe818299eeac478da55227d96e241de53f", size = 5316478, upload-time = "2025-07-01T09:15:52.209Z" }, - { url = "https://files.pythonhosted.org/packages/b5/a9/5749930caf674695867eb56a581e78eb5f524b7583ff10b01b6e5048acb3/pillow-11.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7aee118e30a4cf54fdd873bd3a29de51e29105ab11f9aad8c32123f58c8f8081", size = 4686522, upload-time = "2025-07-01T09:15:54.162Z" }, - { url = "https://files.pythonhosted.org/packages/43/46/0b85b763eb292b691030795f9f6bb6fcaf8948c39413c81696a01c3577f7/pillow-11.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:23cff760a9049c502721bdb743a7cb3e03365fafcdfc2ef9784610714166e5a4", size = 5853376, upload-time = "2025-07-03T13:11:01.066Z" }, - { url = "https://files.pythonhosted.org/packages/5e/c6/1a230ec0067243cbd60bc2dad5dc3ab46a8a41e21c15f5c9b52b26873069/pillow-11.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6359a3bc43f57d5b375d1ad54a0074318a0844d11b76abccf478c37c986d3cfc", size = 7626020, upload-time = "2025-07-03T13:11:06.479Z" }, - { url = "https://files.pythonhosted.org/packages/63/dd/f296c27ffba447bfad76c6a0c44c1ea97a90cb9472b9304c94a732e8dbfb/pillow-11.3.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:092c80c76635f5ecb10f3f83d76716165c96f5229addbd1ec2bdbbda7d496e06", size = 5956732, upload-time = "2025-07-01T09:15:56.111Z" }, - { url = "https://files.pythonhosted.org/packages/a5/a0/98a3630f0b57f77bae67716562513d3032ae70414fcaf02750279c389a9e/pillow-11.3.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cadc9e0ea0a2431124cde7e1697106471fc4c1da01530e679b2391c37d3fbb3a", size = 6624404, upload-time = "2025-07-01T09:15:58.245Z" }, - { url = "https://files.pythonhosted.org/packages/de/e6/83dfba5646a290edd9a21964da07674409e410579c341fc5b8f7abd81620/pillow-11.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6a418691000f2a418c9135a7cf0d797c1bb7d9a485e61fe8e7722845b95ef978", size = 6067760, upload-time = "2025-07-01T09:16:00.003Z" }, - { url = "https://files.pythonhosted.org/packages/bc/41/15ab268fe6ee9a2bc7391e2bbb20a98d3974304ab1a406a992dcb297a370/pillow-11.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:97afb3a00b65cc0804d1c7abddbf090a81eaac02768af58cbdcaaa0a931e0b6d", size = 6700534, upload-time = "2025-07-01T09:16:02.29Z" }, - { url = "https://files.pythonhosted.org/packages/64/79/6d4f638b288300bed727ff29f2a3cb63db054b33518a95f27724915e3fbc/pillow-11.3.0-cp39-cp39-win32.whl", hash = "sha256:ea944117a7974ae78059fcc1800e5d3295172bb97035c0c1d9345fca1419da71", size = 6277091, upload-time = "2025-07-01T09:16:04.4Z" }, - { url = "https://files.pythonhosted.org/packages/46/05/4106422f45a05716fd34ed21763f8ec182e8ea00af6e9cb05b93a247361a/pillow-11.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:e5c5858ad8ec655450a7c7df532e9842cf8df7cc349df7225c60d5d348c8aada", size = 6986091, upload-time = "2025-07-01T09:16:06.342Z" }, - { url = "https://files.pythonhosted.org/packages/63/c6/287fd55c2c12761d0591549d48885187579b7c257bef0c6660755b0b59ae/pillow-11.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:6abdbfd3aea42be05702a8dd98832329c167ee84400a1d1f61ab11437f1717eb", size = 2422632, upload-time = "2025-07-01T09:16:08.142Z" }, - { url = "https://files.pythonhosted.org/packages/6f/8b/209bd6b62ce8367f47e68a218bffac88888fdf2c9fcf1ecadc6c3ec1ebc7/pillow-11.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3cee80663f29e3843b68199b9d6f4f54bd1d4a6b59bdd91bceefc51238bcb967", size = 5270556, upload-time = "2025-07-01T09:16:09.961Z" }, - { url = "https://files.pythonhosted.org/packages/2e/e6/231a0b76070c2cfd9e260a7a5b504fb72da0a95279410fa7afd99d9751d6/pillow-11.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b5f56c3f344f2ccaf0dd875d3e180f631dc60a51b314295a3e681fe8cf851fbe", size = 4654625, upload-time = "2025-07-01T09:16:11.913Z" }, - { url = "https://files.pythonhosted.org/packages/13/f4/10cf94fda33cb12765f2397fc285fa6d8eb9c29de7f3185165b702fc7386/pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e67d793d180c9df62f1f40aee3accca4829d3794c95098887edc18af4b8b780c", size = 4874207, upload-time = "2025-07-03T13:11:10.201Z" }, - { url = "https://files.pythonhosted.org/packages/72/c9/583821097dc691880c92892e8e2d41fe0a5a3d6021f4963371d2f6d57250/pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d000f46e2917c705e9fb93a3606ee4a819d1e3aa7a9b442f6444f07e77cf5e25", size = 6583939, upload-time = "2025-07-03T13:11:15.68Z" }, - { url = "https://files.pythonhosted.org/packages/3b/8e/5c9d410f9217b12320efc7c413e72693f48468979a013ad17fd690397b9a/pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:527b37216b6ac3a12d7838dc3bd75208ec57c1c6d11ef01902266a5a0c14fc27", size = 4957166, upload-time = "2025-07-01T09:16:13.74Z" }, - { url = "https://files.pythonhosted.org/packages/62/bb/78347dbe13219991877ffb3a91bf09da8317fbfcd4b5f9140aeae020ad71/pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:be5463ac478b623b9dd3937afd7fb7ab3d79dd290a28e2b6df292dc75063eb8a", size = 5581482, upload-time = "2025-07-01T09:16:16.107Z" }, - { url = "https://files.pythonhosted.org/packages/d9/28/1000353d5e61498aaeaaf7f1e4b49ddb05f2c6575f9d4f9f914a3538b6e1/pillow-11.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8dc70ca24c110503e16918a658b869019126ecfe03109b754c402daff12b3d9f", size = 6984596, upload-time = "2025-07-01T09:16:18.07Z" }, - { url = "https://files.pythonhosted.org/packages/9e/e3/6fa84033758276fb31da12e5fb66ad747ae83b93c67af17f8c6ff4cc8f34/pillow-11.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7c8ec7a017ad1bd562f93dbd8505763e688d388cde6e4a010ae1486916e713e6", size = 5270566, upload-time = "2025-07-01T09:16:19.801Z" }, - { url = "https://files.pythonhosted.org/packages/5b/ee/e8d2e1ab4892970b561e1ba96cbd59c0d28cf66737fc44abb2aec3795a4e/pillow-11.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:9ab6ae226de48019caa8074894544af5b53a117ccb9d3b3dcb2871464c829438", size = 4654618, upload-time = "2025-07-01T09:16:21.818Z" }, - { url = "https://files.pythonhosted.org/packages/f2/6d/17f80f4e1f0761f02160fc433abd4109fa1548dcfdca46cfdadaf9efa565/pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fe27fb049cdcca11f11a7bfda64043c37b30e6b91f10cb5bab275806c32f6ab3", size = 4874248, upload-time = "2025-07-03T13:11:20.738Z" }, - { url = "https://files.pythonhosted.org/packages/de/5f/c22340acd61cef960130585bbe2120e2fd8434c214802f07e8c03596b17e/pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:465b9e8844e3c3519a983d58b80be3f668e2a7a5db97f2784e7079fbc9f9822c", size = 6583963, upload-time = "2025-07-03T13:11:26.283Z" }, - { url = "https://files.pythonhosted.org/packages/31/5e/03966aedfbfcbb4d5f8aa042452d3361f325b963ebbadddac05b122e47dd/pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5418b53c0d59b3824d05e029669efa023bbef0f3e92e75ec8428f3799487f361", size = 4957170, upload-time = "2025-07-01T09:16:23.762Z" }, - { url = "https://files.pythonhosted.org/packages/cc/2d/e082982aacc927fc2cab48e1e731bdb1643a1406acace8bed0900a61464e/pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:504b6f59505f08ae014f724b6207ff6222662aab5cc9542577fb084ed0676ac7", size = 5581505, upload-time = "2025-07-01T09:16:25.593Z" }, - { url = "https://files.pythonhosted.org/packages/34/e7/ae39f538fd6844e982063c3a5e4598b8ced43b9633baa3a85ef33af8c05c/pillow-11.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c84d689db21a1c397d001aa08241044aa2069e7587b398c8cc63020390b1c1b8", size = 6984598, upload-time = "2025-07-01T09:16:27.732Z" }, -] - -[[package]] -name = "pillow" -version = "12.0.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.10'", -] -sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/cace85a1b0c9775a9f8f5d5423c8261c858760e2466c79b2dd184638b056/pillow-12.0.0.tar.gz", hash = "sha256:87d4f8125c9988bfbed67af47dd7a953e2fc7b0cc1e7800ec6d2080d490bb353", size = 47008828, upload-time = "2025-10-15T18:24:14.008Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/08/26e68b6b5da219c2a2cb7b563af008b53bb8e6b6fcb3fa40715fcdb2523a/pillow-12.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:3adfb466bbc544b926d50fe8f4a4e6abd8c6bffd28a26177594e6e9b2b76572b", size = 5289809, upload-time = "2025-10-15T18:21:27.791Z" }, - { url = "https://files.pythonhosted.org/packages/cb/e9/4e58fb097fb74c7b4758a680aacd558810a417d1edaa7000142976ef9d2f/pillow-12.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1ac11e8ea4f611c3c0147424eae514028b5e9077dd99ab91e1bd7bc33ff145e1", size = 4650606, upload-time = "2025-10-15T18:21:29.823Z" }, - { url = "https://files.pythonhosted.org/packages/4b/e0/1fa492aa9f77b3bc6d471c468e62bfea1823056bf7e5e4f1914d7ab2565e/pillow-12.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d49e2314c373f4c2b39446fb1a45ed333c850e09d0c59ac79b72eb3b95397363", size = 6221023, upload-time = "2025-10-15T18:21:31.415Z" }, - { url = "https://files.pythonhosted.org/packages/c1/09/4de7cd03e33734ccd0c876f0251401f1314e819cbfd89a0fcb6e77927cc6/pillow-12.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c7b2a63fd6d5246349f3d3f37b14430d73ee7e8173154461785e43036ffa96ca", size = 8024937, upload-time = "2025-10-15T18:21:33.453Z" }, - { url = "https://files.pythonhosted.org/packages/2e/69/0688e7c1390666592876d9d474f5e135abb4acb39dcb583c4dc5490f1aff/pillow-12.0.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d64317d2587c70324b79861babb9c09f71fbb780bad212018874b2c013d8600e", size = 6334139, upload-time = "2025-10-15T18:21:35.395Z" }, - { url = "https://files.pythonhosted.org/packages/ed/1c/880921e98f525b9b44ce747ad1ea8f73fd7e992bafe3ca5e5644bf433dea/pillow-12.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d77153e14b709fd8b8af6f66a3afbb9ed6e9fc5ccf0b6b7e1ced7b036a228782", size = 7026074, upload-time = "2025-10-15T18:21:37.219Z" }, - { url = "https://files.pythonhosted.org/packages/28/03/96f718331b19b355610ef4ebdbbde3557c726513030665071fd025745671/pillow-12.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:32ed80ea8a90ee3e6fa08c21e2e091bba6eda8eccc83dbc34c95169507a91f10", size = 6448852, upload-time = "2025-10-15T18:21:39.168Z" }, - { url = "https://files.pythonhosted.org/packages/3a/a0/6a193b3f0cc9437b122978d2c5cbce59510ccf9a5b48825096ed7472da2f/pillow-12.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c828a1ae702fc712978bda0320ba1b9893d99be0badf2647f693cc01cf0f04fa", size = 7117058, upload-time = "2025-10-15T18:21:40.997Z" }, - { url = "https://files.pythonhosted.org/packages/a7/c4/043192375eaa4463254e8e61f0e2ec9a846b983929a8d0a7122e0a6d6fff/pillow-12.0.0-cp310-cp310-win32.whl", hash = "sha256:bd87e140e45399c818fac4247880b9ce719e4783d767e030a883a970be632275", size = 6295431, upload-time = "2025-10-15T18:21:42.518Z" }, - { url = "https://files.pythonhosted.org/packages/92/c6/c2f2fc7e56301c21827e689bb8b0b465f1b52878b57471a070678c0c33cd/pillow-12.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:455247ac8a4cfb7b9bc45b7e432d10421aea9fc2e74d285ba4072688a74c2e9d", size = 7000412, upload-time = "2025-10-15T18:21:44.404Z" }, - { url = "https://files.pythonhosted.org/packages/b2/d2/5f675067ba82da7a1c238a73b32e3fd78d67f9d9f80fbadd33a40b9c0481/pillow-12.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:6ace95230bfb7cd79ef66caa064bbe2f2a1e63d93471c3a2e1f1348d9f22d6b7", size = 2435903, upload-time = "2025-10-15T18:21:46.29Z" }, - { url = "https://files.pythonhosted.org/packages/0e/5a/a2f6773b64edb921a756eb0729068acad9fc5208a53f4a349396e9436721/pillow-12.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0fd00cac9c03256c8b2ff58f162ebcd2587ad3e1f2e397eab718c47e24d231cc", size = 5289798, upload-time = "2025-10-15T18:21:47.763Z" }, - { url = "https://files.pythonhosted.org/packages/2e/05/069b1f8a2e4b5a37493da6c5868531c3f77b85e716ad7a590ef87d58730d/pillow-12.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3475b96f5908b3b16c47533daaa87380c491357d197564e0ba34ae75c0f3257", size = 4650589, upload-time = "2025-10-15T18:21:49.515Z" }, - { url = "https://files.pythonhosted.org/packages/61/e3/2c820d6e9a36432503ead175ae294f96861b07600a7156154a086ba7111a/pillow-12.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:110486b79f2d112cf6add83b28b627e369219388f64ef2f960fef9ebaf54c642", size = 6230472, upload-time = "2025-10-15T18:21:51.052Z" }, - { url = "https://files.pythonhosted.org/packages/4f/89/63427f51c64209c5e23d4d52071c8d0f21024d3a8a487737caaf614a5795/pillow-12.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5269cc1caeedb67e6f7269a42014f381f45e2e7cd42d834ede3c703a1d915fe3", size = 8033887, upload-time = "2025-10-15T18:21:52.604Z" }, - { url = "https://files.pythonhosted.org/packages/f6/1b/c9711318d4901093c15840f268ad649459cd81984c9ec9887756cca049a5/pillow-12.0.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa5129de4e174daccbc59d0a3b6d20eaf24417d59851c07ebb37aeb02947987c", size = 6343964, upload-time = "2025-10-15T18:21:54.619Z" }, - { url = "https://files.pythonhosted.org/packages/41/1e/db9470f2d030b4995083044cd8738cdd1bf773106819f6d8ba12597d5352/pillow-12.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bee2a6db3a7242ea309aa7ee8e2780726fed67ff4e5b40169f2c940e7eb09227", size = 7034756, upload-time = "2025-10-15T18:21:56.151Z" }, - { url = "https://files.pythonhosted.org/packages/cc/b0/6177a8bdd5ee4ed87cba2de5a3cc1db55ffbbec6176784ce5bb75aa96798/pillow-12.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:90387104ee8400a7b4598253b4c406f8958f59fcf983a6cea2b50d59f7d63d0b", size = 6458075, upload-time = "2025-10-15T18:21:57.759Z" }, - { url = "https://files.pythonhosted.org/packages/bc/5e/61537aa6fa977922c6a03253a0e727e6e4a72381a80d63ad8eec350684f2/pillow-12.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bc91a56697869546d1b8f0a3ff35224557ae7f881050e99f615e0119bf934b4e", size = 7125955, upload-time = "2025-10-15T18:21:59.372Z" }, - { url = "https://files.pythonhosted.org/packages/1f/3d/d5033539344ee3cbd9a4d69e12e63ca3a44a739eb2d4c8da350a3d38edd7/pillow-12.0.0-cp311-cp311-win32.whl", hash = "sha256:27f95b12453d165099c84f8a8bfdfd46b9e4bda9e0e4b65f0635430027f55739", size = 6298440, upload-time = "2025-10-15T18:22:00.982Z" }, - { url = "https://files.pythonhosted.org/packages/4d/42/aaca386de5cc8bd8a0254516957c1f265e3521c91515b16e286c662854c4/pillow-12.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:b583dc9070312190192631373c6c8ed277254aa6e6084b74bdd0a6d3b221608e", size = 6999256, upload-time = "2025-10-15T18:22:02.617Z" }, - { url = "https://files.pythonhosted.org/packages/ba/f1/9197c9c2d5708b785f631a6dfbfa8eb3fb9672837cb92ae9af812c13b4ed/pillow-12.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:759de84a33be3b178a64c8ba28ad5c135900359e85fb662bc6e403ad4407791d", size = 2436025, upload-time = "2025-10-15T18:22:04.598Z" }, - { url = "https://files.pythonhosted.org/packages/2c/90/4fcce2c22caf044e660a198d740e7fbc14395619e3cb1abad12192c0826c/pillow-12.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:53561a4ddc36facb432fae7a9d8afbfaf94795414f5cdc5fc52f28c1dca90371", size = 5249377, upload-time = "2025-10-15T18:22:05.993Z" }, - { url = "https://files.pythonhosted.org/packages/fd/e0/ed960067543d080691d47d6938ebccbf3976a931c9567ab2fbfab983a5dd/pillow-12.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71db6b4c1653045dacc1585c1b0d184004f0d7e694c7b34ac165ca70c0838082", size = 4650343, upload-time = "2025-10-15T18:22:07.718Z" }, - { url = "https://files.pythonhosted.org/packages/e7/a1/f81fdeddcb99c044bf7d6faa47e12850f13cee0849537a7d27eeab5534d4/pillow-12.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2fa5f0b6716fc88f11380b88b31fe591a06c6315e955c096c35715788b339e3f", size = 6232981, upload-time = "2025-10-15T18:22:09.287Z" }, - { url = "https://files.pythonhosted.org/packages/88/e1/9098d3ce341a8750b55b0e00c03f1630d6178f38ac191c81c97a3b047b44/pillow-12.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:82240051c6ca513c616f7f9da06e871f61bfd7805f566275841af15015b8f98d", size = 8041399, upload-time = "2025-10-15T18:22:10.872Z" }, - { url = "https://files.pythonhosted.org/packages/a7/62/a22e8d3b602ae8cc01446d0c57a54e982737f44b6f2e1e019a925143771d/pillow-12.0.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:55f818bd74fe2f11d4d7cbc65880a843c4075e0ac7226bc1a23261dbea531953", size = 6347740, upload-time = "2025-10-15T18:22:12.769Z" }, - { url = "https://files.pythonhosted.org/packages/4f/87/424511bdcd02c8d7acf9f65caa09f291a519b16bd83c3fb3374b3d4ae951/pillow-12.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b87843e225e74576437fd5b6a4c2205d422754f84a06942cfaf1dc32243e45a8", size = 7040201, upload-time = "2025-10-15T18:22:14.813Z" }, - { url = "https://files.pythonhosted.org/packages/dc/4d/435c8ac688c54d11755aedfdd9f29c9eeddf68d150fe42d1d3dbd2365149/pillow-12.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c607c90ba67533e1b2355b821fef6764d1dd2cbe26b8c1005ae84f7aea25ff79", size = 6462334, upload-time = "2025-10-15T18:22:16.375Z" }, - { url = "https://files.pythonhosted.org/packages/2b/f2/ad34167a8059a59b8ad10bc5c72d4d9b35acc6b7c0877af8ac885b5f2044/pillow-12.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:21f241bdd5080a15bc86d3466a9f6074a9c2c2b314100dd896ac81ee6db2f1ba", size = 7134162, upload-time = "2025-10-15T18:22:17.996Z" }, - { url = "https://files.pythonhosted.org/packages/0c/b1/a7391df6adacf0a5c2cf6ac1cf1fcc1369e7d439d28f637a847f8803beb3/pillow-12.0.0-cp312-cp312-win32.whl", hash = "sha256:dd333073e0cacdc3089525c7df7d39b211bcdf31fc2824e49d01c6b6187b07d0", size = 6298769, upload-time = "2025-10-15T18:22:19.923Z" }, - { url = "https://files.pythonhosted.org/packages/a2/0b/d87733741526541c909bbf159e338dcace4f982daac6e5a8d6be225ca32d/pillow-12.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:9fe611163f6303d1619bbcb653540a4d60f9e55e622d60a3108be0d5b441017a", size = 7001107, upload-time = "2025-10-15T18:22:21.644Z" }, - { url = "https://files.pythonhosted.org/packages/bc/96/aaa61ce33cc98421fb6088af2a03be4157b1e7e0e87087c888e2370a7f45/pillow-12.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:7dfb439562f234f7d57b1ac6bc8fe7f838a4bd49c79230e0f6a1da93e82f1fad", size = 2436012, upload-time = "2025-10-15T18:22:23.621Z" }, - { url = "https://files.pythonhosted.org/packages/62/f2/de993bb2d21b33a98d031ecf6a978e4b61da207bef02f7b43093774c480d/pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0869154a2d0546545cde61d1789a6524319fc1897d9ee31218eae7a60ccc5643", size = 4045493, upload-time = "2025-10-15T18:22:25.758Z" }, - { url = "https://files.pythonhosted.org/packages/0e/b6/bc8d0c4c9f6f111a783d045310945deb769b806d7574764234ffd50bc5ea/pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a7921c5a6d31b3d756ec980f2f47c0cfdbce0fc48c22a39347a895f41f4a6ea4", size = 4120461, upload-time = "2025-10-15T18:22:27.286Z" }, - { url = "https://files.pythonhosted.org/packages/5d/57/d60d343709366a353dc56adb4ee1e7d8a2cc34e3fbc22905f4167cfec119/pillow-12.0.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:1ee80a59f6ce048ae13cda1abf7fbd2a34ab9ee7d401c46be3ca685d1999a399", size = 3576912, upload-time = "2025-10-15T18:22:28.751Z" }, - { url = "https://files.pythonhosted.org/packages/a4/a4/a0a31467e3f83b94d37568294b01d22b43ae3c5d85f2811769b9c66389dd/pillow-12.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c50f36a62a22d350c96e49ad02d0da41dbd17ddc2e29750dbdba4323f85eb4a5", size = 5249132, upload-time = "2025-10-15T18:22:30.641Z" }, - { url = "https://files.pythonhosted.org/packages/83/06/48eab21dd561de2914242711434c0c0eb992ed08ff3f6107a5f44527f5e9/pillow-12.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5193fde9a5f23c331ea26d0cf171fbf67e3f247585f50c08b3e205c7aeb4589b", size = 4650099, upload-time = "2025-10-15T18:22:32.73Z" }, - { url = "https://files.pythonhosted.org/packages/fc/bd/69ed99fd46a8dba7c1887156d3572fe4484e3f031405fcc5a92e31c04035/pillow-12.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bde737cff1a975b70652b62d626f7785e0480918dece11e8fef3c0cf057351c3", size = 6230808, upload-time = "2025-10-15T18:22:34.337Z" }, - { url = "https://files.pythonhosted.org/packages/ea/94/8fad659bcdbf86ed70099cb60ae40be6acca434bbc8c4c0d4ef356d7e0de/pillow-12.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a6597ff2b61d121172f5844b53f21467f7082f5fb385a9a29c01414463f93b07", size = 8037804, upload-time = "2025-10-15T18:22:36.402Z" }, - { url = "https://files.pythonhosted.org/packages/20/39/c685d05c06deecfd4e2d1950e9a908aa2ca8bc4e6c3b12d93b9cafbd7837/pillow-12.0.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b817e7035ea7f6b942c13aa03bb554fc44fea70838ea21f8eb31c638326584e", size = 6345553, upload-time = "2025-10-15T18:22:38.066Z" }, - { url = "https://files.pythonhosted.org/packages/38/57/755dbd06530a27a5ed74f8cb0a7a44a21722ebf318edbe67ddbd7fb28f88/pillow-12.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f4f1231b7dec408e8670264ce63e9c71409d9583dd21d32c163e25213ee2a344", size = 7037729, upload-time = "2025-10-15T18:22:39.769Z" }, - { url = "https://files.pythonhosted.org/packages/ca/b6/7e94f4c41d238615674d06ed677c14883103dce1c52e4af16f000338cfd7/pillow-12.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e51b71417049ad6ab14c49608b4a24d8fb3fe605e5dfabfe523b58064dc3d27", size = 6459789, upload-time = "2025-10-15T18:22:41.437Z" }, - { url = "https://files.pythonhosted.org/packages/9c/14/4448bb0b5e0f22dd865290536d20ec8a23b64e2d04280b89139f09a36bb6/pillow-12.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d120c38a42c234dc9a8c5de7ceaaf899cf33561956acb4941653f8bdc657aa79", size = 7130917, upload-time = "2025-10-15T18:22:43.152Z" }, - { url = "https://files.pythonhosted.org/packages/dd/ca/16c6926cc1c015845745d5c16c9358e24282f1e588237a4c36d2b30f182f/pillow-12.0.0-cp313-cp313-win32.whl", hash = "sha256:4cc6b3b2efff105c6a1656cfe59da4fdde2cda9af1c5e0b58529b24525d0a098", size = 6302391, upload-time = "2025-10-15T18:22:44.753Z" }, - { url = "https://files.pythonhosted.org/packages/6d/2a/dd43dcfd6dae9b6a49ee28a8eedb98c7d5ff2de94a5d834565164667b97b/pillow-12.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:4cf7fed4b4580601c4345ceb5d4cbf5a980d030fd5ad07c4d2ec589f95f09905", size = 7007477, upload-time = "2025-10-15T18:22:46.838Z" }, - { url = "https://files.pythonhosted.org/packages/77/f0/72ea067f4b5ae5ead653053212af05ce3705807906ba3f3e8f58ddf617e6/pillow-12.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:9f0b04c6b8584c2c193babcccc908b38ed29524b29dd464bc8801bf10d746a3a", size = 2435918, upload-time = "2025-10-15T18:22:48.399Z" }, - { url = "https://files.pythonhosted.org/packages/f5/5e/9046b423735c21f0487ea6cb5b10f89ea8f8dfbe32576fe052b5ba9d4e5b/pillow-12.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7fa22993bac7b77b78cae22bad1e2a987ddf0d9015c63358032f84a53f23cdc3", size = 5251406, upload-time = "2025-10-15T18:22:49.905Z" }, - { url = "https://files.pythonhosted.org/packages/12/66/982ceebcdb13c97270ef7a56c3969635b4ee7cd45227fa707c94719229c5/pillow-12.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f135c702ac42262573fe9714dfe99c944b4ba307af5eb507abef1667e2cbbced", size = 4653218, upload-time = "2025-10-15T18:22:51.587Z" }, - { url = "https://files.pythonhosted.org/packages/16/b3/81e625524688c31859450119bf12674619429cab3119eec0e30a7a1029cb/pillow-12.0.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c85de1136429c524e55cfa4e033b4a7940ac5c8ee4d9401cc2d1bf48154bbc7b", size = 6266564, upload-time = "2025-10-15T18:22:53.215Z" }, - { url = "https://files.pythonhosted.org/packages/98/59/dfb38f2a41240d2408096e1a76c671d0a105a4a8471b1871c6902719450c/pillow-12.0.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:38df9b4bfd3db902c9c2bd369bcacaf9d935b2fff73709429d95cc41554f7b3d", size = 8069260, upload-time = "2025-10-15T18:22:54.933Z" }, - { url = "https://files.pythonhosted.org/packages/dc/3d/378dbea5cd1874b94c312425ca77b0f47776c78e0df2df751b820c8c1d6c/pillow-12.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d87ef5795da03d742bf49439f9ca4d027cde49c82c5371ba52464aee266699a", size = 6379248, upload-time = "2025-10-15T18:22:56.605Z" }, - { url = "https://files.pythonhosted.org/packages/84/b0/d525ef47d71590f1621510327acec75ae58c721dc071b17d8d652ca494d8/pillow-12.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aff9e4d82d082ff9513bdd6acd4f5bd359f5b2c870907d2b0a9c5e10d40c88fe", size = 7066043, upload-time = "2025-10-15T18:22:58.53Z" }, - { url = "https://files.pythonhosted.org/packages/61/2c/aced60e9cf9d0cde341d54bf7932c9ffc33ddb4a1595798b3a5150c7ec4e/pillow-12.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8d8ca2b210ada074d57fcee40c30446c9562e542fc46aedc19baf758a93532ee", size = 6490915, upload-time = "2025-10-15T18:23:00.582Z" }, - { url = "https://files.pythonhosted.org/packages/ef/26/69dcb9b91f4e59f8f34b2332a4a0a951b44f547c4ed39d3e4dcfcff48f89/pillow-12.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:99a7f72fb6249302aa62245680754862a44179b545ded638cf1fef59befb57ef", size = 7157998, upload-time = "2025-10-15T18:23:02.627Z" }, - { url = "https://files.pythonhosted.org/packages/61/2b/726235842220ca95fa441ddf55dd2382b52ab5b8d9c0596fe6b3f23dafe8/pillow-12.0.0-cp313-cp313t-win32.whl", hash = "sha256:4078242472387600b2ce8d93ade8899c12bf33fa89e55ec89fe126e9d6d5d9e9", size = 6306201, upload-time = "2025-10-15T18:23:04.709Z" }, - { url = "https://files.pythonhosted.org/packages/c0/3d/2afaf4e840b2df71344ababf2f8edd75a705ce500e5dc1e7227808312ae1/pillow-12.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2c54c1a783d6d60595d3514f0efe9b37c8808746a66920315bfd34a938d7994b", size = 7013165, upload-time = "2025-10-15T18:23:06.46Z" }, - { url = "https://files.pythonhosted.org/packages/6f/75/3fa09aa5cf6ed04bee3fa575798ddf1ce0bace8edb47249c798077a81f7f/pillow-12.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:26d9f7d2b604cd23aba3e9faf795787456ac25634d82cd060556998e39c6fa47", size = 2437834, upload-time = "2025-10-15T18:23:08.194Z" }, - { url = "https://files.pythonhosted.org/packages/54/2a/9a8c6ba2c2c07b71bec92cf63e03370ca5e5f5c5b119b742bcc0cde3f9c5/pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:beeae3f27f62308f1ddbcfb0690bf44b10732f2ef43758f169d5e9303165d3f9", size = 4045531, upload-time = "2025-10-15T18:23:10.121Z" }, - { url = "https://files.pythonhosted.org/packages/84/54/836fdbf1bfb3d66a59f0189ff0b9f5f666cee09c6188309300df04ad71fa/pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d4827615da15cd59784ce39d3388275ec093ae3ee8d7f0c089b76fa87af756c2", size = 4120554, upload-time = "2025-10-15T18:23:12.14Z" }, - { url = "https://files.pythonhosted.org/packages/0d/cd/16aec9f0da4793e98e6b54778a5fbce4f375c6646fe662e80600b8797379/pillow-12.0.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:3e42edad50b6909089750e65c91aa09aaf1e0a71310d383f11321b27c224ed8a", size = 3576812, upload-time = "2025-10-15T18:23:13.962Z" }, - { url = "https://files.pythonhosted.org/packages/f6/b7/13957fda356dc46339298b351cae0d327704986337c3c69bb54628c88155/pillow-12.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e5d8efac84c9afcb40914ab49ba063d94f5dbdf5066db4482c66a992f47a3a3b", size = 5252689, upload-time = "2025-10-15T18:23:15.562Z" }, - { url = "https://files.pythonhosted.org/packages/fc/f5/eae31a306341d8f331f43edb2e9122c7661b975433de5e447939ae61c5da/pillow-12.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:266cd5f2b63ff316d5a1bba46268e603c9caf5606d44f38c2873c380950576ad", size = 4650186, upload-time = "2025-10-15T18:23:17.379Z" }, - { url = "https://files.pythonhosted.org/packages/86/62/2a88339aa40c4c77e79108facbd307d6091e2c0eb5b8d3cf4977cfca2fe6/pillow-12.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:58eea5ebe51504057dd95c5b77d21700b77615ab0243d8152793dc00eb4faf01", size = 6230308, upload-time = "2025-10-15T18:23:18.971Z" }, - { url = "https://files.pythonhosted.org/packages/c7/33/5425a8992bcb32d1cb9fa3dd39a89e613d09a22f2c8083b7bf43c455f760/pillow-12.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f13711b1a5ba512d647a0e4ba79280d3a9a045aaf7e0cc6fbe96b91d4cdf6b0c", size = 8039222, upload-time = "2025-10-15T18:23:20.909Z" }, - { url = "https://files.pythonhosted.org/packages/d8/61/3f5d3b35c5728f37953d3eec5b5f3e77111949523bd2dd7f31a851e50690/pillow-12.0.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6846bd2d116ff42cba6b646edf5bf61d37e5cbd256425fa089fee4ff5c07a99e", size = 6346657, upload-time = "2025-10-15T18:23:23.077Z" }, - { url = "https://files.pythonhosted.org/packages/3a/be/ee90a3d79271227e0f0a33c453531efd6ed14b2e708596ba5dd9be948da3/pillow-12.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c98fa880d695de164b4135a52fd2e9cd7b7c90a9d8ac5e9e443a24a95ef9248e", size = 7038482, upload-time = "2025-10-15T18:23:25.005Z" }, - { url = "https://files.pythonhosted.org/packages/44/34/a16b6a4d1ad727de390e9bd9f19f5f669e079e5826ec0f329010ddea492f/pillow-12.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa3ed2a29a9e9d2d488b4da81dcb54720ac3104a20bf0bd273f1e4648aff5af9", size = 6461416, upload-time = "2025-10-15T18:23:27.009Z" }, - { url = "https://files.pythonhosted.org/packages/b6/39/1aa5850d2ade7d7ba9f54e4e4c17077244ff7a2d9e25998c38a29749eb3f/pillow-12.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d034140032870024e6b9892c692fe2968493790dd57208b2c37e3fb35f6df3ab", size = 7131584, upload-time = "2025-10-15T18:23:29.752Z" }, - { url = "https://files.pythonhosted.org/packages/bf/db/4fae862f8fad0167073a7733973bfa955f47e2cac3dc3e3e6257d10fab4a/pillow-12.0.0-cp314-cp314-win32.whl", hash = "sha256:1b1b133e6e16105f524a8dec491e0586d072948ce15c9b914e41cdadd209052b", size = 6400621, upload-time = "2025-10-15T18:23:32.06Z" }, - { url = "https://files.pythonhosted.org/packages/2b/24/b350c31543fb0107ab2599464d7e28e6f856027aadda995022e695313d94/pillow-12.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:8dc232e39d409036af549c86f24aed8273a40ffa459981146829a324e0848b4b", size = 7142916, upload-time = "2025-10-15T18:23:34.71Z" }, - { url = "https://files.pythonhosted.org/packages/0f/9b/0ba5a6fd9351793996ef7487c4fdbde8d3f5f75dbedc093bb598648fddf0/pillow-12.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:d52610d51e265a51518692045e372a4c363056130d922a7351429ac9f27e70b0", size = 2523836, upload-time = "2025-10-15T18:23:36.967Z" }, - { url = "https://files.pythonhosted.org/packages/f5/7a/ceee0840aebc579af529b523d530840338ecf63992395842e54edc805987/pillow-12.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1979f4566bb96c1e50a62d9831e2ea2d1211761e5662afc545fa766f996632f6", size = 5255092, upload-time = "2025-10-15T18:23:38.573Z" }, - { url = "https://files.pythonhosted.org/packages/44/76/20776057b4bfd1aef4eeca992ebde0f53a4dce874f3ae693d0ec90a4f79b/pillow-12.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b2e4b27a6e15b04832fe9bf292b94b5ca156016bbc1ea9c2c20098a0320d6cf6", size = 4653158, upload-time = "2025-10-15T18:23:40.238Z" }, - { url = "https://files.pythonhosted.org/packages/82/3f/d9ff92ace07be8836b4e7e87e6a4c7a8318d47c2f1463ffcf121fc57d9cb/pillow-12.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fb3096c30df99fd01c7bf8e544f392103d0795b9f98ba71a8054bcbf56b255f1", size = 6267882, upload-time = "2025-10-15T18:23:42.434Z" }, - { url = "https://files.pythonhosted.org/packages/9f/7a/4f7ff87f00d3ad33ba21af78bfcd2f032107710baf8280e3722ceec28cda/pillow-12.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7438839e9e053ef79f7112c881cef684013855016f928b168b81ed5835f3e75e", size = 8071001, upload-time = "2025-10-15T18:23:44.29Z" }, - { url = "https://files.pythonhosted.org/packages/75/87/fcea108944a52dad8cca0715ae6247e271eb80459364a98518f1e4f480c1/pillow-12.0.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d5c411a8eaa2299322b647cd932586b1427367fd3184ffbb8f7a219ea2041ca", size = 6380146, upload-time = "2025-10-15T18:23:46.065Z" }, - { url = "https://files.pythonhosted.org/packages/91/52/0d31b5e571ef5fd111d2978b84603fce26aba1b6092f28e941cb46570745/pillow-12.0.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7e091d464ac59d2c7ad8e7e08105eaf9dafbc3883fd7265ffccc2baad6ac925", size = 7067344, upload-time = "2025-10-15T18:23:47.898Z" }, - { url = "https://files.pythonhosted.org/packages/7b/f4/2dd3d721f875f928d48e83bb30a434dee75a2531bca839bb996bb0aa5a91/pillow-12.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:792a2c0be4dcc18af9d4a2dfd8a11a17d5e25274a1062b0ec1c2d79c76f3e7f8", size = 6491864, upload-time = "2025-10-15T18:23:49.607Z" }, - { url = "https://files.pythonhosted.org/packages/30/4b/667dfcf3d61fc309ba5a15b141845cece5915e39b99c1ceab0f34bf1d124/pillow-12.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:afbefa430092f71a9593a99ab6a4e7538bc9eabbf7bf94f91510d3503943edc4", size = 7158911, upload-time = "2025-10-15T18:23:51.351Z" }, - { url = "https://files.pythonhosted.org/packages/a2/2f/16cabcc6426c32218ace36bf0d55955e813f2958afddbf1d391849fee9d1/pillow-12.0.0-cp314-cp314t-win32.whl", hash = "sha256:3830c769decf88f1289680a59d4f4c46c72573446352e2befec9a8512104fa52", size = 6408045, upload-time = "2025-10-15T18:23:53.177Z" }, - { url = "https://files.pythonhosted.org/packages/35/73/e29aa0c9c666cf787628d3f0dcf379f4791fba79f4936d02f8b37165bdf8/pillow-12.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:905b0365b210c73afb0ebe9101a32572152dfd1c144c7e28968a331b9217b94a", size = 7148282, upload-time = "2025-10-15T18:23:55.316Z" }, - { url = "https://files.pythonhosted.org/packages/c1/70/6b41bdcddf541b437bbb9f47f94d2db5d9ddef6c37ccab8c9107743748a4/pillow-12.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:99353a06902c2e43b43e8ff74ee65a7d90307d82370604746738a1e0661ccca7", size = 2525630, upload-time = "2025-10-15T18:23:57.149Z" }, - { url = "https://files.pythonhosted.org/packages/1d/b3/582327e6c9f86d037b63beebe981425d6811104cb443e8193824ef1a2f27/pillow-12.0.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b22bd8c974942477156be55a768f7aa37c46904c175be4e158b6a86e3a6b7ca8", size = 5215068, upload-time = "2025-10-15T18:23:59.594Z" }, - { url = "https://files.pythonhosted.org/packages/fd/d6/67748211d119f3b6540baf90f92fae73ae51d5217b171b0e8b5f7e5d558f/pillow-12.0.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:805ebf596939e48dbb2e4922a1d3852cfc25c38160751ce02da93058b48d252a", size = 4614994, upload-time = "2025-10-15T18:24:01.669Z" }, - { url = "https://files.pythonhosted.org/packages/2d/e1/f8281e5d844c41872b273b9f2c34a4bf64ca08905668c8ae730eedc7c9fa/pillow-12.0.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cae81479f77420d217def5f54b5b9d279804d17e982e0f2fa19b1d1e14ab5197", size = 5246639, upload-time = "2025-10-15T18:24:03.403Z" }, - { url = "https://files.pythonhosted.org/packages/94/5a/0d8ab8ffe8a102ff5df60d0de5af309015163bf710c7bb3e8311dd3b3ad0/pillow-12.0.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aeaefa96c768fc66818730b952a862235d68825c178f1b3ffd4efd7ad2edcb7c", size = 6986839, upload-time = "2025-10-15T18:24:05.344Z" }, - { url = "https://files.pythonhosted.org/packages/20/2e/3434380e8110b76cd9eb00a363c484b050f949b4bbe84ba770bb8508a02c/pillow-12.0.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09f2d0abef9e4e2f349305a4f8cc784a8a6c2f58a8c4892eea13b10a943bd26e", size = 5313505, upload-time = "2025-10-15T18:24:07.137Z" }, - { url = "https://files.pythonhosted.org/packages/57/ca/5a9d38900d9d74785141d6580950fe705de68af735ff6e727cb911b64740/pillow-12.0.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bdee52571a343d721fb2eb3b090a82d959ff37fc631e3f70422e0c2e029f3e76", size = 5963654, upload-time = "2025-10-15T18:24:09.579Z" }, - { url = "https://files.pythonhosted.org/packages/95/7e/f896623c3c635a90537ac093c6a618ebe1a90d87206e42309cb5d98a1b9e/pillow-12.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:b290fd8aa38422444d4b50d579de197557f182ef1068b75f5aa8558638b8d0a5", size = 6997850, upload-time = "2025-10-15T18:24:11.495Z" }, +version = "10.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/64/9e/7e638579cce7dc346632f020914141a164a872be813481f058883ee8d421/Pillow-10.0.1.tar.gz", hash = "sha256:d72967b06be9300fed5cfbc8b5bafceec48bf7cdc7dab66b1d2549035287191d", size = 50528551, upload-time = "2023-09-15T14:00:45.533Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/34/4e02804420b1cd9371ce5f7c0da7024a8450e6b092c336d3233d6c6448d9/Pillow-10.0.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:8f06be50669087250f319b706decf69ca71fdecd829091a37cc89398ca4dc17a", size = 3730082, upload-time = "2023-09-15T13:56:57.712Z" }, + { url = "https://files.pythonhosted.org/packages/55/93/9a8b06ca5917f246d1cd31351d5ec38651f8f5f9619c8db5751583f49ba3/Pillow-10.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50bd5f1ebafe9362ad622072a1d2f5850ecfa44303531ff14353a4059113b12d", size = 3281492, upload-time = "2023-09-15T13:57:03.209Z" }, + { url = "https://files.pythonhosted.org/packages/53/ac/3f9450af6583199b1c408f3a9a0f65e6dedc25aed15f691a74bcfa2d1077/Pillow-10.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6a90167bcca1216606223a05e2cf991bb25b14695c518bc65639463d7db722d", size = 3411397, upload-time = "2023-09-15T13:57:07.418Z" }, + { url = "https://files.pythonhosted.org/packages/52/97/9fb1b66fbf98893722247fdf6ac39467a7b177483b546a94dbcff66653f0/Pillow-10.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f11c9102c56ffb9ca87134bd025a43d2aba3f1155f508eff88f694b33a9c6d19", size = 3486505, upload-time = "2023-09-15T13:57:10.787Z" }, + { url = "https://files.pythonhosted.org/packages/a1/a7/35db8e4d15e8f139f9eda3378260a91b2ef7342342769dbeaff8dbc29c26/Pillow-10.0.1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:186f7e04248103482ea6354af6d5bcedb62941ee08f7f788a1c7707bc720c66f", size = 3462862, upload-time = "2023-09-15T13:57:14.17Z" }, + { url = "https://files.pythonhosted.org/packages/7a/07/e896b096a77375e78e02ce222ae4fd6014928cd76c691d312060a1645dfa/Pillow-10.0.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:0462b1496505a3462d0f35dc1c4d7b54069747d65d00ef48e736acda2c8cbdff", size = 3607904, upload-time = "2023-09-15T13:57:18.109Z" }, + { url = "https://files.pythonhosted.org/packages/d2/4f/9bb94120b219e050588684cc5f4d1d48d97e0e4a1ec6c1aa68369132d2c7/Pillow-10.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d889b53ae2f030f756e61a7bff13684dcd77e9af8b10c6048fb2c559d6ed6eaf", size = 3548900, upload-time = "2023-09-15T13:57:21.438Z" }, + { url = "https://files.pythonhosted.org/packages/9e/33/0140c7dbe509d4e765558c976bea108fd2f63d527a9e16860392ccbcae72/Pillow-10.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:552912dbca585b74d75279a7570dd29fa43b6d93594abb494ebb31ac19ace6bd", size = 3587084, upload-time = "2023-09-15T13:57:25.339Z" }, + { url = "https://files.pythonhosted.org/packages/23/ca/7296d769f62266c0f94bf76496bc77114e7a96d2de3d7bcba91d0ba2856f/Pillow-10.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:787bb0169d2385a798888e1122c980c6eff26bf941a8ea79747d35d8f9210ca0", size = 2513767, upload-time = "2023-09-15T13:57:28.215Z" }, + { url = "https://files.pythonhosted.org/packages/6e/f6/fbae883f0a33b0ba2d6a5008515735371f103077afc551c0005d0bd3264b/Pillow-10.0.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:fd2a5403a75b54661182b75ec6132437a181209b901446ee5724b589af8edef1", size = 3730189, upload-time = "2023-09-15T13:57:32.177Z" }, + { url = "https://files.pythonhosted.org/packages/e4/93/9226cc667ed8785333969c03deb2a36af2f3757284d3a2cf2ebd70331c32/Pillow-10.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2d7e91b4379f7a76b31c2dda84ab9e20c6220488e50f7822e59dac36b0cd92b1", size = 3281476, upload-time = "2023-09-15T13:57:35.254Z" }, + { url = "https://files.pythonhosted.org/packages/6a/0c/18f9407e3b1176eb19f177139673c51f3857e4a29e13a21dafdc54519bcc/Pillow-10.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19e9adb3f22d4c416e7cd79b01375b17159d6990003633ff1d8377e21b7f1b21", size = 3411397, upload-time = "2023-09-15T13:57:38.313Z" }, + { url = "https://files.pythonhosted.org/packages/c6/43/f2f31fd9d8282ac9724f5f2b6534ffd556dc7b67b64f239167e175e5b5c5/Pillow-10.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93139acd8109edcdeffd85e3af8ae7d88b258b3a1e13a038f542b79b6d255c54", size = 3486491, upload-time = "2023-09-15T13:57:41.924Z" }, + { url = "https://files.pythonhosted.org/packages/f7/61/15b10190a6738db342efe4d06378ac4032b13d8ba6e9e1d89890119b2b8f/Pillow-10.0.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:92a23b0431941a33242b1f0ce6c88a952e09feeea9af4e8be48236a68ffe2205", size = 3462862, upload-time = "2023-09-15T13:57:45.174Z" }, + { url = "https://files.pythonhosted.org/packages/3c/49/f87cecbdec4b00cc1187f01196d48c08828204cd861915fab44972dc705c/Pillow-10.0.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:cbe68deb8580462ca0d9eb56a81912f59eb4542e1ef8f987405e35a0179f4ea2", size = 3607900, upload-time = "2023-09-15T13:57:48.616Z" }, + { url = "https://files.pythonhosted.org/packages/5d/d3/5e98b9c48bd35e884455e6e6850e473fdebc387c4779deacb6cf7648b591/Pillow-10.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:522ff4ac3aaf839242c6f4e5b406634bfea002469656ae8358644fc6c4856a3b", size = 3548941, upload-time = "2023-09-15T13:57:55.228Z" }, + { url = "https://files.pythonhosted.org/packages/be/d3/7d83335c19148d40a271c9e895c9a129dfc3f5f0d7b1aa2fbed2d9aaff05/Pillow-10.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:84efb46e8d881bb06b35d1d541aa87f574b58e87f781cbba8d200daa835b42e1", size = 3587102, upload-time = "2023-09-15T13:57:59.003Z" }, + { url = "https://files.pythonhosted.org/packages/54/9b/debe992677af84859ec1e38777b1d5c0671918188324153ecbc1f16f6cb6/Pillow-10.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:898f1d306298ff40dc1b9ca24824f0488f6f039bc0e25cfb549d3195ffa17088", size = 2513753, upload-time = "2023-09-15T13:58:01.922Z" }, + { url = "https://files.pythonhosted.org/packages/a1/aa/16d01cc6c4de2b8a48b3ef14fc3a5a89b43b9b60cd7aef8407c3cbee8dcd/Pillow-10.0.1-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:bcf1207e2f2385a576832af02702de104be71301c2696d0012b1b93fe34aaa5b", size = 3729828, upload-time = "2023-09-15T13:58:05.699Z" }, + { url = "https://files.pythonhosted.org/packages/5c/72/6d0a22c3f499e966f8b6b89842dfb915fb9449d0c9aa2b4e336259a7f00c/Pillow-10.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5d6c9049c6274c1bb565021367431ad04481ebb54872edecfcd6088d27edd6ed", size = 3280585, upload-time = "2023-09-15T13:58:08.799Z" }, + { url = "https://files.pythonhosted.org/packages/54/4f/f38b5ca4a6bf209f32598796ef75b72afac3b9ee934898279d0a1ab39439/Pillow-10.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28444cb6ad49726127d6b340217f0627abc8732f1194fd5352dec5e6a0105635", size = 3411566, upload-time = "2023-09-15T13:58:12.49Z" }, + { url = "https://files.pythonhosted.org/packages/7e/ea/45eb6c6d184183f560b26c5bd42c0601bf4b3c093762fdb3fd1c89769d23/Pillow-10.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de596695a75496deb3b499c8c4f8e60376e0516e1a774e7bc046f0f48cd620ad", size = 3487109, upload-time = "2023-09-15T13:58:16.211Z" }, + { url = "https://files.pythonhosted.org/packages/ed/eb/fa2b371469b6301e1241472a34ede5f98ebdd256e99f88ba05bc1b0db888/Pillow-10.0.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:2872f2d7846cf39b3dbff64bc1104cc48c76145854256451d33c5faa55c04d1a", size = 3462905, upload-time = "2023-09-15T13:58:19.673Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ce/3cceae2fab54118a5fcdfd9a2ddd0167c21169446c05378c5dc10b0d5093/Pillow-10.0.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:4ce90f8a24e1c15465048959f1e94309dfef93af272633e8f37361b824532e91", size = 3608054, upload-time = "2023-09-15T13:58:23.745Z" }, + { url = "https://files.pythonhosted.org/packages/26/d3/7a8e0c9c8dbef3354a45ab9164c26fc47a2884bbcec9bcc8504a7e0c7825/Pillow-10.0.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ee7810cf7c83fa227ba9125de6084e5e8b08c59038a7b2c9045ef4dde61663b4", size = 3549376, upload-time = "2023-09-15T13:58:27.338Z" }, + { url = "https://files.pythonhosted.org/packages/2e/af/22305136707228776a5500d539ff6e0d7d0d2490ce8ef6905bd45e15e54b/Pillow-10.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b1be1c872b9b5fcc229adeadbeb51422a9633abd847c0ff87dc4ef9bb184ae08", size = 3588197, upload-time = "2023-09-15T13:58:31.282Z" }, + { url = "https://files.pythonhosted.org/packages/00/00/d42abea0b4a415ea1e0975c981f95f354de1280d7e7bef3882bf1464b795/Pillow-10.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:98533fd7fa764e5f85eebe56c8e4094db912ccbe6fbf3a58778d543cadd0db08", size = 2514032, upload-time = "2023-09-15T13:58:34.515Z" }, + { url = "https://files.pythonhosted.org/packages/32/e4/c955de57d75aa73ebd65dd4cfe56bb3b806de85c1c791ae447af1ac7efc0/Pillow-10.0.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:3855447d98cced8670aaa63683808df905e956f00348732448b5a6df67ee5849", size = 3730111, upload-time = "2023-09-15T13:59:15.511Z" }, + { url = "https://files.pythonhosted.org/packages/3c/56/8449d670bae6e8f1b45e12cc2746561e42d3d80e3a432bf6f6e71c260aa1/Pillow-10.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ed2d9c0704f2dc4fa980b99d565c0c9a543fe5101c25b3d60488b8ba80f0cce1", size = 3281554, upload-time = "2023-09-15T13:59:18.623Z" }, + { url = "https://files.pythonhosted.org/packages/e9/6c/937471e9365b71025cef12899e2a16fc11c44eda871772c501ccfe212909/Pillow-10.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5bb289bb835f9fe1a1e9300d011eef4d69661bb9b34d5e196e5e82c4cb09b37", size = 3411444, upload-time = "2023-09-15T13:59:22.571Z" }, + { url = "https://files.pythonhosted.org/packages/5d/cc/3345b8cf6f2b8c5ee33d59e3e2ddb693c45c4f3c88e10859f8b8abf9dc82/Pillow-10.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a0d3e54ab1df9df51b914b2233cf779a5a10dfd1ce339d0421748232cea9876", size = 3486526, upload-time = "2023-09-15T13:59:26.621Z" }, + { url = "https://files.pythonhosted.org/packages/0a/f4/e6d66fe2a817e9ce24d6448726280cec2ce78d0dcd604d6dc5b65d0fe0f8/Pillow-10.0.1-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:2cc6b86ece42a11f16f55fe8903595eff2b25e0358dec635d0a701ac9586588f", size = 3462858, upload-time = "2023-09-15T13:59:30.633Z" }, + { url = "https://files.pythonhosted.org/packages/0a/20/a94a0462495de73e248643fb24667270f2e67f44792456ab7207764e80cc/Pillow-10.0.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:ca26ba5767888c84bf5a0c1a32f069e8204ce8c21d00a49c90dabeba00ce0145", size = 3607896, upload-time = "2023-09-15T13:59:35.652Z" }, + { url = "https://files.pythonhosted.org/packages/66/e3/f56d88c85ef0c4978318e5f960a3867293051f93f8d0c2abcedd6f2ad4ca/Pillow-10.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f0b4b06da13275bc02adfeb82643c4a6385bd08d26f03068c2796f60d125f6f2", size = 3548893, upload-time = "2023-09-15T13:59:39.158Z" }, + { url = "https://files.pythonhosted.org/packages/14/46/9e0c376663724023ea9aa8b57f4594e82873bc55f8d9b2731cec9d681414/Pillow-10.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bc2e3069569ea9dbe88d6b8ea38f439a6aad8f6e7a6283a38edf61ddefb3a9bf", size = 3587101, upload-time = "2023-09-15T13:59:46.052Z" }, + { url = "https://files.pythonhosted.org/packages/a8/fd/ce5fab4a15f4e38c5f6b86377f2c2ef6c92ec9a48e7296048251057a58ec/Pillow-10.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:8b451d6ead6e3500b6ce5c7916a43d8d8d25ad74b9102a629baccc0808c54971", size = 2513731, upload-time = "2023-09-15T13:59:48.977Z" }, + { url = "https://files.pythonhosted.org/packages/2c/30/458e634572b833d8208ee83ca4e43bb6c21ccdd1b6149f4baf072f8807e8/Pillow-10.0.1-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:32bec7423cdf25c9038fef614a853c9d25c07590e1a870ed471f47fb80b244db", size = 3684471, upload-time = "2023-09-15T13:59:52.5Z" }, + { url = "https://files.pythonhosted.org/packages/af/66/d2aaf99819c7aef39f65b43c67ef968128aff33d44c230ec675b40a7ffb4/Pillow-10.0.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7cf63d2c6928b51d35dfdbda6f2c1fddbe51a6bc4a9d4ee6ea0e11670dd981e", size = 3400133, upload-time = "2023-09-15T13:59:56.646Z" }, + { url = "https://files.pythonhosted.org/packages/9b/ba/391fd1ff93e158cb34de3d2e003c070ee85b8840a4fe99a900463d75efad/Pillow-10.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f6d3d4c905e26354e8f9d82548475c46d8e0889538cb0657aa9c6f0872a37aa4", size = 3489956, upload-time = "2023-09-15T14:00:00.343Z" }, + { url = "https://files.pythonhosted.org/packages/c8/d0/069cb663f6b809668e4ed6620dc56d518f5bd30134458f783b5553d2ba67/Pillow-10.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:847e8d1017c741c735d3cd1883fa7b03ded4f825a6e5fcb9378fd813edee995f", size = 2513935, upload-time = "2023-09-15T14:00:04.705Z" }, + { url = "https://files.pythonhosted.org/packages/ec/ce/acd5fc27022440be0edc05c71f3447e12ffc85e94e49f84e6bf709a2869f/Pillow-10.0.1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:7f771e7219ff04b79e231d099c0a28ed83aa82af91fd5fa9fdb28f5b8d5addaf", size = 3684342, upload-time = "2023-09-15T14:00:08.459Z" }, + { url = "https://files.pythonhosted.org/packages/58/0e/578c28462c7463593e0bf8cca01c90bbd5f52127f104bc0ba19895ab04ac/Pillow-10.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459307cacdd4138edee3875bbe22a2492519e060660eaf378ba3b405d1c66317", size = 3400071, upload-time = "2023-09-15T14:00:12.061Z" }, + { url = "https://files.pythonhosted.org/packages/86/85/494d0520c9560bbe1c8486bf0db02f0abd26eb83e2bad375e9e85b806c14/Pillow-10.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b059ac2c4c7a97daafa7dc850b43b2d3667def858a4f112d1aa082e5c3d6cf7d", size = 3489962, upload-time = "2023-09-15T14:00:15.725Z" }, + { url = "https://files.pythonhosted.org/packages/ba/84/32735fdf11181621a462df3a1786213edc4d227394695edf06bdb98c69fa/Pillow-10.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d6caf3cd38449ec3cd8a68b375e0c6fe4b6fd04edb6c9766b55ef84a6e8ddf2d", size = 2513867, upload-time = "2023-09-15T14:00:18.781Z" }, ] [[package]] @@ -1398,6 +1232,7 @@ dependencies = [ { name = "jinja2" }, { name = "latex" }, { name = "mistune" }, + { name = "pillow" }, { name = "pyyaml" }, ] @@ -1474,6 +1309,7 @@ requires-dist = [ { name = "jinja2", specifier = "==3.1.4" }, { name = "latex", specifier = "==0.7.0" }, { name = "mistune", specifier = "==2.0.5" }, + { name = "pillow", specifier = "==10.0.1" }, { name = "pytest", marker = "extra == 'dev'" }, { name = "pyyaml", specifier = "==6.0.1" }, { name = "ty", marker = "extra == 'dev'", specifier = "==0.0.1a26" }, From 7f885fc67d382e2f9647e4405198f5b3afc48f69 Mon Sep 17 00:00:00 2001 From: Matthew Heaton Date: Thu, 13 Nov 2025 21:21:36 +0000 Subject: [PATCH 09/10] Playwright updates --- README.md | 11 ++++ example.pdf | Bin 0 -> 412086 bytes examples/tests/manual-acceptance-test.md | 25 +++++++- traceflow/pdf_generator.py | 76 +++++++++++++++++------ traceflow/res/report-header.tex | 1 + 5 files changed, 92 insertions(+), 21 deletions(-) create mode 100644 example.pdf diff --git a/README.md b/README.md index 40e3865..5f6eef8 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ By leveraging TraceFlow, you can: - Generate a traceability matrix linking all requirements to all tests. - Create fillable PDF forms for manual tests. - Run automated tests and capture their output as Markdown, then include them in the PDF report. +- The result will look something [like this](example.pdf) ## Getting Started @@ -53,6 +54,16 @@ If you do not pass these options, TraceFlow falls back to the packaged images in This command will generate a PDF for all of your documentation and test cases, as well as a validation pack and traceability matrix. +### Running the Playwright example + +TraceFlow includes the `examples` directory, which demonstrates `autoplaywright` tests that invoke the Playwright scripts in this repo. To reproduce that example, run: + +``` +uv run traceflow examples 1.0.0 test.pdf --playwright-dir playwright/ +``` + +On macOS you may need to prefix the command with `DYLD_FALLBACK_LIBRARY_PATH=/opt/homebrew/lib` so the bundled `cairosvg` finds `libcairo`. This example writes `test.pdf` into the current directory, stores temporary LaTeX artifacts in `report/`, and captures the Playwright video and logs via `playwright/run-test-video.sh`. + If your documentation contains `autoplaywright` test blocks that capture Playwright runs, append `--playwright-dir PATH` so TraceFlow can invoke the runner and gather the videos + logs that back these tests. ### Requirements diff --git a/example.pdf b/example.pdf new file mode 100644 index 0000000000000000000000000000000000000000..afc8cc8a948714d3a860130bd240fbcdacd3f09b GIT binary patch literal 412086 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

ZDJWD+!b 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%0Dk=xYZrS;^ssWu{%d)i5zy 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 literal 0 HcmV?d00001 diff --git a/examples/tests/manual-acceptance-test.md b/examples/tests/manual-acceptance-test.md index 543edd2..1019ddb 100644 --- a/examples/tests/manual-acceptance-test.md +++ b/examples/tests/manual-acceptance-test.md @@ -25,13 +25,13 @@ The user is logged in and redirected to the main dashboard. ```manualtest ``` -## TEST-002: Automatic test +## TEST-002: Automatic Playwright test **Requirement ID:** REQ-003 ### Test Steps: -1. This automated test creates a user, logs in, and then logs out. +1. The `autoplaywright` block runs the Playwright sample located in the `playwright/` directory and captures the video, stdout/stderr, and a 3×3 key frame grid from the test execution. ### Expected Result: @@ -43,4 +43,23 @@ The test should pass successfully. 0001-test-counter ``` -> The `autoplaywright` block runs the Playwright sample located in the `playwright/` directory and captures the video, stdout/stderr, and a 3×3 key frame grid. +## TEST-003: Automatic test + +**Requirement ID:** REQ-003 + +### Test Steps: + +1. This `autotest` block demonstrates running a simple pytest command as part of the report. + +### Expected Result: + +The test should pass successfully. + +### Test Outcome: + +```autoplaywright +0001-test-counter +``` +```autotest +pytest --disable-warnings -sv tests/test_hello_world.py +``` diff --git a/traceflow/pdf_generator.py b/traceflow/pdf_generator.py index 12a6b6e..f47490e 100644 --- a/traceflow/pdf_generator.py +++ b/traceflow/pdf_generator.py @@ -10,7 +10,7 @@ from typing import Generator, Optional import latex.jinja2 -from PIL import Image +from PIL import Image, ImageDraw, ImageFont try: import cairosvg @@ -25,6 +25,21 @@ _latex_jinja2_env = latex.jinja2.make_env() +PLAYWRIGHT_MAX_FRAMES = 9 +_PLAYWRIGHT_LOG_CHAR_MAP: dict[str, str] = { + "✓": "[PASS]", + "✔": "[PASS]", + "›": ">", + "➜": "->", + "…": "...", + "–": "-", + "—": "--", + "‘": "'", + "’": "'", + "“": '"', + "”": '"', +} + PLAYWRIGHT_MAX_FRAMES = 9 @@ -409,15 +424,9 @@ def create_latex_markup(is_pass: bool) -> str: if notes_text: body.append(f"\\textbf{{Test Notes:}} {self.process_text(notes_text)} \\\\") - if os.path.exists(video_path): - video_name = os.path.basename(video_path) - body.append(f"\\textbf{{Video recording:}} {self.process_text(video_name)} \\\\") - else: - body.append("\\textbf{Video recording:} Not captured \\\\") - if grid_basename: body.append( - "\\begin{figure}[h]\n" + "\\begin{figure}[H]\n" "\\centering\n" f"\\includegraphics[width=\\linewidth]{{{grid_basename}}}\n" f"\\caption{{Key frames captured from {self.process_text(test_name)}}}\n" @@ -464,7 +473,11 @@ def _read_playwright_log(self, log_path: str) -> str: return "No Playwright output captured." with open(log_path, "r", encoding="utf-8", errors="replace") as log_file: log_content = log_file.read() - sanitized = log_content.encode("ascii", "backslashreplace").decode("ascii") + sanitized = log_content + for original, replacement in _PLAYWRIGHT_LOG_CHAR_MAP.items(): + sanitized = sanitized.replace(original, replacement) + sanitized = sanitized.replace("\r\n", "\n") + sanitized = ''.join(ch if ord(ch) < 128 else "?" for ch in sanitized) if len(sanitized) > 40000: return sanitized[:40000] + " ... [truncated]" return sanitized @@ -478,7 +491,7 @@ def _build_playwright_grid(self, video_path: str) -> Optional[str]: if not timestamps: return None - frame_paths: list[str] = [] + frame_entries: list[tuple[str, float]] = [] try: for ts in timestamps: frame_output = os.path.join( @@ -491,30 +504,30 @@ def _build_playwright_grid(self, video_path: str) -> Optional[str]: try: subprocess.run(command, check=True) # noqa S603 if os.path.exists(frame_output): - frame_paths.append(frame_output) + frame_entries.append((frame_output, ts)) except subprocess.CalledProcessError: continue - if not frame_paths: + if not frame_entries: return None collage_path = os.path.join( os.getcwd(), self.get_temporary_filename(suffix=".png", force_random=True) ) - self._compose_frame_grid(frame_paths, collage_path) + self._compose_frame_grid(frame_entries, collage_path) if os.path.exists(collage_path): return os.path.basename(collage_path) return None finally: - for frame_path in frame_paths: + for frame_path, _ in frame_entries: try: os.remove(frame_path) except OSError: pass - def _compose_frame_grid(self, frame_paths: list[str], collage_path: str) -> None: - images = [Image.open(path).convert("RGB") for path in frame_paths] + def _compose_frame_grid(self, frame_entries: list[tuple[str, float]], collage_path: str) -> None: + images = [(Image.open(path).convert("RGB"), timestamp) for path, timestamp in frame_entries] if not images: return @@ -523,11 +536,38 @@ def _compose_frame_grid(self, frame_paths: list[str], collage_path: str) -> None except AttributeError: resample = getattr(Image, "LANCZOS", 1) - base_width, base_height = images[0].size + base_width, base_height = images[0][0].size scale = min(1.0, 360 / base_width) if base_width else 1.0 target_width = max(1, int(base_width * scale)) target_height = max(1, int(base_height * scale)) - resized = [img.resize((target_width, target_height), resample=resample) for img in images] + font = ImageFont.load_default() + resized: list[Image.Image] = [] + for img, timestamp in images: + resized_img = img.resize((target_width, target_height), resample=resample) + draw = ImageDraw.Draw(resized_img) + timestamp_text = f"{timestamp:.2f}s" + bbox = draw.textbbox((0, 0), timestamp_text, font=font) + text_width = bbox[2] - bbox[0] + text_height = bbox[3] - bbox[1] + padding = 4 + overlay_x = padding + overlay_y = max(0, target_height - text_height - padding - 2) + draw.rectangle( + [ + overlay_x - 2, + overlay_y - 2, + overlay_x + text_width + 4, + overlay_y + text_height + 4, + ], + fill=(0, 0, 0), + ) + draw.text( + (overlay_x, overlay_y), + timestamp_text, + fill=(255, 255, 255), + font=font, + ) + resized.append(resized_img) grid_size = 3 grid_image = Image.new("RGB", (target_width * grid_size, target_height * grid_size), (20, 20, 20)) diff --git a/traceflow/res/report-header.tex b/traceflow/res/report-header.tex index 9539100..a3b0e60 100644 --- a/traceflow/res/report-header.tex +++ b/traceflow/res/report-header.tex @@ -18,6 +18,7 @@ \usepackage{adjustbox} \usepackage{diagbox} \usepackage{pdflscape} +\usepackage{float} \newcolumntype{R}[2]{% >{\adjustbox{angle=#1,lap=\width-(#2)}\bgroup}% From a3d6a65ab18b3660400827792095bef32ea4ed61 Mon Sep 17 00:00:00 2001 From: Matthew Heaton Date: Thu, 13 Nov 2025 21:23:44 +0000 Subject: [PATCH 10/10] Switch to 3.12 in action --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index e1ecfcf..fa21230 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: true matrix: - python-version: ["3.13"] + python-version: ["3.12"] steps: - uses: actions/checkout@v4 - name: Set up Python