From 8eeddea7e9eccd940ca564b02aabc4c7e8a0a8f3 Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Tue, 29 Apr 2025 10:17:11 -0500 Subject: [PATCH 01/19] update project metadata and deps --- pyproject.toml | 17 ++- uv.lock | 362 ++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 342 insertions(+), 37 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d059b876..7e01894e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "multidimio" -version = "0.9.2" +version = "1.0.0-alpha.1" description = "Cloud-native, scalable, and user-friendly multi dimensional energy data!" authors = [{ name = "Altay Sansal", email = "altay.sansal@tgs.com" }] requires-python = ">=3.11,<3.14" @@ -27,10 +27,14 @@ dependencies = [ "click-params (>=0.5.0,<0.6.0)", "dask (>=2024.12.0)", "fsspec (>=2024.10.0)", + "pint>=0.24.3,<0.25", "psutil (>=6.1.0,<7.0.0)", + "pydantic (>=2.8.2,<3.0.0)", + "pydantic-settings (>=2.4.0,<3.0.0)", "rich (>=13.9.4,<14.0.0)", "segy (>=0.4.0,<0.5.0)", "tqdm (>=4.67.0,<5.0.0)", + "xarray>=2025.3.1", "zarr (>=3.0.8,<4.0.0)", ] @@ -180,11 +184,16 @@ pretty = true show_column_numbers = true show_error_codes = true show_error_context = true -disallow_untyped_defs = true # for strict mypy: (this is the tricky one) -plugins = ["numpy.typing.mypy_plugin"] +disallow_untyped_defs = true # for strict mypy: (this is the tricky one) +plugins = ["pydantic.mypy", "numpy.typing.mypy_plugin"] + +[tool.pydantic-mypy] +init_forbid_extra = true +init_typed = true +warn_required_dynamic_aliases = true [tool.bumpversion] -current_version = "0.9.2" +current_version = "1.0.0-alpha.1" allow_dirty = true commit = false tag = false diff --git a/uv.lock b/uv.lock index fa5bd21f..2e73c419 100644 --- a/uv.lock +++ b/uv.lock @@ -276,6 +276,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537 }, ] +[[package]] +name = "bandit" +version = "1.8.3" +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/1a/a5/144a45f8e67df9d66c3bc3f7e69a39537db8bff1189ab7cff4e9459215da/bandit-1.8.3.tar.gz", hash = "sha256:f5847beb654d309422985c36644649924e0ea4425c76dec2e89110b87506193a", size = 4232005 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/85/db74b9233e0aa27ec96891045c5e920a64dd5cbccd50f8e64e9460f48d35/bandit-1.8.3-py3-none-any.whl", hash = "sha256:28f04dc0d258e1dd0f99dee8eefa13d1cb5e3fde1a5ab0c523971f97b289bcd8", size = 129078 }, +] + [[package]] name = "beautifulsoup4" version = "4.13.3" @@ -289,6 +304,34 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/49/6abb616eb3cbab6a7cca303dc02fdf3836de2e0b834bf966a7f5271a34d8/beautifulsoup4-4.13.3-py3-none-any.whl", hash = "sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16", size = 186015 }, ] +[[package]] +name = "black" +version = "24.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "mypy-extensions" }, + { name = "packaging" }, + { name = "pathspec" }, + { name = "platformdirs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d8/0d/cc2fb42b8c50d80143221515dd7e4766995bd07c56c9a3ed30baf080b6dc/black-24.10.0.tar.gz", hash = "sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875", size = 645813 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/cc/7496bb63a9b06a954d3d0ac9fe7a73f3bf1cd92d7a58877c27f4ad1e9d41/black-24.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5a2221696a8224e335c28816a9d331a6c2ae15a2ee34ec857dcf3e45dbfa99ad", size = 1607468 }, + { url = "https://files.pythonhosted.org/packages/2b/e3/69a738fb5ba18b5422f50b4f143544c664d7da40f09c13969b2fd52900e0/black-24.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9da3333530dbcecc1be13e69c250ed8dfa67f43c4005fb537bb426e19200d50", size = 1437270 }, + { url = "https://files.pythonhosted.org/packages/c9/9b/2db8045b45844665c720dcfe292fdaf2e49825810c0103e1191515fc101a/black-24.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4007b1393d902b48b36958a216c20c4482f601569d19ed1df294a496eb366392", size = 1737061 }, + { url = "https://files.pythonhosted.org/packages/a3/95/17d4a09a5be5f8c65aa4a361444d95edc45def0de887810f508d3f65db7a/black-24.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:394d4ddc64782e51153eadcaaca95144ac4c35e27ef9b0a42e121ae7e57a9175", size = 1423293 }, + { url = "https://files.pythonhosted.org/packages/90/04/bf74c71f592bcd761610bbf67e23e6a3cff824780761f536512437f1e655/black-24.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b5e39e0fae001df40f95bd8cc36b9165c5e2ea88900167bddf258bacef9bbdc3", size = 1644256 }, + { url = "https://files.pythonhosted.org/packages/4c/ea/a77bab4cf1887f4b2e0bce5516ea0b3ff7d04ba96af21d65024629afedb6/black-24.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d37d422772111794b26757c5b55a3eade028aa3fde43121ab7b673d050949d65", size = 1448534 }, + { url = "https://files.pythonhosted.org/packages/4e/3e/443ef8bc1fbda78e61f79157f303893f3fddf19ca3c8989b163eb3469a12/black-24.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14b3502784f09ce2443830e3133dacf2c0110d45191ed470ecb04d0f5f6fcb0f", size = 1761892 }, + { url = "https://files.pythonhosted.org/packages/52/93/eac95ff229049a6901bc84fec6908a5124b8a0b7c26ea766b3b8a5debd22/black-24.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:30d2c30dc5139211dda799758559d1b049f7f14c580c409d6ad925b74a4208a8", size = 1434796 }, + { url = "https://files.pythonhosted.org/packages/d0/a0/a993f58d4ecfba035e61fca4e9f64a2ecae838fc9f33ab798c62173ed75c/black-24.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cbacacb19e922a1d75ef2b6ccaefcd6e93a2c05ede32f06a21386a04cedb981", size = 1643986 }, + { url = "https://files.pythonhosted.org/packages/37/d5/602d0ef5dfcace3fb4f79c436762f130abd9ee8d950fa2abdbf8bbc555e0/black-24.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1f93102e0c5bb3907451063e08b9876dbeac810e7da5a8bfb7aeb5a9ef89066b", size = 1448085 }, + { url = "https://files.pythonhosted.org/packages/47/6d/a3a239e938960df1a662b93d6230d4f3e9b4a22982d060fc38c42f45a56b/black-24.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ddacb691cdcdf77b96f549cf9591701d8db36b2f19519373d60d31746068dbf2", size = 1760928 }, + { url = "https://files.pythonhosted.org/packages/dd/cf/af018e13b0eddfb434df4d9cd1b2b7892bab119f7a20123e93f6910982e8/black-24.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:680359d932801c76d2e9c9068d05c6b107f2584b2a5b88831c83962eb9984c1b", size = 1436875 }, + { url = "https://files.pythonhosted.org/packages/8d/a7/4b27c50537ebca8bec139b872861f9d2bf501c5ec51fcf897cb924d9e264/black-24.10.0-py3-none-any.whl", hash = "sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d", size = 206898 }, +] + [[package]] name = "bokeh" version = "3.7.2" @@ -697,6 +740,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/57/ff/f3b4b2d007c2a646b0f69440ab06224f9cf37a977a72cdb7b50632174e8a/cryptography-44.0.2-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:04abd71114848aa25edb28e225ab5f268096f44cf0127f3d36975bdf1bdf3390", size = 4107081 }, ] +[[package]] +name = "darglint" +version = "1.8.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/2c/86e8549e349388c18ca8a4ff8661bb5347da550f598656d32a98eaaf91cc/darglint-1.8.1.tar.gz", hash = "sha256:080d5106df149b199822e7ee7deb9c012b49891538f14a11be681044f0bb20da", size = 74435 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/28/85d1e0396d64422c5218d68e5cdcc53153aa8a2c83c7dbc3ee1502adf3a1/darglint-1.8.1-py3-none-any.whl", hash = "sha256:5ae11c259c17b0701618a20c3da343a3eb98b3bc4b5a83d31cdd94f5ebdced8d", size = 120767 }, +] + [[package]] name = "dask" version = "2025.3.0" @@ -853,6 +905,97 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b9/f8/feced7779d755758a52d1f6635d990b8d98dc0a29fa568bbe0625f18fdf3/filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0", size = 16163 }, ] +[[package]] +name = "flake8" +version = "7.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mccabe" }, + { name = "pycodestyle" }, + { name = "pyflakes" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e7/c4/5842fc9fc94584c455543540af62fd9900faade32511fab650e9891ec225/flake8-7.2.0.tar.gz", hash = "sha256:fa558ae3f6f7dbf2b4f22663e5343b6b6023620461f8d4ff2019ef4b5ee70426", size = 48177 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/5c/0627be4c9976d56b1217cb5187b7504e7fd7d3503f8bfd312a04077bd4f7/flake8-7.2.0-py2.py3-none-any.whl", hash = "sha256:93b92ba5bdb60754a6da14fa3b93a9361fd00a59632ada61fd7b130436c40343", size = 57786 }, +] + +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/5f/55bab0ac89f9ad9f4c6e38087faa80c252daec4ccb7776b4dac216ca9e3f/flake8_bandit-4.1.1-py3-none-any.whl", hash = "sha256:4c8a53eb48f23d4ef1e59293657181a3c989d0077c9952717e98a0eace43e06d", size = 4828 }, +] + +[[package]] +name = "flake8-bugbear" +version = "24.12.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "flake8" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c7/25/48ba712ff589b0149f21135234f9bb45c14d6689acc6151b5e2ff8ac2ae9/flake8_bugbear-24.12.12.tar.gz", hash = "sha256:46273cef0a6b6ff48ca2d69e472f41420a42a46e24b2a8972e4f0d6733d12a64", size = 82907 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/21/0a875f75fbe4008bd171e2fefa413536258fe6b4cfaaa087986de74588f4/flake8_bugbear-24.12.12-py3-none-any.whl", hash = "sha256:1b6967436f65ca22a42e5373aaa6f2d87966ade9aa38d4baf2a1be550767545e", size = 36664 }, +] + +[[package]] +name = "flake8-docstrings" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flake8" }, + { name = "pydocstyle" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/93/24/f839e3a06e18f4643ccb81370909a497297909f15106e6af2fecdef46894/flake8_docstrings-1.7.0.tar.gz", hash = "sha256:4c8cc748dc16e6869728699e5d0d685da9a10b0ea718e090b1ba088e67a941af", size = 5995 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/7d/76a278fa43250441ed9300c344f889c7fb1817080c8fb8996b840bf421c2/flake8_docstrings-1.7.0-py2.py3-none-any.whl", hash = "sha256:51f2344026da083fc084166a9353f5082b01f72901df422f74b4d953ae88ac75", size = 4994 }, +] + +[[package]] +name = "flake8-rst-docstrings" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flake8" }, + { name = "pygments" }, + { name = "restructuredtext-lint" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b2/e5/013d5858b69b4ba38ff259d55bd8d107009f212f296be0824b7c4a27d7ed/flake8-rst-docstrings-0.3.0.tar.gz", hash = "sha256:d1ce22b4bd37b73cd86b8d980e946ef198cfcc18ed82fedb674ceaa2f8d1afa4", size = 19865 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/bf/0e6933d78d172df672325622bf1b7f8364f4a6515da9e89398227c19d02e/flake8_rst_docstrings-0.3.0-py3-none-any.whl", hash = "sha256:f8c3c6892ff402292651c31983a38da082480ad3ba253743de52989bdc84ca1c", size = 10892 }, +] + +[[package]] +name = "flexcache" +version = "0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/b0/8a21e330561c65653d010ef112bf38f60890051d244ede197ddaa08e50c1/flexcache-0.3.tar.gz", hash = "sha256:18743bd5a0621bfe2cf8d519e4c3bfdf57a269c15d1ced3fb4b64e0ff4600656", size = 15816 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/cd/c883e1a7c447479d6e13985565080e3fea88ab5a107c21684c813dba1875/flexcache-0.3-py3-none-any.whl", hash = "sha256:d43c9fea82336af6e0115e308d9d33a185390b8346a017564611f1466dcd2e32", size = 13263 }, +] + +[[package]] +name = "flexparser" +version = "0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/82/99/b4de7e39e8eaf8207ba1a8fa2241dd98b2ba72ae6e16960d8351736d8702/flexparser-0.4.tar.gz", hash = "sha256:266d98905595be2ccc5da964fe0a2c3526fbbffdc45b65b3146d75db992ef6b2", size = 31799 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/5e/3be305568fe5f34448807976dc82fc151d76c3e0e03958f34770286278c1/flexparser-0.4-py3-none-any.whl", hash = "sha256:3738b456192dcb3e15620f324c447721023c0293f6af9955b481e91d00179846", size = 27625 }, +] + [[package]] name = "frozenlist" version = "1.5.0" @@ -1239,6 +1382,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320 }, ] +[[package]] +name = "isort" +version = "5.13.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/87/f9/c1eb8635a24e87ade2efce21e3ce8cd6b8630bb685ddc9cdaca1349b2eb5/isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109", size = 175303 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/b3/8def84f539e7d2289a02f0524b944b15d7c75dab7628bedf1c4f0992029c/isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6", size = 92310 }, +] + [[package]] name = "jedi" version = "0.19.2" @@ -1485,6 +1637,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899 }, ] +[[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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e", size = 7350 }, +] + [[package]] name = "mdit-py-plugins" version = "0.4.2" @@ -1644,17 +1805,21 @@ wheels = [ [[package]] name = "multidimio" -version = "0.9.1" +version = "1.0.0a1" source = { editable = "." } dependencies = [ { name = "click" }, { name = "click-params" }, { name = "dask" }, { name = "fsspec" }, + { name = "pint" }, { name = "psutil" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, { name = "rich" }, { name = "segy" }, { name = "tqdm" }, + { name = "xarray" }, { name = "zarr" }, ] @@ -1674,14 +1839,23 @@ lossy = [ [package.dev-dependencies] dev = [ + { name = "black" }, { name = "coverage", extra = ["toml"] }, + { name = "darglint" }, + { name = "flake8" }, + { name = "flake8-bandit" }, + { name = "flake8-bugbear" }, + { name = "flake8-docstrings" }, + { name = "flake8-rst-docstrings" }, + { name = "isort" }, { name = "mypy" }, + { name = "pep8-naming" }, { name = "pre-commit" }, { name = "pre-commit-hooks" }, { name = "pygments" }, { name = "pytest" }, { name = "pytest-dependency" }, - { name = "ruff" }, + { name = "pyupgrade" }, { name = "safety" }, { name = "typeguard" }, { name = "xdoctest", extra = ["colors"] }, @@ -1707,26 +1881,39 @@ requires-dist = [ { name = "distributed", marker = "extra == 'distributed'", specifier = ">=2024.12.0" }, { name = "fsspec", specifier = ">=2024.10.0" }, { name = "gcsfs", marker = "extra == 'cloud'", specifier = ">=2024.10.0" }, + { name = "pint", specifier = ">=0.24.3,<0.25" }, { name = "psutil", specifier = ">=6.1.0,<7.0.0" }, + { name = "pydantic", specifier = ">=2.8.2,<3.0.0" }, + { name = "pydantic-settings", specifier = ">=2.4.0,<3.0.0" }, { name = "rich", specifier = ">=13.9.4,<14.0.0" }, { name = "s3fs", marker = "extra == 'cloud'", specifier = "==2024.12.0" }, { name = "segy", specifier = ">=0.4.0,<0.5.0" }, { name = "tqdm", specifier = ">=4.67.0,<5.0.0" }, - { name = "zarr", specifier = ">=3.0.8,<4.0.0" }, + { name = "xarray", specifier = ">=2025.3.1" }, + { name = "zarr", specifier = ">=3.0.6,<4.0.0" }, { name = "zfpy", marker = "extra == 'lossy'", specifier = ">=1.0.1,<2.0.0" }, ] provides-extras = ["cloud", "distributed", "lossy"] [package.metadata.requires-dev] dev = [ + { name = "black", specifier = ">=24.10.0,<25" }, { name = "coverage", extras = ["toml"], specifier = ">=7.6.7,<8" }, + { name = "darglint", specifier = ">=1.8.1,<2" }, + { name = "flake8", specifier = ">=7.1.0,<8" }, + { name = "flake8-bandit", specifier = ">=4.1.1,<5" }, + { name = "flake8-bugbear", specifier = ">=24.4.26,<25" }, + { name = "flake8-docstrings", specifier = ">=1.7.0,<2" }, + { name = "flake8-rst-docstrings", specifier = ">=0.3.0,<0.4" }, + { name = "isort", specifier = ">=5.13.2,<6" }, { name = "mypy", specifier = ">=1.13.0,<2" }, + { name = "pep8-naming", specifier = ">=0.14.1,<0.15" }, { name = "pre-commit", specifier = ">=4.0.1,<5" }, { name = "pre-commit-hooks", specifier = ">=5.0.0,<6" }, { name = "pygments", specifier = ">=2.18.0,<3" }, { name = "pytest", specifier = ">=8.3.3,<9" }, { name = "pytest-dependency", specifier = ">=0.6.0,<0.7" }, - { name = "ruff", specifier = ">=0.11.8" }, + { name = "pyupgrade", specifier = ">=3.19.0,<4" }, { name = "safety", specifier = ">=3.2.3,<4" }, { name = "typeguard", specifier = ">=4.4.1,<5" }, { name = "xdoctest", extras = ["colors"], specifier = ">=1.2.0,<2" }, @@ -1735,7 +1922,7 @@ docs = [ { name = "furo", specifier = ">=2024.8.6" }, { name = "linkify-it-py", specifier = ">=2.0.3" }, { name = "myst-nb", specifier = ">=1.2.0" }, - { name = "sphinx", specifier = ">=8.2.3,<9" }, + { name = "sphinx", specifier = ">=8.1.3,<9" }, { name = "sphinx-autobuild", specifier = ">=2024.10.3" }, { name = "sphinx-click", specifier = ">=6.0.0,<7" }, { name = "sphinx-copybutton", specifier = ">=0.5.2,<0.6" }, @@ -2077,6 +2264,39 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl", hash = "sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f", size = 18905 }, ] +[[package]] +name = "pathspec" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191 }, +] + +[[package]] +name = "pbr" +version = "6.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "setuptools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/01/d2/510cc0d218e753ba62a1bc1434651db3cd797a9716a0a66cc714cb4f0935/pbr-6.1.1.tar.gz", hash = "sha256:93ea72ce6989eb2eed99d0f75721474f69ad88128afdef5ac377eb797c4bf76b", size = 125702 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/ac/684d71315abc7b1214d59304e23a982472967f6bf4bde5a98f1503f648dc/pbr-6.1.1-py2.py3-none-any.whl", hash = "sha256:38d4daea5d9fa63b3f626131b9d34947fd0c8be9b05a29276870580050a25a76", size = 108997 }, +] + +[[package]] +name = "pep8-naming" +version = "0.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flake8" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/be/8e/1de32e908d8b008bb9352bfe7749aedecb71e2793d36c7ee342716acd1ec/pep8-naming-0.14.1.tar.gz", hash = "sha256:1ef228ae80875557eb6c1549deafed4dabbf3261cfcafa12f773fe0db9be8a36", size = 16546 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/a2/450b71d1a87fcee50a7b994a53b1c68fc6a6b718df0eb035f2bffb2d3a4f/pep8_naming-0.14.1-py3-none-any.whl", hash = "sha256:63f514fc777d715f935faf185dedd679ab99526a7f2f503abb61587877f7b1c5", size = 8859 }, +] + [[package]] name = "pexpect" version = "4.9.0" @@ -2148,6 +2368,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/21/2c/5e05f58658cf49b6667762cca03d6e7d85cededde2caf2ab37b81f80e574/pillow-11.2.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:208653868d5c9ecc2b327f9b9ef34e0e42a4cdd172c2988fd81d62d2bc9bc044", size = 2674751 }, ] +[[package]] +name = "pint" +version = "0.24.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flexcache" }, + { name = "flexparser" }, + { name = "platformdirs" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/20/bb/52b15ddf7b7706ed591134a895dbf6e41c8348171fb635e655e0a4bbb0ea/pint-0.24.4.tar.gz", hash = "sha256:35275439b574837a6cd3020a5a4a73645eb125ce4152a73a2f126bf164b91b80", size = 342225 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/16/bd2f5904557265882108dc2e04f18abc05ab0c2b7082ae9430091daf1d5c/Pint-0.24.4-py3-none-any.whl", hash = "sha256:aa54926c8772159fcf65f82cc0d34de6768c151b32ad1deb0331291c38fe7659", size = 302029 }, +] + [[package]] name = "platformdirs" version = "4.3.7" @@ -2359,6 +2594,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a", size = 181259 }, ] +[[package]] +name = "pycodestyle" +version = "2.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/04/6e/1f4a62078e4d95d82367f24e685aef3a672abfd27d1a868068fed4ed2254/pycodestyle-2.13.0.tar.gz", hash = "sha256:c8415bf09abe81d9c7f872502a6eee881fbe85d8763dd5b9924bb0a01d67efae", size = 39312 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/be/b00116df1bfb3e0bb5b45e29d604799f7b91dd861637e4d448b4e09e6a3e/pycodestyle-2.13.0-py2.py3-none-any.whl", hash = "sha256:35863c5974a271c7a726ed228a14a4f6daf49df369d8c50cd9a6f58a5e143ba9", size = 31424 }, +] + [[package]] name = "pycparser" version = "2.22" @@ -2442,6 +2686,27 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/53/a64f03044927dc47aafe029c42a5b7aabc38dfb813475e0e1bf71c4a59d0/pydantic_settings-2.8.1-py3-none-any.whl", hash = "sha256:81942d5ac3d905f7f3ee1a70df5dfb62d5569c12f51a5a647defc1c3d9ee2e9c", size = 30839 }, ] +[[package]] +name = "pydocstyle" +version = "6.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "snowballstemmer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/5c/d5385ca59fd065e3c6a5fe19f9bc9d5ea7f2509fa8c9c22fb6b2031dd953/pydocstyle-6.3.0.tar.gz", hash = "sha256:7ce43f0c0ac87b07494eb9c0b462c0b73e6ff276807f204d6b53edc72b7e44e1", size = 36796 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/ea/99ddefac41971acad68f14114f38261c1f27dac0b3ec529824ebc739bdaa/pydocstyle-6.3.0-py3-none-any.whl", hash = "sha256:118762d452a49d6b05e194ef344a55822987a462831ade91ec5c06fd2169d019", size = 38038 }, +] + +[[package]] +name = "pyflakes" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/cc/1df338bd7ed1fa7c317081dcf29bf2f01266603b301e6858856d346a12b3/pyflakes-3.3.2.tar.gz", hash = "sha256:6dfd61d87b97fba5dcfaaf781171ac16be16453be6d816147989e7f6e6a9576b", size = 64175 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/40/b293a4fa769f3b02ab9e387c707c4cbdc34f073f945de0386107d4e669e6/pyflakes-3.3.2-py2.py3-none-any.whl", hash = "sha256:5039c8339cbb1944045f4ee5466908906180f13cc99cc9949348d10f82a5c32a", size = 63164 }, +] + [[package]] name = "pygments" version = "2.19.1" @@ -2520,6 +2785,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225 }, ] +[[package]] +name = "pyupgrade" +version = "3.19.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "tokenize-rt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/35/3a/efa8e75cf84d53f1b3f0113387ab120ef460396a4068e41b6cf18a3d216d/pyupgrade-3.19.1.tar.gz", hash = "sha256:d10e8c5f54b8327211828769e98d95d95e4715de632a3414f1eef3f51357b9e2", size = 45116 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dd/43/c6c1ff945c7900613f6e6ef2a8688639a247d62eb0ffa9935c599f69c08e/pyupgrade-3.19.1-py2.py3-none-any.whl", hash = "sha256:8c5b0bfacae5ff30fa136a53eb7f22c34ba007450d4099e9da8089dabb9e67c9", size = 62412 }, +] + [[package]] name = "pywin32" version = "310" @@ -2782,6 +3059,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36", size = 24179 }, ] +[[package]] +name = "restructuredtext-lint" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/9c/6d8035cafa2d2d314f34e6cd9313a299de095b26e96f1c7312878f988eec/restructuredtext_lint-1.4.0.tar.gz", hash = "sha256:1b235c0c922341ab6c530390892eb9e92f90b9b75046063e047cacfb0f050c45", size = 16723 } + [[package]] name = "rich" version = "13.9.4" @@ -2934,31 +3220,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b0/85/e8e751d8791564dd333d5d9a4eab0a7a115f7e349595417fd50ecae3395c/ruamel.yaml.clib-0.2.12-cp313-cp313-win_amd64.whl", hash = "sha256:e5b8daf27af0b90da7bb903a876477a9e6d7270be6146906b276605997c7e9a3", size = 115190 }, ] -[[package]] -name = "ruff" -version = "0.11.8" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/52/f6/adcf73711f31c9f5393862b4281c875a462d9f639f4ccdf69dc368311c20/ruff-0.11.8.tar.gz", hash = "sha256:6d742d10626f9004b781f4558154bb226620a7242080e11caeffab1a40e99df8", size = 4086399 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9f/60/c6aa9062fa518a9f86cb0b85248245cddcd892a125ca00441df77d79ef88/ruff-0.11.8-py3-none-linux_armv6l.whl", hash = "sha256:896a37516c594805e34020c4a7546c8f8a234b679a7716a3f08197f38913e1a3", size = 10272473 }, - { url = "https://files.pythonhosted.org/packages/a0/e4/0325e50d106dc87c00695f7bcd5044c6d252ed5120ebf423773e00270f50/ruff-0.11.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ab86d22d3d721a40dd3ecbb5e86ab03b2e053bc93c700dc68d1c3346b36ce835", size = 11040862 }, - { url = "https://files.pythonhosted.org/packages/e6/27/b87ea1a7be37fef0adbc7fd987abbf90b6607d96aa3fc67e2c5b858e1e53/ruff-0.11.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:258f3585057508d317610e8a412788cf726efeefa2fec4dba4001d9e6f90d46c", size = 10385273 }, - { url = "https://files.pythonhosted.org/packages/d3/f7/3346161570d789045ed47a86110183f6ac3af0e94e7fd682772d89f7f1a1/ruff-0.11.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:727d01702f7c30baed3fc3a34901a640001a2828c793525043c29f7614994a8c", size = 10578330 }, - { url = "https://files.pythonhosted.org/packages/c6/c3/327fb950b4763c7b3784f91d3038ef10c13b2d42322d4ade5ce13a2f9edb/ruff-0.11.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3dca977cc4fc8f66e89900fa415ffe4dbc2e969da9d7a54bfca81a128c5ac219", size = 10122223 }, - { url = "https://files.pythonhosted.org/packages/de/c7/ba686bce9adfeb6c61cb1bbadc17d58110fe1d602f199d79d4c880170f19/ruff-0.11.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c657fa987d60b104d2be8b052d66da0a2a88f9bd1d66b2254333e84ea2720c7f", size = 11697353 }, - { url = "https://files.pythonhosted.org/packages/53/8e/a4fb4a1ddde3c59e73996bb3ac51844ff93384d533629434b1def7a336b0/ruff-0.11.8-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:f2e74b021d0de5eceb8bd32919f6ff8a9b40ee62ed97becd44993ae5b9949474", size = 12375936 }, - { url = "https://files.pythonhosted.org/packages/ad/a1/9529cb1e2936e2479a51aeb011307e7229225df9ac64ae064d91ead54571/ruff-0.11.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9b5ef39820abc0f2c62111f7045009e46b275f5b99d5e59dda113c39b7f4f38", size = 11850083 }, - { url = "https://files.pythonhosted.org/packages/3e/94/8f7eac4c612673ae15a4ad2bc0ee62e03c68a2d4f458daae3de0e47c67ba/ruff-0.11.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c1dba3135ca503727aa4648152c0fa67c3b1385d3dc81c75cd8a229c4b2a1458", size = 14005834 }, - { url = "https://files.pythonhosted.org/packages/1e/7c/6f63b46b2be870cbf3f54c9c4154d13fac4b8827f22fa05ac835c10835b2/ruff-0.11.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f024d32e62faad0f76b2d6afd141b8c171515e4fb91ce9fd6464335c81244e5", size = 11503713 }, - { url = "https://files.pythonhosted.org/packages/3a/91/57de411b544b5fe072779678986a021d87c3ee5b89551f2ca41200c5d643/ruff-0.11.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d365618d3ad747432e1ae50d61775b78c055fee5936d77fb4d92c6f559741948", size = 10457182 }, - { url = "https://files.pythonhosted.org/packages/01/49/cfe73e0ce5ecdd3e6f1137bf1f1be03dcc819d1bfe5cff33deb40c5926db/ruff-0.11.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:4d9aaa91035bdf612c8ee7266153bcf16005c7c7e2f5878406911c92a31633cb", size = 10101027 }, - { url = "https://files.pythonhosted.org/packages/56/21/a5cfe47c62b3531675795f38a0ef1c52ff8de62eaddf370d46634391a3fb/ruff-0.11.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:0eba551324733efc76116d9f3a0d52946bc2751f0cd30661564117d6fd60897c", size = 11111298 }, - { url = "https://files.pythonhosted.org/packages/36/98/f76225f87e88f7cb669ae92c062b11c0a1e91f32705f829bd426f8e48b7b/ruff-0.11.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:161eb4cff5cfefdb6c9b8b3671d09f7def2f960cee33481dd898caf2bcd02304", size = 11566884 }, - { url = "https://files.pythonhosted.org/packages/de/7e/fff70b02e57852fda17bd43f99dda37b9bcf3e1af3d97c5834ff48d04715/ruff-0.11.8-py3-none-win32.whl", hash = "sha256:5b18caa297a786465cc511d7f8be19226acf9c0a1127e06e736cd4e1878c3ea2", size = 10451102 }, - { url = "https://files.pythonhosted.org/packages/7b/a9/eaa571eb70648c9bde3120a1d5892597de57766e376b831b06e7c1e43945/ruff-0.11.8-py3-none-win_amd64.whl", hash = "sha256:6e70d11043bef637c5617297bdedec9632af15d53ac1e1ba29c448da9341b0c4", size = 11597410 }, - { url = "https://files.pythonhosted.org/packages/cd/be/f6b790d6ae98f1f32c645f8540d5c96248b72343b0a56fab3a07f2941897/ruff-0.11.8-py3-none-win_arm64.whl", hash = "sha256:304432e4c4a792e3da85b7699feb3426a0908ab98bf29df22a31b0cdd098fac2", size = 10713129 }, -] - [[package]] name = "s3fs" version = "2024.12.0" @@ -3310,6 +3571,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a0/4b/528ccf7a982216885a1ff4908e886b8fb5f19862d1962f56a3fce2435a70/starlette-0.46.1-py3-none-any.whl", hash = "sha256:77c74ed9d2720138b25875133f3a2dae6d854af2ec37dceb56aef370c1d8a227", size = 71995 }, ] +[[package]] +name = "stevedore" +version = "5.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pbr" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/3f/13cacea96900bbd31bb05c6b74135f85d15564fc583802be56976c940470/stevedore-5.4.1.tar.gz", hash = "sha256:3135b5ae50fe12816ef291baff420acb727fcd356106e3e9cbfa9e5985cd6f4b", size = 513858 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/45/8c4ebc0c460e6ec38e62ab245ad3c7fc10b210116cea7c16d61602aa9558/stevedore-5.4.1-py3-none-any.whl", hash = "sha256:d10a31c7b86cba16c1f6e8d15416955fc797052351a56af15e608ad20811fcfe", size = 49533 }, +] + [[package]] name = "tabulate" version = "0.9.0" @@ -3328,6 +3601,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/27/44/aa5c8b10b2cce7a053018e0d132bd58e27527a0243c4985383d5b6fd93e9/tblib-3.1.0-py3-none-any.whl", hash = "sha256:670bb4582578134b3d81a84afa1b016128b429f3d48e6cbbaecc9d15675e984e", size = 12552 }, ] +[[package]] +name = "tokenize-rt" +version = "6.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/0a/5854d8ced8c1e00193d1353d13db82d7f813f99bd5dcb776ce3e2a4c0d19/tokenize_rt-6.1.0.tar.gz", hash = "sha256:e8ee836616c0877ab7c7b54776d2fefcc3bde714449a206762425ae114b53c86", size = 5506 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/ba/576aac29b10dfa49a6ce650001d1bb31f81e734660555eaf144bfe5b8995/tokenize_rt-6.1.0-py2.py3-none-any.whl", hash = "sha256:d706141cdec4aa5f358945abe36b911b8cbdc844545da99e811250c0cee9b6fc", size = 6015 }, +] + [[package]] name = "tomli" version = "2.2.1" @@ -3667,6 +3949,20 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2d/82/f56956041adef78f849db6b289b282e72b55ab8045a75abad81898c28d19/wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8", size = 23594 }, ] +[[package]] +name = "xarray" +version = "2025.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/c4/6931c37cd418658d596e78794bdd1bcb67efec0aac3cdb720e37e03c1ea1/xarray-2025.3.1.tar.gz", hash = "sha256:0252c96a73528b29d1ed7f0ab28d928d2ec00ad809e47369803b184dece1e447", size = 3300778 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/fd/973deafd9f87085136a58573600646b408ae7af47859f35151f0d83d5090/xarray-2025.3.1-py3-none-any.whl", hash = "sha256:3404e313930c226db70a945377441ea3c957225d8ba2d429e764c099bb91a546", size = 1279327 }, +] + [[package]] name = "xdoctest" version = "1.2.0" @@ -3755,7 +4051,7 @@ wheels = [ [[package]] name = "zarr" -version = "3.0.8" +version = "3.0.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "donfig" }, @@ -3764,9 +4060,9 @@ dependencies = [ { name = "packaging" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/52/60/9652fd0536fbaca8d08cbc1a5572c52e0ce01773297df75da8bb47e45907/zarr-3.0.8.tar.gz", hash = "sha256:88505d095af899a88ae8ac4db02f4650ef0801d2ff6f65b6d1f0a45dcf760a6d", size = 256825 } +sdist = { url = "https://files.pythonhosted.org/packages/6f/bf/2820e8ad5f086ea5cd4c4d65eb5e0113f98145ddf5810cec1c75fb10fb98/zarr-3.0.6.tar.gz", hash = "sha256:6ef23c740e34917a2a1099471361537732942e49f0cabe95c9b7124cd0d6d84f", size = 240812 } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/3b/e20bdf84088c11f2c396d034506cbffadd53e024111c1aa4585c2aba1523/zarr-3.0.8-py3-none-any.whl", hash = "sha256:7f81e7aec086437d98882aa432209107114bd7f3a9f4958b2af9c6b5928a70a7", size = 205364 }, + { url = "https://files.pythonhosted.org/packages/fb/38/56a1c129577d20dc975a934ccc3f7f16276eab04ff0ffbe02ea348407a37/zarr-3.0.6-py3-none-any.whl", hash = "sha256:dba078726b6e4defb0ae6a852b7e7035ce163d89d485961681ece49191dcce82", size = 196357 }, ] [[package]] From 293a7144a60833794437c6173bb8cccddbde8fe8 Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Tue, 29 Apr 2025 10:17:33 -0500 Subject: [PATCH 02/19] update project metadata and deps --- noxfile.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/noxfile.py b/noxfile.py index d78994a0..281ec525 100644 --- a/noxfile.py +++ b/noxfile.py @@ -257,6 +257,7 @@ def docs_build(session: Session) -> None: session_install_uv_package( session, [ + "autodoc-pydantic", "sphinx", "sphinx-click", "sphinx-copybutton", @@ -282,6 +283,7 @@ def docs(session: Session) -> None: session_install_uv_package( session, [ + "autodoc-pydantic", "sphinx", "sphinx-autobuild", "sphinx-click", From faacbaa86a66d17fc430de4e17282fc17807c6d6 Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Tue, 29 Apr 2025 14:42:57 -0500 Subject: [PATCH 03/19] add schemas --- src/mdio/schemas/__init__.py | 18 ++++ src/mdio/schemas/base.py | 43 +++++++++ src/mdio/schemas/builder.py | 156 +++++++++++++++++++++++++++++++ src/mdio/schemas/chunk_grid.py | 44 +++++++++ src/mdio/schemas/compressors.py | 159 ++++++++++++++++++++++++++++++++ src/mdio/schemas/core.py | 49 ++++++++++ src/mdio/schemas/dimension.py | 12 +++ src/mdio/schemas/dtype.py | 55 +++++++++++ src/mdio/schemas/metadata.py | 31 +++++++ src/mdio/schemas/units.py | 51 ++++++++++ src/mdio/schemas/v0/__init__.py | 6 ++ src/mdio/schemas/v0/dataset.py | 88 ++++++++++++++++++ src/mdio/schemas/v1/__init__.py | 6 ++ src/mdio/schemas/v1/dataset.py | 49 ++++++++++ src/mdio/schemas/v1/stats.py | 72 +++++++++++++++ src/mdio/schemas/v1/units.py | 126 +++++++++++++++++++++++++ src/mdio/schemas/v1/variable.py | 55 +++++++++++ 17 files changed, 1020 insertions(+) create mode 100644 src/mdio/schemas/__init__.py create mode 100644 src/mdio/schemas/base.py create mode 100644 src/mdio/schemas/builder.py create mode 100644 src/mdio/schemas/chunk_grid.py create mode 100644 src/mdio/schemas/compressors.py create mode 100644 src/mdio/schemas/core.py create mode 100644 src/mdio/schemas/dimension.py create mode 100644 src/mdio/schemas/dtype.py create mode 100644 src/mdio/schemas/metadata.py create mode 100644 src/mdio/schemas/units.py create mode 100644 src/mdio/schemas/v0/__init__.py create mode 100644 src/mdio/schemas/v0/dataset.py create mode 100644 src/mdio/schemas/v1/__init__.py create mode 100644 src/mdio/schemas/v1/dataset.py create mode 100644 src/mdio/schemas/v1/stats.py create mode 100644 src/mdio/schemas/v1/units.py create mode 100644 src/mdio/schemas/v1/variable.py diff --git a/src/mdio/schemas/__init__.py b/src/mdio/schemas/__init__.py new file mode 100644 index 00000000..17ae4dd3 --- /dev/null +++ b/src/mdio/schemas/__init__.py @@ -0,0 +1,18 @@ +"""MDIO schemas for different data types.""" + +from mdio.schemas.compressors import ZFP +from mdio.schemas.compressors import Blosc +from mdio.schemas.dimension import NamedDimension +from mdio.schemas.dtype import ScalarType +from mdio.schemas.dtype import StructuredField +from mdio.schemas.dtype import StructuredType + + +__all__ = [ + "Blosc", + "ZFP", + "NamedDimension", + "ScalarType", + "StructuredField", + "StructuredType", +] diff --git a/src/mdio/schemas/base.py b/src/mdio/schemas/base.py new file mode 100644 index 00000000..d4bdfd48 --- /dev/null +++ b/src/mdio/schemas/base.py @@ -0,0 +1,43 @@ +"""Base models to subclass from.""" + +from pydantic import ConfigDict +from pydantic import Field +from pydantic.json_schema import GenerateJsonSchema + +from mdio.schemas.compressors import ZFP +from mdio.schemas.compressors import Blosc +from mdio.schemas.core import CamelCaseStrictModel +from mdio.schemas.dimension import NamedDimension +from mdio.schemas.dtype import DataTypeModel + + +JSON_SCHEMA_DIALECT = GenerateJsonSchema.schema_dialect + + +class BaseDataset(CamelCaseStrictModel): + """A base class for MDIO datasets. + + We add schema dialect to extend the config of `StrictCamelBaseModel`. + We use the default Pydantic schema generator `GenerateJsonSchema` to + define the JSON schema dialect accurately. + """ + + model_config = ConfigDict(json_schema_extra={"$schema": JSON_SCHEMA_DIALECT}) + + +class BaseArray(DataTypeModel, CamelCaseStrictModel): + """A base array schema.""" + + dimensions: list[NamedDimension] | list[str] = Field( + ..., description="List of Dimension collection or reference to dimension names." + ) + compressor: Blosc | ZFP | None = Field( + default=None, description="Compression settings." + ) + + +class NamedArray(BaseArray): + """An array with a name.""" + + name: str = Field(..., description="Name of the array.") + long_name: str | None = Field(default=None, description="Fully descriptive name.") diff --git a/src/mdio/schemas/builder.py b/src/mdio/schemas/builder.py new file mode 100644 index 00000000..9a0e6cbb --- /dev/null +++ b/src/mdio/schemas/builder.py @@ -0,0 +1,156 @@ +"""Schema builders.""" + +from __future__ import annotations + +from typing import Any + +from mdio.schemas import NamedDimension +from mdio.schemas.v1.dataset import Dataset +from mdio.schemas.v1.dataset import DatasetMetadata +from mdio.schemas.v1.variable import Variable +from mdio.schemas.v1.variable import VariableMetadata + + +class VariableBuilder: + """Dataset builder.""" + + def __init__(self) -> None: + """Initialize the builder.""" + self.name = None + self.long_name = None + self.dtype = None + self.chunks = None + self.dims = None + self.coords = None + self.compressor = None + self.meta_dict = None + + def set_name(self, name: str) -> VariableBuilder: + """Set variable name.""" + self.name = name + return self + + def set_long_name(self, long_name: str) -> VariableBuilder: + """Add long, descriptive name to the variable.""" + self.long_name = long_name + return self + + def set_compressor(self, compressor: dict[str, Any]) -> VariableBuilder: + """Add long, descriptive name to the variable.""" + self.compressor = compressor + return self + + def add_dimension(self, *dimensions: str | dict[str, int]) -> VariableBuilder: + """Add a dimension to the dataset.""" + if self.dims is None: + self.dims = [] + + if isinstance(dimensions[0], str): + dims = list(dimensions) + elif isinstance(dimensions[0], dict): + dims = [ + NamedDimension(name=name, size=size) + for dim in dimensions + for name, size in dim.items() + ] + else: + raise NotImplementedError + + self.dims.extend(dims) + return self + + def add_coordinate(self, *names: str) -> VariableBuilder: + """Add a coordinate to the variable.""" + if self.coords is None: + self.coords = [] + + self.coords.extend(names) + return self + + def set_format(self, format_: str | dict[str, str]) -> VariableBuilder: + """Set variable format.""" + if isinstance(format_, dict): + fields = [{"name": n, "format": f} for n, f in format_.items()] + format_ = {"fields": fields} + + self.dtype = format_ + return self + + def set_chunks(self, chunks: list[int]) -> VariableBuilder: + """Set variable chunks.""" + if self.meta_dict is None: + self.meta_dict = {} + + self.meta_dict["chunkGrid"] = {"configuration": {"chunkShape": chunks}} + return self + + def set_units(self, units: dict[str, str]) -> VariableBuilder: + """Set variable units.""" + if self.meta_dict is None: + self.meta_dict = {} + + self.meta_dict["unitsV1"] = units + return self + + def add_attribute(self, key: str, value: Any) -> VariableBuilder: # noqa: ANN401 + """Add a user attribute to the variable metadata.""" + if self.meta_dict is None: + self.meta_dict = {} + + self.meta_dict["attributes"] = {key: value} + return self + + def build(self) -> Variable: + """Build the dataset model.""" + if self.chunks is not None and len(self.chunks) != len(self.dims): + msg = "Variable chunks must have same number of dimensions." + raise ValueError(msg) + + var_kwargs = {} + + if self.meta_dict is not None: + var_kwargs["metadata"] = VariableMetadata.model_validate(self.meta_dict) + + return Variable( + name=self.name, + long_name=self.long_name, + data_type=self.dtype, + dimensions=self.dims, + coordinates=self.coords, + compressor=self.compressor, + **var_kwargs, + ) + + +class DatasetBuilder: + """Dataset builder.""" + + def __init__(self) -> None: + """Initialize the builder.""" + self.variables = [] + self.name = None + self.metadata = None + + def set_name(self, name: str) -> DatasetBuilder: + """Set dataset name.""" + self.name = name + return self + + def add_variable(self, variable: Variable) -> DatasetBuilder: + """Add a variable to the dataset.""" + self.variables.append(variable) + return self + + def add_variables(self, variables: list[Variable]) -> DatasetBuilder: + """Add multiple variables to the dataset.""" + [self.add_variable(variable) for variable in variables] + return self + + def set_metadata(self, metadata: DatasetMetadata) -> DatasetBuilder: + """Add a metadata to the dataset.""" + self.metadata = metadata + return self + + def build(self) -> Dataset: + """Build the dataset model.""" + return Dataset(variables=self.variables, metadata=self.metadata) diff --git a/src/mdio/schemas/chunk_grid.py b/src/mdio/schemas/chunk_grid.py new file mode 100644 index 00000000..478f11cb --- /dev/null +++ b/src/mdio/schemas/chunk_grid.py @@ -0,0 +1,44 @@ +"""This module contains data models for Zarr's chunk grid.""" + +from __future__ import annotations + +from pydantic import Field + +from mdio.schemas.core import CamelCaseStrictModel + + +class RegularChunkShape(CamelCaseStrictModel): + """Represents regular chunk sizes along each dimension.""" + + chunk_shape: list[int] = Field( + ..., description="Lengths of the chunk along each dimension of the array." + ) + + +class RectilinearChunkShape(CamelCaseStrictModel): + """Represents irregular chunk sizes along each dimension.""" + + chunk_shape: list[list[int]] = Field( + ..., + description="Lengths of the chunk along each dimension of the array.", + ) + + +class RegularChunkGrid(CamelCaseStrictModel): + """Represents a rectangular and regularly spaced chunk grid.""" + + name: str = Field(default="regular", description="The name of the chunk grid.") + + configuration: RegularChunkShape = Field( + ..., description="Configuration of the regular chunk grid." + ) + + +class RectilinearChunkGrid(CamelCaseStrictModel): + """Represents a rectangular and irregularly spaced chunk grid.""" + + name: str = Field(default="rectilinear", description="The name of the chunk grid.") + + configuration: RectilinearChunkShape = Field( + ..., description="Configuration of the irregular chunk grid." + ) diff --git a/src/mdio/schemas/compressors.py b/src/mdio/schemas/compressors.py new file mode 100644 index 00000000..b550b98d --- /dev/null +++ b/src/mdio/schemas/compressors.py @@ -0,0 +1,159 @@ +"""This module contains a Pydantic model to parameterize compressors. + +Important Objects: + - Blosc: A Pydantic model that represents a Blosc compression setup. + - ZFP: Class that represents the ZFP compression model. +""" + +from __future__ import annotations + +from enum import IntEnum +from enum import StrEnum + +from pydantic import Field +from pydantic import model_validator + +from mdio.schemas.core import CamelCaseStrictModel + + +class BloscAlgorithm(StrEnum): + """Enum for Blosc algorithm options.""" + + BLOSCLZ = "blosclz" + LZ4 = "lz4" + LZ4HC = "lz4hc" + ZLIB = "zlib" + ZSTD = "zstd" + + +class BloscShuffle(IntEnum): + """Enum for Blosc shuffle options.""" + + NOSHUFFLE = 0 + SHUFFLE = 1 + BITSHUFFLE = 2 + AUTOSHUFFLE = -1 + + +class Blosc(CamelCaseStrictModel): + """Data Model for Blosc options.""" + + name: str = Field(default="blosc", description="Name of the compressor.") + algorithm: BloscAlgorithm = Field( + default=BloscAlgorithm.LZ4, + description="The Blosc compression algorithm to be used.", + ) + level: int = Field(default=5, ge=0, le=9, description="The compression level.") + shuffle: BloscShuffle = Field( + default=BloscShuffle.SHUFFLE, + description="The shuffle strategy to be applied before compression.", + ) + blocksize: int = Field( + default=0, + description="The size of the block to be used for compression.", + ) + + def make_instance(self): # noqa: ANN201 + """Translate parameters to compressor kwargs..""" + from zarr.codecs import Blosc as _Blosc + + return _Blosc( + cname=self.algorithm, + clevel=self.level, + shuffle=self.shuffle, + blocksize=self.blocksize, + ) + + +zfp_mode_map = { + "fixed_rate": 2, + "fixed_precision": 3, + "fixed_accuracy": 4, + "reversible": 5, +} + + +class ZFPMode(StrEnum): + """Enum for ZFP algorithm modes.""" + + FIXED_RATE = "fixed_rate" + FIXED_PRECISION = "fixed_precision" + FIXED_ACCURACY = "fixed_accuracy" + REVERSIBLE = "reversible" + + @property + def int_code(self) -> int: + """Return the integer code of ZFP mode.""" + return zfp_mode_map[self.value] + + +class ZFP(CamelCaseStrictModel): + """Data Model for ZFP options.""" + + name: str = Field(default="zfp", description="Name of the compressor.") + mode: ZFPMode = Field() + + tolerance: float | None = Field( + default=None, + description="Fixed accuracy in terms of absolute error tolerance.", + ) + + rate: float | None = Field( + default=None, + description="Fixed rate in terms of number of compressed bits per value.", + ) + + precision: int | None = Field( + default=None, + description="Fixed precision in terms of number of uncompressed bits per value.", + ) + + write_header: bool = Field( + default=True, + description="Encode array shape, scalar type, and compression parameters.", + ) + + @model_validator(mode="after") + def check_requirements(self) -> ZFP: + """Check if ZFP parameters make sense.""" + mode = self.mode + + # Check if reversible mode is provided without other parameters. + if mode == ZFPMode.REVERSIBLE and any( + getattr(self, key) is not None for key in ["tolerance", "rate", "precision"] + ): + msg = "Other fields must be None in REVERSIBLE mode" + raise ValueError(msg) + + if mode == ZFPMode.FIXED_ACCURACY and self.tolerance is None: + msg = "Tolerance required for FIXED_ACCURACY mode" + raise ValueError(msg) + + if mode == ZFPMode.FIXED_RATE and self.rate is None: + msg = "Rate required for FIXED_RATE mode" + raise ValueError(msg) + + if mode == ZFPMode.FIXED_PRECISION and self.precision is None: + msg = "Precision required for FIXED_PRECISION mode" + raise ValueError(msg) + + return self + + def make_instance(self): # noqa: ANN201 + """Translate parameters to compressor kwargs..""" + from zarr.codecs import ZFPY as _ZFPY + + return _ZFPY( + mode=self.mode.int_code, + tolerance=self.tolerance, + rate=self.rate, + precision=self.precision, + ) + + +class CompressorModel(CamelCaseStrictModel): + """Model representing compressor configuration.""" + + compressor: Blosc | ZFP | None = Field( + default=None, description="Compression settings." + ) diff --git a/src/mdio/schemas/core.py b/src/mdio/schemas/core.py new file mode 100644 index 00000000..34a09066 --- /dev/null +++ b/src/mdio/schemas/core.py @@ -0,0 +1,49 @@ +"""This module implements the core components of the MDIO schemas.""" + +from __future__ import annotations + +from typing import Any +from typing import get_type_hints + +from pydantic import BaseModel +from pydantic import ConfigDict +from pydantic.alias_generators import to_camel + + +def model_fields(model: type[BaseModel]) -> dict[str, tuple[Any, Any]]: + """Extract Pydantic BaseModel fields. + + Args: + model: (Type) The model object for which the fields will be extracted. + + Returns: + A dictionary containing the fields of the model along with + their corresponding types and default values. + + Example: + >>> class MyModel(BaseModel): + ... name: str + ... age: int = 0 + ... + >>> model_fields(MyModel) + {'name': (str, ), 'age': (int, 0)} + """ + annotations = get_type_hints(model) + + fields = {} + for field_name, field in model.model_fields.items(): + fields[field_name] = (annotations[field_name], field) + + return fields + + +class StrictModel(BaseModel): + """A model with forbidden extras.""" + + model_config = ConfigDict(extra="forbid", populate_by_name=True) + + +class CamelCaseStrictModel(StrictModel): + """A model with forbidden extras and camel case aliases.""" + + model_config = ConfigDict(alias_generator=to_camel) diff --git a/src/mdio/schemas/dimension.py b/src/mdio/schemas/dimension.py new file mode 100644 index 00000000..62185a39 --- /dev/null +++ b/src/mdio/schemas/dimension.py @@ -0,0 +1,12 @@ +"""Dimension schema.""" + +from pydantic import Field + +from mdio.schemas.core import CamelCaseStrictModel + + +class NamedDimension(CamelCaseStrictModel): + """Represents a single dimension with a name and size.""" + + name: str = Field(..., description="Unique identifier for the dimension.") + size: int = Field(..., gt=0, description="Total size of the dimension.") diff --git a/src/mdio/schemas/dtype.py b/src/mdio/schemas/dtype.py new file mode 100644 index 00000000..5c2427b0 --- /dev/null +++ b/src/mdio/schemas/dtype.py @@ -0,0 +1,55 @@ +"""Schemas for scalar types. + +We take booleans, unsigned and signed integers, floats, and +complex numbers from numpy data types and allow those. +""" + +from __future__ import annotations + +from enum import StrEnum + +from pydantic import Field + +from mdio.schemas.core import CamelCaseStrictModel + + +class ScalarType(StrEnum): + """Scalar array data type.""" + + BOOL = "bool" + INT8 = "int8" + INT16 = "int16" + INT32 = "int32" + INT64 = "int64" + UINT8 = "uint8" + UINT16 = "uint16" + UINT32 = "uint32" + UINT64 = "uint64" + FLOAT16 = "float16" + FLOAT32 = "float32" + FLOAT64 = "float64" + FLOAT128 = "float128" + COMPLEX64 = "complex64" + COMPLEX128 = "complex128" + COMPLEX256 = "complex256" + + +class StructuredField(CamelCaseStrictModel): + """Structured array field with name, format.""" + + format: ScalarType = Field(...) + name: str = Field(...) + + +class StructuredType(CamelCaseStrictModel): + """Structured array type with packed fields.""" + + fields: list[StructuredField] = Field() + + +class DataTypeModel(CamelCaseStrictModel): + """Structured array type with fields and total item size.""" + + data_type: ScalarType | StructuredType = Field( + ..., description="Type of the array." + ) diff --git a/src/mdio/schemas/metadata.py b/src/mdio/schemas/metadata.py new file mode 100644 index 00000000..dc2d6676 --- /dev/null +++ b/src/mdio/schemas/metadata.py @@ -0,0 +1,31 @@ +"""Metadata schemas and conventions.""" + +from typing import Any + +from pydantic import Field + +from mdio.schemas.chunk_grid import RectilinearChunkGrid +from mdio.schemas.chunk_grid import RegularChunkGrid +from mdio.schemas.core import CamelCaseStrictModel + + +class ChunkGridMetadata(CamelCaseStrictModel): + """Definition of chunk grid.""" + + chunk_grid: RegularChunkGrid | RectilinearChunkGrid | None = Field( + default=None, + description="Chunk grid specification for the array.", + ) + + +class VersionedMetadataConvention(CamelCaseStrictModel): + """Data model for versioned metadata convention.""" + + +class UserAttributes(CamelCaseStrictModel): + """User defined attributes as key/value pairs.""" + + attributes: dict[str, Any] | None = Field( + default=None, + description="User defined attributes as key/value pairs.", + ) diff --git a/src/mdio/schemas/units.py b/src/mdio/schemas/units.py new file mode 100644 index 00000000..6844b433 --- /dev/null +++ b/src/mdio/schemas/units.py @@ -0,0 +1,51 @@ +"""Common units for resource assessment data.""" + +from __future__ import annotations + +from enum import Enum +from enum import unique + +from pydantic import Field +from pydantic import create_model + +from mdio.schemas.core import CamelCaseStrictModel + + +@unique +class UnitEnum(str, Enum): + """An Enum representing units as strings, from pint.""" + + +def create_unit_model( + unit_enum: type[UnitEnum], + model_name: str, + quantity: str, + module: str, +) -> type[CamelCaseStrictModel]: + """Dynamically creates a pydantic model from a unit Enum. + + Args: + unit_enum: UnitEnum representing the units for a specific quantity. + model_name: The name of the model to be created. + quantity: String representing the quantity for which the unit model is created. + module: Name of the module in which the model is to be created. + This should be the `__name__` attribute of the module. + + Returns: + A Pydantic Model representing the unit model derived from the BaseModel. + + Example: + unit_enum = UnitEnum + model_name = "LengthUnitModel" + quantity = "length" + create_unit_model(unit_enum, model_name, quantity) + """ + fields = {quantity: (unit_enum, Field(..., description=f"Unit of {quantity}."))} + + return create_model( + model_name, + **fields, + __base__=CamelCaseStrictModel, + __doc__=f"Model representing units of {quantity}.", + __module__=module, + ) diff --git a/src/mdio/schemas/v0/__init__.py b/src/mdio/schemas/v0/__init__.py new file mode 100644 index 00000000..e74f484f --- /dev/null +++ b/src/mdio/schemas/v0/__init__.py @@ -0,0 +1,6 @@ +"""Schema specific to MDIO v0.""" + +from mdio.schemas.v0.dataset import DatasetModelV0 + + +__all__ = ["DatasetModelV0"] diff --git a/src/mdio/schemas/v0/dataset.py b/src/mdio/schemas/v0/dataset.py new file mode 100644 index 00000000..58c3ae72 --- /dev/null +++ b/src/mdio/schemas/v0/dataset.py @@ -0,0 +1,88 @@ +"""Dataset model for MDIO V0.""" + +from __future__ import annotations + +from pydantic import AwareDatetime +from pydantic import Field + +from mdio.schemas.base import BaseArray +from mdio.schemas.base import BaseDataset +from mdio.schemas.core import CamelCaseStrictModel +from mdio.schemas.core import StrictModel + + +class DimensionModelV0(CamelCaseStrictModel): + """Represents dimension schema for MDIO v0.""" + + name: str = Field(..., description="Name of the dimension.") + coords: list[int] = Field(..., description="Coordinate labels (ticks).") + + +class DatasetMetadataModelV0(StrictModel): + """Represents dataset attributes schema for MDIO v0.""" + + api_version: str = Field( + ..., + description="MDIO version.", + ) + + created: AwareDatetime = Field( + ..., + description="Creation time with TZ info.", + ) + + dimension: list[DimensionModelV0] = Field( + ..., + description="Dimensions.", + ) + + mean: float | None = Field( + default=None, + description="Mean value of the samples.", + ) + + # Statistical information + std: float | None = Field( + default=None, description="Standard deviation of the samples." + ) + + rms: float | None = Field( + default=None, description="Root mean squared value of the samples." + ) + + min: float | None = Field( + default=None, + description="Minimum value of the samples.", + ) + + max: float | None = Field( + default=None, + description="Maximum value of the samples.", + ) + + trace_count: int | None = Field( + default=None, description="Number of traces in the SEG-Y file." + ) + + +class VariableModelV0(BaseArray): + """Represents an MDIO v0 variable schema.""" + + +class DatasetModelV0(BaseDataset): + """Represents an MDIO v0 dataset schema.""" + + seismic: list[VariableModelV0] = Field( + ..., + description="Variable containing seismic.", + ) + + headers: list[VariableModelV0] = Field( + ..., + description="Variable containing headers.", + ) + + metadata: DatasetMetadataModelV0 = Field( + ..., + description="Dataset metadata.", + ) diff --git a/src/mdio/schemas/v1/__init__.py b/src/mdio/schemas/v1/__init__.py new file mode 100644 index 00000000..4f9bcdf3 --- /dev/null +++ b/src/mdio/schemas/v1/__init__.py @@ -0,0 +1,6 @@ +"""Schema specific to MDIO v1.""" + +from mdio.schemas.v1.dataset import Dataset + + +__all__ = ["Dataset"] diff --git a/src/mdio/schemas/v1/dataset.py b/src/mdio/schemas/v1/dataset.py new file mode 100644 index 00000000..f101093b --- /dev/null +++ b/src/mdio/schemas/v1/dataset.py @@ -0,0 +1,49 @@ +"""Dataset model for MDIO V1.""" + +from pydantic import AwareDatetime +from pydantic import Field +from pydantic import create_model + +from mdio.schemas.base import BaseDataset +from mdio.schemas.core import CamelCaseStrictModel +from mdio.schemas.core import model_fields +from mdio.schemas.metadata import UserAttributes +from mdio.schemas.v1.variable import Variable + + +class DatasetInfo(CamelCaseStrictModel): + """Contains information about a dataset.""" + + name: str = Field(..., description="Name or identifier for the dataset.") + + api_version: str = Field( + ..., + description="The version of the MDIO API that the dataset complies with.", + ) + + created_on: AwareDatetime = Field( + ..., + description=( + "The timestamp indicating when the dataset was first created, " + "including timezone information. Expressed in ISO 8601 format." + ), + ) + + +DatasetMetadata = create_model( + "DatasetMetadata", + **model_fields(DatasetInfo), + **model_fields(UserAttributes), + __base__=CamelCaseStrictModel, +) +DatasetMetadata.__doc__ = "The metadata about the dataset." + + +class Dataset(BaseDataset): + """Represents an MDIO v1 dataset. + + A dataset consists of variables and metadata. + """ + + variables: list[Variable] = Field(..., description="Variables in MDIO dataset") + metadata: DatasetMetadata = Field(..., description="Dataset metadata.") diff --git a/src/mdio/schemas/v1/stats.py b/src/mdio/schemas/v1/stats.py new file mode 100644 index 00000000..a8a319c0 --- /dev/null +++ b/src/mdio/schemas/v1/stats.py @@ -0,0 +1,72 @@ +"""Statistics schema for MDIO v1 arrays. + +This module provides two Histogram classes (CenteredBinHistogram and +EdgeDefinedHistogram),a summary statistics class, and a summary statistics +metadata class. + +SummaryStatistics: a class that represents the minimum summary statistics +of an array consisting of count, sum, sum of squares, min, max, and a histogram. + +SummaryStatisticsMetadata: represents metadata for statistics, with a field +for v1 of the stats. + +CenteredBinHistogram takes the center points of each bin in a histogram, +while EdgeDefinedHistogram takes the left edges and widths of each bin. +Both classes extend from the base class BaseHistogram, which represents +a histogram with count of each bin. +""" + +from __future__ import annotations + +from typing import TypeAlias + +from pydantic import Field + +from mdio.schemas.core import CamelCaseStrictModel +from mdio.schemas.metadata import VersionedMetadataConvention + + +class BaseHistogram(CamelCaseStrictModel): + """Represents a histogram with bin counts.""" + + counts: list[int] = Field(..., description="Count of each each bin.") + + +class CenteredBinHistogram(BaseHistogram): + """Class representing a center bin histogram.""" + + bin_centers: list[float | int] = Field(..., description="List of bin centers.") + + +class EdgeDefinedHistogram(BaseHistogram): + """A class representing an edge-defined histogram.""" + + bin_edges: list[float | int] = Field( + ..., description="The left edges of the histogram bins." + ) + bin_widths: list[float | int] = Field( + ..., description="The widths of the histogram bins." + ) + + +Histogram: TypeAlias = CenteredBinHistogram | EdgeDefinedHistogram + + +class SummaryStatistics(CamelCaseStrictModel): + """Data model for some statistics in MDIO v1 arrays.""" + + count: int = Field(..., description="The number of data points.") + sum: float = Field(..., description="The total of all data values.") + sum_squares: float = Field(..., description="The total of all data values squared.") + min: float = Field(..., description="The smallest value in the variable.") + max: float = Field(..., description="The largest value in the variable.") + histogram: Histogram = Field(..., description="Binned frequency distribution.") + + +class StatisticsMetadata(VersionedMetadataConvention): + """Data Model representing metadata for statistics.""" + + stats_v1: SummaryStatistics | list[SummaryStatistics] | None = Field( + default=None, + description="Minimal summary statistics.", + ) diff --git a/src/mdio/schemas/v1/units.py b/src/mdio/schemas/v1/units.py new file mode 100644 index 00000000..dd46296c --- /dev/null +++ b/src/mdio/schemas/v1/units.py @@ -0,0 +1,126 @@ +"""Unit schemas specific to MDIO v1.""" + +from __future__ import annotations + +from typing import TypeAlias + +from pint import UnitRegistry +from pydantic import Field + +from mdio.schemas.metadata import VersionedMetadataConvention +from mdio.schemas.units import UnitEnum +from mdio.schemas.units import create_unit_model + + +ureg = UnitRegistry() +ureg.default_format = "~C" # compact, abbreviated (symbol). + + +class LengthUnitEnum(UnitEnum): + """Enum class representing metric units of length.""" + + MILLIMETER = ureg.millimeter + CENTIMETER = ureg.centimeter + METER = ureg.meter + KILOMETER = ureg.kilometer + + INCH = ureg.inch + FOOT = ureg.foot + YARD = ureg.yard + MILE = ureg.mile + + +LengthUnitModel = create_unit_model( + LengthUnitEnum, "LengthUnitModel", "length", __name__ +) + + +class TimeUnitEnum(UnitEnum): + """Enum class representing units of time.""" + + NANOSECOND = ureg.nanosecond + MICROSECOND = ureg.microsecond + MILLISECOND = ureg.millisecond + SECOND = ureg.second + MINUTE = ureg.minute + HOUR = ureg.hour + DAY = ureg.day + + +TimeUnitModel = create_unit_model(TimeUnitEnum, "TimeUnitModel", "time", __name__) + + +class DensityUnitEnum(UnitEnum): + """Enum class representing units of density.""" + + GRAMS_PER_CC = ureg.gram / ureg.centimeter**3 + KILOGRAMS_PER_M3 = ureg.kilogram / ureg.meter**3 + POUNDS_PER_GAL = ureg.pounds / ureg.gallon + + +DensityUnitModel = create_unit_model( + DensityUnitEnum, "DensityUnitModel", "density", __name__ +) + + +class SpeedUnitEnum(UnitEnum): + """Enum class representing units of speed.""" + + METER_PER_SECOND = ureg.meter / ureg.second + FEET_PER_SECOND = ureg.feet / ureg.second + + +SpeedUnitModel = create_unit_model(SpeedUnitEnum, "SpeedUnitModel", "speed", __name__) + + +class AngleUnitEnum(UnitEnum): + """Enum class representing units of angle.""" + + DEGREES = ureg.degree + RADIANS = ureg.radian + + +AngleUnitModel = create_unit_model(AngleUnitEnum, "AngleUnitModel", "angle", __name__) + + +class FrequencyUnitEnum(UnitEnum): + """Enum class representing units of frequency.""" + + HERTZ = ureg.hertz + + +FrequencyUnitModel = create_unit_model( + FrequencyUnitEnum, "FrequencyUnitModel", "frequency", __name__ +) + + +class VoltageUnitEnum(UnitEnum): + """Enum class representing units of voltage.""" + + MICROVOLT = ureg.microvolt + MILLIVOLT = ureg.millivolt + VOLT = ureg.volt + + +VoltageUnitModel = create_unit_model( + VoltageUnitEnum, "VoltageUnitModel", "voltage", __name__ +) + + +# Composite model types +AllUnitModel: TypeAlias = ( + LengthUnitModel + | TimeUnitModel + | AngleUnitModel + | DensityUnitModel + | SpeedUnitModel + | FrequencyUnitModel + | VoltageUnitModel +) + + +# Versioned metadata conventions for units +class AllUnits(VersionedMetadataConvention): + """All Units.""" + + units_v1: AllUnitModel | list[AllUnitModel] | None = Field(default=None) diff --git a/src/mdio/schemas/v1/variable.py b/src/mdio/schemas/v1/variable.py new file mode 100644 index 00000000..22ad0bf3 --- /dev/null +++ b/src/mdio/schemas/v1/variable.py @@ -0,0 +1,55 @@ +"""This module defines `LabeledArray`, `Coordinate`, and `Variable`. + +`LabeledArray` is a basic array unit which includes basic properties like +name, dimension, data type, compressor etc. + +`Coordinate` extends the `LabeledArray` class, it represents the Coordinate +array in the MDIO format. It has dimensions which are fully defined and can hold +additional metadata. + +`Variable` is another class that extends the `LabeledArray`. It represents a +variable in MDIO format. It can have coordinates and can also hold metadata. +""" + +from pydantic import Field +from pydantic import create_model + +from mdio.schemas.base import NamedArray +from mdio.schemas.core import CamelCaseStrictModel +from mdio.schemas.core import model_fields +from mdio.schemas.dtype import ScalarType +from mdio.schemas.metadata import ChunkGridMetadata +from mdio.schemas.metadata import UserAttributes +from mdio.schemas.v1.stats import StatisticsMetadata +from mdio.schemas.v1.units import AllUnits + + +class Coordinate(NamedArray): + """An MDIO coordinate array with metadata.""" + + data_type: ScalarType = Field(..., description="Data type of coordinate.") + metadata: list[AllUnits | UserAttributes] | None = Field( + default=None, description="Coordinate metadata." + ) + + +VariableMetadata = create_model( + "VariableMetadata", + **model_fields(ChunkGridMetadata), + **model_fields(AllUnits), + **model_fields(StatisticsMetadata), + **model_fields(UserAttributes), + __base__=CamelCaseStrictModel, +) + + +class Variable(NamedArray): + """An MDIO variable that has coordinates and metadata.""" + + coordinates: list[Coordinate] | list[str] | None = Field( + default=None, + description="Coordinates of the MDIO variable dimensions.", + ) + metadata: VariableMetadata | None = Field( + default=None, description="Variable metadata." + ) From 1a1e7436b96041df944b058c976da7b753f1db73 Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Tue, 29 Apr 2025 14:43:21 -0500 Subject: [PATCH 04/19] Relocate quickstart notebook to tutorials directory --- docs/tutorials/creation.ipynb | 1225 ++++++++++++++++++++++----------- 1 file changed, 838 insertions(+), 387 deletions(-) diff --git a/docs/tutorials/creation.ipynb b/docs/tutorials/creation.ipynb index af4d3b65..d154c63f 100644 --- a/docs/tutorials/creation.ipynb +++ b/docs/tutorials/creation.ipynb @@ -1,396 +1,847 @@ { "cells": [ { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# Create an Empty MDIO\n", - "\n", - "```{article-info}\n", - ":author: Altay Sansal\n", - ":date: \"{sub-ref}`today`\"\n", - ":read-time: \"{sub-ref}`wordcount-minutes` min read\"\n", - ":class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light\n", - "```\n", - "\n", - "Here we will create an empty MDIO file and populate its fields.\n", - "\n", - "```{warning}\n", - "For plotting, the notebook requires [Matplotlib](https://matplotlib.org/) as a dependency. Please install it before executing using\n", - "`pip install matplotlib` or `conda install matplotlib`.\n", - "```\n", - "\n", - "We first need to import the configuration classes and create function to be able to create the empty MDIO." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "ExecuteTime": { - "end_time": "2025-04-16T14:50:04.371422Z", - "start_time": "2025-04-16T14:50:04.368107Z" - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "\n", - "from mdio import Dimension\n", - "from mdio import Grid\n", - "from mdio import MDIOCreateConfig\n", - "from mdio import MDIOReader\n", - "from mdio import MDIOVariableConfig\n", - "from mdio import MDIOWriter\n", - "from mdio import create_empty\n", - "from mdio.converters.segy import get_compressor\n", - "from mdio.segy.compat import mdio_segy_spec" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## Setting Up Grid Dimensions and Variable(s)\n", - "\n", - "Let's try to create an MDIO file in 3D with known `inline`, `crossline`, and `sample`\n", - "dimensions. This is exactly like a 3D Post-Stack dataset.\n", - "\n", - "We will use the standard `chunked_012` access pattern. All variable names must start\n", - "with `chunked_*` for `MDIOReader` to be able to open them with any access pattern.\n", - "\n", - "We will also use an MDIO private utility function to get the compressor easily. The\n", - "compressor is fully customizable, but this function gives us ones available in SEG-Y\n", - "ingestion.\n", - "\n", - "If we want headers, we can also provide `header_dtype` which is a Numpy `dtype`. Again,\n", - "we will be using the standard one MDIO uses for ingesting SEG-Ys. (Similar to SEG-Y Rev1).\n", - "\n", - "At the end we create empty MDIO on local disk or cloud, based on the path string." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "ExecuteTime": { - "end_time": "2025-04-16T14:50:06.121450Z", - "start_time": "2025-04-16T14:50:06.002634Z" - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "grid = Grid(\n", - " dims=[\n", - " Dimension(name=\"inline\", coords=range(100, 300, 1)), # 100-300 with step 1\n", - " Dimension(name=\"crossline\", coords=range(1000, 1600, 2)), # 1000-1600 with step 2\n", - " Dimension(name=\"sample\", coords=range(0, 3000, 4)), # 0-3 seconds 4ms sample rate\n", - " ]\n", - ")\n", - "\n", - "compressor = get_compressor(lossless=True)\n", - "header_dtype = mdio_segy_spec().trace.header.dtype\n", - "variable = MDIOVariableConfig(\n", - " name=\"chunked_012\",\n", - " dtype=\"float32\",\n", - " chunks=(128, 128, 128),\n", - " compressors=compressor,\n", - " header_dtype=header_dtype,\n", - ")\n", - "\n", - "create_conf = MDIOCreateConfig(path=\"demo.mdio\", grid=grid, variables=[variable])\n", - "create_empty(config=create_conf);" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Populating the MDIO\n", - "\n", - "Once empty MDIO is created, you can populate it with sample data, header data,\n", - "metadata, and statistics. The `live_mask` is automatically flipped to 1 after\n", - "every write. However, the consistency of the `live_mask` is up to the user. If\n", - "not populated correctly, at read time, traces may be skipped.\n", - "\n", - "We will read the usual stats and as you can see they're all empty. Text header\n", - "and binary header are only required if we are going to export this back to SEG-Y,\n", - "and can be modified. We can edit these if necessary using the writer." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "ExecuteTime": { - "end_time": "2025-04-16T14:50:09.974442Z", - "start_time": "2025-04-16T14:50:09.951257Z" - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(['C00 ',\n", - " 'C01 ',\n", - " 'C02 ',\n", - " 'C03 ',\n", - " 'C04 '],\n", - " {},\n", - " {'rms': 0, 'min': 0, 'mean': 0, 'max': 0, 'std': 0})" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "writer = MDIOWriter(create_conf.path)\n", - "\n", - "# Truncate text header for display\n", - "writer.text_header[:5], writer.binary_header, writer.stats" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Updating File and Checking with `MDIOReader`.\n", - "\n", - "We write traces here, the headers are still empty. If you need the headers\n", - "populated, this is where they would be written to file as well.\n", - "\n", - "All the extra metadata we are writing is so that we can export back to SEG-Y\n", - "in the future. If that's not a requirement most of the metadata can be\n", - "omitted.\n", - "\n", - "If you already have an MDIO prior to this, all the metadata can be copied\n", - "over from the previous version." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "ExecuteTime": { - "end_time": "2025-04-16T14:50:12.498287Z", - "start_time": "2025-04-16T14:50:11.670230Z" - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "({'data_sample_format': 1,\n", - " 'sample_interval': 4,\n", - " 'samples_per_trace': 750,\n", - " 'segy_revision_major': 1,\n", - " 'segy_revision_minor': 0},\n", - " {'rms': 3, 'min': -4, 'mean': 12, 'max': 4, 'std': 5})" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sample_dim = writer.grid.select_dim(\"sample\")\n", - "sample_interval = int(sample_dim.coords[1] - sample_dim.coords[0])\n", - "num_samples = sample_dim.size\n", - "writer.binary_header = {\n", - " \"data_sample_format\": 1,\n", - " \"sample_interval\": sample_interval,\n", - " \"samples_per_trace\": num_samples,\n", - " \"segy_revision_major\": 1,\n", - " \"segy_revision_minor\": 0,\n", - "}\n", - "\n", - "# Write some values to the file\n", - "writer[:5] = 1\n", - "writer[5:10] = 2\n", - "writer[50:100] = 3\n", - "writer[150:175] = -1\n", - "\n", - "# Write some made up stats\n", - "writer.stats = {\"mean\": 12, \"std\": 5, \"rms\": 3, \"min\": -4, \"max\": 4}\n", - "\n", - "reader = MDIOReader(create_conf.path)\n", - "reader.binary_header, reader.stats" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": "Plot some of the data we populated:" - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "ExecuteTime": { - "end_time": "2025-04-16T14:50:14.256953Z", - "start_time": "2025-04-16T14:50:14.036094Z" - } - }, - "outputs": [ - { - "data": { - "image/png": "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+wEoWAh2AOADOtK1Zs2aXq/VqFFDDhw4YL4uU6aMeTx69KjXMfrc2aePKSkpXvszMjLMSFnnmOwiIyPNCFrPDUDwINgBgA/oiNikpCSv1/773/9KxYoV3QMpNJwlJia692t/OO07Fx8fb57r4/Hjx2Xbtm3uY1atWmVqA7UvHgBkx6hYAPCBgQMHym233WaaYh988EHZvHmzvP3222ZTISEhMmDAAHnhhRdMPzwNeiNGjDAjXTt06OCu4WvVqpW7CTc9PV369etnRswyIhZATgh2AOADDRs2lAULFpg+b2PGjDHBTac30XnpHM8884ykpqaa/ndaM9ekSRMzvUlUVJT7mPfff9+EuebNm5vRsJ06dTJz3wFATgh2AOAjf/zjH82WG62109CnW250BOzcuXN9dIYAbEMfOwAAAEsQ7AAAACzh12CnE2lqP5SiRYuaSTi1w3D2UWRNmzY1zRWe2xNPPOF1jE4f0LZtWylcuLD5nCFDhpgpAQAAAIKJX/vYrVmzRvr27WvCnQax5557Tlq2bGkWy9bFsB06IsyzD4oGOEdmZqYJdTptwPr16+XIkSPy6KOPmoW3dTQaAABAsPBrsNPRX55mzZplatx0zqY777zTK8jlNhnn8uXLTRBcuXKlWYqnXr16MnbsWBk6dKiMHj1aIiIifH4dAAAABUGB6mOny984o8A86XD/kiVLys0332ymDjhz5ox7ny6SXbt2ba/1FhMSEsxEnzt37szx+7BINgAAsFGBme5EZ1LXyTp1tnYNcI6HH37YzNSuk3F+++23piZO++F98sknZr8uhJ3TItrOvtz69j3//PM+vR4AAICgDXba1+67776TdevWeb2uE3c6tGZO11/UiTr37dsnVapUuazvpbV+gwYNcj/XGrvy5ctfwdkDAAD4X4FoitVZ1RcvXixffPGFXH/99Rc81lkfce/eveZR+97ltIi2sy8nLJINAABs5Ndg53K5TKjTZXd0YWtdcuditm/fbh615s5ZJHvHjh2SkpLiPmbFihUmrNWsWdOHZw8AAFCwhPm7+VWXyvn000/NXHZOn7jY2FiJjo42za26v02bNlKiRAnTx04X1tYRs3Xq1DHH6vQoGuC6desm48ePN58xfPhw89laMwcAABAs/FpjN3XqVDMSVich1ho4Z/vggw/Mfp2qRKcx0fBWvXp1efrpp80C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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots(1, 2, sharex=\"all\")\n", - "ax[0].imshow(writer.live_mask[:].T, aspect=\"auto\")\n", - "ax[1].imshow(reader[:, 150].T, aspect=\"auto\")\n", - "\n", - "ax[0].set_xlabel(\"inline\")\n", - "ax[0].set_ylabel(\"crossline\")\n", - "ax[1].set_xlabel(\"inline\")\n", - "ax[1].set_ylabel(\"sample\")\n", - "ax[0].set_title(\"Live Mask\")\n", - "ax[1].set_title(\"Middle Crossline\")\n", - "fig.tight_layout();" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Write to SEG-Y\n", - "\n", - "Because we populated all the fields necessary for SEG-Y output, we can call the\n", - "MDIO to SEGY converter and get a file out." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "ExecuteTime": { - "end_time": "2025-04-16T14:50:15.788812Z", - "start_time": "2025-04-16T14:50:15.009889Z" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Unwrapping MDIO Blocks: 100%|██████████| 7/7 [00:00<00:00, 10.55it/s]\n", - "Merging lines: 100%|██████████| 1/1 [00:00<00:00, 17.26it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[(0, 0, 0, 0, 0, 4, 4000, 750, 750, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0)]\n", - "[[1. 1. 1. ... 1. 1. 1.]\n", - " [1. 1. 1. ... 1. 1. 1.]\n", - " [1. 1. 1. ... 1. 1. 1.]\n", - " ...\n", - " [1. 1. 1. ... 1. 1. 1.]\n", - " [1. 1. 1. ... 1. 1. 1.]\n", - " [1. 1. 1. ... 1. 1. 1.]]\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "from segy import SegyFile\n", - "\n", - "from mdio import mdio_to_segy\n", - "\n", - "mdio_to_segy(\"demo.mdio\", \"demo.segy\")\n", - "segy = SegyFile(\"demo.segy\")\n", - "print(segy.binary_header)\n", - "print(segy.sample[:100])" - ] - }, - { - "cell_type": "markdown", "metadata": {}, + "cell_type": "raw", "source": [ - "## Copying an Existing MDIO without Data and Headers\n", - "\n", - "We also provide a `create_empty_like` function which allows us to create an MDIO file\n", - "with the same structure and basic metadata as an existing one.\n", - "\n", - "This will carry over:\n", - "* All access patterns in source MDIO\n", - "* Grid (shape, coordinates, dimensions, etc)\n", - "* Text Header\n", - "* Binary Header\n", - "\n", - "It will **NOT** carry over:\n", - "* Trace data\n", - "* Header data\n", - "* Statistics\n", - "* Live Mask" + "{\n", + " \"cells\": [\n", + " {\n", + " \"cell_type\": \"markdown\",\n", + " \"metadata\": {\n", + " \"pycharm\": {\n", + " \"name\": \"#%% md\\n\"\n", + " }\n", + " },\n", + " \"source\": [\n", + " \"# Create an Empty MDIO\\n\",\n", + " \"\\n\",\n", + " \"```{article-info}\\n\",\n", + " \":author: Altay Sansal\\n\",\n", + " \":date: \\\"{sub-ref}`today`\\\"\\n\",\n", + " \":read-time: \\\"{sub-ref}`wordcount-minutes` min read\\\"\\n\",\n", + " \":class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light\\n\",\n", + " \"```\\n\",\n", + " \"\\n\",\n", + " \"Here we will create an empty MDIO file and populate its fields.\\n\",\n", + " \"\\n\",\n", + " \"```{warning}\\n\",\n", + " \"For plotting, the notebook requires [Matplotlib](https://matplotlib.org/) as a dependency. Please install it before executing using\\n\",\n", + " \"`pip install matplotlib` or `conda install matplotlib`.\\n\",\n", + " \"```\\n\",\n", + " \"\\n\",\n", + " \"We first need to import the configuration classes and create function to be able to create the empty MDIO.\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 2,\n", + " \"metadata\": {\n", + " \"ExecuteTime\": {\n", + " \"end_time\": \"2025-04-16T14:50:04.371422Z\",\n", + " \"start_time\": \"2025-04-16T14:50:04.368107Z\"\n", + " },\n", + " \"pycharm\": {\n", + " \"name\": \"#%%\\n\"\n", + " }\n", + " },\n", + " \"outputs\": [],\n", + " \"source\": [\n", + " \"import matplotlib.pyplot as plt\\n\",\n", + " \"\\n\",\n", + " \"from mdio import Dimension\\n\",\n", + " \"from mdio import Grid\\n\",\n", + " \"from mdio import MDIOCreateConfig\\n\",\n", + " \"from mdio import MDIOReader\\n\",\n", + " \"from mdio import MDIOVariableConfig\\n\",\n", + " \"from mdio import MDIOWriter\\n\",\n", + " \"from mdio import create_empty\\n\",\n", + " \"from mdio.converters.segy import get_compressor\\n\",\n", + " \"from mdio.segy.compat import mdio_segy_spec\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"markdown\",\n", + " \"metadata\": {\n", + " \"pycharm\": {\n", + " \"name\": \"#%% md\\n\"\n", + " }\n", + " },\n", + " \"source\": [\n", + " \"## Setting Up Grid Dimensions and Variable(s)\\n\",\n", + " \"\\n\",\n", + " \"Let's try to create an MDIO file in 3D with known `inline`, `crossline`, and `sample`\\n\",\n", + " \"dimensions. This is exactly like a 3D Post-Stack dataset.\\n\",\n", + " \"\\n\",\n", + " \"We will use the standard `chunked_012` access pattern. All variable names must start\\n\",\n", + " \"with `chunked_*` for `MDIOReader` to be able to open them with any access pattern.\\n\",\n", + " \"\\n\",\n", + " \"We will also use an MDIO private utility function to get the compressor easily. The\\n\",\n", + " \"compressor is fully customizable, but this function gives us ones available in SEG-Y\\n\",\n", + " \"ingestion.\\n\",\n", + " \"\\n\",\n", + " \"If we want headers, we can also provide `header_dtype` which is a Numpy `dtype`. Again,\\n\",\n", + " \"we will be using the standard one MDIO uses for ingesting SEG-Ys. (Similar to SEG-Y Rev1).\\n\",\n", + " \"\\n\",\n", + " \"At the end we create empty MDIO on local disk or cloud, based on the path string.\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 3,\n", + " \"metadata\": {\n", + " \"ExecuteTime\": {\n", + " \"end_time\": \"2025-04-16T14:50:06.121450Z\",\n", + " \"start_time\": \"2025-04-16T14:50:06.002634Z\"\n", + " },\n", + " \"pycharm\": {\n", + " \"name\": \"#%%\\n\"\n", + " }\n", + " },\n", + " \"outputs\": [],\n", + " \"source\": [\n", + " \"grid = Grid(\\n\",\n", + " \" dims=[\\n\",\n", + " \" Dimension(name=\\\"inline\\\", coords=range(100, 300, 1)), # 100-300 with step 1\\n\",\n", + " \" Dimension(name=\\\"crossline\\\", coords=range(1000, 1600, 2)), # 1000-1600 with step 2\\n\",\n", + " \" Dimension(name=\\\"sample\\\", coords=range(0, 3000, 4)), # 0-3 seconds 4ms sample rate\\n\",\n", + " \" ]\\n\",\n", + " \")\\n\",\n", + " \"\\n\",\n", + " \"compressor = get_compressor(lossless=True)\\n\",\n", + " \"header_dtype = mdio_segy_spec().trace.header.dtype\\n\",\n", + " \"variable = MDIOVariableConfig(\\n\",\n", + " \" name=\\\"chunked_012\\\",\\n\",\n", + " \" dtype=\\\"float32\\\",\\n\",\n", + " \" chunks=(128, 128, 128),\\n\",\n", + " \" compressors=compressor,\\n\",\n", + " \" header_dtype=header_dtype,\\n\",\n", + " \")\\n\",\n", + " \"\\n\",\n", + " \"create_conf = MDIOCreateConfig(path=\\\"demo.mdio\\\", grid=grid, variables=[variable])\\n\",\n", + " \"create_empty(config=create_conf);\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"markdown\",\n", + " \"metadata\": {},\n", + " \"source\": [\n", + " \"## Populating the MDIO\\n\",\n", + " \"\\n\",\n", + " \"Once empty MDIO is created, you can populate it with sample data, header data,\\n\",\n", + " \"metadata, and statistics. The `live_mask` is automatically flipped to 1 after\\n\",\n", + " \"every write. However, the consistency of the `live_mask` is up to the user. If\\n\",\n", + " \"not populated correctly, at read time, traces may be skipped.\\n\",\n", + " \"\\n\",\n", + " \"We will read the usual stats and as you can see they're all empty. Text header\\n\",\n", + " \"and binary header are only required if we are going to export this back to SEG-Y,\\n\",\n", + " \"and can be modified. We can edit these if necessary using the writer.\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 4,\n", + " \"metadata\": {\n", + " \"ExecuteTime\": {\n", + " \"end_time\": \"2025-04-16T14:50:09.974442Z\",\n", + " \"start_time\": \"2025-04-16T14:50:09.951257Z\"\n", + " },\n", + " \"pycharm\": {\n", + " \"name\": \"#%%\\n\"\n", + " }\n", + " },\n", + " \"outputs\": [\n", + " {\n", + " \"data\": {\n", + " \"text/plain\": [\n", + " \"(['C00 ',\\n\",\n", + " \" 'C01 ',\\n\",\n", + " \" 'C02 ',\\n\",\n", + " \" 'C03 ',\\n\",\n", + " \" 'C04 '],\\n\",\n", + " \" {},\\n\",\n", + " \" {'rms': 0, 'min': 0, 'mean': 0, 'max': 0, 'std': 0})\"\n", + " ]\n", + " },\n", + " \"execution_count\": 4,\n", + " \"metadata\": {},\n", + " \"output_type\": \"execute_result\"\n", + " }\n", + " ],\n", + " \"source\": [\n", + " \"writer = MDIOWriter(create_conf.path)\\n\",\n", + " \"\\n\",\n", + " \"# Truncate text header for display\\n\",\n", + " \"writer.text_header[:5], writer.binary_header, writer.stats\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"markdown\",\n", + " \"metadata\": {},\n", + " \"source\": [\n", + " \"## Updating File and Checking with `MDIOReader`.\\n\",\n", + " \"\\n\",\n", + " \"We write traces here, the headers are still empty. If you need the headers\\n\",\n", + " \"populated, this is where they would be written to file as well.\\n\",\n", + " \"\\n\",\n", + " \"All the extra metadata we are writing is so that we can export back to SEG-Y\\n\",\n", + " \"in the future. If that's not a requirement most of the metadata can be\\n\",\n", + " \"omitted.\\n\",\n", + " \"\\n\",\n", + " \"If you already have an MDIO prior to this, all the metadata can be copied\\n\",\n", + " \"over from the previous version.\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 5,\n", + " \"metadata\": {\n", + " \"ExecuteTime\": {\n", + " \"end_time\": \"2025-04-16T14:50:12.498287Z\",\n", + " \"start_time\": \"2025-04-16T14:50:11.670230Z\"\n", + " },\n", + " \"pycharm\": {\n", + " \"name\": \"#%%\\n\"\n", + " }\n", + " },\n", + " \"outputs\": [\n", + " {\n", + " \"data\": {\n", + " \"text/plain\": [\n", + " \"({'data_sample_format': 1,\\n\",\n", + " \" 'sample_interval': 4,\\n\",\n", + " \" 'samples_per_trace': 750,\\n\",\n", + " \" 'segy_revision_major': 1,\\n\",\n", + " \" 'segy_revision_minor': 0},\\n\",\n", + " \" {'rms': 3, 'min': -4, 'mean': 12, 'max': 4, 'std': 5})\"\n", + " ]\n", + " },\n", + " \"execution_count\": 5,\n", + " \"metadata\": {},\n", + " \"output_type\": \"execute_result\"\n", + " }\n", + " ],\n", + " \"source\": [\n", + " \"sample_dim = writer.grid.select_dim(\\\"sample\\\")\\n\",\n", + " \"sample_interval = int(sample_dim.coords[1] - sample_dim.coords[0])\\n\",\n", + " \"num_samples = sample_dim.size\\n\",\n", + " \"writer.binary_header = {\\n\",\n", + " \" \\\"data_sample_format\\\": 1,\\n\",\n", + " \" \\\"sample_interval\\\": sample_interval,\\n\",\n", + " \" \\\"samples_per_trace\\\": num_samples,\\n\",\n", + " \" \\\"segy_revision_major\\\": 1,\\n\",\n", + " \" \\\"segy_revision_minor\\\": 0,\\n\",\n", + " \"}\\n\",\n", + " \"\\n\",\n", + " \"# Write some values to the file\\n\",\n", + " \"writer[:5] = 1\\n\",\n", + " \"writer[5:10] = 2\\n\",\n", + " \"writer[50:100] = 3\\n\",\n", + " \"writer[150:175] = -1\\n\",\n", + " \"\\n\",\n", + " \"# Write some made up stats\\n\",\n", + " \"writer.stats = {\\\"mean\\\": 12, \\\"std\\\": 5, \\\"rms\\\": 3, \\\"min\\\": -4, \\\"max\\\": 4}\\n\",\n", + " \"\\n\",\n", + " \"reader = MDIOReader(create_conf.path)\\n\",\n", + " \"reader.binary_header, reader.stats\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"markdown\",\n", + " \"metadata\": {},\n", + " \"source\": \"Plot some of the data we populated:\"\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 6,\n", + " \"metadata\": {\n", + " \"ExecuteTime\": {\n", + " \"end_time\": \"2025-04-16T14:50:14.256953Z\",\n", + " \"start_time\": \"2025-04-16T14:50:14.036094Z\"\n", + " }\n", + " },\n", + " \"outputs\": [\n", + " {\n", + " \"data\": {\n", + " \"image/png\": \"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+wEoWAh2AOADOtK1Zs2aXq/VqFFDDhw4YL4uU6aMeTx69KjXMfrc2aePKSkpXvszMjLMSFnnmOwiIyPNCFrPDUDwINgBgA/oiNikpCSv1/773/9KxYoV3QMpNJwlJia692t/OO07Fx8fb57r4/Hjx2Xbtm3uY1atWmVqA7UvHgBkx6hYAPCBgQMHym233WaaYh988EHZvHmzvP3222ZTISEhMmDAAHnhhRdMPzwNeiNGjDAjXTt06OCu4WvVqpW7CTc9PV369etnRswyIhZATgh2AOADDRs2lAULFpg+b2PGjDHBTac30XnpHM8884ykpqaa/ndaM9ekSRMzvUlUVJT7mPfff9+EuebNm5vRsJ06dTJz3wFATgh2AOAjf/zjH82WG62109CnW250BOzcuXN9dIYAbEMfOwAAAEsQ7AAAACzh12CnE2lqP5SiRYuaSTi1w3D2UWRNmzY1zRWe2xNPPOF1jE4f0LZtWylcuLD5nCFDhpgpAQAAAIKJX/vYrVmzRvr27WvCnQax5557Tlq2bGkWy9bFsB06IsyzD4oGOEdmZqYJdTptwPr16+XIkSPy6KOPmoW3dTQaAABAsPBrsNPRX55mzZplatx0zqY777zTK8jlNhnn8uXLTRBcuXKlWYqnXr16MnbsWBk6dKiMHj1aIiIifH4dAAAABUGB6mOny984o8A86XD/kiVLys0332ymDjhz5ox7ny6SXbt2ba/1FhMSEsxEnzt37szx+7BINgAAsFGBme5EZ1LXyTp1tnYNcI6HH37YzNSuk3F+++23piZO++F98sknZr8uhJ3TItrOvtz69j3//PM+vR4AAICgDXba1+67776TdevWeb2uE3c6tGZO11/UiTr37dsnVapUuazvpbV+gwYNcj/XGrvy5ctfwdkDAAD4X4FoitVZ1RcvXixffPGFXH/99Rc81lkfce/eveZR+97ltIi2sy8nLJINAABs5Ndg53K5TKjTZXd0YWtdcuditm/fbh615s5ZJHvHjh2SkpLiPmbFihUmrNWsWdOHZw8AAFCwhPm7+VWXyvn000/NXHZOn7jY2FiJjo42za26v02bNlKiRAnTx04X1tYRs3Xq1DHH6vQoGuC6desm48ePN58xfPhw89laMwcAABAs/FpjN3XqVDMSVich1ho4Z/vggw/Mfp2qRKcx0fBWvXp1efrpp80C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\",\n", + " \"text/plain\": [\n", + " \"
\"\n", + " ]\n", + " },\n", + " \"metadata\": {},\n", + " \"output_type\": \"display_data\"\n", + " }\n", + " ],\n", + " \"source\": [\n", + " \"fig, ax = plt.subplots(1, 2, sharex=\\\"all\\\")\\n\",\n", + " \"ax[0].imshow(writer.live_mask[:].T, aspect=\\\"auto\\\")\\n\",\n", + " \"ax[1].imshow(reader[:, 150].T, aspect=\\\"auto\\\")\\n\",\n", + " \"\\n\",\n", + " \"ax[0].set_xlabel(\\\"inline\\\")\\n\",\n", + " \"ax[0].set_ylabel(\\\"crossline\\\")\\n\",\n", + " \"ax[1].set_xlabel(\\\"inline\\\")\\n\",\n", + " \"ax[1].set_ylabel(\\\"sample\\\")\\n\",\n", + " \"ax[0].set_title(\\\"Live Mask\\\")\\n\",\n", + " \"ax[1].set_title(\\\"Middle Crossline\\\")\\n\",\n", + " \"fig.tight_layout();\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"markdown\",\n", + " \"metadata\": {},\n", + " \"source\": [\n", + " \"## Write to SEG-Y\\n\",\n", + " \"\\n\",\n", + " \"Because we populated all the fields necessary for SEG-Y output, we can call the\\n\",\n", + " \"MDIO to SEGY converter and get a file out.\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 7,\n", + " \"metadata\": {\n", + " \"ExecuteTime\": {\n", + " \"end_time\": \"2025-04-16T14:50:15.788812Z\",\n", + " \"start_time\": \"2025-04-16T14:50:15.009889Z\"\n", + " }\n", + " },\n", + " \"outputs\": [\n", + " {\n", + " \"name\": \"stderr\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"Unwrapping MDIO Blocks: 100%|██████████| 7/7 [00:00<00:00, 10.55it/s]\\n\",\n", + " \"Merging lines: 100%|██████████| 1/1 [00:00<00:00, 17.26it/s]\"\n", + " ]\n", + " },\n", + " {\n", + " \"name\": \"stdout\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"[(0, 0, 0, 0, 0, 4, 4000, 750, 750, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0)]\\n\",\n", + " \"[[1. 1. 1. ... 1. 1. 1.]\\n\",\n", + " \" [1. 1. 1. ... 1. 1. 1.]\\n\",\n", + " \" [1. 1. 1. ... 1. 1. 1.]\\n\",\n", + " \" ...\\n\",\n", + " \" [1. 1. 1. ... 1. 1. 1.]\\n\",\n", + " \" [1. 1. 1. ... 1. 1. 1.]\\n\",\n", + " \" [1. 1. 1. ... 1. 1. 1.]]\\n\"\n", + " ]\n", + " },\n", + " {\n", + " \"name\": \"stderr\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"\\n\"\n", + " ]\n", + " }\n", + " ],\n", + " \"source\": [\n", + " \"from segy import SegyFile\\n\",\n", + " \"\\n\",\n", + " \"from mdio import mdio_to_segy\\n\",\n", + " \"\\n\",\n", + " \"mdio_to_segy(\\\"demo.mdio\\\", \\\"demo.segy\\\")\\n\",\n", + " \"segy = SegyFile(\\\"demo.segy\\\")\\n\",\n", + " \"print(segy.binary_header)\\n\",\n", + " \"print(segy.sample[:100])\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"markdown\",\n", + " \"metadata\": {},\n", + " \"source\": [\n", + " \"## Copying an Existing MDIO without Data and Headers\\n\",\n", + " \"\\n\",\n", + " \"We also provide a `create_empty_like` function which allows us to create an MDIO file\\n\",\n", + " \"with the same structure and basic metadata as an existing one.\\n\",\n", + " \"\\n\",\n", + " \"This will carry over:\\n\",\n", + " \"* All access patterns in source MDIO\\n\",\n", + " \"* Grid (shape, coordinates, dimensions, etc)\\n\",\n", + " \"* Text Header\\n\",\n", + " \"* Binary Header\\n\",\n", + " \"\\n\",\n", + " \"It will **NOT** carry over:\\n\",\n", + " \"* Trace data\\n\",\n", + " \"* Header data\\n\",\n", + " \"* Statistics\\n\",\n", + " \"* Live Mask\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 8,\n", + " \"metadata\": {\n", + " \"ExecuteTime\": {\n", + " \"end_time\": \"2025-04-16T14:50:17.246513Z\",\n", + " \"start_time\": \"2025-04-16T14:50:17.111779Z\"\n", + " }\n", + " },\n", + " \"outputs\": [],\n", + " \"source\": [\n", + " \"from mdio import create_empty_like\\n\",\n", + " \"\\n\",\n", + " \"copy_path = \\\"copy_of_existing.mdio\\\"\\n\",\n", + " \"create_empty_like(create_conf.path, copy_path)\\n\",\n", + " \"\\n\",\n", + " \"copy_reader = MDIOReader(copy_path)\\n\",\n", + " \"assert copy_reader.shape == reader.shape\\n\",\n", + " \"assert copy_reader.binary_header == reader.binary_header\\n\",\n", + " \"assert copy_reader.stats != reader.stats\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": null,\n", + " \"metadata\": {},\n", + " \"outputs\": [],\n", + " \"source\": []\n", + " }\n", + " ],\n", + " \"metadata\": {\n", + " \"kernelspec\": {\n", + " \"display_name\": \"Python 3 (ipykernel)\",\n", + " \"language\": \"python\",\n", + " \"name\": \"python3\"\n", + " },\n", + " \"language_info\": {\n", + " \"codemirror_mode\": {\n", + " \"name\": \"ipython\",\n", + " \"version\": 3\n", + " },\n", + " \"file_extension\": \".py\",\n", + " \"mimetype\": \"text/x-python\",\n", + " \"name\": \"python\",\n", + " \"nbconvert_exporter\": \"python\",\n", + " \"pygments_lexer\": \"ipython3\",\n", + " \"version\": \"3.12.3\"\n", + " },\n", + " \"widgets\": {\n", + " \"application/vnd.jupyter.widget-state+json\": {\n", + " \"state\": {\n", + " \"104c0d4e90244ebc959e51a58794dcf4\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {\n", + " \"display\": \"inline-flex\",\n", + " \"flex_flow\": \"row wrap\",\n", + " \"width\": \"100%\"\n", + " }\n", + " },\n", + " \"1c0f5b458ee1401eaa8de63c65802073\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLStyleModel\",\n", + " \"state\": {\n", + " \"description_width\": \"\",\n", + " \"font_size\": null,\n", + " \"text_color\": null\n", + " }\n", + " },\n", + " \"21b25dd6080d42368afc06770d5e1755\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLModel\",\n", + " \"state\": {\n", + " \"layout\": \"IPY_MODEL_35fb49026dac479eba87217c2f6bcb9a\",\n", + " \"style\": \"IPY_MODEL_3ab3e27c83aa423d9ecdac94e576f0fe\",\n", + " \"value\": \"Ingesting SEG-Y in 6 chunks: 100%\"\n", + " }\n", + " },\n", + " \"2693aae410f04e7587f0400b5eef1079\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"ProgressStyleModel\",\n", + " \"state\": {\n", + " \"description_width\": \"\"\n", + " }\n", + " },\n", + " \"318aea09479a479981dcfa29bc856c67\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"ProgressStyleModel\",\n", + " \"state\": {\n", + " \"description_width\": \"\"\n", + " }\n", + " },\n", + " \"35fb49026dac479eba87217c2f6bcb9a\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {}\n", + " },\n", + " \"3ab3e27c83aa423d9ecdac94e576f0fe\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLStyleModel\",\n", + " \"state\": {\n", + " \"description_width\": \"\",\n", + " \"font_size\": null,\n", + " \"text_color\": null\n", + " }\n", + " },\n", + " \"420b4a9492c54eb48d7779f38a09fd20\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {\n", + " \"flex\": \"2\"\n", + " }\n", + " },\n", + " \"42afe4fae9dd4bc4a341a231cf7a9c32\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {}\n", + " },\n", + " \"4df685a95de542ffab6f265df89b8949\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLStyleModel\",\n", + " \"state\": {\n", + " \"description_width\": \"\",\n", + " \"font_size\": null,\n", + " \"text_color\": null\n", + " }\n", + " },\n", + " \"58eaddb54c8840da83d1f6503d6ba64f\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {}\n", + " },\n", + " \"5b3e72b71f304230bc36bb91f9c173be\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLStyleModel\",\n", + " \"state\": {\n", + " \"description_width\": \"\",\n", + " \"font_size\": null,\n", + " \"text_color\": null\n", + " }\n", + " },\n", + " \"5c1fab0ccc7e42c69c2b663b67ca9e3c\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {}\n", + " },\n", + " \"63a54817ae8b4c8d85b30d8c97e7ed0d\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HBoxModel\",\n", + " \"state\": {\n", + " \"children\": [\n", + " \"IPY_MODEL_e170d60a55a14c489d32b101293a9d33\",\n", + " \"IPY_MODEL_662ad93cf7b3470f8e197350441f09ca\",\n", + " \"IPY_MODEL_ac4abab2367e461e956e4e0edb27be44\"\n", + " ],\n", + " \"layout\": \"IPY_MODEL_c59d6fe969a04f4da332ae2a6fdb9c77\"\n", + " }\n", + " },\n", + " \"63f87a2410ba47d38ad9f55a81357a29\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLModel\",\n", + " \"state\": {\n", + " \"layout\": \"IPY_MODEL_ca48140488574a28a7469552441560e4\",\n", + " \"style\": \"IPY_MODEL_ae2037efb9cc459e84bcc28ca7243437\",\n", + " \"value\": \" 2/2 [00:03<00:00, 3.01s/block]\"\n", + " }\n", + " },\n", + " \"64eb2b9c8a094a1ea5f1991e5f09f5d9\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {}\n", + " },\n", + " \"662ad93cf7b3470f8e197350441f09ca\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"FloatProgressModel\",\n", + " \"state\": {\n", + " \"bar_style\": \"success\",\n", + " \"layout\": \"IPY_MODEL_420b4a9492c54eb48d7779f38a09fd20\",\n", + " \"max\": 1,\n", + " \"style\": \"IPY_MODEL_d16e93f72f3d4aeda2f5deee87e9754f\",\n", + " \"value\": 1\n", + " }\n", + " },\n", + " \"74283969ff5446c89bb83b00a70226cf\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLModel\",\n", + " \"state\": {\n", + " \"layout\": \"IPY_MODEL_5c1fab0ccc7e42c69c2b663b67ca9e3c\",\n", + " \"style\": \"IPY_MODEL_1c0f5b458ee1401eaa8de63c65802073\",\n", + " \"value\": \" 6/6 [00:09<00:00, 2.48s/block]\"\n", + " }\n", + " },\n", + " \"75cf0c1ed25e47aab20b060f3bb44fb8\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HBoxModel\",\n", + " \"state\": {\n", + " \"children\": [\n", + " \"IPY_MODEL_21b25dd6080d42368afc06770d5e1755\",\n", + " \"IPY_MODEL_c33f32b62a204ef094f67b10f8adbdc1\",\n", + " \"IPY_MODEL_74283969ff5446c89bb83b00a70226cf\"\n", + " ],\n", + " \"layout\": \"IPY_MODEL_91df4ac76fd744539d4237d6099f34a5\"\n", + " }\n", + " },\n", + " \"7ff32d7deac14f21ab0f0939fe09e440\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"ProgressStyleModel\",\n", + " \"state\": {\n", + " \"description_width\": \"\"\n", + " }\n", + " },\n", + " \"91df4ac76fd744539d4237d6099f34a5\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {\n", + " \"display\": \"inline-flex\",\n", + " \"flex_flow\": \"row wrap\",\n", + " \"width\": \"100%\"\n", + " }\n", + " },\n", + " \"981634b52a7a4ffdae6186061c0b6482\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HBoxModel\",\n", + " \"state\": {\n", + " \"children\": [\n", + " \"IPY_MODEL_f65266f861cf40ef84e9ec74a8e0b44c\",\n", + " \"IPY_MODEL_9aaf514a5035413d8cbbad58aa0221f4\",\n", + " \"IPY_MODEL_63f87a2410ba47d38ad9f55a81357a29\"\n", + " ],\n", + " \"layout\": \"IPY_MODEL_104c0d4e90244ebc959e51a58794dcf4\"\n", + " }\n", + " },\n", + " \"9aaf514a5035413d8cbbad58aa0221f4\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"FloatProgressModel\",\n", + " \"state\": {\n", + " \"bar_style\": \"success\",\n", + " \"layout\": \"IPY_MODEL_b25523a221fd4b5e9211d07ef39cccf5\",\n", + " \"max\": 2,\n", + " \"style\": \"IPY_MODEL_318aea09479a479981dcfa29bc856c67\",\n", + " \"value\": 2\n", + " }\n", + " },\n", + " \"9fe5348964cd4f7880bcd33204bbc7a2\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {}\n", + " },\n", + " \"a03d238db31145b881a1be478f9eb72f\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLStyleModel\",\n", + " \"state\": {\n", + " \"description_width\": \"\",\n", + " \"font_size\": null,\n", + " \"text_color\": null\n", + " }\n", + " },\n", + " \"a6aabcd2e57348a49bb59477f6a9fd90\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"FloatProgressModel\",\n", + " \"state\": {\n", + " \"bar_style\": \"success\",\n", + " \"layout\": \"IPY_MODEL_cfb02c9c7447491ca00bbb6acd99bb79\",\n", + " \"max\": 26,\n", + " \"style\": \"IPY_MODEL_7ff32d7deac14f21ab0f0939fe09e440\",\n", + " \"value\": 26\n", + " }\n", + " },\n", + " \"ac4abab2367e461e956e4e0edb27be44\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLModel\",\n", + " \"state\": {\n", + " \"layout\": \"IPY_MODEL_58eaddb54c8840da83d1f6503d6ba64f\",\n", + " \"style\": \"IPY_MODEL_a03d238db31145b881a1be478f9eb72f\",\n", + " \"value\": \" 3/? [00:00<00:00, 8.29block/s]\"\n", + " }\n", + " },\n", + " \"ae2037efb9cc459e84bcc28ca7243437\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLStyleModel\",\n", + " \"state\": {\n", + " \"description_width\": \"\",\n", + " \"font_size\": null,\n", + " \"text_color\": null\n", + " }\n", + " },\n", + " \"b25523a221fd4b5e9211d07ef39cccf5\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {\n", + " \"flex\": \"2\"\n", + " }\n", + " },\n", + " \"b9810ee38bbe43f4bba100e53379be65\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLModel\",\n", + " \"state\": {\n", + " \"layout\": \"IPY_MODEL_42afe4fae9dd4bc4a341a231cf7a9c32\",\n", + " \"style\": \"IPY_MODEL_fdcea609ee7349629604217b625371d3\",\n", + " \"value\": \" 26/26 [00:01<00:00, 18.92block/s]\"\n", + " }\n", + " },\n", + " \"c33f32b62a204ef094f67b10f8adbdc1\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"FloatProgressModel\",\n", + " \"state\": {\n", + " \"bar_style\": \"success\",\n", + " \"layout\": \"IPY_MODEL_d23d88490a1b4941b8ca228b7d4a39cb\",\n", + " \"max\": 6,\n", + " \"style\": \"IPY_MODEL_2693aae410f04e7587f0400b5eef1079\",\n", + " \"value\": 6\n", + " }\n", + " },\n", + " \"c59d6fe969a04f4da332ae2a6fdb9c77\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {\n", + " \"display\": \"inline-flex\",\n", + " \"flex_flow\": \"row wrap\",\n", + " \"width\": \"100%\"\n", + " }\n", + " },\n", + " \"ca48140488574a28a7469552441560e4\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {}\n", + " },\n", + " \"cfb02c9c7447491ca00bbb6acd99bb79\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {\n", + " \"flex\": \"2\"\n", + " }\n", + " },\n", + " \"d16e93f72f3d4aeda2f5deee87e9754f\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"ProgressStyleModel\",\n", + " \"state\": {\n", + " \"description_width\": \"\"\n", + " }\n", + " },\n", + " \"d23d88490a1b4941b8ca228b7d4a39cb\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {\n", + " \"flex\": \"2\"\n", + " }\n", + " },\n", + " \"d565a20d37e84ed0a1195e9a90154960\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HBoxModel\",\n", + " \"state\": {\n", + " \"children\": [\n", + " \"IPY_MODEL_db696e15587c4a54b82886b3eb5a0c96\",\n", + " \"IPY_MODEL_a6aabcd2e57348a49bb59477f6a9fd90\",\n", + " \"IPY_MODEL_b9810ee38bbe43f4bba100e53379be65\"\n", + " ],\n", + " \"layout\": \"IPY_MODEL_eab4b060672b4dd5a73ca7bb8f782cd2\"\n", + " }\n", + " },\n", + " \"db696e15587c4a54b82886b3eb5a0c96\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLModel\",\n", + " \"state\": {\n", + " \"layout\": \"IPY_MODEL_64eb2b9c8a094a1ea5f1991e5f09f5d9\",\n", + " \"style\": \"IPY_MODEL_5b3e72b71f304230bc36bb91f9c173be\",\n", + " \"value\": \"Step 1 / 2 Writing Blocks: 100%\"\n", + " }\n", + " },\n", + " \"e170d60a55a14c489d32b101293a9d33\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLModel\",\n", + " \"state\": {\n", + " \"layout\": \"IPY_MODEL_9fe5348964cd4f7880bcd33204bbc7a2\",\n", + " \"style\": \"IPY_MODEL_4df685a95de542ffab6f265df89b8949\",\n", + " \"value\": \"Step 2 / 2 Concat Blocks: \"\n", + " }\n", + " },\n", + " \"e66368cda8124001b16459a0634029e2\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLStyleModel\",\n", + " \"state\": {\n", + " \"description_width\": \"\",\n", + " \"font_size\": null,\n", + " \"text_color\": null\n", + " }\n", + " },\n", + " \"eab4b060672b4dd5a73ca7bb8f782cd2\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {\n", + " \"display\": \"inline-flex\",\n", + " \"flex_flow\": \"row wrap\",\n", + " \"width\": \"100%\"\n", + " }\n", + " },\n", + " \"f65266f861cf40ef84e9ec74a8e0b44c\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLModel\",\n", + " \"state\": {\n", + " \"layout\": \"IPY_MODEL_fff4199774534d9f982f03738fbb08e7\",\n", + " \"style\": \"IPY_MODEL_e66368cda8124001b16459a0634029e2\",\n", + " \"value\": \"Scanning SEG-Y for geometry attributes: 100%\"\n", + " }\n", + " },\n", + " \"fdcea609ee7349629604217b625371d3\": {\n", + " \"model_module\": \"@jupyter-widgets/controls\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"HTMLStyleModel\",\n", + " \"state\": {\n", + " \"description_width\": \"\",\n", + " \"font_size\": null,\n", + " \"text_color\": null\n", + " }\n", + " },\n", + " \"fff4199774534d9f982f03738fbb08e7\": {\n", + " \"model_module\": \"@jupyter-widgets/base\",\n", + " \"model_module_version\": \"2.0.0\",\n", + " \"model_name\": \"LayoutModel\",\n", + " \"state\": {}\n", + " }\n", + " },\n", + " \"version_major\": 2,\n", + " \"version_minor\": 0\n", + " }\n", + " }\n", + " },\n", + " \"nbformat\": 4,\n", + " \"nbformat_minor\": 4\n", + "}\n" ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "ExecuteTime": { - "end_time": "2025-04-16T14:50:17.246513Z", - "start_time": "2025-04-16T14:50:17.111779Z" - } - }, - "outputs": [], - "source": [ - "from mdio import create_empty_like\n", - "\n", - "copy_path = \"copy_of_existing.mdio\"\n", - "create_empty_like(create_conf.path, copy_path)\n", - "\n", - "copy_reader = MDIOReader(copy_path)\n", - "assert copy_reader.shape == reader.shape\n", - "assert copy_reader.binary_header == reader.binary_header\n", - "assert copy_reader.stats != reader.stats" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { From 3c8ea4dac89b261ea1002c1874b09e130ba06080 Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Tue, 29 Apr 2025 14:43:41 -0500 Subject: [PATCH 05/19] update docs dependencies --- docs/requirements.txt | 1 + uv.lock | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index c80a7d9d..cb04269c 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,3 +1,4 @@ +autodoc-pydantic==2.2.0 furo==2024.8.6 linkify-it-py==2.0.3 myst-nb==1.2.0 diff --git a/uv.lock b/uv.lock index 2e73c419..92ce6cdc 100644 --- a/uv.lock +++ b/uv.lock @@ -1922,7 +1922,7 @@ docs = [ { name = "furo", specifier = ">=2024.8.6" }, { name = "linkify-it-py", specifier = ">=2.0.3" }, { name = "myst-nb", specifier = ">=1.2.0" }, - { name = "sphinx", specifier = ">=8.1.3,<9" }, + { name = "sphinx", specifier = ">=8.2.3,<9" }, { name = "sphinx-autobuild", specifier = ">=2024.10.3" }, { name = "sphinx-click", specifier = ">=6.0.0,<7" }, { name = "sphinx-copybutton", specifier = ">=0.5.2,<0.6" }, From 53ecaa9346b2be03e08ec4b986b28865a429a31d Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Tue, 29 Apr 2025 14:43:58 -0500 Subject: [PATCH 06/19] add new docs --- docs/api_reference.md | 1 + docs/conf.py | 10 ++ docs/data_models/chunk_grids.md | 154 +++++++++++++++++++ docs/data_models/compressors.md | 100 ++++++++++++ docs/data_models/data_types.md | 259 ++++++++++++++++++++++++++++++++ docs/data_models/dimensions.md | 33 ++++ docs/data_models/index.md | 10 ++ docs/data_models/version_0.md | 55 +++++++ docs/data_models/version_1.md | 131 ++++++++++++++++ docs/index.md | 11 ++ 10 files changed, 764 insertions(+) create mode 100644 docs/data_models/chunk_grids.md create mode 100644 docs/data_models/compressors.md create mode 100644 docs/data_models/data_types.md create mode 100644 docs/data_models/dimensions.md create mode 100644 docs/data_models/index.md create mode 100644 docs/data_models/version_0.md create mode 100644 docs/data_models/version_1.md diff --git a/docs/api_reference.md b/docs/api_reference.md index 0ceba4f5..f2ce3639 100644 --- a/docs/api_reference.md +++ b/docs/api_reference.md @@ -71,4 +71,5 @@ and ```{eval-rst} .. automodule:: mdio.core.serialization :members: + :exclude-members: create_rechunk_plan, write_rechunked_values ``` diff --git a/docs/conf.py b/docs/conf.py index 89990324..aeb59636 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -17,6 +17,7 @@ "sphinx.ext.napoleon", "sphinx.ext.intersphinx", "sphinx.ext.autosummary", + "sphinxcontrib.autodoc_pydantic", "sphinx.ext.autosectionlabel", "sphinx_click", "sphinx_copybutton", @@ -38,6 +39,7 @@ intersphinx_mapping = { "python": ("https://docs.python.org/3", None), "numpy": ("https://numpy.org/doc/stable/", None), + "pydantic": ("https://docs.pydantic.dev/latest/", None), "zarr": ("https://zarr.readthedocs.io/en/stable/", None), } @@ -50,6 +52,14 @@ autoclass_content = "class" autosectionlabel_prefix_document = True +autodoc_pydantic_field_list_validators = False +autodoc_pydantic_field_swap_name_and_alias = True +autodoc_pydantic_field_show_alias = False +autodoc_pydantic_model_show_config_summary = False +autodoc_pydantic_model_show_validator_summary = False +autodoc_pydantic_model_show_validator_members = False +autodoc_pydantic_model_show_field_summary = False + html_theme = "furo" myst_number_code_blocks = ["python"] diff --git a/docs/data_models/chunk_grids.md b/docs/data_models/chunk_grids.md new file mode 100644 index 00000000..5f178a04 --- /dev/null +++ b/docs/data_models/chunk_grids.md @@ -0,0 +1,154 @@ +```{eval-rst} +:tocdepth: 3 +``` + +```{currentModule} mdio.schemas.chunk_grid + +``` + +# Chunk Grid Models + +```{article-info} +:author: Altay Sansal +:date: "{sub-ref}`today`" +:read-time: "{sub-ref}`wordcount-minutes` min read" +:class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light +``` + +The variables in MDIO data model can represent different types of chunk grids. +These grids are essential for managing multi-dimensional data arrays efficiently. +In this breakdown, we will explore four distinct data models within the MDIO schema, +each serving a specific purpose in data handling and organization. + +MDIO implements data models following the guidelines of the Zarr v3 spec and ZEPs: + +- [Zarr core specification (version 3)](https://zarr-specs.readthedocs.io/en/latest/v3/core/v3.0.html) +- [ZEP 1 — Zarr specification version 3](https://zarr.dev/zeps/accepted/ZEP0001.html) +- [ZEP 3 — Variable chunking](https://zarr.dev/zeps/draft/ZEP0003.html) + +## Regular Grid + +The regular grid models are designed to represent a rectangular and regularly +paced chunk grid. + +```{eval-rst} +.. autosummary:: + RegularChunkGrid + RegularChunkShape +``` + +For 1D array with `size = 31`{l=python}, we can divide it into 5 equally sized +chunks. Note that the last chunk will be truncated to match the size of the array. + +`{ "name": "regular", "configuration": { "chunkShape": [7] } }`{l=json} + +Using the above schema resulting array chunks will look like this: + +```bash + ←─ 7 ─→ ←─ 7 ─→ ←─ 7 ─→ ←─ 7 ─→ ↔ 3 +┌───────┬───────┬───────┬───────┬───┐ +└───────┴───────┴───────┴───────┴───┘ +``` + +For 2D array with shape `rows, cols = (7, 17)`{l=python}, we can divide it into 9 +equally sized chunks. + +`{ "name": "regular", "configuration": { "chunkShape": [3, 7] } }`{l=json} + +Using the above schema, the resulting 2D array chunks will look like below. +Note that the rows and columns are conceptual and visually not to scale. + +```bash + ←─ 7 ─→ ←─ 7 ─→ ↔ 3 +┌───────┬───────┬───┐ +│ ╎ ╎ │ ↑ +│ ╎ ╎ │ 3 +│ ╎ ╎ │ ↓ +├╶╶╶╶╶╶╶┼╶╶╶╶╶╶╶┼╶╶╶┤ +│ ╎ ╎ │ ↑ +│ ╎ ╎ │ 3 +│ ╎ ╎ │ ↓ +├╶╶╶╶╶╶╶┼╶╶╶╶╶╶╶┼╶╶╶┤ +│ ╎ ╎ │ ↕ 1 +└───────┴───────┴───┘ +``` + +## Rectilinear Grid + +The [RectilinearChunkGrid](RectilinearChunkGrid) model extends +the concept of chunk grids to accommodate rectangular and irregularly spaced chunks. +This model is useful in data structures where non-uniform chunk sizes are necessary. +[RectilinearChunkShape](RectilinearChunkShape) specifies the chunk sizes for each +dimension as a list allowing for irregular intervals. + +```{eval-rst} +.. autosummary:: + RectilinearChunkGrid + RectilinearChunkShape +``` + +:::{note} +It's important to ensure that the sum of the irregular spacings specified +in the `chunkShape` matches the size of the respective array dimension. +::: + +For 1D array with `size = 39`{l=python}, we can divide it into 5 irregular sized +chunks. + +`{ "name": "rectilinear", "configuration": { "chunkShape": [[10, 7, 5, 7, 10]] } }`{l=json} + +Using the above schema resulting array chunks will look like this: + +```bash + ←── 10 ──→ ←─ 7 ─→ ← 5 → ←─ 7 ─→ ←── 10 ──→ +┌──────────┬───────┬─────┬───────┬──────────┐ +└──────────┴───────┴─────┴───────┴──────────┘ +``` + +For 2D array with shape `rows, cols = (7, 25)`{l=python}, we can divide it into 12 +rectilinear (rectangular bur irregular) chunks. Note that the rows and columns are +conceptual and visually not to scale. + +`{ "name": "rectilinear", "configuration": { "chunkShape": [[3, 1, 3], [10, 5, 7, 3]] } }`{l=json} + +```bash + ←── 10 ──→ ← 5 → ←─ 7 ─→ ↔ 3 +┌──────────┬─────┬───────┬───┐ +│ ╎ ╎ ╎ │ ↑ +│ ╎ ╎ ╎ │ 3 +│ ╎ ╎ ╎ │ ↓ +├╶╶╶╶╶╶╶╶╶╶┼╶╶╶╶╶┼╶╶╶╶╶╶╶┼╶╶╶┤ +│ ╎ ╎ ╎ │ ↕ 1 +├╶╶╶╶╶╶╶╶╶╶┼╶╶╶╶╶┼╶╶╶╶╶╶╶┼╶╶╶┤ +│ ╎ ╎ ╎ │ ↑ +│ ╎ ╎ ╎ │ 3 +│ ╎ ╎ ╎ │ ↓ +└──────────┴─────┴───────┴───┘ +``` + +## Model Reference + +:::{dropdown} RegularChunkGrid +:animate: fade-in-slide-down + +```{eval-rst} +.. autopydantic_model:: RegularChunkGrid + +---------- + +.. autopydantic_model:: RegularChunkShape +``` + +::: +:::{dropdown} RectilinearChunkGrid +:animate: fade-in-slide-down + +```{eval-rst} +.. autopydantic_model:: RectilinearChunkGrid + +---------- + +.. autopydantic_model:: RectilinearChunkShape +``` + +::: diff --git a/docs/data_models/compressors.md b/docs/data_models/compressors.md new file mode 100644 index 00000000..17a1afd8 --- /dev/null +++ b/docs/data_models/compressors.md @@ -0,0 +1,100 @@ +```{eval-rst} +:tocdepth: 3 +``` + +```{currentModule} mdio.schemas.compressors + +``` + +# Compressors + +```{article-info} +:author: Altay Sansal +:date: "{sub-ref}`today`" +:read-time: "{sub-ref}`wordcount-minutes` min read" +:class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light +``` + +## Dataset Compression + +MDIO relies on [numcodecs] for data compression. We provide good defaults based +on opinionated and limited heuristics for each compressor for various energy datasets. +However, using these data models, the compression can be customized. + +[Numcodecs] is a project that a convenient interface to different compression +libraries. We selected the [Blosc] and [ZFP] compressors for lossless and lossy +compression of energy data. + +## Blosc + +A high-performance compressor optimized for binary data, combining fast compression +with a byte-shuffle filter for enhanced efficiency, particularly effective with +numerical arrays in multi-threaded environments. + +For more details about compression modes, see [Blosc Documentation]. + +```{eval-rst} +.. autosummary:: + Blosc +``` + +## ZFP + +ZFP is a compression algorithm tailored for floating-point and integer arrays, offering +lossy and lossless compression with customizable precision, well-suited for large +scientific datasets with a focus on balancing data fidelity and compression ratio. + +For more details about compression modes, see [ZFP Documentation]. + +```{eval-rst} +.. autosummary:: + ZFP +``` + +[numcodecs]: https://github.com/zarr-developers/numcodecs +[blosc]: https://github.com/Blosc/c-blosc +[blosc documentation]: https://www.blosc.org/python-blosc/python-blosc.html +[zfp]: https://github.com/LLNL/zfp +[zfp documentation]: https://computing.llnl.gov/projects/zfp + +## Model Reference + +::: +:::{dropdown} Blosc +:animate: fade-in-slide-down + +```{eval-rst} +.. autopydantic_model:: Blosc + +---------- + +.. autoclass:: BloscAlgorithm() + :members: + :undoc-members: + :member-order: bysource + +---------- + +.. autoclass:: BloscShuffle() + :members: + :undoc-members: + :member-order: bysource +``` + +::: + +:::{dropdown} ZFP +:animate: fade-in-slide-down + +```{eval-rst} +.. autopydantic_model:: ZFP + +---------- + +.. autoclass:: ZFPMode() + :members: + :undoc-members: + :member-order: bysource +``` + +::: diff --git a/docs/data_models/data_types.md b/docs/data_models/data_types.md new file mode 100644 index 00000000..b58ff535 --- /dev/null +++ b/docs/data_models/data_types.md @@ -0,0 +1,259 @@ +```{eval-rst} +:tocdepth: 3 +``` + +```{currentModule} mdio.schemas.dtype + +``` + +# Data Types + +```{article-info} +:author: Altay Sansal +:date: "{sub-ref}`today`" +:read-time: "{sub-ref}`wordcount-minutes` min read" +:class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light +``` + +## Scalar Type + +Scalar types are used to represent numbers and boolean values in MDIO arrays. + +```{eval-rst} +.. autosummary:: + :nosignatures: + + ScalarType +``` + +These numbers can be integers (whole numbers without a decimal +point, like 1, -15, 204), floating-point numbers (numbers with a fractional part, +like 3.14, -0.001, 2.71828) in various 16-64 bit formats like `float32` etc. + +It is important to choose the right type for the content of the data for type safety, +memory efficiency, performance, and accuracy of the numbers represented. Most scientific +datasets are `float16`, `float32`, or `float64` values. However, there are many good +use cases for integer and complex values as well. + +The [`ScalarType`](#ScalarType)s MDIO supports can be viewed below with the tabs. + +:::::{tab-set} + +::::{tab-item} Boolean +:::{table} +:widths: auto +:align: center + +| Data Type | Options | Example Value | +| --------- | --------------- | ------------- | +| `bool` | `False`, `True` | `True` | + +::: +:::: + +::::{tab-item} Integers +:::{table} +:widths: auto +:align: center + +| Data Type | Range | Example Value | +| --------- | ----------------------------------------------------------- | ------------- | +| `int8` | `-128` to `127` | `45` | +| `int16` | `-32,768` to `32,767` | `1,234` | +| `int32` | `-2,147,483,648` to `2,147,483,647` | `2,024` | +| `int64` | `-9,223,372,036,854,775,808` to `9,223,372,036,854,775,807` | `987,654,321` | + +::: +:::: + +::::{tab-item} Unsigned Integers +:::{table} +:widths: auto +:align: center + +| Data Type | Range | Example Value | +| --------- | ----------------------------------- | --------------- | +| `uint8` | `0` to `255` | `200` | +| `uint16` | `0` to `65,535` | `50,000` | +| `uint32` | `0` to `4,294,967,295` | `3,000,000` | +| `uint64` | `0` to `18,446,744,073,709,551,615` | `5,000,000,000` | + +::: +:::: + +::::{tab-item} Floating Point +:::{table} +:widths: auto +:align: center + +| Data Type | Range | Example Value | +| --------- | ------------------------------------------------------- | -------------------- | +| `float16` | `-65,504` to `65,504` | `10.10` | +| `float32` | `-3.4028235e+38` to `3.4028235e+38` | `0.1234567` | +| `float64` | `-1.7976931348623157e+308` to `1.7976931348623157e+308` | `3.1415926535897932` | + +::: + +**Precision** + +- `float16`: 2 decimal places +- `float32`: 7 decimal places +- `float32`: 16 decimal places + +:::: + +::::{tab-item} Complex Numbers +:::{table} +:widths: auto +:align: center + +| Data Type | Range | Example Value | +| ------------ | ------------------------------------------------------- | ------------------ | +| `complex64` | `-3.4028235e+38` to `3.4028235e+38` | `3.14+2.71j` | +| `complex128` | `-1.7976931348623157e+308` to `1.7976931348623157e+308` | `2.71828+3.14159j` | + +::: +Ranges are for both real and imaginary parts. +:::: + +::::: + +## Structured Type + +Structured data type organizes and stores data in a fixed arrangement, allowing memory +efficient access and manipulation. + +```{eval-rst} +.. autosummary:: + :nosignatures: + + StructuredType + StructuredField +``` + +Structured data types are an essential component in handling complex data structures, +particularly in specialized domains like seismic data processing for subsurface +imaging applications. These data types allow for the organization of heterogeneous +data into a single, structured format. + +They are designed to be memory-efficient, which is vital for handling large seismic +datasets. Structured data types are adaptable, allowing for the addition or +modification of fields. + +A [`StructuredType`](#StructuredType) consists of [`StructuredField`](#StructuredField)s. +Fields can be different [numeric types](#numeric-types), and each represent a specific +attribute of the seismic data, like coordinate, line numbers, and time stamps. + +Each [`StructuredField`](#StructuredField) must specify a `name` and a data format +(`format`). + +All the structured fields will be packed and there will be no gaps between them. + +## Examples + +The table below illustrate [ScalarType](#ScalarType) ranges and shows an example each +type. + +Variable `foo` with type `float32`. + +```json +{ + "name": "foo", + "dataType": "float32", + "dimensions": ["x", "y"] +} +``` + +Variable `bar` with type `uint8`. + +```json +{ + "name": "bar", + "dataType": "uint8", + "dimensions": ["x", "y"] +} +``` + +Below are a couple examples of [StructuredType](#StructuredType) with varying lengths. + +We can specify a variable named `headers` that holds a 32-byte struct with +four `int32` values. + +```json +{ + "name": "headers", + "dataType": { + "fields": [ + { "name": "cdp-x", "format": "int32" }, + { "name": "cdp-y", "format": "int32" }, + { "name": "inline", "format": "int32" }, + { "name": "crossline", "format": "int32" } + ] + }, + "dimensions": ["inline", "crossline"] +} +``` + +This will yield an in-memory or on-disk struct that looks like this (for each element): + +```bash + ←─ 4 ─→ ←─ 4 ─→ ←─ 4 ─→ ←─ 4 ─→ = 16-bytes +┌───────┬───────┬───────┬───────┐ +│ int32 ╎ int32 ╎ int32 ╎ int32 │ ⋯ (next sample) +└───────┴───────┴───────┴───────┘ + └→ cdp-x └→ cdp-y └→ inline └→crossline +``` + +The below example shows mixing different data types. + +```json +{ + "name": "headers", + "dataType": { + "fields": [ + { "name": "cdp", "format": "uint32" }, + { "name": "offset", "format": "int16" }, + { "name": "cdp-x", "format": "float64" }, + { "name": "cdp-y", "format": "float64" } + ] + }, + "dimensions": ["inline", "crossline"] +} +``` + +This will yield an in-memory or on-disk struct that looks like this (for each element): + +```bash + ←── 4 ──→ ← 2 → ←─── 8 ───→ ←─── 8 ───→ = 24-bytes +┌─────────┬─────┬───────────┬───────────┐ +│ int32 ╎int16╎ float64 ╎ float64 │ ⋯ (next sample) +└─────────┴─────┴───────────┴───────────┘ + └→ cdp └→ offset └→ cdp-x └→ cdp-y +``` + +## Model Reference + +:::{dropdown} Scalar Types +:animate: fade-in-slide-down + +```{eval-rst} +.. autoclass:: ScalarType() + :members: + :undoc-members: + :member-order: bysource +``` + +::: + +:::{dropdown} Structured Type +:animate: fade-in-slide-down + +```{eval-rst} +.. autopydantic_model:: StructuredType + +---------- + +.. autopydantic_model:: StructuredField +``` + +::: diff --git a/docs/data_models/dimensions.md b/docs/data_models/dimensions.md new file mode 100644 index 00000000..c04b9206 --- /dev/null +++ b/docs/data_models/dimensions.md @@ -0,0 +1,33 @@ +```{eval-rst} +:tocdepth: 3 +``` + +```{currentModule} mdio.schemas.dimension + +``` + +# Dimensions + +```{article-info} +:author: Altay Sansal +:date: "{sub-ref}`today`" +:read-time: "{sub-ref}`wordcount-minutes` min read" +:class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light +``` + +## Intro + +```{eval-rst} +.. autosummary:: NamedDimension +``` + +## Reference + +:::{dropdown} Dimension +:open: + +```{eval-rst} +.. autopydantic_model:: NamedDimension +``` + +::: diff --git a/docs/data_models/index.md b/docs/data_models/index.md new file mode 100644 index 00000000..191f937b --- /dev/null +++ b/docs/data_models/index.md @@ -0,0 +1,10 @@ +# Dataset Models + +This section contains the data models for the MDIO format. + +```{toctree} +:maxdepth: 2 + +version_0 +version_1 +``` diff --git a/docs/data_models/version_0.md b/docs/data_models/version_0.md new file mode 100644 index 00000000..bac21ff6 --- /dev/null +++ b/docs/data_models/version_0.md @@ -0,0 +1,55 @@ +```{eval-rst} +:tocdepth: 3 +``` + +```{currentModule} mdio.schemas.v0.dataset + +``` + +# MDIO v0 + +```{article-info} +:author: Altay Sansal +:date: "{sub-ref}`today`" +:read-time: "{sub-ref}`wordcount-minutes` min read" +:class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light +``` + +## Intro + +```{eval-rst} +.. autosummary:: + + DatasetModelV0 + VariableModelV0 + DatasetMetadataModelV0 + DimensionModelV0 +``` + +## Reference + +:::{dropdown} Dataset +:open: + +```{eval-rst} +.. autopydantic_model:: DatasetModelV0 + :inherited-members: BaseModel + +.. autopydantic_model:: DatasetMetadataModelV0 + :inherited-members: BaseModel + +.. autopydantic_model:: DimensionModelV0 + :inherited-members: BaseModel +``` + +::: + +:::{dropdown} Variable +:open: + +```{eval-rst} +.. autopydantic_model:: VariableModelV0 + :inherited-members: BaseModel +``` + +::: diff --git a/docs/data_models/version_1.md b/docs/data_models/version_1.md new file mode 100644 index 00000000..caf0ed5c --- /dev/null +++ b/docs/data_models/version_1.md @@ -0,0 +1,131 @@ +```{eval-rst} +:tocdepth: 3 +``` + +```{currentModule} mdio.schemas.v1.dataset + +``` + +# MDIO v1 + +```{article-info} +:author: Altay Sansal +:date: "{sub-ref}`today`" +:read-time: "{sub-ref}`wordcount-minutes` min read" +:class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light +``` + +## Intro + +```{eval-rst} +.. autosummary:: Dataset +.. autosummary:: DatasetMetadata +``` + +## Reference + +:::{dropdown} Dataset +:open: + +```{eval-rst} +.. autopydantic_model:: Dataset + :inherited-members: BaseModel + +.. autopydantic_model:: DatasetMetadata + :inherited-members: BaseModel +``` + +::: +:::{dropdown} Variable + +```{eval-rst} +.. autopydantic_model:: mdio.schemas.v1.variable.Variable + :inherited-members: BaseModel + +.. autopydantic_model:: mdio.schemas.v1.variable.Coordinate + :inherited-members: BaseModel + +.. automodule:: mdio.schemas.metadata + :members: UserAttributes + +.. autopydantic_model:: mdio.schemas.v1.variable.VariableMetadata + :inherited-members: BaseModel +``` + +::: + +:::{dropdown} Units + +```{eval-rst} +.. autopydantic_model:: mdio.schemas.v1.units.AllUnits +``` + +```{eval-rst} +.. automodule:: mdio.schemas.v1.units + :members: LengthUnitModel, + TimeUnitModel, + AngleUnitModel, + DensityUnitModel, + SpeedUnitModel, + FrequencyUnitModel, + VoltageUnitModel +``` + +::: + +:::{dropdown} Stats + +```{eval-rst} +.. autopydantic_model:: mdio.schemas.v1.stats.StatisticsMetadata + +.. autopydantic_model:: mdio.schemas.v1.stats.SummaryStatistics + +.. autopydantic_model:: mdio.schemas.v1.stats.EdgeDefinedHistogram + :inherited-members: BaseModel + +.. autopydantic_model:: mdio.schemas.v1.stats.CenteredBinHistogram + :inherited-members: BaseModel +``` + +::: + +:::{dropdown} Enums + +```{eval-rst} +.. autoclass:: mdio.schemas.v1.units.AngleUnitEnum() + :members: + :undoc-members: + :member-order: bysource + +.. autoclass:: mdio.schemas.v1.units.DensityUnitEnum() + :members: + :undoc-members: + :member-order: bysource + +.. autoclass:: mdio.schemas.v1.units.FrequencyUnitEnum() + :members: + :undoc-members: + :member-order: bysource + +.. autoclass:: mdio.schemas.v1.units.LengthUnitEnum() + :members: + :undoc-members: + :member-order: bysource + +.. autoclass:: mdio.schemas.v1.units.SpeedUnitEnum() + :members: + :undoc-members: + :member-order: bysource + +.. autoclass:: mdio.schemas.v1.units.TimeUnitEnum() + :members: + :undoc-members: + :member-order: bysource + +.. autoclass:: mdio.schemas.v1.units.VoltageUnitEnum() + :members: + :undoc-members: + :member-order: bysource +``` + +::: diff --git a/docs/index.md b/docs/index.md index 9b674107..ba4db72d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -26,6 +26,17 @@ tutorials/index api_reference ``` +```{toctree} +:hidden: +:caption: Core Concepts and Structures + +data_models/index +data_models/dimensions +data_models/chunk_grids +data_models/data_types +data_models/compressors +``` + ```{toctree} :hidden: :caption: Community and Contribution From da09c4b8f7c216b098ee4925b1eb86fc5b251806 Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Tue, 29 Apr 2025 14:55:26 -0500 Subject: [PATCH 07/19] remove incorrect exclude --- docs/api_reference.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/api_reference.md b/docs/api_reference.md index f2ce3639..0ceba4f5 100644 --- a/docs/api_reference.md +++ b/docs/api_reference.md @@ -71,5 +71,4 @@ and ```{eval-rst} .. automodule:: mdio.core.serialization :members: - :exclude-members: create_rechunk_plan, write_rechunked_values ``` From 0d59c9554f2b124fee50105fc20cbb31092d60ce Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Tue, 29 Apr 2025 15:33:52 -0500 Subject: [PATCH 08/19] remove duplicate doc directive --- docs/tutorials/creation.ipynb | 1225 ++++++++++++++++++++++----------- 1 file changed, 838 insertions(+), 387 deletions(-) diff --git a/docs/tutorials/creation.ipynb b/docs/tutorials/creation.ipynb index d154c63f..25a67c4f 100644 --- a/docs/tutorials/creation.ipynb +++ b/docs/tutorials/creation.ipynb @@ -7,396 +7,847 @@ "{\n", " \"cells\": [\n", " {\n", - " \"cell_type\": \"markdown\",\n", - " \"metadata\": {\n", - " \"pycharm\": {\n", - " \"name\": \"#%% md\\n\"\n", - " }\n", - " },\n", - " \"source\": [\n", - " \"# Create an Empty MDIO\\n\",\n", - " \"\\n\",\n", - " \"```{article-info}\\n\",\n", - " \":author: Altay Sansal\\n\",\n", - " \":date: \\\"{sub-ref}`today`\\\"\\n\",\n", - " \":read-time: \\\"{sub-ref}`wordcount-minutes` min read\\\"\\n\",\n", - " \":class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light\\n\",\n", - " \"```\\n\",\n", - " \"\\n\",\n", - " \"Here we will create an empty MDIO file and populate its fields.\\n\",\n", - " \"\\n\",\n", - " \"```{warning}\\n\",\n", - " \"For plotting, the notebook requires [Matplotlib](https://matplotlib.org/) as a dependency. Please install it before executing using\\n\",\n", - " \"`pip install matplotlib` or `conda install matplotlib`.\\n\",\n", - " \"```\\n\",\n", - " \"\\n\",\n", - " \"We first need to import the configuration classes and create function to be able to create the empty MDIO.\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 2,\n", - " \"metadata\": {\n", - " \"ExecuteTime\": {\n", - " \"end_time\": \"2025-04-16T14:50:04.371422Z\",\n", - " \"start_time\": \"2025-04-16T14:50:04.368107Z\"\n", - " },\n", - " \"pycharm\": {\n", - " \"name\": \"#%%\\n\"\n", - " }\n", - " },\n", - " \"outputs\": [],\n", - " \"source\": [\n", - " \"import matplotlib.pyplot as plt\\n\",\n", - " \"\\n\",\n", - " \"from mdio import Dimension\\n\",\n", - " \"from mdio import Grid\\n\",\n", - " \"from mdio import MDIOCreateConfig\\n\",\n", - " \"from mdio import MDIOReader\\n\",\n", - " \"from mdio import MDIOVariableConfig\\n\",\n", - " \"from mdio import MDIOWriter\\n\",\n", - " \"from mdio import create_empty\\n\",\n", - " \"from mdio.converters.segy import get_compressor\\n\",\n", - " \"from mdio.segy.compat import mdio_segy_spec\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"markdown\",\n", - " \"metadata\": {\n", - " \"pycharm\": {\n", - " \"name\": \"#%% md\\n\"\n", - " }\n", - " },\n", - " \"source\": [\n", - " \"## Setting Up Grid Dimensions and Variable(s)\\n\",\n", - " \"\\n\",\n", - " \"Let's try to create an MDIO file in 3D with known `inline`, `crossline`, and `sample`\\n\",\n", - " \"dimensions. This is exactly like a 3D Post-Stack dataset.\\n\",\n", - " \"\\n\",\n", - " \"We will use the standard `chunked_012` access pattern. All variable names must start\\n\",\n", - " \"with `chunked_*` for `MDIOReader` to be able to open them with any access pattern.\\n\",\n", - " \"\\n\",\n", - " \"We will also use an MDIO private utility function to get the compressor easily. The\\n\",\n", - " \"compressor is fully customizable, but this function gives us ones available in SEG-Y\\n\",\n", - " \"ingestion.\\n\",\n", - " \"\\n\",\n", - " \"If we want headers, we can also provide `header_dtype` which is a Numpy `dtype`. Again,\\n\",\n", - " \"we will be using the standard one MDIO uses for ingesting SEG-Ys. (Similar to SEG-Y Rev1).\\n\",\n", - " \"\\n\",\n", - " \"At the end we create empty MDIO on local disk or cloud, based on the path string.\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 3,\n", - " \"metadata\": {\n", - " \"ExecuteTime\": {\n", - " \"end_time\": \"2025-04-16T14:50:06.121450Z\",\n", - " \"start_time\": \"2025-04-16T14:50:06.002634Z\"\n", - " },\n", - " \"pycharm\": {\n", - " \"name\": \"#%%\\n\"\n", - " }\n", - " },\n", - " \"outputs\": [],\n", - " \"source\": [\n", - " \"grid = Grid(\\n\",\n", - " \" dims=[\\n\",\n", - " \" Dimension(name=\\\"inline\\\", coords=range(100, 300, 1)), # 100-300 with step 1\\n\",\n", - " \" Dimension(name=\\\"crossline\\\", coords=range(1000, 1600, 2)), # 1000-1600 with step 2\\n\",\n", - " \" Dimension(name=\\\"sample\\\", coords=range(0, 3000, 4)), # 0-3 seconds 4ms sample rate\\n\",\n", - " \" ]\\n\",\n", - " \")\\n\",\n", - " \"\\n\",\n", - " \"compressor = get_compressor(lossless=True)\\n\",\n", - " \"header_dtype = mdio_segy_spec().trace.header.dtype\\n\",\n", - " \"variable = MDIOVariableConfig(\\n\",\n", - " \" name=\\\"chunked_012\\\",\\n\",\n", - " \" dtype=\\\"float32\\\",\\n\",\n", - " \" chunks=(128, 128, 128),\\n\",\n", - " \" compressors=compressor,\\n\",\n", - " \" header_dtype=header_dtype,\\n\",\n", - " \")\\n\",\n", - " \"\\n\",\n", - " \"create_conf = MDIOCreateConfig(path=\\\"demo.mdio\\\", grid=grid, variables=[variable])\\n\",\n", - " \"create_empty(config=create_conf);\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"markdown\",\n", " \"metadata\": {},\n", + " \"cell_type\": \"raw\",\n", " \"source\": [\n", - " \"## Populating the MDIO\\n\",\n", - " \"\\n\",\n", - " \"Once empty MDIO is created, you can populate it with sample data, header data,\\n\",\n", - " \"metadata, and statistics. The `live_mask` is automatically flipped to 1 after\\n\",\n", - " \"every write. However, the consistency of the `live_mask` is up to the user. If\\n\",\n", - " \"not populated correctly, at read time, traces may be skipped.\\n\",\n", - " \"\\n\",\n", - " \"We will read the usual stats and as you can see they're all empty. Text header\\n\",\n", - " \"and binary header are only required if we are going to export this back to SEG-Y,\\n\",\n", - " \"and can be modified. We can edit these if necessary using the writer.\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 4,\n", - " \"metadata\": {\n", - " \"ExecuteTime\": {\n", - " \"end_time\": \"2025-04-16T14:50:09.974442Z\",\n", - " \"start_time\": \"2025-04-16T14:50:09.951257Z\"\n", - " },\n", - " \"pycharm\": {\n", - " \"name\": \"#%%\\n\"\n", - " }\n", - " },\n", - " \"outputs\": [\n", - " {\n", - " \"data\": {\n", - " \"text/plain\": [\n", - " \"(['C00 ',\\n\",\n", - " \" 'C01 ',\\n\",\n", - " \" 'C02 ',\\n\",\n", - " \" 'C03 ',\\n\",\n", - " \" 'C04 '],\\n\",\n", - " \" {},\\n\",\n", - " \" {'rms': 0, 'min': 0, 'mean': 0, 'max': 0, 'std': 0})\"\n", - " ]\n", - " },\n", - " \"execution_count\": 4,\n", - " \"metadata\": {},\n", - " \"output_type\": \"execute_result\"\n", - " }\n", - " ],\n", - " \"source\": [\n", - " \"writer = MDIOWriter(create_conf.path)\\n\",\n", - " \"\\n\",\n", - " \"# Truncate text header for display\\n\",\n", - " \"writer.text_header[:5], writer.binary_header, writer.stats\"\n", + " \"{\\n\",\n", + " \" \\\"cells\\\": [\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", + " \" \\\"metadata\\\": {\\n\",\n", + " \" \\\"pycharm\\\": {\\n\",\n", + " \" \\\"name\\\": \\\"#%% md\\\\n\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"# Create an Empty MDIO\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"```{article-info}\\\\n\\\",\\n\",\n", + " \" \\\":author: Altay Sansal\\\\n\\\",\\n\",\n", + " \" \\\":date: \\\\\\\"{sub-ref}`today`\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\":read-time: \\\\\\\"{sub-ref}`wordcount-minutes` min read\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\":class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light\\\\n\\\",\\n\",\n", + " \" \\\"```\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"Here we will create an empty MDIO file and populate its fields.\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"```{warning}\\\\n\\\",\\n\",\n", + " \" \\\"For plotting, the notebook requires [Matplotlib](https://matplotlib.org/) as a dependency. Please install it before executing using\\\\n\\\",\\n\",\n", + " \" \\\"`pip install matplotlib` or `conda install matplotlib`.\\\\n\\\",\\n\",\n", + " \" \\\"```\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"We first need to import the configuration classes and create function to be able to create the empty MDIO.\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", + " \" \\\"execution_count\\\": 2,\\n\",\n", + " \" \\\"metadata\\\": {\\n\",\n", + " \" \\\"ExecuteTime\\\": {\\n\",\n", + " \" \\\"end_time\\\": \\\"2025-04-16T14:50:04.371422Z\\\",\\n\",\n", + " \" \\\"start_time\\\": \\\"2025-04-16T14:50:04.368107Z\\\"\\n\",\n", + " \" },\\n\",\n", + " \" \\\"pycharm\\\": {\\n\",\n", + " \" \\\"name\\\": \\\"#%%\\\\n\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"outputs\\\": [],\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"import matplotlib.pyplot as plt\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"from mdio import Dimension\\\\n\\\",\\n\",\n", + " \" \\\"from mdio import Grid\\\\n\\\",\\n\",\n", + " \" \\\"from mdio import MDIOCreateConfig\\\\n\\\",\\n\",\n", + " \" \\\"from mdio import MDIOReader\\\\n\\\",\\n\",\n", + " \" \\\"from mdio import MDIOVariableConfig\\\\n\\\",\\n\",\n", + " \" \\\"from mdio import MDIOWriter\\\\n\\\",\\n\",\n", + " \" \\\"from mdio import create_empty\\\\n\\\",\\n\",\n", + " \" \\\"from mdio.converters.segy import get_compressor\\\\n\\\",\\n\",\n", + " \" \\\"from mdio.segy.compat import mdio_segy_spec\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", + " \" \\\"metadata\\\": {\\n\",\n", + " \" \\\"pycharm\\\": {\\n\",\n", + " \" \\\"name\\\": \\\"#%% md\\\\n\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"## Setting Up Grid Dimensions and Variable(s)\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"Let's try to create an MDIO file in 3D with known `inline`, `crossline`, and `sample`\\\\n\\\",\\n\",\n", + " \" \\\"dimensions. This is exactly like a 3D Post-Stack dataset.\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"We will use the standard `chunked_012` access pattern. All variable names must start\\\\n\\\",\\n\",\n", + " \" \\\"with `chunked_*` for `MDIOReader` to be able to open them with any access pattern.\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"We will also use an MDIO private utility function to get the compressor easily. The\\\\n\\\",\\n\",\n", + " \" \\\"compressor is fully customizable, but this function gives us ones available in SEG-Y\\\\n\\\",\\n\",\n", + " \" \\\"ingestion.\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"If we want headers, we can also provide `header_dtype` which is a Numpy `dtype`. Again,\\\\n\\\",\\n\",\n", + " \" \\\"we will be using the standard one MDIO uses for ingesting SEG-Ys. (Similar to SEG-Y Rev1).\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"At the end we create empty MDIO on local disk or cloud, based on the path string.\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", + " \" \\\"execution_count\\\": 3,\\n\",\n", + " \" \\\"metadata\\\": {\\n\",\n", + " \" \\\"ExecuteTime\\\": {\\n\",\n", + " \" \\\"end_time\\\": \\\"2025-04-16T14:50:06.121450Z\\\",\\n\",\n", + " \" \\\"start_time\\\": \\\"2025-04-16T14:50:06.002634Z\\\"\\n\",\n", + " \" },\\n\",\n", + " \" \\\"pycharm\\\": {\\n\",\n", + " \" \\\"name\\\": \\\"#%%\\\\n\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"outputs\\\": [],\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"grid = Grid(\\\\n\\\",\\n\",\n", + " \" \\\" dims=[\\\\n\\\",\\n\",\n", + " \" \\\" Dimension(name=\\\\\\\"inline\\\\\\\", coords=range(100, 300, 1)), # 100-300 with step 1\\\\n\\\",\\n\",\n", + " \" \\\" Dimension(name=\\\\\\\"crossline\\\\\\\", coords=range(1000, 1600, 2)), # 1000-1600 with step 2\\\\n\\\",\\n\",\n", + " \" \\\" Dimension(name=\\\\\\\"sample\\\\\\\", coords=range(0, 3000, 4)), # 0-3 seconds 4ms sample rate\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\")\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"compressor = get_compressor(lossless=True)\\\\n\\\",\\n\",\n", + " \" \\\"header_dtype = mdio_segy_spec().trace.header.dtype\\\\n\\\",\\n\",\n", + " \" \\\"variable = MDIOVariableConfig(\\\\n\\\",\\n\",\n", + " \" \\\" name=\\\\\\\"chunked_012\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" dtype=\\\\\\\"float32\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" chunks=(128, 128, 128),\\\\n\\\",\\n\",\n", + " \" \\\" compressors=compressor,\\\\n\\\",\\n\",\n", + " \" \\\" header_dtype=header_dtype,\\\\n\\\",\\n\",\n", + " \" \\\")\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"create_conf = MDIOCreateConfig(path=\\\\\\\"demo.mdio\\\\\\\", grid=grid, variables=[variable])\\\\n\\\",\\n\",\n", + " \" \\\"create_empty(config=create_conf);\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", + " \" \\\"metadata\\\": {},\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"## Populating the MDIO\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"Once empty MDIO is created, you can populate it with sample data, header data,\\\\n\\\",\\n\",\n", + " \" \\\"metadata, and statistics. The `live_mask` is automatically flipped to 1 after\\\\n\\\",\\n\",\n", + " \" \\\"every write. However, the consistency of the `live_mask` is up to the user. If\\\\n\\\",\\n\",\n", + " \" \\\"not populated correctly, at read time, traces may be skipped.\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"We will read the usual stats and as you can see they're all empty. Text header\\\\n\\\",\\n\",\n", + " \" \\\"and binary header are only required if we are going to export this back to SEG-Y,\\\\n\\\",\\n\",\n", + " \" \\\"and can be modified. We can edit these if necessary using the writer.\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", + " \" \\\"execution_count\\\": 4,\\n\",\n", + " \" \\\"metadata\\\": {\\n\",\n", + " \" \\\"ExecuteTime\\\": {\\n\",\n", + " \" \\\"end_time\\\": \\\"2025-04-16T14:50:09.974442Z\\\",\\n\",\n", + " \" \\\"start_time\\\": \\\"2025-04-16T14:50:09.951257Z\\\"\\n\",\n", + " \" },\\n\",\n", + " \" \\\"pycharm\\\": {\\n\",\n", + " \" \\\"name\\\": \\\"#%%\\\\n\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"outputs\\\": [\\n\",\n", + " \" {\\n\",\n", + " \" \\\"data\\\": {\\n\",\n", + " \" \\\"text/plain\\\": [\\n\",\n", + " \" \\\"(['C00 ',\\\\n\\\",\\n\",\n", + " \" \\\" 'C01 ',\\\\n\\\",\\n\",\n", + " \" \\\" 'C02 ',\\\\n\\\",\\n\",\n", + " \" \\\" 'C03 ',\\\\n\\\",\\n\",\n", + " \" \\\" 'C04 '],\\\\n\\\",\\n\",\n", + " \" \\\" {},\\\\n\\\",\\n\",\n", + " \" \\\" {'rms': 0, 'min': 0, 'mean': 0, 'max': 0, 'std': 0})\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" \\\"execution_count\\\": 4,\\n\",\n", + " \" \\\"metadata\\\": {},\\n\",\n", + " \" \\\"output_type\\\": \\\"execute_result\\\"\\n\",\n", + " \" }\\n\",\n", + " \" ],\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"writer = MDIOWriter(create_conf.path)\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"# Truncate text header for display\\\\n\\\",\\n\",\n", + " \" \\\"writer.text_header[:5], writer.binary_header, writer.stats\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", + " \" \\\"metadata\\\": {},\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"## Updating File and Checking with `MDIOReader`.\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"We write traces here, the headers are still empty. If you need the headers\\\\n\\\",\\n\",\n", + " \" \\\"populated, this is where they would be written to file as well.\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"All the extra metadata we are writing is so that we can export back to SEG-Y\\\\n\\\",\\n\",\n", + " \" \\\"in the future. If that's not a requirement most of the metadata can be\\\\n\\\",\\n\",\n", + " \" \\\"omitted.\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"If you already have an MDIO prior to this, all the metadata can be copied\\\\n\\\",\\n\",\n", + " \" \\\"over from the previous version.\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", + " \" \\\"execution_count\\\": 5,\\n\",\n", + " \" \\\"metadata\\\": {\\n\",\n", + " \" \\\"ExecuteTime\\\": {\\n\",\n", + " \" \\\"end_time\\\": \\\"2025-04-16T14:50:12.498287Z\\\",\\n\",\n", + " \" \\\"start_time\\\": \\\"2025-04-16T14:50:11.670230Z\\\"\\n\",\n", + " \" },\\n\",\n", + " \" \\\"pycharm\\\": {\\n\",\n", + " \" \\\"name\\\": \\\"#%%\\\\n\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"outputs\\\": [\\n\",\n", + " \" {\\n\",\n", + " \" \\\"data\\\": {\\n\",\n", + " \" \\\"text/plain\\\": [\\n\",\n", + " \" \\\"({'data_sample_format': 1,\\\\n\\\",\\n\",\n", + " \" \\\" 'sample_interval': 4,\\\\n\\\",\\n\",\n", + " \" \\\" 'samples_per_trace': 750,\\\\n\\\",\\n\",\n", + " \" \\\" 'segy_revision_major': 1,\\\\n\\\",\\n\",\n", + " \" \\\" 'segy_revision_minor': 0},\\\\n\\\",\\n\",\n", + " \" \\\" {'rms': 3, 'min': -4, 'mean': 12, 'max': 4, 'std': 5})\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" \\\"execution_count\\\": 5,\\n\",\n", + " \" \\\"metadata\\\": {},\\n\",\n", + " \" \\\"output_type\\\": \\\"execute_result\\\"\\n\",\n", + " \" }\\n\",\n", + " \" ],\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"sample_dim = writer.grid.select_dim(\\\\\\\"sample\\\\\\\")\\\\n\\\",\\n\",\n", + " \" \\\"sample_interval = int(sample_dim.coords[1] - sample_dim.coords[0])\\\\n\\\",\\n\",\n", + " \" \\\"num_samples = sample_dim.size\\\\n\\\",\\n\",\n", + " \" \\\"writer.binary_header = {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"data_sample_format\\\\\\\": 1,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"sample_interval\\\\\\\": sample_interval,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"samples_per_trace\\\\\\\": num_samples,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"segy_revision_major\\\\\\\": 1,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"segy_revision_minor\\\\\\\": 0,\\\\n\\\",\\n\",\n", + " \" \\\"}\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"# Write some values to the file\\\\n\\\",\\n\",\n", + " \" \\\"writer[:5] = 1\\\\n\\\",\\n\",\n", + " \" \\\"writer[5:10] = 2\\\\n\\\",\\n\",\n", + " \" \\\"writer[50:100] = 3\\\\n\\\",\\n\",\n", + " \" \\\"writer[150:175] = -1\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"# Write some made up stats\\\\n\\\",\\n\",\n", + " \" \\\"writer.stats = {\\\\\\\"mean\\\\\\\": 12, \\\\\\\"std\\\\\\\": 5, \\\\\\\"rms\\\\\\\": 3, \\\\\\\"min\\\\\\\": -4, \\\\\\\"max\\\\\\\": 4}\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"reader = MDIOReader(create_conf.path)\\\\n\\\",\\n\",\n", + " \" \\\"reader.binary_header, reader.stats\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", + " \" \\\"metadata\\\": {},\\n\",\n", + " \" \\\"source\\\": \\\"Plot some of the data we populated:\\\"\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", + " \" \\\"execution_count\\\": 6,\\n\",\n", + " \" \\\"metadata\\\": {\\n\",\n", + " \" \\\"ExecuteTime\\\": {\\n\",\n", + " \" \\\"end_time\\\": \\\"2025-04-16T14:50:14.256953Z\\\",\\n\",\n", + " \" \\\"start_time\\\": \\\"2025-04-16T14:50:14.036094Z\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"outputs\\\": [\\n\",\n", + " \" {\\n\",\n", + " \" \\\"data\\\": {\\n\",\n", + " \" \\\"image/png\\\": \\\"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+wEoWAh2AOADOtK1Zs2aXq/VqFFDDhw4YL4uU6aMeTx69KjXMfrc2aePKSkpXvszMjLMSFnnmOwiIyPNCFrPDUDwINgBgA/oiNikpCSv1/773/9KxYoV3QMpNJwlJia692t/OO07Fx8fb57r4/Hjx2Xbtm3uY1atWmVqA7UvHgBkx6hYAPCBgQMHym233WaaYh988EHZvHmzvP3222ZTISEhMmDAAHnhhRdMPzwNeiNGjDAjXTt06OCu4WvVqpW7CTc9PV369etnRswyIhZATgh2AOADDRs2lAULFpg+b2PGjDHBTac30XnpHM8884ykpqaa/ndaM9ekSRMzvUlUVJT7mPfff9+EuebNm5vRsJ06dTJz3wFATgh2AOAjf/zjH82WG62109CnW250BOzcuXN9dIYAbEMfOwAAAEsQ7AAAACzh12CnE2lqP5SiRYuaSTi1w3D2UWRNmzY1zRWe2xNPPOF1jE4f0LZtWylcuLD5nCFDhpgpAQAAAIKJX/vYrVmzRvr27WvCnQax5557Tlq2bGkWy9bFsB06IsyzD4oGOEdmZqYJdTptwPr16+XIkSPy6KOPmoW3dTQaAABAsPBrsNPRX55mzZplatx0zqY777zTK8jlNhnn8uXLTRBcuXKlWYqnXr16MnbsWBk6dKiMHj1aIiIifH4dAAAABUGB6mOny984o8A86XD/kiVLys0332ymDjhz5ox7ny6SXbt2ba/1FhMSEsxEnzt37szx+7BINgAAsFGBme5EZ1LXyTp1tnYNcI6HH37YzNSuk3F+++23piZO++F98sknZr8uhJ3TItrOvtz69j3//PM+vR4AAICgDXba1+67776TdevWeb2uE3c6tGZO11/UiTr37dsnVapUuazvpbV+gwYNcj/XGrvy5ctfwdkDAAD4X4FoitVZ1RcvXixffPGFXH/99Rc81lkfce/eveZR+97ltIi2sy8nLJINAABs5Ndg53K5TKjTZXd0YWtdcuditm/fbh615s5ZJHvHjh2SkpLiPmbFihUmrNWsWdOHZw8AAFCwhPm7+VWXyvn000/NXHZOn7jY2FiJjo42za26v02bNlKiRAnTx04X1tYRs3Xq1DHH6vQoGuC6desm48ePN58xfPhw89laMwcAABAs/FpjN3XqVDMSVich1ho4Z/vggw/Mfp2qRKcx0fBWvXp1efrpp80C2IsWLXJ/RqFChUwzrj5q7d0jjzxi5rG70NqLAAAANgrzd1PsheiABp3E+GJ01OySJUvy8cwAAAACT4EYPAEAAIArR7ADAACwBMEOAADAEgQ7AAAASxDsAAAALEGwAwAAsATBDgAAwBIEOwAAAEsQ7AAAACxBsAMAALAEwQ4AAMASBDsAAABLEOwAAAAsQbADAACwBMEOAADAEgQ7AAAASxDsAAAALEGwAwAAsATBDgAAwBIEOwAAAEsQ7AAAACxBsAMAALAEwQ4AAMASBDsAAABLEOwAAAAsQbADAACwBMEOAADAEgQ7APCBSpUqSUhIyHlb3759zf60tDTzdYkSJaRIkSLSqVMnOXr0qNdnHDhwQNq2bSuFCxeWUqVKyZAhQyQjI8NPVwQgEBDsAMAHtmzZIkeOHHFvK1asMK8/8MAD5nHgwIGyaNEimT9/vqxZs0YOHz4sHTt2dL8/MzPThLpz587J+vXrZfbs2TJr1iwZOXKk364JQMFHsAMAH7j22mulTJky7m3x4sVSpUoVueuuu+TEiRPy7rvvyuuvvy7NmjWT+vXry8yZM02A27hxo3n/8uXLZdeuXfKPf/xD6tWrJ61bt5axY8fK5MmTTdgDgJwQ7ADAxzSIaUB7/PHHTXPstm3bJD09XVq0aOE+pnr16lKhQgXZsGGDea6PtWvXltKlS7uPSUhIkJMnT8rOnTtz/V5nz541x3huAIIHwQ4AfGzhwoVy/Phx6dGjh3menJwsEREREhcX53Wchjjd5xzjGeqc/c6+3IwbN05iY2PdW/ny5X1wRQAKKoIdAPiYNrtqU2q5cuV8/r2GDRtmmnqd7eDBgz7/ngAKjjB/nwAA2OzHH3+UlStXyieffOJ+TfvcafOs1uJ51trpqFjd5xyzefNmr89yRs06x+QkMjLSbACCEzV2AOBDOihCpyrREa4OHSwRHh4uiYmJ7teSkpLM9Cbx8fHmuT7u2LFDUlJS3MfoyNpixYpJzZo1r/JVAAgU1NgBgI9kZWWZYNe9e3cJC/v/xa32fevZs6cMGjRIihcvbsJa//79TZhr3LixOaZly5YmwHXr1k3Gjx9v+tUNHz7czH1HjRyA3BDsAMBHtAlWa+F0NGx2EydOlNDQUDMxsY5k1RGvU6ZMce8vVKiQmSKlT58+JvDFxMSYgDhmzJirfBUAAgnBDgB8RGvdXC5XjvuioqLMnHS65aZixYqyZMkSH54hANvQxw4AAMASBDsAAABLEOwAAAAsQbADAACwBMEOAADAEgQ7AAAASxDsAAAALEGwAwAAsATBDgAAwBIEOwAAAEsQ7AAAACxBsAMAALAEwQ4AAMASBDsAAABLEOwAAAAsQbADAACwBMEOAADAEgQ7AAAAS4T5+wQKApfLZR5Pns7K83vSXemS8b/3BaLfz2bIyVN5v95Al5EukuFKl0xXiAQLf/2OT6dmmp/11ZYh6V5/zxCvn0dWWtp5+9JTz0lmyPn/RjLS0yQrvZAEqt9/Tw+u8i3TZX5nmVnBU1cTknlWQvxQzmS5zpmf9dWW+b/vmZfyLcRFKSjff/+9VKlSxd+nASAfHDx4UK6//np/n0aBcejQISlfvry/TwPAVSrfCHYicvz4cbnmmmvkwIEDEhsbK8Hg5MmTprDXfyTFihUT2wXb9QbjNWtRdurUKSlXrpyEhgZPzcXFZGVlSVJSktSsWTNo/i0E27/9YLzmYLte1yWUbzTFakfD//2QNNQFwz8QT3q9wXTNwXa9wXbNwXJjdqnl23XXXRd0/xaC8XqD8ZqD6Xpj81i+cVsLAABgCYIdAACAJQh2IhIZGSmjRo0yj8Ei2K452K43WK8ZOQu2fwvBdr3BeM3Bdr2XgsETAAAAlqDGDgAAwBIEOwAAAEsQ7AAAACxBsBORyZMnS6VKlSQqKkoaNWokmzdvFhuMHj1aQkJCvLbq1au796elpUnfvn2lRIkSUqRIEenUqZMcPXpUAsnatWulXbt2ZtJGvb6FCxd67dcupCNHjpSyZctKdHS0tGjRQvbs2eN1zK+//ipdu3Y1cyHFxcVJz5495fTp0xKI19ujR4/zfuetWrUK2OvFlbO1fAuGMi7YyjdFGXflgj7YffDBBzJo0CAzuuarr76SunXrSkJCgqSkpIgNatWqJUeOHHFv69atc+8bOHCgLFq0SObPny9r1qyRw4cPS8eOHSWQpKammt+Z/s8rJ+PHj5dJkybJtGnTZNOmTRITE2N+v1rgO7QA2Llzp6xYsUIWL15sCpbevXtLIF6v0kLO83f+z3/+02t/IF0vrozt5ZvtZVywlW+KMi4fuILcrbfe6urbt6/7eWZmpqtcuXKucePGuQLdqFGjXHXr1s1x3/Hjx13h4eGu+fPnu1/bvXu3jpB2bdiwwRWI9NwXLFjgfp6VleUqU6aM69VXX/W67sjISNc///lP83zXrl3mfVu2bHEf8/nnn7tCQkJcP/30kyuQrld1797d1b59+1zfE8jXi0tnc/kWbGVcsJVvijLu8gR1jd25c+dk27Ztpvrac/kdfb5hwwaxgVbLa5X2DTfcYO5idD1cpdednp7ude3ahFGhQgVrrn3//v2SnJzsdY26JIs2RznXqI9aVd+gQQP3MXq8/jvQO+BAtHr1ailVqpTcdNNN0qdPHzl27Jh7n43Xi+At34K5jAvW8k1Rxl1YUAe7X375RTIzM6V06dJer+tz/YMJdPoHPmvWLFm6dKlMnTrVFAR33HGHWUhYry8iIsL8Adh47cq5jgv9fvVRCwhPYWFhUrx48YD8OWgTxZw5cyQxMVFeeeUV0/zUunVr8+/cxutF8JZvwV7GBWP5pijjLi4sD8cgQOk/dkedOnVMIVixYkX58MMPTUdb2KdLly7ur2vXrm1+71WqVDF3uM2bN/fruQH5jTIu+FDGXVxQ19iVLFlSChUqdN4oKX1epkwZsY3euVarVk327t1rrk+bao4fP27ttTvXcaHfrz5m70iekZFhRlXZ8HPQ5in9d66/82C4XgRv+RZsZRzl2/+hjDtfUAc7raavX7++qdJ1ZGVlmefx8fFiGx3uvW/fPjM0Xq87PDzc69qTkpJM/xRbrr1y5crmD9nzGk+ePGn6WTjXqI9a8Gt/HMeqVavMvwO9+w90hw4dMv1P9HceDNeL4C3fgq2Mo3z7P5RxOXAFuXnz5plRRLNmzTKjaXr37u2Ki4tzJScnuwLd008/7Vq9erVr//79ri+//NLVokULV8mSJV0pKSlm/xNPPOGqUKGCa9WqVa6tW7e64uPjzRZITp065fr666/Npv+cX3/9dfP1jz/+aPa//PLL5vf56aefur799lszmqpy5cqu33//3f0ZrVq1cv3hD39wbdq0ybVu3TpX1apVXQ899JAr0K5X9w0ePNiM+NPf+cqVK1233HKLuZ60tLSAvF5cGZvLt2Ao44KtfFOUcVcu6IOdeuutt8wff0REhJkeYOPGjS4bdO7c2VW2bFlzXdddd515vnfvXvd+/eN/8sknXddcc42rcOHCrvvuu8915MgRVyD54osvzB9/9k2HxDtTAowYMcJVunRp8z+45s2bu5KSkrw+49ixY+aPvkiRIq5ixYq5HnvsMVOABNr1njlzxtWyZUvXtddea6Z5qFixoqtXr17n/U88kK4XV87W8i0YyrhgK98UZdyVC9H/5FSTBwAAgMAS1H3sAAAAbEKwAwAAsATBDgAAwBIEOwAAAEsQ7AAAACxBsAMAALAEwQ4AAMASBDsAAABLEOxQ4DVt2lQGDBiQp2N/+OEHCQkJke3bt5vnq1evNs+zLwQOAAUFZRzyU1i+fhrgA5988olZzPty3HbbbXLkyBGJjY3N9/MCgPxAGYf8RLBDgVe8ePHLfm9ERISUKVMmX88HAPITZRzyE02xCKhmikqVKslLL70kjz/+uBQtWlQqVKggb7/9dq7vzd5MMWvWLImLi5Nly5ZJjRo1pEiRItKqVStzx+vpnXfeMfujoqKkevXqMmXKFB9fJYBgRRmH/ESwQ8B57bXXpEGDBvL111/Lk08+KX369JGkpKQ8v//MmTMyYcIEee+992Tt2rVy4MABGTx4sHv/+++/LyNHjpQXX3xRdu/ebQrZESNGyOzZs310RQDw/1HG4UoQ7BBw2rRpYwq7G2+8UYYOHSolS5aUL774Is/vT09Pl2nTppmC85ZbbpF+/fpJYmKie/+oUaNMwdqxY0epXLmyeRw4cKBMnz7dR1cEAP8fZRyuBH3sEHDq1Knj/lqbILR/SUpKSp7fX7hwYalSpYr7edmyZd3vT01NlX379knPnj2lV69e7mMyMjLonAzgqqCMw5Ug2CHgZB89pgVfVlbWFb3f5XKZr0+fPm0eZ8yYIY0aNfI6rlChQldw1gCQN5RxuBIEO8BD6dKlpVy5cvL9999L165d/X06AJCvKOPsR7ADsnn++eflqaeeMs0SOprs7NmzsnXrVvntt99k0KBB/j49ALgilHF2I9gB2fzpT38yfVReffVVGTJkiMTExEjt2rXzPDM8ABRklHF2C3E5De8AAAAIaEx3AgAAYAmCHQAAgCUIdgAAAJYg2AEAAFiCYAcAAGAJgh0AAIAlCHYAAACWINgBAABYgmAHAABgCYIdAACAJQh2AAAAliDYAQAAiB3+H3QA/cU4rhHfAAAAAElFTkSuQmCC\\\",\\n\",\n", + " \" \\\"text/plain\\\": [\\n\",\n", + " \" \\\"
\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" \\\"metadata\\\": {},\\n\",\n", + " \" \\\"output_type\\\": \\\"display_data\\\"\\n\",\n", + " \" }\\n\",\n", + " \" ],\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"fig, ax = plt.subplots(1, 2, sharex=\\\\\\\"all\\\\\\\")\\\\n\\\",\\n\",\n", + " \" \\\"ax[0].imshow(writer.live_mask[:].T, aspect=\\\\\\\"auto\\\\\\\")\\\\n\\\",\\n\",\n", + " \" \\\"ax[1].imshow(reader[:, 150].T, aspect=\\\\\\\"auto\\\\\\\")\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"ax[0].set_xlabel(\\\\\\\"inline\\\\\\\")\\\\n\\\",\\n\",\n", + " \" \\\"ax[0].set_ylabel(\\\\\\\"crossline\\\\\\\")\\\\n\\\",\\n\",\n", + " \" \\\"ax[1].set_xlabel(\\\\\\\"inline\\\\\\\")\\\\n\\\",\\n\",\n", + " \" \\\"ax[1].set_ylabel(\\\\\\\"sample\\\\\\\")\\\\n\\\",\\n\",\n", + " \" \\\"ax[0].set_title(\\\\\\\"Live Mask\\\\\\\")\\\\n\\\",\\n\",\n", + " \" \\\"ax[1].set_title(\\\\\\\"Middle Crossline\\\\\\\")\\\\n\\\",\\n\",\n", + " \" \\\"fig.tight_layout();\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", + " \" \\\"metadata\\\": {},\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"## Write to SEG-Y\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"Because we populated all the fields necessary for SEG-Y output, we can call the\\\\n\\\",\\n\",\n", + " \" \\\"MDIO to SEGY converter and get a file out.\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", + " \" \\\"execution_count\\\": 7,\\n\",\n", + " \" \\\"metadata\\\": {\\n\",\n", + " \" \\\"ExecuteTime\\\": {\\n\",\n", + " \" \\\"end_time\\\": \\\"2025-04-16T14:50:15.788812Z\\\",\\n\",\n", + " \" \\\"start_time\\\": \\\"2025-04-16T14:50:15.009889Z\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"outputs\\\": [\\n\",\n", + " \" {\\n\",\n", + " \" \\\"name\\\": \\\"stderr\\\",\\n\",\n", + " \" \\\"output_type\\\": \\\"stream\\\",\\n\",\n", + " \" \\\"text\\\": [\\n\",\n", + " \" \\\"Unwrapping MDIO Blocks: 100%|██████████| 7/7 [00:00<00:00, 10.55it/s]\\\\n\\\",\\n\",\n", + " \" \\\"Merging lines: 100%|██████████| 1/1 [00:00<00:00, 17.26it/s]\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"name\\\": \\\"stdout\\\",\\n\",\n", + " \" \\\"output_type\\\": \\\"stream\\\",\\n\",\n", + " \" \\\"text\\\": [\\n\",\n", + " \" \\\"[(0, 0, 0, 0, 0, 4, 4000, 750, 750, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0)]\\\\n\\\",\\n\",\n", + " \" \\\"[[1. 1. 1. ... 1. 1. 1.]\\\\n\\\",\\n\",\n", + " \" \\\" [1. 1. 1. ... 1. 1. 1.]\\\\n\\\",\\n\",\n", + " \" \\\" [1. 1. 1. ... 1. 1. 1.]\\\\n\\\",\\n\",\n", + " \" \\\" ...\\\\n\\\",\\n\",\n", + " \" \\\" [1. 1. 1. ... 1. 1. 1.]\\\\n\\\",\\n\",\n", + " \" \\\" [1. 1. 1. ... 1. 1. 1.]\\\\n\\\",\\n\",\n", + " \" \\\" [1. 1. 1. ... 1. 1. 1.]]\\\\n\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"name\\\": \\\"stderr\\\",\\n\",\n", + " \" \\\"output_type\\\": \\\"stream\\\",\\n\",\n", + " \" \\\"text\\\": [\\n\",\n", + " \" \\\"\\\\n\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" }\\n\",\n", + " \" ],\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"from segy import SegyFile\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"from mdio import mdio_to_segy\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"mdio_to_segy(\\\\\\\"demo.mdio\\\\\\\", \\\\\\\"demo.segy\\\\\\\")\\\\n\\\",\\n\",\n", + " \" \\\"segy = SegyFile(\\\\\\\"demo.segy\\\\\\\")\\\\n\\\",\\n\",\n", + " \" \\\"print(segy.binary_header)\\\\n\\\",\\n\",\n", + " \" \\\"print(segy.sample[:100])\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", + " \" \\\"metadata\\\": {},\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"## Copying an Existing MDIO without Data and Headers\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"We also provide a `create_empty_like` function which allows us to create an MDIO file\\\\n\\\",\\n\",\n", + " \" \\\"with the same structure and basic metadata as an existing one.\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"This will carry over:\\\\n\\\",\\n\",\n", + " \" \\\"* All access patterns in source MDIO\\\\n\\\",\\n\",\n", + " \" \\\"* Grid (shape, coordinates, dimensions, etc)\\\\n\\\",\\n\",\n", + " \" \\\"* Text Header\\\\n\\\",\\n\",\n", + " \" \\\"* Binary Header\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"It will **NOT** carry over:\\\\n\\\",\\n\",\n", + " \" \\\"* Trace data\\\\n\\\",\\n\",\n", + " \" \\\"* Header data\\\\n\\\",\\n\",\n", + " \" \\\"* Statistics\\\\n\\\",\\n\",\n", + " \" \\\"* Live Mask\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", + " \" \\\"execution_count\\\": 8,\\n\",\n", + " \" \\\"metadata\\\": {\\n\",\n", + " \" \\\"ExecuteTime\\\": {\\n\",\n", + " \" \\\"end_time\\\": \\\"2025-04-16T14:50:17.246513Z\\\",\\n\",\n", + " \" \\\"start_time\\\": \\\"2025-04-16T14:50:17.111779Z\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"outputs\\\": [],\\n\",\n", + " \" \\\"source\\\": [\\n\",\n", + " \" \\\"from mdio import create_empty_like\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"copy_path = \\\\\\\"copy_of_existing.mdio\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\"create_empty_like(create_conf.path, copy_path)\\\\n\\\",\\n\",\n", + " \" \\\"\\\\n\\\",\\n\",\n", + " \" \\\"copy_reader = MDIOReader(copy_path)\\\\n\\\",\\n\",\n", + " \" \\\"assert copy_reader.shape == reader.shape\\\\n\\\",\\n\",\n", + " \" \\\"assert copy_reader.binary_header == reader.binary_header\\\\n\\\",\\n\",\n", + " \" \\\"assert copy_reader.stats != reader.stats\\\"\\n\",\n", + " \" ]\\n\",\n", + " \" },\\n\",\n", + " \" {\\n\",\n", + " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", + " \" \\\"execution_count\\\": null,\\n\",\n", + " \" \\\"metadata\\\": {},\\n\",\n", + " \" \\\"outputs\\\": [],\\n\",\n", + " \" \\\"source\\\": []\\n\",\n", + " \" }\\n\",\n", + " \" ],\\n\",\n", + " \" \\\"metadata\\\": {\\n\",\n", + " \" \\\"kernelspec\\\": {\\n\",\n", + " \" \\\"display_name\\\": \\\"Python 3 (ipykernel)\\\",\\n\",\n", + " \" \\\"language\\\": \\\"python\\\",\\n\",\n", + " \" \\\"name\\\": \\\"python3\\\"\\n\",\n", + " \" },\\n\",\n", + " \" \\\"language_info\\\": {\\n\",\n", + " \" \\\"codemirror_mode\\\": {\\n\",\n", + " \" \\\"name\\\": \\\"ipython\\\",\\n\",\n", + " \" \\\"version\\\": 3\\n\",\n", + " \" },\\n\",\n", + " \" \\\"file_extension\\\": \\\".py\\\",\\n\",\n", + " \" \\\"mimetype\\\": \\\"text/x-python\\\",\\n\",\n", + " \" \\\"name\\\": \\\"python\\\",\\n\",\n", + " \" \\\"nbconvert_exporter\\\": \\\"python\\\",\\n\",\n", + " \" \\\"pygments_lexer\\\": \\\"ipython3\\\",\\n\",\n", + " \" \\\"version\\\": \\\"3.12.3\\\"\\n\",\n", + " \" },\\n\",\n", + " \" \\\"widgets\\\": {\\n\",\n", + " \" \\\"application/vnd.jupyter.widget-state+json\\\": {\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"104c0d4e90244ebc959e51a58794dcf4\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"display\\\": \\\"inline-flex\\\",\\n\",\n", + " \" \\\"flex_flow\\\": \\\"row wrap\\\",\\n\",\n", + " \" \\\"width\\\": \\\"100%\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"1c0f5b458ee1401eaa8de63c65802073\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", + " \" \\\"font_size\\\": null,\\n\",\n", + " \" \\\"text_color\\\": null\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"21b25dd6080d42368afc06770d5e1755\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_35fb49026dac479eba87217c2f6bcb9a\\\",\\n\",\n", + " \" \\\"style\\\": \\\"IPY_MODEL_3ab3e27c83aa423d9ecdac94e576f0fe\\\",\\n\",\n", + " \" \\\"value\\\": \\\"Ingesting SEG-Y in 6 chunks: 100%\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"2693aae410f04e7587f0400b5eef1079\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"ProgressStyleModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"description_width\\\": \\\"\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"318aea09479a479981dcfa29bc856c67\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"ProgressStyleModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"description_width\\\": \\\"\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"35fb49026dac479eba87217c2f6bcb9a\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {}\\n\",\n", + " \" },\\n\",\n", + " \" \\\"3ab3e27c83aa423d9ecdac94e576f0fe\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", + " \" \\\"font_size\\\": null,\\n\",\n", + " \" \\\"text_color\\\": null\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"420b4a9492c54eb48d7779f38a09fd20\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"flex\\\": \\\"2\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"42afe4fae9dd4bc4a341a231cf7a9c32\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {}\\n\",\n", + " \" },\\n\",\n", + " \" \\\"4df685a95de542ffab6f265df89b8949\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", + " \" \\\"font_size\\\": null,\\n\",\n", + " \" \\\"text_color\\\": null\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"58eaddb54c8840da83d1f6503d6ba64f\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {}\\n\",\n", + " \" },\\n\",\n", + " \" \\\"5b3e72b71f304230bc36bb91f9c173be\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", + " \" \\\"font_size\\\": null,\\n\",\n", + " \" \\\"text_color\\\": null\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"5c1fab0ccc7e42c69c2b663b67ca9e3c\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {}\\n\",\n", + " \" },\\n\",\n", + " \" \\\"63a54817ae8b4c8d85b30d8c97e7ed0d\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HBoxModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"children\\\": [\\n\",\n", + " \" \\\"IPY_MODEL_e170d60a55a14c489d32b101293a9d33\\\",\\n\",\n", + " \" \\\"IPY_MODEL_662ad93cf7b3470f8e197350441f09ca\\\",\\n\",\n", + " \" \\\"IPY_MODEL_ac4abab2367e461e956e4e0edb27be44\\\"\\n\",\n", + " \" ],\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_c59d6fe969a04f4da332ae2a6fdb9c77\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"63f87a2410ba47d38ad9f55a81357a29\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_ca48140488574a28a7469552441560e4\\\",\\n\",\n", + " \" \\\"style\\\": \\\"IPY_MODEL_ae2037efb9cc459e84bcc28ca7243437\\\",\\n\",\n", + " \" \\\"value\\\": \\\" 2/2 [00:03<00:00, 3.01s/block]\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"64eb2b9c8a094a1ea5f1991e5f09f5d9\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {}\\n\",\n", + " \" },\\n\",\n", + " \" \\\"662ad93cf7b3470f8e197350441f09ca\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"FloatProgressModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"bar_style\\\": \\\"success\\\",\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_420b4a9492c54eb48d7779f38a09fd20\\\",\\n\",\n", + " \" \\\"max\\\": 1,\\n\",\n", + " \" \\\"style\\\": \\\"IPY_MODEL_d16e93f72f3d4aeda2f5deee87e9754f\\\",\\n\",\n", + " \" \\\"value\\\": 1\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"74283969ff5446c89bb83b00a70226cf\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_5c1fab0ccc7e42c69c2b663b67ca9e3c\\\",\\n\",\n", + " \" \\\"style\\\": \\\"IPY_MODEL_1c0f5b458ee1401eaa8de63c65802073\\\",\\n\",\n", + " \" \\\"value\\\": \\\" 6/6 [00:09<00:00, 2.48s/block]\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"75cf0c1ed25e47aab20b060f3bb44fb8\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HBoxModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"children\\\": [\\n\",\n", + " \" \\\"IPY_MODEL_21b25dd6080d42368afc06770d5e1755\\\",\\n\",\n", + " \" \\\"IPY_MODEL_c33f32b62a204ef094f67b10f8adbdc1\\\",\\n\",\n", + " \" \\\"IPY_MODEL_74283969ff5446c89bb83b00a70226cf\\\"\\n\",\n", + " \" ],\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_91df4ac76fd744539d4237d6099f34a5\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"7ff32d7deac14f21ab0f0939fe09e440\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"ProgressStyleModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"description_width\\\": \\\"\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"91df4ac76fd744539d4237d6099f34a5\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"display\\\": \\\"inline-flex\\\",\\n\",\n", + " \" \\\"flex_flow\\\": \\\"row wrap\\\",\\n\",\n", + " \" \\\"width\\\": \\\"100%\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"981634b52a7a4ffdae6186061c0b6482\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HBoxModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"children\\\": [\\n\",\n", + " \" \\\"IPY_MODEL_f65266f861cf40ef84e9ec74a8e0b44c\\\",\\n\",\n", + " \" \\\"IPY_MODEL_9aaf514a5035413d8cbbad58aa0221f4\\\",\\n\",\n", + " \" \\\"IPY_MODEL_63f87a2410ba47d38ad9f55a81357a29\\\"\\n\",\n", + " \" ],\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_104c0d4e90244ebc959e51a58794dcf4\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"9aaf514a5035413d8cbbad58aa0221f4\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"FloatProgressModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"bar_style\\\": \\\"success\\\",\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_b25523a221fd4b5e9211d07ef39cccf5\\\",\\n\",\n", + " \" \\\"max\\\": 2,\\n\",\n", + " \" \\\"style\\\": \\\"IPY_MODEL_318aea09479a479981dcfa29bc856c67\\\",\\n\",\n", + " \" \\\"value\\\": 2\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"9fe5348964cd4f7880bcd33204bbc7a2\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {}\\n\",\n", + " \" },\\n\",\n", + " \" \\\"a03d238db31145b881a1be478f9eb72f\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", + " \" \\\"font_size\\\": null,\\n\",\n", + " \" \\\"text_color\\\": null\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"a6aabcd2e57348a49bb59477f6a9fd90\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"FloatProgressModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"bar_style\\\": \\\"success\\\",\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_cfb02c9c7447491ca00bbb6acd99bb79\\\",\\n\",\n", + " \" \\\"max\\\": 26,\\n\",\n", + " \" \\\"style\\\": \\\"IPY_MODEL_7ff32d7deac14f21ab0f0939fe09e440\\\",\\n\",\n", + " \" \\\"value\\\": 26\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"ac4abab2367e461e956e4e0edb27be44\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_58eaddb54c8840da83d1f6503d6ba64f\\\",\\n\",\n", + " \" \\\"style\\\": \\\"IPY_MODEL_a03d238db31145b881a1be478f9eb72f\\\",\\n\",\n", + " \" \\\"value\\\": \\\" 3/? [00:00<00:00, 8.29block/s]\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"ae2037efb9cc459e84bcc28ca7243437\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", + " \" \\\"font_size\\\": null,\\n\",\n", + " \" \\\"text_color\\\": null\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"b25523a221fd4b5e9211d07ef39cccf5\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"flex\\\": \\\"2\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"b9810ee38bbe43f4bba100e53379be65\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_42afe4fae9dd4bc4a341a231cf7a9c32\\\",\\n\",\n", + " \" \\\"style\\\": \\\"IPY_MODEL_fdcea609ee7349629604217b625371d3\\\",\\n\",\n", + " \" \\\"value\\\": \\\" 26/26 [00:01<00:00, 18.92block/s]\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"c33f32b62a204ef094f67b10f8adbdc1\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"FloatProgressModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"bar_style\\\": \\\"success\\\",\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_d23d88490a1b4941b8ca228b7d4a39cb\\\",\\n\",\n", + " \" \\\"max\\\": 6,\\n\",\n", + " \" \\\"style\\\": \\\"IPY_MODEL_2693aae410f04e7587f0400b5eef1079\\\",\\n\",\n", + " \" \\\"value\\\": 6\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"c59d6fe969a04f4da332ae2a6fdb9c77\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"display\\\": \\\"inline-flex\\\",\\n\",\n", + " \" \\\"flex_flow\\\": \\\"row wrap\\\",\\n\",\n", + " \" \\\"width\\\": \\\"100%\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"ca48140488574a28a7469552441560e4\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {}\\n\",\n", + " \" },\\n\",\n", + " \" \\\"cfb02c9c7447491ca00bbb6acd99bb79\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"flex\\\": \\\"2\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"d16e93f72f3d4aeda2f5deee87e9754f\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"ProgressStyleModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"description_width\\\": \\\"\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"d23d88490a1b4941b8ca228b7d4a39cb\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"flex\\\": \\\"2\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"d565a20d37e84ed0a1195e9a90154960\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HBoxModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"children\\\": [\\n\",\n", + " \" \\\"IPY_MODEL_db696e15587c4a54b82886b3eb5a0c96\\\",\\n\",\n", + " \" \\\"IPY_MODEL_a6aabcd2e57348a49bb59477f6a9fd90\\\",\\n\",\n", + " \" \\\"IPY_MODEL_b9810ee38bbe43f4bba100e53379be65\\\"\\n\",\n", + " \" ],\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_eab4b060672b4dd5a73ca7bb8f782cd2\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"db696e15587c4a54b82886b3eb5a0c96\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_64eb2b9c8a094a1ea5f1991e5f09f5d9\\\",\\n\",\n", + " \" \\\"style\\\": \\\"IPY_MODEL_5b3e72b71f304230bc36bb91f9c173be\\\",\\n\",\n", + " \" \\\"value\\\": \\\"Step 1 / 2 Writing Blocks: 100%\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"e170d60a55a14c489d32b101293a9d33\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_9fe5348964cd4f7880bcd33204bbc7a2\\\",\\n\",\n", + " \" \\\"style\\\": \\\"IPY_MODEL_4df685a95de542ffab6f265df89b8949\\\",\\n\",\n", + " \" \\\"value\\\": \\\"Step 2 / 2 Concat Blocks: \\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"e66368cda8124001b16459a0634029e2\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", + " \" \\\"font_size\\\": null,\\n\",\n", + " \" \\\"text_color\\\": null\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"eab4b060672b4dd5a73ca7bb8f782cd2\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"display\\\": \\\"inline-flex\\\",\\n\",\n", + " \" \\\"flex_flow\\\": \\\"row wrap\\\",\\n\",\n", + " \" \\\"width\\\": \\\"100%\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"f65266f861cf40ef84e9ec74a8e0b44c\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"layout\\\": \\\"IPY_MODEL_fff4199774534d9f982f03738fbb08e7\\\",\\n\",\n", + " \" \\\"style\\\": \\\"IPY_MODEL_e66368cda8124001b16459a0634029e2\\\",\\n\",\n", + " \" \\\"value\\\": \\\"Scanning SEG-Y for geometry attributes: 100%\\\"\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"fdcea609ee7349629604217b625371d3\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", + " \" \\\"state\\\": {\\n\",\n", + " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", + " \" \\\"font_size\\\": null,\\n\",\n", + " \" \\\"text_color\\\": null\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"fff4199774534d9f982f03738fbb08e7\\\": {\\n\",\n", + " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", + " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", + " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", + " \" \\\"state\\\": {}\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"version_major\\\": 2,\\n\",\n", + " \" \\\"version_minor\\\": 0\\n\",\n", + " \" }\\n\",\n", + " \" }\\n\",\n", + " \" },\\n\",\n", + " \" \\\"nbformat\\\": 4,\\n\",\n", + " \" \\\"nbformat_minor\\\": 4\\n\",\n", + " \"}\\n\"\n", " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"markdown\",\n", - " \"metadata\": {},\n", - " \"source\": [\n", - " \"## Updating File and Checking with `MDIOReader`.\\n\",\n", - " \"\\n\",\n", - " \"We write traces here, the headers are still empty. If you need the headers\\n\",\n", - " \"populated, this is where they would be written to file as well.\\n\",\n", - " \"\\n\",\n", - " \"All the extra metadata we are writing is so that we can export back to SEG-Y\\n\",\n", - " \"in the future. If that's not a requirement most of the metadata can be\\n\",\n", - " \"omitted.\\n\",\n", - " \"\\n\",\n", - " \"If you already have an MDIO prior to this, all the metadata can be copied\\n\",\n", - " \"over from the previous version.\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 5,\n", - " \"metadata\": {\n", - " \"ExecuteTime\": {\n", - " \"end_time\": \"2025-04-16T14:50:12.498287Z\",\n", - " \"start_time\": \"2025-04-16T14:50:11.670230Z\"\n", - " },\n", - " \"pycharm\": {\n", - " \"name\": \"#%%\\n\"\n", - " }\n", - " },\n", - " \"outputs\": [\n", - " {\n", - " \"data\": {\n", - " \"text/plain\": [\n", - " \"({'data_sample_format': 1,\\n\",\n", - " \" 'sample_interval': 4,\\n\",\n", - " \" 'samples_per_trace': 750,\\n\",\n", - " \" 'segy_revision_major': 1,\\n\",\n", - " \" 'segy_revision_minor': 0},\\n\",\n", - " \" {'rms': 3, 'min': -4, 'mean': 12, 'max': 4, 'std': 5})\"\n", - " ]\n", - " },\n", - " \"execution_count\": 5,\n", - " \"metadata\": {},\n", - " \"output_type\": \"execute_result\"\n", - " }\n", - " ],\n", - " \"source\": [\n", - " \"sample_dim = writer.grid.select_dim(\\\"sample\\\")\\n\",\n", - " \"sample_interval = int(sample_dim.coords[1] - sample_dim.coords[0])\\n\",\n", - " \"num_samples = sample_dim.size\\n\",\n", - " \"writer.binary_header = {\\n\",\n", - " \" \\\"data_sample_format\\\": 1,\\n\",\n", - " \" \\\"sample_interval\\\": sample_interval,\\n\",\n", - " \" \\\"samples_per_trace\\\": num_samples,\\n\",\n", - " \" \\\"segy_revision_major\\\": 1,\\n\",\n", - " \" \\\"segy_revision_minor\\\": 0,\\n\",\n", - " \"}\\n\",\n", - " \"\\n\",\n", - " \"# Write some values to the file\\n\",\n", - " \"writer[:5] = 1\\n\",\n", - " \"writer[5:10] = 2\\n\",\n", - " \"writer[50:100] = 3\\n\",\n", - " \"writer[150:175] = -1\\n\",\n", - " \"\\n\",\n", - " \"# Write some made up stats\\n\",\n", - " \"writer.stats = {\\\"mean\\\": 12, \\\"std\\\": 5, \\\"rms\\\": 3, \\\"min\\\": -4, \\\"max\\\": 4}\\n\",\n", - " \"\\n\",\n", - " \"reader = MDIOReader(create_conf.path)\\n\",\n", - " \"reader.binary_header, reader.stats\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"markdown\",\n", - " \"metadata\": {},\n", - " \"source\": \"Plot some of the data we populated:\"\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 6,\n", - " \"metadata\": {\n", - " \"ExecuteTime\": {\n", - " \"end_time\": \"2025-04-16T14:50:14.256953Z\",\n", - " \"start_time\": \"2025-04-16T14:50:14.036094Z\"\n", - " }\n", - " },\n", - " \"outputs\": [\n", - " {\n", - " \"data\": {\n", - " \"image/png\": \"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+wEoWAh2AOADOtK1Zs2aXq/VqFFDDhw4YL4uU6aMeTx69KjXMfrc2aePKSkpXvszMjLMSFnnmOwiIyPNCFrPDUDwINgBgA/oiNikpCSv1/773/9KxYoV3QMpNJwlJia692t/OO07Fx8fb57r4/Hjx2Xbtm3uY1atWmVqA7UvHgBkx6hYAPCBgQMHym233WaaYh988EHZvHmzvP3222ZTISEhMmDAAHnhhRdMPzwNeiNGjDAjXTt06OCu4WvVqpW7CTc9PV369etnRswyIhZATgh2AOADDRs2lAULFpg+b2PGjDHBTac30XnpHM8884ykpqaa/ndaM9ekSRMzvUlUVJT7mPfff9+EuebNm5vRsJ06dTJz3wFATgh2AOAjf/zjH82WG62109CnW250BOzcuXN9dIYAbEMfOwAAAEsQ7AAAACzh12CnE2lqP5SiRYuaSTi1w3D2UWRNmzY1zRWe2xNPPOF1jE4f0LZtWylcuLD5nCFDhpgpAQAAAIKJX/vYrVmzRvr27WvCnQax5557Tlq2bGkWy9bFsB06IsyzD4oGOEdmZqYJdTptwPr16+XIkSPy6KOPmoW3dTQaAABAsPBrsNPRX55mzZplatx0zqY777zTK8jlNhnn8uXLTRBcuXKlWYqnXr16MnbsWBk6dKiMHj1aIiIifH4dAAAABUGB6mOny984o8A86XD/kiVLys0332ymDjhz5ox7ny6SXbt2ba/1FhMSEsxEnzt37szx+7BINgAAsFGBme5EZ1LXyTp1tnYNcI6HH37YzNSuk3F+++23piZO++F98sknZr8uhJ3TItrOvtz69j3//PM+vR4AAICgDXba1+67776TdevWeb2uE3c6tGZO11/UiTr37dsnVapUuazvpbV+gwYNcj/XGrvy5ctfwdkDAAD4X4FoitVZ1RcvXixffPGFXH/99Rc81lkfce/eveZR+97ltIi2sy8nLJINAABs5Ndg53K5TKjTZXd0YWtdcuditm/fbh615s5ZJHvHjh2SkpLiPmbFihUmrNWsWdOHZw8AAFCwhPm7+VWXyvn000/NXHZOn7jY2FiJjo42za26v02bNlKiRAnTx04X1tYRs3Xq1DHH6vQoGuC6desm48ePN58xfPhw89laMwcAABAs/FpjN3XqVDMSVich1ho4Z/vggw/Mfp2qRKcx0fBWvXp1efrpp80C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\",\n", - " \"text/plain\": [\n", - " \"
\"\n", - " ]\n", - " },\n", - " \"metadata\": {},\n", - " \"output_type\": \"display_data\"\n", - " }\n", - " ],\n", - " \"source\": [\n", - " \"fig, ax = plt.subplots(1, 2, sharex=\\\"all\\\")\\n\",\n", - " \"ax[0].imshow(writer.live_mask[:].T, aspect=\\\"auto\\\")\\n\",\n", - " \"ax[1].imshow(reader[:, 150].T, aspect=\\\"auto\\\")\\n\",\n", - " \"\\n\",\n", - " \"ax[0].set_xlabel(\\\"inline\\\")\\n\",\n", - " \"ax[0].set_ylabel(\\\"crossline\\\")\\n\",\n", - " \"ax[1].set_xlabel(\\\"inline\\\")\\n\",\n", - " \"ax[1].set_ylabel(\\\"sample\\\")\\n\",\n", - " \"ax[0].set_title(\\\"Live Mask\\\")\\n\",\n", - " \"ax[1].set_title(\\\"Middle Crossline\\\")\\n\",\n", - " \"fig.tight_layout();\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"markdown\",\n", - " \"metadata\": {},\n", - " \"source\": [\n", - " \"## Write to SEG-Y\\n\",\n", - " \"\\n\",\n", - " \"Because we populated all the fields necessary for SEG-Y output, we can call the\\n\",\n", - " \"MDIO to SEGY converter and get a file out.\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 7,\n", - " \"metadata\": {\n", - " \"ExecuteTime\": {\n", - " \"end_time\": \"2025-04-16T14:50:15.788812Z\",\n", - " \"start_time\": \"2025-04-16T14:50:15.009889Z\"\n", - " }\n", - " },\n", - " \"outputs\": [\n", - " {\n", - " \"name\": \"stderr\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"Unwrapping MDIO Blocks: 100%|██████████| 7/7 [00:00<00:00, 10.55it/s]\\n\",\n", - " \"Merging lines: 100%|██████████| 1/1 [00:00<00:00, 17.26it/s]\"\n", - " ]\n", - " },\n", - " {\n", - " \"name\": \"stdout\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"[(0, 0, 0, 0, 0, 4, 4000, 750, 750, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0)]\\n\",\n", - " \"[[1. 1. 1. ... 1. 1. 1.]\\n\",\n", - " \" [1. 1. 1. ... 1. 1. 1.]\\n\",\n", - " \" [1. 1. 1. ... 1. 1. 1.]\\n\",\n", - " \" ...\\n\",\n", - " \" [1. 1. 1. ... 1. 1. 1.]\\n\",\n", - " \" [1. 1. 1. ... 1. 1. 1.]\\n\",\n", - " \" [1. 1. 1. ... 1. 1. 1.]]\\n\"\n", - " ]\n", - " },\n", - " {\n", - " \"name\": \"stderr\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"\\n\"\n", - " ]\n", - " }\n", - " ],\n", - " \"source\": [\n", - " \"from segy import SegyFile\\n\",\n", - " \"\\n\",\n", - " \"from mdio import mdio_to_segy\\n\",\n", - " \"\\n\",\n", - " \"mdio_to_segy(\\\"demo.mdio\\\", \\\"demo.segy\\\")\\n\",\n", - " \"segy = SegyFile(\\\"demo.segy\\\")\\n\",\n", - " \"print(segy.binary_header)\\n\",\n", - " \"print(segy.sample[:100])\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"markdown\",\n", - " \"metadata\": {},\n", - " \"source\": [\n", - " \"## Copying an Existing MDIO without Data and Headers\\n\",\n", - " \"\\n\",\n", - " \"We also provide a `create_empty_like` function which allows us to create an MDIO file\\n\",\n", - " \"with the same structure and basic metadata as an existing one.\\n\",\n", - " \"\\n\",\n", - " \"This will carry over:\\n\",\n", - " \"* All access patterns in source MDIO\\n\",\n", - " \"* Grid (shape, coordinates, dimensions, etc)\\n\",\n", - " \"* Text Header\\n\",\n", - " \"* Binary Header\\n\",\n", - " \"\\n\",\n", - " \"It will **NOT** carry over:\\n\",\n", - " \"* Trace data\\n\",\n", - " \"* Header data\\n\",\n", - " \"* Statistics\\n\",\n", - " \"* Live Mask\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 8,\n", - " \"metadata\": {\n", - " \"ExecuteTime\": {\n", - " \"end_time\": \"2025-04-16T14:50:17.246513Z\",\n", - " \"start_time\": \"2025-04-16T14:50:17.111779Z\"\n", - " }\n", - " },\n", - " \"outputs\": [],\n", - " \"source\": [\n", - " \"from mdio import create_empty_like\\n\",\n", - " \"\\n\",\n", - " \"copy_path = \\\"copy_of_existing.mdio\\\"\\n\",\n", - " \"create_empty_like(create_conf.path, copy_path)\\n\",\n", - " \"\\n\",\n", - " \"copy_reader = MDIOReader(copy_path)\\n\",\n", - " \"assert copy_reader.shape == reader.shape\\n\",\n", - " \"assert copy_reader.binary_header == reader.binary_header\\n\",\n", - " \"assert copy_reader.stats != reader.stats\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": null,\n", - " \"metadata\": {},\n", - " \"outputs\": [],\n", - " \"source\": []\n", " }\n", " ],\n", " \"metadata\": {\n", From 793f3f149cf0ca0140b3f0051f37d4434905ab68 Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Tue, 29 Apr 2025 15:38:15 -0500 Subject: [PATCH 09/19] fix creation notebook --- docs/tutorials/creation.ipynb | 1225 ++++++++++++++++++++++----------- 1 file changed, 838 insertions(+), 387 deletions(-) diff --git a/docs/tutorials/creation.ipynb b/docs/tutorials/creation.ipynb index 25a67c4f..73ff5b67 100644 --- a/docs/tutorials/creation.ipynb +++ b/docs/tutorials/creation.ipynb @@ -13,396 +13,847 @@ " \"{\\n\",\n", " \" \\\"cells\\\": [\\n\",\n", " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", - " \" \\\"metadata\\\": {\\n\",\n", - " \" \\\"pycharm\\\": {\\n\",\n", - " \" \\\"name\\\": \\\"#%% md\\\\n\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"# Create an Empty MDIO\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"```{article-info}\\\\n\\\",\\n\",\n", - " \" \\\":author: Altay Sansal\\\\n\\\",\\n\",\n", - " \" \\\":date: \\\\\\\"{sub-ref}`today`\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\":read-time: \\\\\\\"{sub-ref}`wordcount-minutes` min read\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\":class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light\\\\n\\\",\\n\",\n", - " \" \\\"```\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"Here we will create an empty MDIO file and populate its fields.\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"```{warning}\\\\n\\\",\\n\",\n", - " \" \\\"For plotting, the notebook requires [Matplotlib](https://matplotlib.org/) as a dependency. Please install it before executing using\\\\n\\\",\\n\",\n", - " \" \\\"`pip install matplotlib` or `conda install matplotlib`.\\\\n\\\",\\n\",\n", - " \" \\\"```\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"We first need to import the configuration classes and create function to be able to create the empty MDIO.\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", - " \" \\\"execution_count\\\": 2,\\n\",\n", - " \" \\\"metadata\\\": {\\n\",\n", - " \" \\\"ExecuteTime\\\": {\\n\",\n", - " \" \\\"end_time\\\": \\\"2025-04-16T14:50:04.371422Z\\\",\\n\",\n", - " \" \\\"start_time\\\": \\\"2025-04-16T14:50:04.368107Z\\\"\\n\",\n", - " \" },\\n\",\n", - " \" \\\"pycharm\\\": {\\n\",\n", - " \" \\\"name\\\": \\\"#%%\\\\n\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"outputs\\\": [],\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"import matplotlib.pyplot as plt\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"from mdio import Dimension\\\\n\\\",\\n\",\n", - " \" \\\"from mdio import Grid\\\\n\\\",\\n\",\n", - " \" \\\"from mdio import MDIOCreateConfig\\\\n\\\",\\n\",\n", - " \" \\\"from mdio import MDIOReader\\\\n\\\",\\n\",\n", - " \" \\\"from mdio import MDIOVariableConfig\\\\n\\\",\\n\",\n", - " \" \\\"from mdio import MDIOWriter\\\\n\\\",\\n\",\n", - " \" \\\"from mdio import create_empty\\\\n\\\",\\n\",\n", - " \" \\\"from mdio.converters.segy import get_compressor\\\\n\\\",\\n\",\n", - " \" \\\"from mdio.segy.compat import mdio_segy_spec\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", - " \" \\\"metadata\\\": {\\n\",\n", - " \" \\\"pycharm\\\": {\\n\",\n", - " \" \\\"name\\\": \\\"#%% md\\\\n\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"## Setting Up Grid Dimensions and Variable(s)\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"Let's try to create an MDIO file in 3D with known `inline`, `crossline`, and `sample`\\\\n\\\",\\n\",\n", - " \" \\\"dimensions. This is exactly like a 3D Post-Stack dataset.\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"We will use the standard `chunked_012` access pattern. All variable names must start\\\\n\\\",\\n\",\n", - " \" \\\"with `chunked_*` for `MDIOReader` to be able to open them with any access pattern.\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"We will also use an MDIO private utility function to get the compressor easily. The\\\\n\\\",\\n\",\n", - " \" \\\"compressor is fully customizable, but this function gives us ones available in SEG-Y\\\\n\\\",\\n\",\n", - " \" \\\"ingestion.\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"If we want headers, we can also provide `header_dtype` which is a Numpy `dtype`. Again,\\\\n\\\",\\n\",\n", - " \" \\\"we will be using the standard one MDIO uses for ingesting SEG-Ys. (Similar to SEG-Y Rev1).\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"At the end we create empty MDIO on local disk or cloud, based on the path string.\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", - " \" \\\"execution_count\\\": 3,\\n\",\n", - " \" \\\"metadata\\\": {\\n\",\n", - " \" \\\"ExecuteTime\\\": {\\n\",\n", - " \" \\\"end_time\\\": \\\"2025-04-16T14:50:06.121450Z\\\",\\n\",\n", - " \" \\\"start_time\\\": \\\"2025-04-16T14:50:06.002634Z\\\"\\n\",\n", - " \" },\\n\",\n", - " \" \\\"pycharm\\\": {\\n\",\n", - " \" \\\"name\\\": \\\"#%%\\\\n\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"outputs\\\": [],\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"grid = Grid(\\\\n\\\",\\n\",\n", - " \" \\\" dims=[\\\\n\\\",\\n\",\n", - " \" \\\" Dimension(name=\\\\\\\"inline\\\\\\\", coords=range(100, 300, 1)), # 100-300 with step 1\\\\n\\\",\\n\",\n", - " \" \\\" Dimension(name=\\\\\\\"crossline\\\\\\\", coords=range(1000, 1600, 2)), # 1000-1600 with step 2\\\\n\\\",\\n\",\n", - " \" \\\" Dimension(name=\\\\\\\"sample\\\\\\\", coords=range(0, 3000, 4)), # 0-3 seconds 4ms sample rate\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\")\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"compressor = get_compressor(lossless=True)\\\\n\\\",\\n\",\n", - " \" \\\"header_dtype = mdio_segy_spec().trace.header.dtype\\\\n\\\",\\n\",\n", - " \" \\\"variable = MDIOVariableConfig(\\\\n\\\",\\n\",\n", - " \" \\\" name=\\\\\\\"chunked_012\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" dtype=\\\\\\\"float32\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" chunks=(128, 128, 128),\\\\n\\\",\\n\",\n", - " \" \\\" compressors=compressor,\\\\n\\\",\\n\",\n", - " \" \\\" header_dtype=header_dtype,\\\\n\\\",\\n\",\n", - " \" \\\")\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"create_conf = MDIOCreateConfig(path=\\\\\\\"demo.mdio\\\\\\\", grid=grid, variables=[variable])\\\\n\\\",\\n\",\n", - " \" \\\"create_empty(config=create_conf);\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", " \" \\\"metadata\\\": {},\\n\",\n", + " \" \\\"cell_type\\\": \\\"raw\\\",\\n\",\n", " \" \\\"source\\\": [\\n\",\n", - " \" \\\"## Populating the MDIO\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"Once empty MDIO is created, you can populate it with sample data, header data,\\\\n\\\",\\n\",\n", - " \" \\\"metadata, and statistics. The `live_mask` is automatically flipped to 1 after\\\\n\\\",\\n\",\n", - " \" \\\"every write. However, the consistency of the `live_mask` is up to the user. If\\\\n\\\",\\n\",\n", - " \" \\\"not populated correctly, at read time, traces may be skipped.\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"We will read the usual stats and as you can see they're all empty. Text header\\\\n\\\",\\n\",\n", - " \" \\\"and binary header are only required if we are going to export this back to SEG-Y,\\\\n\\\",\\n\",\n", - " \" \\\"and can be modified. We can edit these if necessary using the writer.\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", - " \" \\\"execution_count\\\": 4,\\n\",\n", - " \" \\\"metadata\\\": {\\n\",\n", - " \" \\\"ExecuteTime\\\": {\\n\",\n", - " \" \\\"end_time\\\": \\\"2025-04-16T14:50:09.974442Z\\\",\\n\",\n", - " \" \\\"start_time\\\": \\\"2025-04-16T14:50:09.951257Z\\\"\\n\",\n", - " \" },\\n\",\n", - " \" \\\"pycharm\\\": {\\n\",\n", - " \" \\\"name\\\": \\\"#%%\\\\n\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"outputs\\\": [\\n\",\n", - " \" {\\n\",\n", - " \" \\\"data\\\": {\\n\",\n", - " \" \\\"text/plain\\\": [\\n\",\n", - " \" \\\"(['C00 ',\\\\n\\\",\\n\",\n", - " \" \\\" 'C01 ',\\\\n\\\",\\n\",\n", - " \" \\\" 'C02 ',\\\\n\\\",\\n\",\n", - " \" \\\" 'C03 ',\\\\n\\\",\\n\",\n", - " \" \\\" 'C04 '],\\\\n\\\",\\n\",\n", - " \" \\\" {},\\\\n\\\",\\n\",\n", - " \" \\\" {'rms': 0, 'min': 0, 'mean': 0, 'max': 0, 'std': 0})\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" \\\"execution_count\\\": 4,\\n\",\n", - " \" \\\"metadata\\\": {},\\n\",\n", - " \" \\\"output_type\\\": \\\"execute_result\\\"\\n\",\n", - " \" }\\n\",\n", - " \" ],\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"writer = MDIOWriter(create_conf.path)\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"# Truncate text header for display\\\\n\\\",\\n\",\n", - " \" \\\"writer.text_header[:5], writer.binary_header, writer.stats\\\"\\n\",\n", + " \" \\\"{\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cells\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"pycharm\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"#%% md\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"# Create an Empty MDIO\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"```{article-info}\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\":author: Altay Sansal\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\":date: \\\\\\\\\\\\\\\"{sub-ref}`today`\\\\\\\\\\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\":read-time: \\\\\\\\\\\\\\\"{sub-ref}`wordcount-minutes` min read\\\\\\\\\\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\":class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"```\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"Here we will create an empty MDIO file and populate its fields.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"```{warning}\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"For plotting, the notebook requires [Matplotlib](https://matplotlib.org/) as a dependency. Please install it before executing using\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"`pip install matplotlib` or `conda install matplotlib`.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"```\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"We first need to import the configuration classes and create function to be able to create the empty MDIO.\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"execution_count\\\\\\\": 2,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:04.371422Z\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:04.368107Z\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"pycharm\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"#%%\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"outputs\\\\\\\": [],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"import matplotlib.pyplot as plt\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"from mdio import Dimension\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"from mdio import Grid\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"from mdio import MDIOCreateConfig\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"from mdio import MDIOReader\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"from mdio import MDIOVariableConfig\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"from mdio import MDIOWriter\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"from mdio import create_empty\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"from mdio.converters.segy import get_compressor\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"from mdio.segy.compat import mdio_segy_spec\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"pycharm\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"#%% md\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"## Setting Up Grid Dimensions and Variable(s)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"Let's try to create an MDIO file in 3D with known `inline`, `crossline`, and `sample`\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"dimensions. This is exactly like a 3D Post-Stack dataset.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"We will use the standard `chunked_012` access pattern. All variable names must start\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"with `chunked_*` for `MDIOReader` to be able to open them with any access pattern.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"We will also use an MDIO private utility function to get the compressor easily. The\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"compressor is fully customizable, but this function gives us ones available in SEG-Y\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ingestion.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"If we want headers, we can also provide `header_dtype` which is a Numpy `dtype`. Again,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"we will be using the standard one MDIO uses for ingesting SEG-Ys. (Similar to SEG-Y Rev1).\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"At the end we create empty MDIO on local disk or cloud, based on the path string.\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"execution_count\\\\\\\": 3,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:06.121450Z\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:06.002634Z\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"pycharm\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"#%%\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"outputs\\\\\\\": [],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"grid = Grid(\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" dims=[\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" Dimension(name=\\\\\\\\\\\\\\\"inline\\\\\\\\\\\\\\\", coords=range(100, 300, 1)), # 100-300 with step 1\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" Dimension(name=\\\\\\\\\\\\\\\"crossline\\\\\\\\\\\\\\\", coords=range(1000, 1600, 2)), # 1000-1600 with step 2\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" Dimension(name=\\\\\\\\\\\\\\\"sample\\\\\\\\\\\\\\\", coords=range(0, 3000, 4)), # 0-3 seconds 4ms sample rate\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" ]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"compressor = get_compressor(lossless=True)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"header_dtype = mdio_segy_spec().trace.header.dtype\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"variable = MDIOVariableConfig(\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" name=\\\\\\\\\\\\\\\"chunked_012\\\\\\\\\\\\\\\",\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" dtype=\\\\\\\\\\\\\\\"float32\\\\\\\\\\\\\\\",\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" chunks=(128, 128, 128),\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" compressors=compressor,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" header_dtype=header_dtype,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"create_conf = MDIOCreateConfig(path=\\\\\\\\\\\\\\\"demo.mdio\\\\\\\\\\\\\\\", grid=grid, variables=[variable])\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"create_empty(config=create_conf);\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"## Populating the MDIO\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"Once empty MDIO is created, you can populate it with sample data, header data,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata, and statistics. The `live_mask` is automatically flipped to 1 after\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"every write. However, the consistency of the `live_mask` is up to the user. If\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"not populated correctly, at read time, traces may be skipped.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"We will read the usual stats and as you can see they're all empty. Text header\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"and binary header are only required if we are going to export this back to SEG-Y,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"and can be modified. We can edit these if necessary using the writer.\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"execution_count\\\\\\\": 4,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:09.974442Z\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:09.951257Z\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"pycharm\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"#%%\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"outputs\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"data\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text/plain\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"(['C00 ',\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" 'C01 ',\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" 'C02 ',\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" 'C03 ',\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" 'C04 '],\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" {},\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" {'rms': 0, 'min': 0, 'mean': 0, 'max': 0, 'std': 0})\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"execution_count\\\\\\\": 4,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"output_type\\\\\\\": \\\\\\\"execute_result\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" ],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"writer = MDIOWriter(create_conf.path)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"# Truncate text header for display\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"writer.text_header[:5], writer.binary_header, writer.stats\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"## Updating File and Checking with `MDIOReader`.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"We write traces here, the headers are still empty. If you need the headers\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"populated, this is where they would be written to file as well.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"All the extra metadata we are writing is so that we can export back to SEG-Y\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"in the future. If that's not a requirement most of the metadata can be\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"omitted.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"If you already have an MDIO prior to this, all the metadata can be copied\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"over from the previous version.\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"execution_count\\\\\\\": 5,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:12.498287Z\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:11.670230Z\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"pycharm\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"#%%\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"outputs\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"data\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text/plain\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"({'data_sample_format': 1,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" 'sample_interval': 4,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" 'samples_per_trace': 750,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" 'segy_revision_major': 1,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" 'segy_revision_minor': 0},\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" {'rms': 3, 'min': -4, 'mean': 12, 'max': 4, 'std': 5})\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"execution_count\\\\\\\": 5,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"output_type\\\\\\\": \\\\\\\"execute_result\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" ],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"sample_dim = writer.grid.select_dim(\\\\\\\\\\\\\\\"sample\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"sample_interval = int(sample_dim.coords[1] - sample_dim.coords[0])\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"num_samples = sample_dim.size\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"writer.binary_header = {\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" \\\\\\\\\\\\\\\"data_sample_format\\\\\\\\\\\\\\\": 1,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" \\\\\\\\\\\\\\\"sample_interval\\\\\\\\\\\\\\\": sample_interval,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" \\\\\\\\\\\\\\\"samples_per_trace\\\\\\\\\\\\\\\": num_samples,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" \\\\\\\\\\\\\\\"segy_revision_major\\\\\\\\\\\\\\\": 1,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" \\\\\\\\\\\\\\\"segy_revision_minor\\\\\\\\\\\\\\\": 0,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"}\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"# Write some values to the file\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"writer[:5] = 1\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"writer[5:10] = 2\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"writer[50:100] = 3\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"writer[150:175] = -1\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"# Write some made up stats\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"writer.stats = {\\\\\\\\\\\\\\\"mean\\\\\\\\\\\\\\\": 12, \\\\\\\\\\\\\\\"std\\\\\\\\\\\\\\\": 5, \\\\\\\\\\\\\\\"rms\\\\\\\\\\\\\\\": 3, \\\\\\\\\\\\\\\"min\\\\\\\\\\\\\\\": -4, \\\\\\\\\\\\\\\"max\\\\\\\\\\\\\\\": 4}\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"reader = MDIOReader(create_conf.path)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"reader.binary_header, reader.stats\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": \\\\\\\"Plot some of the data we populated:\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"execution_count\\\\\\\": 6,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:14.256953Z\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:14.036094Z\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"outputs\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"data\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"image/png\\\\\\\": \\\\\\\"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+wEoWAh2AOADOtK1Zs2aXq/VqFFDDhw4YL4uU6aMeTx69KjXMfrc2aePKSkpXvszMjLMSFnnmOwiIyPNCFrPDUDwINgBgA/oiNikpCSv1/773/9KxYoV3QMpNJwlJia692t/OO07Fx8fb57r4/Hjx2Xbtm3uY1atWmVqA7UvHgBkx6hYAPCBgQMHym233WaaYh988EHZvHmzvP3222ZTISEhMmDAAHnhhRdMPzwNeiNGjDAjXTt06OCu4WvVqpW7CTc9PV369etnRswyIhZATgh2AOADDRs2lAULFpg+b2PGjDHBTac30XnpHM8884ykpqaa/ndaM9ekSRMzvUlUVJT7mPfff9+EuebNm5vRsJ06dTJz3wFATgh2AOAjf/zjH82WG62109CnW250BOzcuXN9dIYAbEMfOwAAAEsQ7AAAACzh12CnE2lqP5SiRYuaSTi1w3D2UWRNmzY1zRWe2xNPPOF1jE4f0LZtWylcuLD5nCFDhpgpAQAAAIKJX/vYrVmzRvr27WvCnQax5557Tlq2bGkWy9bFsB06IsyzD4oGOEdmZqYJdTptwPr16+XIkSPy6KOPmoW3dTQaAABAsPBrsNPRX55mzZplatx0zqY777zTK8jlNhnn8uXLTRBcuXKlWYqnXr16MnbsWBk6dKiMHj1aIiIifH4dAAAABUGB6mOny984o8A86XD/kiVLys0332ymDjhz5ox7ny6SXbt2ba/1FhMSEsxEnzt37szx+7BINgAAsFGBme5EZ1LXyTp1tnYNcI6HH37YzNSuk3F+++23piZO++F98sknZr8uhJ3TItrOvtz69j3//PM+vR4AAICgDXba1+67776TdevWeb2uE3c6tGZO11/UiTr37dsnVapUuazvpbV+gwYNcj/XGrvy5ctfwdkDAAD4X4FoitVZ1RcvXixffPGFXH/99Rc81lkfce/eveZR+97ltIi2sy8nLJINAABs5Ndg53K5TKjTZXd0YWtdcuditm/fbh615s5ZJHvHjh2SkpLiPmbFihUmrNWsWdOHZw8AAFCwhPm7+VWXyvn000/NXHZOn7jY2FiJjo42za26v02bNlKiRAnTx04X1tYRs3Xq1DHH6vQoGuC6desm48ePN58xfPhw89laMwcAABAs/FpjN3XqVDMSVich1ho4Z/vggw/Mfp2qRKcx0fBWvXp1efrpp80C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\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text/plain\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"
\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"output_type\\\\\\\": \\\\\\\"display_data\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" ],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"fig, ax = plt.subplots(1, 2, sharex=\\\\\\\\\\\\\\\"all\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ax[0].imshow(writer.live_mask[:].T, aspect=\\\\\\\\\\\\\\\"auto\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ax[1].imshow(reader[:, 150].T, aspect=\\\\\\\\\\\\\\\"auto\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ax[0].set_xlabel(\\\\\\\\\\\\\\\"inline\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ax[0].set_ylabel(\\\\\\\\\\\\\\\"crossline\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ax[1].set_xlabel(\\\\\\\\\\\\\\\"inline\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ax[1].set_ylabel(\\\\\\\\\\\\\\\"sample\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ax[0].set_title(\\\\\\\\\\\\\\\"Live Mask\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ax[1].set_title(\\\\\\\\\\\\\\\"Middle Crossline\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"fig.tight_layout();\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"## Write to SEG-Y\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"Because we populated all the fields necessary for SEG-Y output, we can call the\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"MDIO to SEGY converter and get a file out.\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"execution_count\\\\\\\": 7,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:15.788812Z\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:15.009889Z\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"outputs\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"stderr\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"output_type\\\\\\\": \\\\\\\"stream\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"Unwrapping MDIO Blocks: 100%|██████████| 7/7 [00:00<00:00, 10.55it/s]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"Merging lines: 100%|██████████| 1/1 [00:00<00:00, 17.26it/s]\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"stdout\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"output_type\\\\\\\": \\\\\\\"stream\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"[(0, 0, 0, 0, 0, 4, 4000, 750, 750, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0)]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"[[1. 1. 1. ... 1. 1. 1.]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" [1. 1. 1. ... 1. 1. 1.]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" [1. 1. 1. ... 1. 1. 1.]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" ...\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" [1. 1. 1. ... 1. 1. 1.]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" [1. 1. 1. ... 1. 1. 1.]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\" [1. 1. 1. ... 1. 1. 1.]]\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"stderr\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"output_type\\\\\\\": \\\\\\\"stream\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" ],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"from segy import SegyFile\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"from mdio import mdio_to_segy\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"mdio_to_segy(\\\\\\\\\\\\\\\"demo.mdio\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"demo.segy\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"segy = SegyFile(\\\\\\\\\\\\\\\"demo.segy\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"print(segy.binary_header)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"print(segy.sample[:100])\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"## Copying an Existing MDIO without Data and Headers\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"We also provide a `create_empty_like` function which allows us to create an MDIO file\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"with the same structure and basic metadata as an existing one.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"This will carry over:\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"* All access patterns in source MDIO\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"* Grid (shape, coordinates, dimensions, etc)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"* Text Header\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"* Binary Header\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"It will **NOT** carry over:\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"* Trace data\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"* Header data\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"* Statistics\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"* Live Mask\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"execution_count\\\\\\\": 8,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:17.246513Z\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:17.111779Z\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"outputs\\\\\\\": [],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"from mdio import create_empty_like\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"copy_path = \\\\\\\\\\\\\\\"copy_of_existing.mdio\\\\\\\\\\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"create_empty_like(create_conf.path, copy_path)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"copy_reader = MDIOReader(copy_path)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"assert copy_reader.shape == reader.shape\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"assert copy_reader.binary_header == reader.binary_header\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"assert copy_reader.stats != reader.stats\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ]\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"execution_count\\\\\\\": null,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"outputs\\\\\\\": [],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"source\\\\\\\": []\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" ],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"kernelspec\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"display_name\\\\\\\": \\\\\\\"Python 3 (ipykernel)\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"language\\\\\\\": \\\\\\\"python\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"python3\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"language_info\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"codemirror_mode\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"ipython\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"version\\\\\\\": 3\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"file_extension\\\\\\\": \\\\\\\".py\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"mimetype\\\\\\\": \\\\\\\"text/x-python\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"python\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"nbconvert_exporter\\\\\\\": \\\\\\\"python\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"pygments_lexer\\\\\\\": \\\\\\\"ipython3\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"version\\\\\\\": \\\\\\\"3.12.3\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"widgets\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"application/vnd.jupyter.widget-state+json\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"104c0d4e90244ebc959e51a58794dcf4\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"display\\\\\\\": \\\\\\\"inline-flex\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"flex_flow\\\\\\\": \\\\\\\"row wrap\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"width\\\\\\\": \\\\\\\"100%\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"1c0f5b458ee1401eaa8de63c65802073\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"21b25dd6080d42368afc06770d5e1755\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_35fb49026dac479eba87217c2f6bcb9a\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_3ab3e27c83aa423d9ecdac94e576f0fe\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\"Ingesting SEG-Y in 6 chunks: 100%\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"2693aae410f04e7587f0400b5eef1079\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"ProgressStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"318aea09479a479981dcfa29bc856c67\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"ProgressStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"35fb49026dac479eba87217c2f6bcb9a\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"3ab3e27c83aa423d9ecdac94e576f0fe\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"420b4a9492c54eb48d7779f38a09fd20\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"flex\\\\\\\": \\\\\\\"2\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"42afe4fae9dd4bc4a341a231cf7a9c32\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"4df685a95de542ffab6f265df89b8949\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"58eaddb54c8840da83d1f6503d6ba64f\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"5b3e72b71f304230bc36bb91f9c173be\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"5c1fab0ccc7e42c69c2b663b67ca9e3c\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"63a54817ae8b4c8d85b30d8c97e7ed0d\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HBoxModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"children\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"IPY_MODEL_e170d60a55a14c489d32b101293a9d33\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"IPY_MODEL_662ad93cf7b3470f8e197350441f09ca\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"IPY_MODEL_ac4abab2367e461e956e4e0edb27be44\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_c59d6fe969a04f4da332ae2a6fdb9c77\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"63f87a2410ba47d38ad9f55a81357a29\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_ca48140488574a28a7469552441560e4\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_ae2037efb9cc459e84bcc28ca7243437\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\" 2/2 [00:03<00:00, 3.01s/block]\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"64eb2b9c8a094a1ea5f1991e5f09f5d9\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"662ad93cf7b3470f8e197350441f09ca\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"FloatProgressModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"bar_style\\\\\\\": \\\\\\\"success\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_420b4a9492c54eb48d7779f38a09fd20\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"max\\\\\\\": 1,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_d16e93f72f3d4aeda2f5deee87e9754f\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"value\\\\\\\": 1\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"74283969ff5446c89bb83b00a70226cf\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_5c1fab0ccc7e42c69c2b663b67ca9e3c\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_1c0f5b458ee1401eaa8de63c65802073\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\" 6/6 [00:09<00:00, 2.48s/block]\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"75cf0c1ed25e47aab20b060f3bb44fb8\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HBoxModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"children\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"IPY_MODEL_21b25dd6080d42368afc06770d5e1755\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"IPY_MODEL_c33f32b62a204ef094f67b10f8adbdc1\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"IPY_MODEL_74283969ff5446c89bb83b00a70226cf\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_91df4ac76fd744539d4237d6099f34a5\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"7ff32d7deac14f21ab0f0939fe09e440\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"ProgressStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"91df4ac76fd744539d4237d6099f34a5\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"display\\\\\\\": \\\\\\\"inline-flex\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"flex_flow\\\\\\\": \\\\\\\"row wrap\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"width\\\\\\\": \\\\\\\"100%\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"981634b52a7a4ffdae6186061c0b6482\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HBoxModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"children\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"IPY_MODEL_f65266f861cf40ef84e9ec74a8e0b44c\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"IPY_MODEL_9aaf514a5035413d8cbbad58aa0221f4\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"IPY_MODEL_63f87a2410ba47d38ad9f55a81357a29\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_104c0d4e90244ebc959e51a58794dcf4\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"9aaf514a5035413d8cbbad58aa0221f4\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"FloatProgressModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"bar_style\\\\\\\": \\\\\\\"success\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_b25523a221fd4b5e9211d07ef39cccf5\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"max\\\\\\\": 2,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_318aea09479a479981dcfa29bc856c67\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"value\\\\\\\": 2\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"9fe5348964cd4f7880bcd33204bbc7a2\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"a03d238db31145b881a1be478f9eb72f\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"a6aabcd2e57348a49bb59477f6a9fd90\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"FloatProgressModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"bar_style\\\\\\\": \\\\\\\"success\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_cfb02c9c7447491ca00bbb6acd99bb79\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"max\\\\\\\": 26,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_7ff32d7deac14f21ab0f0939fe09e440\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"value\\\\\\\": 26\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ac4abab2367e461e956e4e0edb27be44\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_58eaddb54c8840da83d1f6503d6ba64f\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_a03d238db31145b881a1be478f9eb72f\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\" 3/? [00:00<00:00, 8.29block/s]\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ae2037efb9cc459e84bcc28ca7243437\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"b25523a221fd4b5e9211d07ef39cccf5\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"flex\\\\\\\": \\\\\\\"2\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"b9810ee38bbe43f4bba100e53379be65\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_42afe4fae9dd4bc4a341a231cf7a9c32\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_fdcea609ee7349629604217b625371d3\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\" 26/26 [00:01<00:00, 18.92block/s]\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"c33f32b62a204ef094f67b10f8adbdc1\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"FloatProgressModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"bar_style\\\\\\\": \\\\\\\"success\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_d23d88490a1b4941b8ca228b7d4a39cb\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"max\\\\\\\": 6,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_2693aae410f04e7587f0400b5eef1079\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"value\\\\\\\": 6\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"c59d6fe969a04f4da332ae2a6fdb9c77\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"display\\\\\\\": \\\\\\\"inline-flex\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"flex_flow\\\\\\\": \\\\\\\"row wrap\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"width\\\\\\\": \\\\\\\"100%\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"ca48140488574a28a7469552441560e4\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"cfb02c9c7447491ca00bbb6acd99bb79\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"flex\\\\\\\": \\\\\\\"2\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"d16e93f72f3d4aeda2f5deee87e9754f\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"ProgressStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"d23d88490a1b4941b8ca228b7d4a39cb\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"flex\\\\\\\": \\\\\\\"2\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"d565a20d37e84ed0a1195e9a90154960\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HBoxModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"children\\\\\\\": [\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"IPY_MODEL_db696e15587c4a54b82886b3eb5a0c96\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"IPY_MODEL_a6aabcd2e57348a49bb59477f6a9fd90\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"IPY_MODEL_b9810ee38bbe43f4bba100e53379be65\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" ],\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_eab4b060672b4dd5a73ca7bb8f782cd2\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"db696e15587c4a54b82886b3eb5a0c96\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_64eb2b9c8a094a1ea5f1991e5f09f5d9\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_5b3e72b71f304230bc36bb91f9c173be\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\"Step 1 / 2 Writing Blocks: 100%\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"e170d60a55a14c489d32b101293a9d33\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_9fe5348964cd4f7880bcd33204bbc7a2\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_4df685a95de542ffab6f265df89b8949\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\"Step 2 / 2 Concat Blocks: \\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"e66368cda8124001b16459a0634029e2\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"eab4b060672b4dd5a73ca7bb8f782cd2\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"display\\\\\\\": \\\\\\\"inline-flex\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"flex_flow\\\\\\\": \\\\\\\"row wrap\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"width\\\\\\\": \\\\\\\"100%\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"f65266f861cf40ef84e9ec74a8e0b44c\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_fff4199774534d9f982f03738fbb08e7\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_e66368cda8124001b16459a0634029e2\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\"Scanning SEG-Y for geometry attributes: 100%\\\\\\\"\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"fdcea609ee7349629604217b625371d3\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"fff4199774534d9f982f03738fbb08e7\\\\\\\": {\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"version_major\\\\\\\": 2,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"version_minor\\\\\\\": 0\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" }\\\\n\\\",\\n\",\n", + " \" \\\" },\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"nbformat\\\\\\\": 4,\\\\n\\\",\\n\",\n", + " \" \\\" \\\\\\\"nbformat_minor\\\\\\\": 4\\\\n\\\",\\n\",\n", + " \" \\\"}\\\\n\\\"\\n\",\n", " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", - " \" \\\"metadata\\\": {},\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"## Updating File and Checking with `MDIOReader`.\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"We write traces here, the headers are still empty. If you need the headers\\\\n\\\",\\n\",\n", - " \" \\\"populated, this is where they would be written to file as well.\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"All the extra metadata we are writing is so that we can export back to SEG-Y\\\\n\\\",\\n\",\n", - " \" \\\"in the future. If that's not a requirement most of the metadata can be\\\\n\\\",\\n\",\n", - " \" \\\"omitted.\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"If you already have an MDIO prior to this, all the metadata can be copied\\\\n\\\",\\n\",\n", - " \" \\\"over from the previous version.\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", - " \" \\\"execution_count\\\": 5,\\n\",\n", - " \" \\\"metadata\\\": {\\n\",\n", - " \" \\\"ExecuteTime\\\": {\\n\",\n", - " \" \\\"end_time\\\": \\\"2025-04-16T14:50:12.498287Z\\\",\\n\",\n", - " \" \\\"start_time\\\": \\\"2025-04-16T14:50:11.670230Z\\\"\\n\",\n", - " \" },\\n\",\n", - " \" \\\"pycharm\\\": {\\n\",\n", - " \" \\\"name\\\": \\\"#%%\\\\n\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"outputs\\\": [\\n\",\n", - " \" {\\n\",\n", - " \" \\\"data\\\": {\\n\",\n", - " \" \\\"text/plain\\\": [\\n\",\n", - " \" \\\"({'data_sample_format': 1,\\\\n\\\",\\n\",\n", - " \" \\\" 'sample_interval': 4,\\\\n\\\",\\n\",\n", - " \" \\\" 'samples_per_trace': 750,\\\\n\\\",\\n\",\n", - " \" \\\" 'segy_revision_major': 1,\\\\n\\\",\\n\",\n", - " \" \\\" 'segy_revision_minor': 0},\\\\n\\\",\\n\",\n", - " \" \\\" {'rms': 3, 'min': -4, 'mean': 12, 'max': 4, 'std': 5})\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" \\\"execution_count\\\": 5,\\n\",\n", - " \" \\\"metadata\\\": {},\\n\",\n", - " \" \\\"output_type\\\": \\\"execute_result\\\"\\n\",\n", - " \" }\\n\",\n", - " \" ],\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"sample_dim = writer.grid.select_dim(\\\\\\\"sample\\\\\\\")\\\\n\\\",\\n\",\n", - " \" \\\"sample_interval = int(sample_dim.coords[1] - sample_dim.coords[0])\\\\n\\\",\\n\",\n", - " \" \\\"num_samples = sample_dim.size\\\\n\\\",\\n\",\n", - " \" \\\"writer.binary_header = {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"data_sample_format\\\\\\\": 1,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"sample_interval\\\\\\\": sample_interval,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"samples_per_trace\\\\\\\": num_samples,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"segy_revision_major\\\\\\\": 1,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"segy_revision_minor\\\\\\\": 0,\\\\n\\\",\\n\",\n", - " \" \\\"}\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"# Write some values to the file\\\\n\\\",\\n\",\n", - " \" \\\"writer[:5] = 1\\\\n\\\",\\n\",\n", - " \" \\\"writer[5:10] = 2\\\\n\\\",\\n\",\n", - " \" \\\"writer[50:100] = 3\\\\n\\\",\\n\",\n", - " \" \\\"writer[150:175] = -1\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"# Write some made up stats\\\\n\\\",\\n\",\n", - " \" \\\"writer.stats = {\\\\\\\"mean\\\\\\\": 12, \\\\\\\"std\\\\\\\": 5, \\\\\\\"rms\\\\\\\": 3, \\\\\\\"min\\\\\\\": -4, \\\\\\\"max\\\\\\\": 4}\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"reader = MDIOReader(create_conf.path)\\\\n\\\",\\n\",\n", - " \" \\\"reader.binary_header, reader.stats\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", - " \" \\\"metadata\\\": {},\\n\",\n", - " \" \\\"source\\\": \\\"Plot some of the data we populated:\\\"\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", - " \" \\\"execution_count\\\": 6,\\n\",\n", - " \" \\\"metadata\\\": {\\n\",\n", - " \" \\\"ExecuteTime\\\": {\\n\",\n", - " \" \\\"end_time\\\": \\\"2025-04-16T14:50:14.256953Z\\\",\\n\",\n", - " \" \\\"start_time\\\": \\\"2025-04-16T14:50:14.036094Z\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"outputs\\\": [\\n\",\n", - " \" {\\n\",\n", - " \" \\\"data\\\": {\\n\",\n", - " \" \\\"image/png\\\": \\\"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+wEoWAh2AOADOtK1Zs2aXq/VqFFDDhw4YL4uU6aMeTx69KjXMfrc2aePKSkpXvszMjLMSFnnmOwiIyPNCFrPDUDwINgBgA/oiNikpCSv1/773/9KxYoV3QMpNJwlJia692t/OO07Fx8fb57r4/Hjx2Xbtm3uY1atWmVqA7UvHgBkx6hYAPCBgQMHym233WaaYh988EHZvHmzvP3222ZTISEhMmDAAHnhhRdMPzwNeiNGjDAjXTt06OCu4WvVqpW7CTc9PV369etnRswyIhZATgh2AOADDRs2lAULFpg+b2PGjDHBTac30XnpHM8884ykpqaa/ndaM9ekSRMzvUlUVJT7mPfff9+EuebNm5vRsJ06dTJz3wFATgh2AOAjf/zjH82WG62109CnW250BOzcuXN9dIYAbEMfOwAAAEsQ7AAAACzh12CnE2lqP5SiRYuaSTi1w3D2UWRNmzY1zRWe2xNPPOF1jE4f0LZtWylcuLD5nCFDhpgpAQAAAIKJX/vYrVmzRvr27WvCnQax5557Tlq2bGkWy9bFsB06IsyzD4oGOEdmZqYJdTptwPr16+XIkSPy6KOPmoW3dTQaAABAsPBrsNPRX55mzZplatx0zqY777zTK8jlNhnn8uXLTRBcuXKlWYqnXr16MnbsWBk6dKiMHj1aIiIifH4dAAAABUGB6mOny984o8A86XD/kiVLys0332ymDjhz5ox7ny6SXbt2ba/1FhMSEsxEnzt37szx+7BINgAAsFGBme5EZ1LXyTp1tnYNcI6HH37YzNSuk3F+++23piZO++F98sknZr8uhJ3TItrOvtz69j3//PM+vR4AAICgDXba1+67776TdevWeb2uE3c6tGZO11/UiTr37dsnVapUuazvpbV+gwYNcj/XGrvy5ctfwdkDAAD4X4FoitVZ1RcvXixffPGFXH/99Rc81lkfce/eveZR+97ltIi2sy8nLJINAABs5Ndg53K5TKjTZXd0YWtdcuditm/fbh615s5ZJHvHjh2SkpLiPmbFihUmrNWsWdOHZw8AAFCwhPm7+VWXyvn000/NXHZOn7jY2FiJjo42za26v02bNlKiRAnTx04X1tYRs3Xq1DHH6vQoGuC6desm48ePN58xfPhw89laMwcAABAs/FpjN3XqVDMSVich1ho4Z/vggw/Mfp2qRKcx0fBWvXp1efrpp80C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\\\",\\n\",\n", - " \" \\\"text/plain\\\": [\\n\",\n", - " \" \\\"
\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" \\\"metadata\\\": {},\\n\",\n", - " \" \\\"output_type\\\": \\\"display_data\\\"\\n\",\n", - " \" }\\n\",\n", - " \" ],\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"fig, ax = plt.subplots(1, 2, sharex=\\\\\\\"all\\\\\\\")\\\\n\\\",\\n\",\n", - " \" \\\"ax[0].imshow(writer.live_mask[:].T, aspect=\\\\\\\"auto\\\\\\\")\\\\n\\\",\\n\",\n", - " \" \\\"ax[1].imshow(reader[:, 150].T, aspect=\\\\\\\"auto\\\\\\\")\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"ax[0].set_xlabel(\\\\\\\"inline\\\\\\\")\\\\n\\\",\\n\",\n", - " \" \\\"ax[0].set_ylabel(\\\\\\\"crossline\\\\\\\")\\\\n\\\",\\n\",\n", - " \" \\\"ax[1].set_xlabel(\\\\\\\"inline\\\\\\\")\\\\n\\\",\\n\",\n", - " \" \\\"ax[1].set_ylabel(\\\\\\\"sample\\\\\\\")\\\\n\\\",\\n\",\n", - " \" \\\"ax[0].set_title(\\\\\\\"Live Mask\\\\\\\")\\\\n\\\",\\n\",\n", - " \" \\\"ax[1].set_title(\\\\\\\"Middle Crossline\\\\\\\")\\\\n\\\",\\n\",\n", - " \" \\\"fig.tight_layout();\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", - " \" \\\"metadata\\\": {},\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"## Write to SEG-Y\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"Because we populated all the fields necessary for SEG-Y output, we can call the\\\\n\\\",\\n\",\n", - " \" \\\"MDIO to SEGY converter and get a file out.\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", - " \" \\\"execution_count\\\": 7,\\n\",\n", - " \" \\\"metadata\\\": {\\n\",\n", - " \" \\\"ExecuteTime\\\": {\\n\",\n", - " \" \\\"end_time\\\": \\\"2025-04-16T14:50:15.788812Z\\\",\\n\",\n", - " \" \\\"start_time\\\": \\\"2025-04-16T14:50:15.009889Z\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"outputs\\\": [\\n\",\n", - " \" {\\n\",\n", - " \" \\\"name\\\": \\\"stderr\\\",\\n\",\n", - " \" \\\"output_type\\\": \\\"stream\\\",\\n\",\n", - " \" \\\"text\\\": [\\n\",\n", - " \" \\\"Unwrapping MDIO Blocks: 100%|██████████| 7/7 [00:00<00:00, 10.55it/s]\\\\n\\\",\\n\",\n", - " \" \\\"Merging lines: 100%|██████████| 1/1 [00:00<00:00, 17.26it/s]\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"name\\\": \\\"stdout\\\",\\n\",\n", - " \" \\\"output_type\\\": \\\"stream\\\",\\n\",\n", - " \" \\\"text\\\": [\\n\",\n", - " \" \\\"[(0, 0, 0, 0, 0, 4, 4000, 750, 750, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0)]\\\\n\\\",\\n\",\n", - " \" \\\"[[1. 1. 1. ... 1. 1. 1.]\\\\n\\\",\\n\",\n", - " \" \\\" [1. 1. 1. ... 1. 1. 1.]\\\\n\\\",\\n\",\n", - " \" \\\" [1. 1. 1. ... 1. 1. 1.]\\\\n\\\",\\n\",\n", - " \" \\\" ...\\\\n\\\",\\n\",\n", - " \" \\\" [1. 1. 1. ... 1. 1. 1.]\\\\n\\\",\\n\",\n", - " \" \\\" [1. 1. 1. ... 1. 1. 1.]\\\\n\\\",\\n\",\n", - " \" \\\" [1. 1. 1. ... 1. 1. 1.]]\\\\n\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"name\\\": \\\"stderr\\\",\\n\",\n", - " \" \\\"output_type\\\": \\\"stream\\\",\\n\",\n", - " \" \\\"text\\\": [\\n\",\n", - " \" \\\"\\\\n\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" }\\n\",\n", - " \" ],\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"from segy import SegyFile\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"from mdio import mdio_to_segy\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"mdio_to_segy(\\\\\\\"demo.mdio\\\\\\\", \\\\\\\"demo.segy\\\\\\\")\\\\n\\\",\\n\",\n", - " \" \\\"segy = SegyFile(\\\\\\\"demo.segy\\\\\\\")\\\\n\\\",\\n\",\n", - " \" \\\"print(segy.binary_header)\\\\n\\\",\\n\",\n", - " \" \\\"print(segy.sample[:100])\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"markdown\\\",\\n\",\n", - " \" \\\"metadata\\\": {},\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"## Copying an Existing MDIO without Data and Headers\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"We also provide a `create_empty_like` function which allows us to create an MDIO file\\\\n\\\",\\n\",\n", - " \" \\\"with the same structure and basic metadata as an existing one.\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"This will carry over:\\\\n\\\",\\n\",\n", - " \" \\\"* All access patterns in source MDIO\\\\n\\\",\\n\",\n", - " \" \\\"* Grid (shape, coordinates, dimensions, etc)\\\\n\\\",\\n\",\n", - " \" \\\"* Text Header\\\\n\\\",\\n\",\n", - " \" \\\"* Binary Header\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"It will **NOT** carry over:\\\\n\\\",\\n\",\n", - " \" \\\"* Trace data\\\\n\\\",\\n\",\n", - " \" \\\"* Header data\\\\n\\\",\\n\",\n", - " \" \\\"* Statistics\\\\n\\\",\\n\",\n", - " \" \\\"* Live Mask\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", - " \" \\\"execution_count\\\": 8,\\n\",\n", - " \" \\\"metadata\\\": {\\n\",\n", - " \" \\\"ExecuteTime\\\": {\\n\",\n", - " \" \\\"end_time\\\": \\\"2025-04-16T14:50:17.246513Z\\\",\\n\",\n", - " \" \\\"start_time\\\": \\\"2025-04-16T14:50:17.111779Z\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"outputs\\\": [],\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"from mdio import create_empty_like\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"copy_path = \\\\\\\"copy_of_existing.mdio\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\"create_empty_like(create_conf.path, copy_path)\\\\n\\\",\\n\",\n", - " \" \\\"\\\\n\\\",\\n\",\n", - " \" \\\"copy_reader = MDIOReader(copy_path)\\\\n\\\",\\n\",\n", - " \" \\\"assert copy_reader.shape == reader.shape\\\\n\\\",\\n\",\n", - " \" \\\"assert copy_reader.binary_header == reader.binary_header\\\\n\\\",\\n\",\n", - " \" \\\"assert copy_reader.stats != reader.stats\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" },\\n\",\n", - " \" {\\n\",\n", - " \" \\\"cell_type\\\": \\\"code\\\",\\n\",\n", - " \" \\\"execution_count\\\": null,\\n\",\n", - " \" \\\"metadata\\\": {},\\n\",\n", - " \" \\\"outputs\\\": [],\\n\",\n", - " \" \\\"source\\\": []\\n\",\n", " \" }\\n\",\n", " \" ],\\n\",\n", " \" \\\"metadata\\\": {\\n\",\n", From 0e64e09d4e9aabb303aa3270c5caa174e82d916d Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Tue, 29 Apr 2025 16:10:07 -0500 Subject: [PATCH 10/19] Add basic unit test for v1 dataset schema validation --- tests/unit/test_schema.py | 54 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 tests/unit/test_schema.py diff --git a/tests/unit/test_schema.py b/tests/unit/test_schema.py new file mode 100644 index 00000000..1bccde5a --- /dev/null +++ b/tests/unit/test_schema.py @@ -0,0 +1,54 @@ +"""Test the schema for the v1 dataset.""" + +from mdio.schemas.v1 import Dataset as V1Dataset + + +TEST_SCHEMA = { + "metadata": { + "name": "test_dataset", + "api_version": "1.0.0", + "created_on": "2023-01-01T00:00:00Z", + }, + "variables": [ + { + "name": "actual_variable", + "data_type": "float32", + "dimensions": ["dim0", "dim1"], + "compressor": {"name": "blosc", "level": 3}, + "coordinates": ["coord"], + "metadata": { + "chunk_grid": { + "name": "regular", + "configuration": {"chunk_shape": [10, 20]}, + }, + }, + }, + { + "name": "coord", + "data_type": "float32", + "dimensions": ["dim0", "dim1"], + "metadata": { + "chunk_grid": { + "name": "regular", + "configuration": {"chunk_shape": [10, 20]}, + }, + "units_v1": {"length": "m"}, + }, + }, + { + "name": "dim0", + "data_type": "int32", + "dimensions": [{"name": "dim0", "size": 100}], + }, + { + "name": "dim1", + "data_type": "int32", + "dimensions": [{"name": "dim1", "size": 200}], + }, + ], +} + + +def test_dataset_schema_validation(): + """Test that the dataset schema validates correctly.""" + V1Dataset.model_validate(TEST_SCHEMA) From a1a312e41f7e79a98c04b1b5591a193fa5efa321 Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Wed, 30 Apr 2025 09:56:44 -0500 Subject: [PATCH 11/19] update lockfile --- uv.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/uv.lock b/uv.lock index 92ce6cdc..68edf47f 100644 --- a/uv.lock +++ b/uv.lock @@ -1890,7 +1890,7 @@ requires-dist = [ { name = "segy", specifier = ">=0.4.0,<0.5.0" }, { name = "tqdm", specifier = ">=4.67.0,<5.0.0" }, { name = "xarray", specifier = ">=2025.3.1" }, - { name = "zarr", specifier = ">=3.0.6,<4.0.0" }, + { name = "zarr", specifier = ">=3.0.3,<3.0.7" }, { name = "zfpy", marker = "extra == 'lossy'", specifier = ">=1.0.1,<2.0.0" }, ] provides-extras = ["cloud", "distributed", "lossy"] From dfe775198e0f0289eddf7e0c9fd94142f67762bf Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Wed, 7 May 2025 09:32:28 -0500 Subject: [PATCH 12/19] fix broken creation nb --- docs/tutorials/creation.ipynb | 2127 ++++++--------------------------- 1 file changed, 387 insertions(+), 1740 deletions(-) diff --git a/docs/tutorials/creation.ipynb b/docs/tutorials/creation.ipynb index 73ff5b67..af4d3b65 100644 --- a/docs/tutorials/creation.ipynb +++ b/docs/tutorials/creation.ipynb @@ -1,1749 +1,396 @@ { "cells": [ { + "cell_type": "markdown", + "metadata": { + "pycharm": { + "name": "#%% md\n" + } + }, + "source": [ + "# Create an Empty MDIO\n", + "\n", + "```{article-info}\n", + ":author: Altay Sansal\n", + ":date: \"{sub-ref}`today`\"\n", + ":read-time: \"{sub-ref}`wordcount-minutes` min read\"\n", + ":class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light\n", + "```\n", + "\n", + "Here we will create an empty MDIO file and populate its fields.\n", + "\n", + "```{warning}\n", + "For plotting, the notebook requires [Matplotlib](https://matplotlib.org/) as a dependency. Please install it before executing using\n", + "`pip install matplotlib` or `conda install matplotlib`.\n", + "```\n", + "\n", + "We first need to import the configuration classes and create function to be able to create the empty MDIO." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-16T14:50:04.371422Z", + "start_time": "2025-04-16T14:50:04.368107Z" + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "from mdio import Dimension\n", + "from mdio import Grid\n", + "from mdio import MDIOCreateConfig\n", + "from mdio import MDIOReader\n", + "from mdio import MDIOVariableConfig\n", + "from mdio import MDIOWriter\n", + "from mdio import create_empty\n", + "from mdio.converters.segy import get_compressor\n", + "from mdio.segy.compat import mdio_segy_spec" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "pycharm": { + "name": "#%% md\n" + } + }, + "source": [ + "## Setting Up Grid Dimensions and Variable(s)\n", + "\n", + "Let's try to create an MDIO file in 3D with known `inline`, `crossline`, and `sample`\n", + "dimensions. This is exactly like a 3D Post-Stack dataset.\n", + "\n", + "We will use the standard `chunked_012` access pattern. All variable names must start\n", + "with `chunked_*` for `MDIOReader` to be able to open them with any access pattern.\n", + "\n", + "We will also use an MDIO private utility function to get the compressor easily. The\n", + "compressor is fully customizable, but this function gives us ones available in SEG-Y\n", + "ingestion.\n", + "\n", + "If we want headers, we can also provide `header_dtype` which is a Numpy `dtype`. Again,\n", + "we will be using the standard one MDIO uses for ingesting SEG-Ys. (Similar to SEG-Y Rev1).\n", + "\n", + "At the end we create empty MDIO on local disk or cloud, based on the path string." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-16T14:50:06.121450Z", + "start_time": "2025-04-16T14:50:06.002634Z" + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "grid = Grid(\n", + " dims=[\n", + " Dimension(name=\"inline\", coords=range(100, 300, 1)), # 100-300 with step 1\n", + " Dimension(name=\"crossline\", coords=range(1000, 1600, 2)), # 1000-1600 with step 2\n", + " Dimension(name=\"sample\", coords=range(0, 3000, 4)), # 0-3 seconds 4ms sample rate\n", + " ]\n", + ")\n", + "\n", + "compressor = get_compressor(lossless=True)\n", + "header_dtype = mdio_segy_spec().trace.header.dtype\n", + "variable = MDIOVariableConfig(\n", + " name=\"chunked_012\",\n", + " dtype=\"float32\",\n", + " chunks=(128, 128, 128),\n", + " compressors=compressor,\n", + " header_dtype=header_dtype,\n", + ")\n", + "\n", + "create_conf = MDIOCreateConfig(path=\"demo.mdio\", grid=grid, variables=[variable])\n", + "create_empty(config=create_conf);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Populating the MDIO\n", + "\n", + "Once empty MDIO is created, you can populate it with sample data, header data,\n", + "metadata, and statistics. The `live_mask` is automatically flipped to 1 after\n", + "every write. However, the consistency of the `live_mask` is up to the user. If\n", + "not populated correctly, at read time, traces may be skipped.\n", + "\n", + "We will read the usual stats and as you can see they're all empty. Text header\n", + "and binary header are only required if we are going to export this back to SEG-Y,\n", + "and can be modified. We can edit these if necessary using the writer." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-16T14:50:09.974442Z", + "start_time": "2025-04-16T14:50:09.951257Z" + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(['C00 ',\n", + " 'C01 ',\n", + " 'C02 ',\n", + " 'C03 ',\n", + " 'C04 '],\n", + " {},\n", + " {'rms': 0, 'min': 0, 'mean': 0, 'max': 0, 'std': 0})" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "writer = MDIOWriter(create_conf.path)\n", + "\n", + "# Truncate text header for display\n", + "writer.text_header[:5], writer.binary_header, writer.stats" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Updating File and Checking with `MDIOReader`.\n", + "\n", + "We write traces here, the headers are still empty. If you need the headers\n", + "populated, this is where they would be written to file as well.\n", + "\n", + "All the extra metadata we are writing is so that we can export back to SEG-Y\n", + "in the future. If that's not a requirement most of the metadata can be\n", + "omitted.\n", + "\n", + "If you already have an MDIO prior to this, all the metadata can be copied\n", + "over from the previous version." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-16T14:50:12.498287Z", + "start_time": "2025-04-16T14:50:11.670230Z" + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "({'data_sample_format': 1,\n", + " 'sample_interval': 4,\n", + " 'samples_per_trace': 750,\n", + " 'segy_revision_major': 1,\n", + " 'segy_revision_minor': 0},\n", + " {'rms': 3, 'min': -4, 'mean': 12, 'max': 4, 'std': 5})" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dim = writer.grid.select_dim(\"sample\")\n", + "sample_interval = int(sample_dim.coords[1] - sample_dim.coords[0])\n", + "num_samples = sample_dim.size\n", + "writer.binary_header = {\n", + " \"data_sample_format\": 1,\n", + " \"sample_interval\": sample_interval,\n", + " \"samples_per_trace\": num_samples,\n", + " \"segy_revision_major\": 1,\n", + " \"segy_revision_minor\": 0,\n", + "}\n", + "\n", + "# Write some values to the file\n", + "writer[:5] = 1\n", + "writer[5:10] = 2\n", + "writer[50:100] = 3\n", + "writer[150:175] = -1\n", + "\n", + "# Write some made up stats\n", + "writer.stats = {\"mean\": 12, \"std\": 5, \"rms\": 3, \"min\": -4, \"max\": 4}\n", + "\n", + "reader = MDIOReader(create_conf.path)\n", + "reader.binary_header, reader.stats" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": "Plot some of the data we populated:" + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-16T14:50:14.256953Z", + "start_time": "2025-04-16T14:50:14.036094Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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+wEoWAh2AOADOtK1Zs2aXq/VqFFDDhw4YL4uU6aMeTx69KjXMfrc2aePKSkpXvszMjLMSFnnmOwiIyPNCFrPDUDwINgBgA/oiNikpCSv1/773/9KxYoV3QMpNJwlJia692t/OO07Fx8fb57r4/Hjx2Xbtm3uY1atWmVqA7UvHgBkx6hYAPCBgQMHym233WaaYh988EHZvHmzvP3222ZTISEhMmDAAHnhhRdMPzwNeiNGjDAjXTt06OCu4WvVqpW7CTc9PV369etnRswyIhZATgh2AOADDRs2lAULFpg+b2PGjDHBTac30XnpHM8884ykpqaa/ndaM9ekSRMzvUlUVJT7mPfff9+EuebNm5vRsJ06dTJz3wFATgh2AOAjf/zjH82WG62109CnW250BOzcuXN9dIYAbEMfOwAAAEsQ7AAAACzh12CnE2lqP5SiRYuaSTi1w3D2UWRNmzY1zRWe2xNPPOF1jE4f0LZtWylcuLD5nCFDhpgpAQAAAIKJX/vYrVmzRvr27WvCnQax5557Tlq2bGkWy9bFsB06IsyzD4oGOEdmZqYJdTptwPr16+XIkSPy6KOPmoW3dTQaAABAsPBrsNPRX55mzZplatx0zqY777zTK8jlNhnn8uXLTRBcuXKlWYqnXr16MnbsWBk6dKiMHj1aIiIifH4dAAAABUGB6mOny984o8A86XD/kiVLys0332ymDjhz5ox7ny6SXbt2ba/1FhMSEsxEnzt37szx+7BINgAAsFGBme5EZ1LXyTp1tnYNcI6HH37YzNSuk3F+++23piZO++F98sknZr8uhJ3TItrOvtz69j3//PM+vR4AAICgDXba1+67776TdevWeb2uE3c6tGZO11/UiTr37dsnVapUuazvpbV+gwYNcj/XGrvy5ctfwdkDAAD4X4FoitVZ1RcvXixffPGFXH/99Rc81lkfce/eveZR+97ltIi2sy8nLJINAABs5Ndg53K5TKjTZXd0YWtdcuditm/fbh615s5ZJHvHjh2SkpLiPmbFihUmrNWsWdOHZw8AAFCwhPm7+VWXyvn000/NXHZOn7jY2FiJjo42za26v02bNlKiRAnTx04X1tYRs3Xq1DHH6vQoGuC6desm48ePN58xfPhw89laMwcAABAs/FpjN3XqVDMSVich1ho4Z/vggw/Mfp2qRKcx0fBWvXp1efrpp80C2IsWLXJ/RqFChUwzrj5q7d0jjzxi5rG70NqLAAAANgrzd1PsheiABp3E+GJ01OySJUvy8cwAAAACT4EYPAEAAIArR7ADAACwBMEOAADAEgQ7AAAASxDsAAAALEGwAwAAsATBDgAAwBIEOwAAAEsQ7AAAACxBsAMAALAEwQ4AAMASBDsAAABLEOwAAAAsQbADAACwBMEOAADAEgQ7AAAASxDsAAAALEGwAwAAsATBDgAAwBIEOwAAAEsQ7AAAACxBsAMAALAEwQ4AAMASBDsAAABLEOwAAAAsQbADAACwBMEOAADAEgQ7APCBSpUqSUhIyHlb3759zf60tDTzdYkSJaRIkSLSqVMnOXr0qNdnHDhwQNq2bSuFCxeWUqVKyZAhQyQjI8NPVwQgEBDsAMAHtmzZIkeOHHFvK1asMK8/8MAD5nHgwIGyaNEimT9/vqxZs0YOHz4sHTt2dL8/MzPThLpz587J+vXrZfbs2TJr1iwZOXKk364JQMFHsAMAH7j22mulTJky7m3x4sVSpUoVueuuu+TEiRPy7rvvyuuvvy7NmjWT+vXry8yZM02A27hxo3n/8uXLZdeuXfKPf/xD6tWrJ61bt5axY8fK5MmTTdgDgJwQ7ADAxzSIaUB7/PHHTXPstm3bJD09XVq0aOE+pnr16lKhQgXZsGGDea6PtWvXltKlS7uPSUhIkJMnT8rOnTtz/V5nz541x3huAIIHwQ4AfGzhwoVy/Phx6dGjh3menJwsEREREhcX53Wchjjd5xzjGeqc/c6+3IwbN05iY2PdW/ny5X1wRQAKKoIdAPiYNrtqU2q5cuV8/r2GDRtmmnqd7eDBgz7/ngAKjjB/nwAA2OzHH3+UlStXyieffOJ+TfvcafOs1uJ51trpqFjd5xyzefNmr89yRs06x+QkMjLSbACCEzV2AOBDOihCpyrREa4OHSwRHh4uiYmJ7teSkpLM9Cbx8fHmuT7u2LFDUlJS3MfoyNpixYpJzZo1r/JVAAgU1NgBgI9kZWWZYNe9e3cJC/v/xa32fevZs6cMGjRIihcvbsJa//79TZhr3LixOaZly5YmwHXr1k3Gjx9v+tUNHz7czH1HjRyA3BDsAMBHtAlWa+F0NGx2EydOlNDQUDMxsY5k1RGvU6ZMce8vVKiQmSKlT58+JvDFxMSYgDhmzJirfBUAAgnBDgB8RGvdXC5XjvuioqLMnHS65aZixYqyZMkSH54hANvQxw4AAMASBDsAAABLEOwAAAAsQbADAACwBMEOAADAEgQ7AAAASxDsAAAALEGwAwAAsATBDgAAwBIEOwAAAEsQ7AAAACxBsAMAALAEwQ4AAMASBDsAAABLEOwAAAAsQbADAACwBMEOAADAEgQ7AAAAS4T5+wQKApfLZR5Pns7K83vSXemS8b/3BaLfz2bIyVN5v95Al5EukuFKl0xXiAQLf/2OT6dmmp/11ZYh6V5/zxCvn0dWWtp5+9JTz0lmyPn/RjLS0yQrvZAEqt9/Tw+u8i3TZX5nmVnBU1cTknlWQvxQzmS5zpmf9dWW+b/vmZfyLcRFKSjff/+9VKlSxd+nASAfHDx4UK6//np/n0aBcejQISlfvry/TwPAVSrfCHYicvz4cbnmmmvkwIEDEhsbK8Hg5MmTprDXfyTFihUT2wXb9QbjNWtRdurUKSlXrpyEhgZPzcXFZGVlSVJSktSsWTNo/i0E27/9YLzmYLte1yWUbzTFakfD//2QNNQFwz8QT3q9wXTNwXa9wXbNwXJjdqnl23XXXRd0/xaC8XqD8ZqD6Xpj81i+cVsLAABgCYIdAACAJQh2IhIZGSmjRo0yj8Ei2K452K43WK8ZOQu2fwvBdr3BeM3Bdr2XgsETAAAAlqDGDgAAwBIEOwAAAEsQ7AAAACxBsBORyZMnS6VKlSQqKkoaNWokmzdvFhuMHj1aQkJCvLbq1au796elpUnfvn2lRIkSUqRIEenUqZMcPXpUAsnatWulXbt2ZtJGvb6FCxd67dcupCNHjpSyZctKdHS0tGjRQvbs2eN1zK+//ipdu3Y1cyHFxcVJz5495fTp0xKI19ujR4/zfuetWrUK2OvFlbO1fAuGMi7YyjdFGXflgj7YffDBBzJo0CAzuuarr76SunXrSkJCgqSkpIgNatWqJUeOHHFv69atc+8bOHCgLFq0SObPny9r1qyRw4cPS8eOHSWQpKammt+Z/s8rJ+PHj5dJkybJtGnTZNOmTRITE2N+v1rgO7QA2Llzp6xYsUIWL15sCpbevXtLIF6v0kLO83f+z3/+02t/IF0vrozt5ZvtZVywlW+KMi4fuILcrbfe6urbt6/7eWZmpqtcuXKucePGuQLdqFGjXHXr1s1x3/Hjx13h4eGu+fPnu1/bvXu3jpB2bdiwwRWI9NwXLFjgfp6VleUqU6aM69VXX/W67sjISNc///lP83zXrl3mfVu2bHEf8/nnn7tCQkJcP/30kyuQrld1797d1b59+1zfE8jXi0tnc/kWbGVcsJVvijLu8gR1jd25c+dk27Ztpvrac/kdfb5hwwaxgVbLa5X2DTfcYO5idD1cpdednp7ude3ahFGhQgVrrn3//v2SnJzsdY26JIs2RznXqI9aVd+gQQP3MXq8/jvQO+BAtHr1ailVqpTcdNNN0qdPHzl27Jh7n43Xi+At34K5jAvW8k1Rxl1YUAe7X375RTIzM6V06dJer+tz/YMJdPoHPmvWLFm6dKlMnTrVFAR33HGHWUhYry8iIsL8Adh47cq5jgv9fvVRCwhPYWFhUrx48YD8OWgTxZw5cyQxMVFeeeUV0/zUunVr8+/cxutF8JZvwV7GBWP5pijjLi4sD8cgQOk/dkedOnVMIVixYkX58MMPTUdb2KdLly7ur2vXrm1+71WqVDF3uM2bN/fruQH5jTIu+FDGXVxQ19iVLFlSChUqdN4oKX1epkwZsY3euVarVk327t1rrk+bao4fP27ttTvXcaHfrz5m70iekZFhRlXZ8HPQ5in9d66/82C4XgRv+RZsZRzl2/+hjDtfUAc7raavX7++qdJ1ZGVlmefx8fFiGx3uvW/fPjM0Xq87PDzc69qTkpJM/xRbrr1y5crmD9nzGk+ePGn6WTjXqI9a8Gt/HMeqVavMvwO9+w90hw4dMv1P9HceDNeL4C3fgq2Mo3z7P5RxOXAFuXnz5plRRLNmzTKjaXr37u2Ki4tzJScnuwLd008/7Vq9erVr//79ri+//NLVokULV8mSJV0pKSlm/xNPPOGqUKGCa9WqVa6tW7e64uPjzRZITp065fr666/Npv+cX3/9dfP1jz/+aPa//PLL5vf56aefur799lszmqpy5cqu33//3f0ZrVq1cv3hD39wbdq0ybVu3TpX1apVXQ899JAr0K5X9w0ePNiM+NPf+cqVK1233HKLuZ60tLSAvF5cGZvLt2Ao44KtfFOUcVcu6IOdeuutt8wff0REhJkeYOPGjS4bdO7c2VW2bFlzXdddd515vnfvXvd+/eN/8sknXddcc42rcOHCrvvuu8915MgRVyD54osvzB9/9k2HxDtTAowYMcJVunRp8z+45s2bu5KSkrw+49ixY+aPvkiRIq5ixYq5HnvsMVOABNr1njlzxtWyZUvXtddea6Z5qFixoqtXr17n/U88kK4XV87W8i0YyrhgK98UZdyVC9H/5FSTBwAAgMAS1H3sAAAAbEKwAwAAsATBDgAAwBIEOwAAAEsQ7AAAACxBsAMAALAEwQ4AAMASBDsAAABLEOxQ4DVt2lQGDBiQp2N/+OEHCQkJke3bt5vnq1evNs+zLwQOAAUFZRzyU1i+fhrgA5988olZzPty3HbbbXLkyBGJjY3N9/MCgPxAGYf8RLBDgVe8ePHLfm9ERISUKVMmX88HAPITZRzyE02xCKhmikqVKslLL70kjz/+uBQtWlQqVKggb7/9dq7vzd5MMWvWLImLi5Nly5ZJjRo1pEiRItKqVStzx+vpnXfeMfujoqKkevXqMmXKFB9fJYBgRRmH/ESwQ8B57bXXpEGDBvL111/Lk08+KX369JGkpKQ8v//MmTMyYcIEee+992Tt2rVy4MABGTx4sHv/+++/LyNHjpQXX3xRdu/ebQrZESNGyOzZs310RQDw/1HG4UoQ7BBw2rRpYwq7G2+8UYYOHSolS5aUL774Is/vT09Pl2nTppmC85ZbbpF+/fpJYmKie/+oUaNMwdqxY0epXLmyeRw4cKBMnz7dR1cEAP8fZRyuBH3sEHDq1Knj/lqbILR/SUpKSp7fX7hwYalSpYr7edmyZd3vT01NlX379knPnj2lV69e7mMyMjLonAzgqqCMw5Ug2CHgZB89pgVfVlbWFb3f5XKZr0+fPm0eZ8yYIY0aNfI6rlChQldw1gCQN5RxuBIEO8BD6dKlpVy5cvL9999L165d/X06AJCvKOPsR7ADsnn++eflqaeeMs0SOprs7NmzsnXrVvntt99k0KBB/j49ALgilHF2I9gB2fzpT38yfVReffVVGTJkiMTExEjt2rXzPDM8ABRklHF2C3E5De8AAAAIaEx3AgAAYAmCHQAAgCUIdgAAAJYg2AEAAFiCYAcAAGAJgh0AAIAlCHYAAACWINgBAABYgmAHAABgCYIdAACAJQh2AAAAliDYAQAAiB3+H3QA/cU4rhHfAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, 2, sharex=\"all\")\n", + "ax[0].imshow(writer.live_mask[:].T, aspect=\"auto\")\n", + "ax[1].imshow(reader[:, 150].T, aspect=\"auto\")\n", + "\n", + "ax[0].set_xlabel(\"inline\")\n", + "ax[0].set_ylabel(\"crossline\")\n", + "ax[1].set_xlabel(\"inline\")\n", + "ax[1].set_ylabel(\"sample\")\n", + "ax[0].set_title(\"Live Mask\")\n", + "ax[1].set_title(\"Middle Crossline\")\n", + "fig.tight_layout();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Write to SEG-Y\n", + "\n", + "Because we populated all the fields necessary for SEG-Y output, we can call the\n", + "MDIO to SEGY converter and get a file out." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-16T14:50:15.788812Z", + "start_time": "2025-04-16T14:50:15.009889Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Unwrapping MDIO Blocks: 100%|██████████| 7/7 [00:00<00:00, 10.55it/s]\n", + "Merging lines: 100%|██████████| 1/1 [00:00<00:00, 17.26it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[(0, 0, 0, 0, 0, 4, 4000, 750, 750, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0)]\n", + "[[1. 1. 1. ... 1. 1. 1.]\n", + " [1. 1. 1. ... 1. 1. 1.]\n", + " [1. 1. 1. ... 1. 1. 1.]\n", + " ...\n", + " [1. 1. 1. ... 1. 1. 1.]\n", + " [1. 1. 1. ... 1. 1. 1.]\n", + " [1. 1. 1. ... 1. 1. 1.]]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "from segy import SegyFile\n", + "\n", + "from mdio import mdio_to_segy\n", + "\n", + "mdio_to_segy(\"demo.mdio\", \"demo.segy\")\n", + "segy = SegyFile(\"demo.segy\")\n", + "print(segy.binary_header)\n", + "print(segy.sample[:100])" + ] + }, + { + "cell_type": "markdown", "metadata": {}, - "cell_type": "raw", "source": [ - "{\n", - " \"cells\": [\n", - " {\n", - " \"metadata\": {},\n", - " \"cell_type\": \"raw\",\n", - " \"source\": [\n", - " \"{\\n\",\n", - " \" \\\"cells\\\": [\\n\",\n", - " \" {\\n\",\n", - " \" \\\"metadata\\\": {},\\n\",\n", - " \" \\\"cell_type\\\": \\\"raw\\\",\\n\",\n", - " \" \\\"source\\\": [\\n\",\n", - " \" \\\"{\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cells\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"pycharm\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"#%% md\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"# Create an Empty MDIO\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"```{article-info}\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\":author: Altay Sansal\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\":date: \\\\\\\\\\\\\\\"{sub-ref}`today`\\\\\\\\\\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\":read-time: \\\\\\\\\\\\\\\"{sub-ref}`wordcount-minutes` min read\\\\\\\\\\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\":class-container: sd-p-0 sd-outline-muted sd-rounded-3 sd-font-weight-light\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"```\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"Here we will create an empty MDIO file and populate its fields.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"```{warning}\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"For plotting, the notebook requires [Matplotlib](https://matplotlib.org/) as a dependency. Please install it before executing using\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"`pip install matplotlib` or `conda install matplotlib`.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"```\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"We first need to import the configuration classes and create function to be able to create the empty MDIO.\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"execution_count\\\\\\\": 2,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:04.371422Z\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:04.368107Z\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"pycharm\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"#%%\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"outputs\\\\\\\": [],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"import matplotlib.pyplot as plt\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"from mdio import Dimension\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"from mdio import Grid\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"from mdio import MDIOCreateConfig\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"from mdio import MDIOReader\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"from mdio import MDIOVariableConfig\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"from mdio import MDIOWriter\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"from mdio import create_empty\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"from mdio.converters.segy import get_compressor\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"from mdio.segy.compat import mdio_segy_spec\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"pycharm\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"#%% md\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"## Setting Up Grid Dimensions and Variable(s)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"Let's try to create an MDIO file in 3D with known `inline`, `crossline`, and `sample`\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"dimensions. This is exactly like a 3D Post-Stack dataset.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"We will use the standard `chunked_012` access pattern. All variable names must start\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"with `chunked_*` for `MDIOReader` to be able to open them with any access pattern.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"We will also use an MDIO private utility function to get the compressor easily. The\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"compressor is fully customizable, but this function gives us ones available in SEG-Y\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ingestion.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"If we want headers, we can also provide `header_dtype` which is a Numpy `dtype`. Again,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"we will be using the standard one MDIO uses for ingesting SEG-Ys. (Similar to SEG-Y Rev1).\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"At the end we create empty MDIO on local disk or cloud, based on the path string.\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"execution_count\\\\\\\": 3,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:06.121450Z\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:06.002634Z\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"pycharm\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"#%%\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"outputs\\\\\\\": [],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"grid = Grid(\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" dims=[\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" Dimension(name=\\\\\\\\\\\\\\\"inline\\\\\\\\\\\\\\\", coords=range(100, 300, 1)), # 100-300 with step 1\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" Dimension(name=\\\\\\\\\\\\\\\"crossline\\\\\\\\\\\\\\\", coords=range(1000, 1600, 2)), # 1000-1600 with step 2\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" Dimension(name=\\\\\\\\\\\\\\\"sample\\\\\\\\\\\\\\\", coords=range(0, 3000, 4)), # 0-3 seconds 4ms sample rate\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" ]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"compressor = get_compressor(lossless=True)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"header_dtype = mdio_segy_spec().trace.header.dtype\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"variable = MDIOVariableConfig(\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" name=\\\\\\\\\\\\\\\"chunked_012\\\\\\\\\\\\\\\",\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" dtype=\\\\\\\\\\\\\\\"float32\\\\\\\\\\\\\\\",\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" chunks=(128, 128, 128),\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" compressors=compressor,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" header_dtype=header_dtype,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"create_conf = MDIOCreateConfig(path=\\\\\\\\\\\\\\\"demo.mdio\\\\\\\\\\\\\\\", grid=grid, variables=[variable])\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"create_empty(config=create_conf);\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"## Populating the MDIO\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"Once empty MDIO is created, you can populate it with sample data, header data,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata, and statistics. The `live_mask` is automatically flipped to 1 after\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"every write. However, the consistency of the `live_mask` is up to the user. If\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"not populated correctly, at read time, traces may be skipped.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"We will read the usual stats and as you can see they're all empty. Text header\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"and binary header are only required if we are going to export this back to SEG-Y,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"and can be modified. We can edit these if necessary using the writer.\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"execution_count\\\\\\\": 4,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:09.974442Z\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:09.951257Z\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"pycharm\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"#%%\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"outputs\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"data\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text/plain\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"(['C00 ',\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" 'C01 ',\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" 'C02 ',\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" 'C03 ',\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" 'C04 '],\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" {},\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" {'rms': 0, 'min': 0, 'mean': 0, 'max': 0, 'std': 0})\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"execution_count\\\\\\\": 4,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"output_type\\\\\\\": \\\\\\\"execute_result\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" ],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"writer = MDIOWriter(create_conf.path)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"# Truncate text header for display\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"writer.text_header[:5], writer.binary_header, writer.stats\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"## Updating File and Checking with `MDIOReader`.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"We write traces here, the headers are still empty. If you need the headers\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"populated, this is where they would be written to file as well.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"All the extra metadata we are writing is so that we can export back to SEG-Y\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"in the future. If that's not a requirement most of the metadata can be\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"omitted.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"If you already have an MDIO prior to this, all the metadata can be copied\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"over from the previous version.\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"execution_count\\\\\\\": 5,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:12.498287Z\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:11.670230Z\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"pycharm\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"#%%\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"outputs\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"data\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text/plain\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"({'data_sample_format': 1,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" 'sample_interval': 4,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" 'samples_per_trace': 750,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" 'segy_revision_major': 1,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" 'segy_revision_minor': 0},\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" {'rms': 3, 'min': -4, 'mean': 12, 'max': 4, 'std': 5})\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"execution_count\\\\\\\": 5,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"output_type\\\\\\\": \\\\\\\"execute_result\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" ],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"sample_dim = writer.grid.select_dim(\\\\\\\\\\\\\\\"sample\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"sample_interval = int(sample_dim.coords[1] - sample_dim.coords[0])\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"num_samples = sample_dim.size\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"writer.binary_header = {\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" \\\\\\\\\\\\\\\"data_sample_format\\\\\\\\\\\\\\\": 1,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" \\\\\\\\\\\\\\\"sample_interval\\\\\\\\\\\\\\\": sample_interval,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" \\\\\\\\\\\\\\\"samples_per_trace\\\\\\\\\\\\\\\": num_samples,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" \\\\\\\\\\\\\\\"segy_revision_major\\\\\\\\\\\\\\\": 1,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" \\\\\\\\\\\\\\\"segy_revision_minor\\\\\\\\\\\\\\\": 0,\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"}\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"# Write some values to the file\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"writer[:5] = 1\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"writer[5:10] = 2\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"writer[50:100] = 3\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"writer[150:175] = -1\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"# Write some made up stats\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"writer.stats = {\\\\\\\\\\\\\\\"mean\\\\\\\\\\\\\\\": 12, \\\\\\\\\\\\\\\"std\\\\\\\\\\\\\\\": 5, \\\\\\\\\\\\\\\"rms\\\\\\\\\\\\\\\": 3, \\\\\\\\\\\\\\\"min\\\\\\\\\\\\\\\": -4, \\\\\\\\\\\\\\\"max\\\\\\\\\\\\\\\": 4}\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"reader = MDIOReader(create_conf.path)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"reader.binary_header, reader.stats\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": \\\\\\\"Plot some of the data we populated:\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"execution_count\\\\\\\": 6,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:14.256953Z\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:14.036094Z\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"outputs\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"data\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"image/png\\\\\\\": \\\\\\\"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+wEoWAh2AOADOtK1Zs2aXq/VqFFDDhw4YL4uU6aMeTx69KjXMfrc2aePKSkpXvszMjLMSFnnmOwiIyPNCFrPDUDwINgBgA/oiNikpCSv1/773/9KxYoV3QMpNJwlJia692t/OO07Fx8fb57r4/Hjx2Xbtm3uY1atWmVqA7UvHgBkx6hYAPCBgQMHym233WaaYh988EHZvHmzvP3222ZTISEhMmDAAHnhhRdMPzwNeiNGjDAjXTt06OCu4WvVqpW7CTc9PV369etnRswyIhZATgh2AOADDRs2lAULFpg+b2PGjDHBTac30XnpHM8884ykpqaa/ndaM9ekSRMzvUlUVJT7mPfff9+EuebNm5vRsJ06dTJz3wFATgh2AOAjf/zjH82WG62109CnW250BOzcuXN9dIYAbEMfOwAAAEsQ7AAAACzh12CnE2lqP5SiRYuaSTi1w3D2UWRNmzY1zRWe2xNPPOF1jE4f0LZtWylcuLD5nCFDhpgpAQAAAIKJX/vYrVmzRvr27WvCnQax5557Tlq2bGkWy9bFsB06IsyzD4oGOEdmZqYJdTptwPr16+XIkSPy6KOPmoW3dTQaAABAsPBrsNPRX55mzZplatx0zqY777zTK8jlNhnn8uXLTRBcuXKlWYqnXr16MnbsWBk6dKiMHj1aIiIifH4dAAAABUGB6mOny984o8A86XD/kiVLys0332ymDjhz5ox7ny6SXbt2ba/1FhMSEsxEnzt37szx+7BINgAAsFGBme5EZ1LXyTp1tnYNcI6HH37YzNSuk3F+++23piZO++F98sknZr8uhJ3TItrOvtz69j3//PM+vR4AAICgDXba1+67776TdevWeb2uE3c6tGZO11/UiTr37dsnVapUuazvpbV+gwYNcj/XGrvy5ctfwdkDAAD4X4FoitVZ1RcvXixffPGFXH/99Rc81lkfce/eveZR+97ltIi2sy8nLJINAABs5Ndg53K5TKjTZXd0YWtdcuditm/fbh615s5ZJHvHjh2SkpLiPmbFihUmrNWsWdOHZw8AAFCwhPm7+VWXyvn000/NXHZOn7jY2FiJjo42za26v02bNlKiRAnTx04X1tYRs3Xq1DHH6vQoGuC6desm48ePN58xfPhw89laMwcAABAs/FpjN3XqVDMSVich1ho4Z/vggw/Mfp2qRKcx0fBWvXp1efrpp80C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\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text/plain\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"
\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"output_type\\\\\\\": \\\\\\\"display_data\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" ],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"fig, ax = plt.subplots(1, 2, sharex=\\\\\\\\\\\\\\\"all\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ax[0].imshow(writer.live_mask[:].T, aspect=\\\\\\\\\\\\\\\"auto\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ax[1].imshow(reader[:, 150].T, aspect=\\\\\\\\\\\\\\\"auto\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ax[0].set_xlabel(\\\\\\\\\\\\\\\"inline\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ax[0].set_ylabel(\\\\\\\\\\\\\\\"crossline\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ax[1].set_xlabel(\\\\\\\\\\\\\\\"inline\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ax[1].set_ylabel(\\\\\\\\\\\\\\\"sample\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ax[0].set_title(\\\\\\\\\\\\\\\"Live Mask\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ax[1].set_title(\\\\\\\\\\\\\\\"Middle Crossline\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"fig.tight_layout();\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"## Write to SEG-Y\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"Because we populated all the fields necessary for SEG-Y output, we can call the\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"MDIO to SEGY converter and get a file out.\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"execution_count\\\\\\\": 7,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:15.788812Z\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:15.009889Z\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"outputs\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"stderr\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"output_type\\\\\\\": \\\\\\\"stream\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"Unwrapping MDIO Blocks: 100%|██████████| 7/7 [00:00<00:00, 10.55it/s]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"Merging lines: 100%|██████████| 1/1 [00:00<00:00, 17.26it/s]\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"stdout\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"output_type\\\\\\\": \\\\\\\"stream\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"[(0, 0, 0, 0, 0, 4, 4000, 750, 750, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0)]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"[[1. 1. 1. ... 1. 1. 1.]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" [1. 1. 1. ... 1. 1. 1.]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" [1. 1. 1. ... 1. 1. 1.]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" ...\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" [1. 1. 1. ... 1. 1. 1.]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" [1. 1. 1. ... 1. 1. 1.]\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\" [1. 1. 1. ... 1. 1. 1.]]\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"stderr\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"output_type\\\\\\\": \\\\\\\"stream\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" ],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"from segy import SegyFile\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"from mdio import mdio_to_segy\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"mdio_to_segy(\\\\\\\\\\\\\\\"demo.mdio\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"demo.segy\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"segy = SegyFile(\\\\\\\\\\\\\\\"demo.segy\\\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"print(segy.binary_header)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"print(segy.sample[:100])\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"markdown\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"## Copying an Existing MDIO without Data and Headers\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"We also provide a `create_empty_like` function which allows us to create an MDIO file\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"with the same structure and basic metadata as an existing one.\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"This will carry over:\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"* All access patterns in source MDIO\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"* Grid (shape, coordinates, dimensions, etc)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"* Text Header\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"* Binary Header\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"It will **NOT** carry over:\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"* Trace data\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"* Header data\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"* Statistics\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"* Live Mask\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"execution_count\\\\\\\": 8,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ExecuteTime\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"end_time\\\\\\\": \\\\\\\"2025-04-16T14:50:17.246513Z\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"start_time\\\\\\\": \\\\\\\"2025-04-16T14:50:17.111779Z\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"outputs\\\\\\\": [],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"from mdio import create_empty_like\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"copy_path = \\\\\\\\\\\\\\\"copy_of_existing.mdio\\\\\\\\\\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"create_empty_like(create_conf.path, copy_path)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"copy_reader = MDIOReader(copy_path)\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"assert copy_reader.shape == reader.shape\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"assert copy_reader.binary_header == reader.binary_header\\\\\\\\n\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"assert copy_reader.stats != reader.stats\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ]\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cell_type\\\\\\\": \\\\\\\"code\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"execution_count\\\\\\\": null,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {},\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"outputs\\\\\\\": [],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"source\\\\\\\": []\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" ],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"metadata\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"kernelspec\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"display_name\\\\\\\": \\\\\\\"Python 3 (ipykernel)\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"language\\\\\\\": \\\\\\\"python\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"python3\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"language_info\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"codemirror_mode\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"ipython\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"version\\\\\\\": 3\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"file_extension\\\\\\\": \\\\\\\".py\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"mimetype\\\\\\\": \\\\\\\"text/x-python\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"name\\\\\\\": \\\\\\\"python\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"nbconvert_exporter\\\\\\\": \\\\\\\"python\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"pygments_lexer\\\\\\\": \\\\\\\"ipython3\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"version\\\\\\\": \\\\\\\"3.12.3\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"widgets\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"application/vnd.jupyter.widget-state+json\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"104c0d4e90244ebc959e51a58794dcf4\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"display\\\\\\\": \\\\\\\"inline-flex\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"flex_flow\\\\\\\": \\\\\\\"row wrap\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"width\\\\\\\": \\\\\\\"100%\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"1c0f5b458ee1401eaa8de63c65802073\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"21b25dd6080d42368afc06770d5e1755\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_35fb49026dac479eba87217c2f6bcb9a\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_3ab3e27c83aa423d9ecdac94e576f0fe\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\"Ingesting SEG-Y in 6 chunks: 100%\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"2693aae410f04e7587f0400b5eef1079\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"ProgressStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"318aea09479a479981dcfa29bc856c67\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"ProgressStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"35fb49026dac479eba87217c2f6bcb9a\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"3ab3e27c83aa423d9ecdac94e576f0fe\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"420b4a9492c54eb48d7779f38a09fd20\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"flex\\\\\\\": \\\\\\\"2\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"42afe4fae9dd4bc4a341a231cf7a9c32\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"4df685a95de542ffab6f265df89b8949\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"58eaddb54c8840da83d1f6503d6ba64f\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"5b3e72b71f304230bc36bb91f9c173be\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"5c1fab0ccc7e42c69c2b663b67ca9e3c\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"63a54817ae8b4c8d85b30d8c97e7ed0d\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HBoxModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"children\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"IPY_MODEL_e170d60a55a14c489d32b101293a9d33\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"IPY_MODEL_662ad93cf7b3470f8e197350441f09ca\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"IPY_MODEL_ac4abab2367e461e956e4e0edb27be44\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_c59d6fe969a04f4da332ae2a6fdb9c77\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"63f87a2410ba47d38ad9f55a81357a29\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_ca48140488574a28a7469552441560e4\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_ae2037efb9cc459e84bcc28ca7243437\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\" 2/2 [00:03<00:00, 3.01s/block]\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"64eb2b9c8a094a1ea5f1991e5f09f5d9\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"662ad93cf7b3470f8e197350441f09ca\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"FloatProgressModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"bar_style\\\\\\\": \\\\\\\"success\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_420b4a9492c54eb48d7779f38a09fd20\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"max\\\\\\\": 1,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_d16e93f72f3d4aeda2f5deee87e9754f\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"value\\\\\\\": 1\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"74283969ff5446c89bb83b00a70226cf\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_5c1fab0ccc7e42c69c2b663b67ca9e3c\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_1c0f5b458ee1401eaa8de63c65802073\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\" 6/6 [00:09<00:00, 2.48s/block]\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"75cf0c1ed25e47aab20b060f3bb44fb8\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HBoxModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"children\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"IPY_MODEL_21b25dd6080d42368afc06770d5e1755\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"IPY_MODEL_c33f32b62a204ef094f67b10f8adbdc1\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"IPY_MODEL_74283969ff5446c89bb83b00a70226cf\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_91df4ac76fd744539d4237d6099f34a5\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"7ff32d7deac14f21ab0f0939fe09e440\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"ProgressStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"91df4ac76fd744539d4237d6099f34a5\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"display\\\\\\\": \\\\\\\"inline-flex\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"flex_flow\\\\\\\": \\\\\\\"row wrap\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"width\\\\\\\": \\\\\\\"100%\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"981634b52a7a4ffdae6186061c0b6482\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HBoxModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"children\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"IPY_MODEL_f65266f861cf40ef84e9ec74a8e0b44c\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"IPY_MODEL_9aaf514a5035413d8cbbad58aa0221f4\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"IPY_MODEL_63f87a2410ba47d38ad9f55a81357a29\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_104c0d4e90244ebc959e51a58794dcf4\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"9aaf514a5035413d8cbbad58aa0221f4\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"FloatProgressModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"bar_style\\\\\\\": \\\\\\\"success\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_b25523a221fd4b5e9211d07ef39cccf5\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"max\\\\\\\": 2,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_318aea09479a479981dcfa29bc856c67\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"value\\\\\\\": 2\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"9fe5348964cd4f7880bcd33204bbc7a2\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"a03d238db31145b881a1be478f9eb72f\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"a6aabcd2e57348a49bb59477f6a9fd90\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"FloatProgressModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"bar_style\\\\\\\": \\\\\\\"success\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_cfb02c9c7447491ca00bbb6acd99bb79\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"max\\\\\\\": 26,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_7ff32d7deac14f21ab0f0939fe09e440\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"value\\\\\\\": 26\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ac4abab2367e461e956e4e0edb27be44\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_58eaddb54c8840da83d1f6503d6ba64f\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_a03d238db31145b881a1be478f9eb72f\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\" 3/? [00:00<00:00, 8.29block/s]\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ae2037efb9cc459e84bcc28ca7243437\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"b25523a221fd4b5e9211d07ef39cccf5\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"flex\\\\\\\": \\\\\\\"2\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"b9810ee38bbe43f4bba100e53379be65\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_42afe4fae9dd4bc4a341a231cf7a9c32\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_fdcea609ee7349629604217b625371d3\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\" 26/26 [00:01<00:00, 18.92block/s]\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"c33f32b62a204ef094f67b10f8adbdc1\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"FloatProgressModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"bar_style\\\\\\\": \\\\\\\"success\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_d23d88490a1b4941b8ca228b7d4a39cb\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"max\\\\\\\": 6,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_2693aae410f04e7587f0400b5eef1079\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"value\\\\\\\": 6\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"c59d6fe969a04f4da332ae2a6fdb9c77\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"display\\\\\\\": \\\\\\\"inline-flex\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"flex_flow\\\\\\\": \\\\\\\"row wrap\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"width\\\\\\\": \\\\\\\"100%\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"ca48140488574a28a7469552441560e4\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"cfb02c9c7447491ca00bbb6acd99bb79\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"flex\\\\\\\": \\\\\\\"2\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"d16e93f72f3d4aeda2f5deee87e9754f\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"ProgressStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"d23d88490a1b4941b8ca228b7d4a39cb\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"flex\\\\\\\": \\\\\\\"2\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"d565a20d37e84ed0a1195e9a90154960\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HBoxModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"children\\\\\\\": [\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"IPY_MODEL_db696e15587c4a54b82886b3eb5a0c96\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"IPY_MODEL_a6aabcd2e57348a49bb59477f6a9fd90\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"IPY_MODEL_b9810ee38bbe43f4bba100e53379be65\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" ],\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_eab4b060672b4dd5a73ca7bb8f782cd2\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"db696e15587c4a54b82886b3eb5a0c96\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_64eb2b9c8a094a1ea5f1991e5f09f5d9\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_5b3e72b71f304230bc36bb91f9c173be\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\"Step 1 / 2 Writing Blocks: 100%\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"e170d60a55a14c489d32b101293a9d33\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_9fe5348964cd4f7880bcd33204bbc7a2\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_4df685a95de542ffab6f265df89b8949\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\"Step 2 / 2 Concat Blocks: \\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"e66368cda8124001b16459a0634029e2\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"eab4b060672b4dd5a73ca7bb8f782cd2\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"display\\\\\\\": \\\\\\\"inline-flex\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"flex_flow\\\\\\\": \\\\\\\"row wrap\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"width\\\\\\\": \\\\\\\"100%\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"f65266f861cf40ef84e9ec74a8e0b44c\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"layout\\\\\\\": \\\\\\\"IPY_MODEL_fff4199774534d9f982f03738fbb08e7\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"style\\\\\\\": \\\\\\\"IPY_MODEL_e66368cda8124001b16459a0634029e2\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"value\\\\\\\": \\\\\\\"Scanning SEG-Y for geometry attributes: 100%\\\\\\\"\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"fdcea609ee7349629604217b625371d3\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/controls\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"HTMLStyleModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"description_width\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"font_size\\\\\\\": null,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"text_color\\\\\\\": null\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"fff4199774534d9f982f03738fbb08e7\\\\\\\": {\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module\\\\\\\": \\\\\\\"@jupyter-widgets/base\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_module_version\\\\\\\": \\\\\\\"2.0.0\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"model_name\\\\\\\": \\\\\\\"LayoutModel\\\\\\\",\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"state\\\\\\\": {}\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"version_major\\\\\\\": 2,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"version_minor\\\\\\\": 0\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" }\\\\n\\\",\\n\",\n", - " \" \\\" },\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"nbformat\\\\\\\": 4,\\\\n\\\",\\n\",\n", - " \" \\\" \\\\\\\"nbformat_minor\\\\\\\": 4\\\\n\\\",\\n\",\n", - " \" \\\"}\\\\n\\\"\\n\",\n", - " \" ]\\n\",\n", - " \" }\\n\",\n", - " \" ],\\n\",\n", - " \" \\\"metadata\\\": {\\n\",\n", - " \" \\\"kernelspec\\\": {\\n\",\n", - " \" \\\"display_name\\\": \\\"Python 3 (ipykernel)\\\",\\n\",\n", - " \" \\\"language\\\": \\\"python\\\",\\n\",\n", - " \" \\\"name\\\": \\\"python3\\\"\\n\",\n", - " \" },\\n\",\n", - " \" \\\"language_info\\\": {\\n\",\n", - " \" \\\"codemirror_mode\\\": {\\n\",\n", - " \" \\\"name\\\": \\\"ipython\\\",\\n\",\n", - " \" \\\"version\\\": 3\\n\",\n", - " \" },\\n\",\n", - " \" \\\"file_extension\\\": \\\".py\\\",\\n\",\n", - " \" \\\"mimetype\\\": \\\"text/x-python\\\",\\n\",\n", - " \" \\\"name\\\": \\\"python\\\",\\n\",\n", - " \" \\\"nbconvert_exporter\\\": \\\"python\\\",\\n\",\n", - " \" \\\"pygments_lexer\\\": \\\"ipython3\\\",\\n\",\n", - " \" \\\"version\\\": \\\"3.12.3\\\"\\n\",\n", - " \" },\\n\",\n", - " \" \\\"widgets\\\": {\\n\",\n", - " \" \\\"application/vnd.jupyter.widget-state+json\\\": {\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"104c0d4e90244ebc959e51a58794dcf4\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"display\\\": \\\"inline-flex\\\",\\n\",\n", - " \" \\\"flex_flow\\\": \\\"row wrap\\\",\\n\",\n", - " \" \\\"width\\\": \\\"100%\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"1c0f5b458ee1401eaa8de63c65802073\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", - " \" \\\"font_size\\\": null,\\n\",\n", - " \" \\\"text_color\\\": null\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"21b25dd6080d42368afc06770d5e1755\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_35fb49026dac479eba87217c2f6bcb9a\\\",\\n\",\n", - " \" \\\"style\\\": \\\"IPY_MODEL_3ab3e27c83aa423d9ecdac94e576f0fe\\\",\\n\",\n", - " \" \\\"value\\\": \\\"Ingesting SEG-Y in 6 chunks: 100%\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"2693aae410f04e7587f0400b5eef1079\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"ProgressStyleModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"description_width\\\": \\\"\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"318aea09479a479981dcfa29bc856c67\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"ProgressStyleModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"description_width\\\": \\\"\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"35fb49026dac479eba87217c2f6bcb9a\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {}\\n\",\n", - " \" },\\n\",\n", - " \" \\\"3ab3e27c83aa423d9ecdac94e576f0fe\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", - " \" \\\"font_size\\\": null,\\n\",\n", - " \" \\\"text_color\\\": null\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"420b4a9492c54eb48d7779f38a09fd20\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"flex\\\": \\\"2\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"42afe4fae9dd4bc4a341a231cf7a9c32\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {}\\n\",\n", - " \" },\\n\",\n", - " \" \\\"4df685a95de542ffab6f265df89b8949\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", - " \" \\\"font_size\\\": null,\\n\",\n", - " \" \\\"text_color\\\": null\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"58eaddb54c8840da83d1f6503d6ba64f\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {}\\n\",\n", - " \" },\\n\",\n", - " \" \\\"5b3e72b71f304230bc36bb91f9c173be\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", - " \" \\\"font_size\\\": null,\\n\",\n", - " \" \\\"text_color\\\": null\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"5c1fab0ccc7e42c69c2b663b67ca9e3c\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {}\\n\",\n", - " \" },\\n\",\n", - " \" \\\"63a54817ae8b4c8d85b30d8c97e7ed0d\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HBoxModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"children\\\": [\\n\",\n", - " \" \\\"IPY_MODEL_e170d60a55a14c489d32b101293a9d33\\\",\\n\",\n", - " \" \\\"IPY_MODEL_662ad93cf7b3470f8e197350441f09ca\\\",\\n\",\n", - " \" \\\"IPY_MODEL_ac4abab2367e461e956e4e0edb27be44\\\"\\n\",\n", - " \" ],\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_c59d6fe969a04f4da332ae2a6fdb9c77\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"63f87a2410ba47d38ad9f55a81357a29\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_ca48140488574a28a7469552441560e4\\\",\\n\",\n", - " \" \\\"style\\\": \\\"IPY_MODEL_ae2037efb9cc459e84bcc28ca7243437\\\",\\n\",\n", - " \" \\\"value\\\": \\\" 2/2 [00:03<00:00, 3.01s/block]\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"64eb2b9c8a094a1ea5f1991e5f09f5d9\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {}\\n\",\n", - " \" },\\n\",\n", - " \" \\\"662ad93cf7b3470f8e197350441f09ca\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"FloatProgressModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"bar_style\\\": \\\"success\\\",\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_420b4a9492c54eb48d7779f38a09fd20\\\",\\n\",\n", - " \" \\\"max\\\": 1,\\n\",\n", - " \" \\\"style\\\": \\\"IPY_MODEL_d16e93f72f3d4aeda2f5deee87e9754f\\\",\\n\",\n", - " \" \\\"value\\\": 1\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"74283969ff5446c89bb83b00a70226cf\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_5c1fab0ccc7e42c69c2b663b67ca9e3c\\\",\\n\",\n", - " \" \\\"style\\\": \\\"IPY_MODEL_1c0f5b458ee1401eaa8de63c65802073\\\",\\n\",\n", - " \" \\\"value\\\": \\\" 6/6 [00:09<00:00, 2.48s/block]\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"75cf0c1ed25e47aab20b060f3bb44fb8\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HBoxModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"children\\\": [\\n\",\n", - " \" \\\"IPY_MODEL_21b25dd6080d42368afc06770d5e1755\\\",\\n\",\n", - " \" \\\"IPY_MODEL_c33f32b62a204ef094f67b10f8adbdc1\\\",\\n\",\n", - " \" \\\"IPY_MODEL_74283969ff5446c89bb83b00a70226cf\\\"\\n\",\n", - " \" ],\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_91df4ac76fd744539d4237d6099f34a5\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"7ff32d7deac14f21ab0f0939fe09e440\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"ProgressStyleModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"description_width\\\": \\\"\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"91df4ac76fd744539d4237d6099f34a5\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"display\\\": \\\"inline-flex\\\",\\n\",\n", - " \" \\\"flex_flow\\\": \\\"row wrap\\\",\\n\",\n", - " \" \\\"width\\\": \\\"100%\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"981634b52a7a4ffdae6186061c0b6482\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HBoxModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"children\\\": [\\n\",\n", - " \" \\\"IPY_MODEL_f65266f861cf40ef84e9ec74a8e0b44c\\\",\\n\",\n", - " \" \\\"IPY_MODEL_9aaf514a5035413d8cbbad58aa0221f4\\\",\\n\",\n", - " \" \\\"IPY_MODEL_63f87a2410ba47d38ad9f55a81357a29\\\"\\n\",\n", - " \" ],\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_104c0d4e90244ebc959e51a58794dcf4\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"9aaf514a5035413d8cbbad58aa0221f4\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"FloatProgressModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"bar_style\\\": \\\"success\\\",\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_b25523a221fd4b5e9211d07ef39cccf5\\\",\\n\",\n", - " \" \\\"max\\\": 2,\\n\",\n", - " \" \\\"style\\\": \\\"IPY_MODEL_318aea09479a479981dcfa29bc856c67\\\",\\n\",\n", - " \" \\\"value\\\": 2\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"9fe5348964cd4f7880bcd33204bbc7a2\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {}\\n\",\n", - " \" },\\n\",\n", - " \" \\\"a03d238db31145b881a1be478f9eb72f\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", - " \" \\\"font_size\\\": null,\\n\",\n", - " \" \\\"text_color\\\": null\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"a6aabcd2e57348a49bb59477f6a9fd90\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"FloatProgressModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"bar_style\\\": \\\"success\\\",\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_cfb02c9c7447491ca00bbb6acd99bb79\\\",\\n\",\n", - " \" \\\"max\\\": 26,\\n\",\n", - " \" \\\"style\\\": \\\"IPY_MODEL_7ff32d7deac14f21ab0f0939fe09e440\\\",\\n\",\n", - " \" \\\"value\\\": 26\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"ac4abab2367e461e956e4e0edb27be44\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_58eaddb54c8840da83d1f6503d6ba64f\\\",\\n\",\n", - " \" \\\"style\\\": \\\"IPY_MODEL_a03d238db31145b881a1be478f9eb72f\\\",\\n\",\n", - " \" \\\"value\\\": \\\" 3/? [00:00<00:00, 8.29block/s]\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"ae2037efb9cc459e84bcc28ca7243437\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", - " \" \\\"font_size\\\": null,\\n\",\n", - " \" \\\"text_color\\\": null\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"b25523a221fd4b5e9211d07ef39cccf5\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"flex\\\": \\\"2\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"b9810ee38bbe43f4bba100e53379be65\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_42afe4fae9dd4bc4a341a231cf7a9c32\\\",\\n\",\n", - " \" \\\"style\\\": \\\"IPY_MODEL_fdcea609ee7349629604217b625371d3\\\",\\n\",\n", - " \" \\\"value\\\": \\\" 26/26 [00:01<00:00, 18.92block/s]\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"c33f32b62a204ef094f67b10f8adbdc1\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"FloatProgressModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"bar_style\\\": \\\"success\\\",\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_d23d88490a1b4941b8ca228b7d4a39cb\\\",\\n\",\n", - " \" \\\"max\\\": 6,\\n\",\n", - " \" \\\"style\\\": \\\"IPY_MODEL_2693aae410f04e7587f0400b5eef1079\\\",\\n\",\n", - " \" \\\"value\\\": 6\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"c59d6fe969a04f4da332ae2a6fdb9c77\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"display\\\": \\\"inline-flex\\\",\\n\",\n", - " \" \\\"flex_flow\\\": \\\"row wrap\\\",\\n\",\n", - " \" \\\"width\\\": \\\"100%\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"ca48140488574a28a7469552441560e4\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {}\\n\",\n", - " \" },\\n\",\n", - " \" \\\"cfb02c9c7447491ca00bbb6acd99bb79\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"flex\\\": \\\"2\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"d16e93f72f3d4aeda2f5deee87e9754f\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"ProgressStyleModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"description_width\\\": \\\"\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"d23d88490a1b4941b8ca228b7d4a39cb\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"flex\\\": \\\"2\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"d565a20d37e84ed0a1195e9a90154960\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HBoxModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"children\\\": [\\n\",\n", - " \" \\\"IPY_MODEL_db696e15587c4a54b82886b3eb5a0c96\\\",\\n\",\n", - " \" \\\"IPY_MODEL_a6aabcd2e57348a49bb59477f6a9fd90\\\",\\n\",\n", - " \" \\\"IPY_MODEL_b9810ee38bbe43f4bba100e53379be65\\\"\\n\",\n", - " \" ],\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_eab4b060672b4dd5a73ca7bb8f782cd2\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"db696e15587c4a54b82886b3eb5a0c96\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_64eb2b9c8a094a1ea5f1991e5f09f5d9\\\",\\n\",\n", - " \" \\\"style\\\": \\\"IPY_MODEL_5b3e72b71f304230bc36bb91f9c173be\\\",\\n\",\n", - " \" \\\"value\\\": \\\"Step 1 / 2 Writing Blocks: 100%\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"e170d60a55a14c489d32b101293a9d33\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_9fe5348964cd4f7880bcd33204bbc7a2\\\",\\n\",\n", - " \" \\\"style\\\": \\\"IPY_MODEL_4df685a95de542ffab6f265df89b8949\\\",\\n\",\n", - " \" \\\"value\\\": \\\"Step 2 / 2 Concat Blocks: \\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"e66368cda8124001b16459a0634029e2\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", - " \" \\\"font_size\\\": null,\\n\",\n", - " \" \\\"text_color\\\": null\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"eab4b060672b4dd5a73ca7bb8f782cd2\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"display\\\": \\\"inline-flex\\\",\\n\",\n", - " \" \\\"flex_flow\\\": \\\"row wrap\\\",\\n\",\n", - " \" \\\"width\\\": \\\"100%\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"f65266f861cf40ef84e9ec74a8e0b44c\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"layout\\\": \\\"IPY_MODEL_fff4199774534d9f982f03738fbb08e7\\\",\\n\",\n", - " \" \\\"style\\\": \\\"IPY_MODEL_e66368cda8124001b16459a0634029e2\\\",\\n\",\n", - " \" \\\"value\\\": \\\"Scanning SEG-Y for geometry attributes: 100%\\\"\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"fdcea609ee7349629604217b625371d3\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/controls\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"HTMLStyleModel\\\",\\n\",\n", - " \" \\\"state\\\": {\\n\",\n", - " \" \\\"description_width\\\": \\\"\\\",\\n\",\n", - " \" \\\"font_size\\\": null,\\n\",\n", - " \" \\\"text_color\\\": null\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"fff4199774534d9f982f03738fbb08e7\\\": {\\n\",\n", - " \" \\\"model_module\\\": \\\"@jupyter-widgets/base\\\",\\n\",\n", - " \" \\\"model_module_version\\\": \\\"2.0.0\\\",\\n\",\n", - " \" \\\"model_name\\\": \\\"LayoutModel\\\",\\n\",\n", - " \" \\\"state\\\": {}\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"version_major\\\": 2,\\n\",\n", - " \" \\\"version_minor\\\": 0\\n\",\n", - " \" }\\n\",\n", - " \" }\\n\",\n", - " \" },\\n\",\n", - " \" \\\"nbformat\\\": 4,\\n\",\n", - " \" \\\"nbformat_minor\\\": 4\\n\",\n", - " \"}\\n\"\n", - " ]\n", - " }\n", - " ],\n", - " \"metadata\": {\n", - " \"kernelspec\": {\n", - " \"display_name\": \"Python 3 (ipykernel)\",\n", - " \"language\": \"python\",\n", - " \"name\": \"python3\"\n", - " },\n", - " \"language_info\": {\n", - " \"codemirror_mode\": {\n", - " \"name\": \"ipython\",\n", - " \"version\": 3\n", - " },\n", - " \"file_extension\": \".py\",\n", - " \"mimetype\": \"text/x-python\",\n", - " \"name\": \"python\",\n", - " \"nbconvert_exporter\": \"python\",\n", - " \"pygments_lexer\": \"ipython3\",\n", - " \"version\": \"3.12.3\"\n", - " },\n", - " \"widgets\": {\n", - " \"application/vnd.jupyter.widget-state+json\": {\n", - " \"state\": {\n", - " \"104c0d4e90244ebc959e51a58794dcf4\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {\n", - " \"display\": \"inline-flex\",\n", - " \"flex_flow\": \"row wrap\",\n", - " \"width\": \"100%\"\n", - " }\n", - " },\n", - " \"1c0f5b458ee1401eaa8de63c65802073\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLStyleModel\",\n", - " \"state\": {\n", - " \"description_width\": \"\",\n", - " \"font_size\": null,\n", - " \"text_color\": null\n", - " }\n", - " },\n", - " \"21b25dd6080d42368afc06770d5e1755\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLModel\",\n", - " \"state\": {\n", - " \"layout\": \"IPY_MODEL_35fb49026dac479eba87217c2f6bcb9a\",\n", - " \"style\": \"IPY_MODEL_3ab3e27c83aa423d9ecdac94e576f0fe\",\n", - " \"value\": \"Ingesting SEG-Y in 6 chunks: 100%\"\n", - " }\n", - " },\n", - " \"2693aae410f04e7587f0400b5eef1079\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"ProgressStyleModel\",\n", - " \"state\": {\n", - " \"description_width\": \"\"\n", - " }\n", - " },\n", - " \"318aea09479a479981dcfa29bc856c67\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"ProgressStyleModel\",\n", - " \"state\": {\n", - " \"description_width\": \"\"\n", - " }\n", - " },\n", - " \"35fb49026dac479eba87217c2f6bcb9a\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {}\n", - " },\n", - " \"3ab3e27c83aa423d9ecdac94e576f0fe\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLStyleModel\",\n", - " \"state\": {\n", - " \"description_width\": \"\",\n", - " \"font_size\": null,\n", - " \"text_color\": null\n", - " }\n", - " },\n", - " \"420b4a9492c54eb48d7779f38a09fd20\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {\n", - " \"flex\": \"2\"\n", - " }\n", - " },\n", - " \"42afe4fae9dd4bc4a341a231cf7a9c32\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {}\n", - " },\n", - " \"4df685a95de542ffab6f265df89b8949\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLStyleModel\",\n", - " \"state\": {\n", - " \"description_width\": \"\",\n", - " \"font_size\": null,\n", - " \"text_color\": null\n", - " }\n", - " },\n", - " \"58eaddb54c8840da83d1f6503d6ba64f\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {}\n", - " },\n", - " \"5b3e72b71f304230bc36bb91f9c173be\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLStyleModel\",\n", - " \"state\": {\n", - " \"description_width\": \"\",\n", - " \"font_size\": null,\n", - " \"text_color\": null\n", - " }\n", - " },\n", - " \"5c1fab0ccc7e42c69c2b663b67ca9e3c\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {}\n", - " },\n", - " \"63a54817ae8b4c8d85b30d8c97e7ed0d\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HBoxModel\",\n", - " \"state\": {\n", - " \"children\": [\n", - " \"IPY_MODEL_e170d60a55a14c489d32b101293a9d33\",\n", - " \"IPY_MODEL_662ad93cf7b3470f8e197350441f09ca\",\n", - " \"IPY_MODEL_ac4abab2367e461e956e4e0edb27be44\"\n", - " ],\n", - " \"layout\": \"IPY_MODEL_c59d6fe969a04f4da332ae2a6fdb9c77\"\n", - " }\n", - " },\n", - " \"63f87a2410ba47d38ad9f55a81357a29\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLModel\",\n", - " \"state\": {\n", - " \"layout\": \"IPY_MODEL_ca48140488574a28a7469552441560e4\",\n", - " \"style\": \"IPY_MODEL_ae2037efb9cc459e84bcc28ca7243437\",\n", - " \"value\": \" 2/2 [00:03<00:00, 3.01s/block]\"\n", - " }\n", - " },\n", - " \"64eb2b9c8a094a1ea5f1991e5f09f5d9\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {}\n", - " },\n", - " \"662ad93cf7b3470f8e197350441f09ca\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"FloatProgressModel\",\n", - " \"state\": {\n", - " \"bar_style\": \"success\",\n", - " \"layout\": \"IPY_MODEL_420b4a9492c54eb48d7779f38a09fd20\",\n", - " \"max\": 1,\n", - " \"style\": \"IPY_MODEL_d16e93f72f3d4aeda2f5deee87e9754f\",\n", - " \"value\": 1\n", - " }\n", - " },\n", - " \"74283969ff5446c89bb83b00a70226cf\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLModel\",\n", - " \"state\": {\n", - " \"layout\": \"IPY_MODEL_5c1fab0ccc7e42c69c2b663b67ca9e3c\",\n", - " \"style\": \"IPY_MODEL_1c0f5b458ee1401eaa8de63c65802073\",\n", - " \"value\": \" 6/6 [00:09<00:00, 2.48s/block]\"\n", - " }\n", - " },\n", - " \"75cf0c1ed25e47aab20b060f3bb44fb8\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HBoxModel\",\n", - " \"state\": {\n", - " \"children\": [\n", - " \"IPY_MODEL_21b25dd6080d42368afc06770d5e1755\",\n", - " \"IPY_MODEL_c33f32b62a204ef094f67b10f8adbdc1\",\n", - " \"IPY_MODEL_74283969ff5446c89bb83b00a70226cf\"\n", - " ],\n", - " \"layout\": \"IPY_MODEL_91df4ac76fd744539d4237d6099f34a5\"\n", - " }\n", - " },\n", - " \"7ff32d7deac14f21ab0f0939fe09e440\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"ProgressStyleModel\",\n", - " \"state\": {\n", - " \"description_width\": \"\"\n", - " }\n", - " },\n", - " \"91df4ac76fd744539d4237d6099f34a5\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {\n", - " \"display\": \"inline-flex\",\n", - " \"flex_flow\": \"row wrap\",\n", - " \"width\": \"100%\"\n", - " }\n", - " },\n", - " \"981634b52a7a4ffdae6186061c0b6482\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HBoxModel\",\n", - " \"state\": {\n", - " \"children\": [\n", - " \"IPY_MODEL_f65266f861cf40ef84e9ec74a8e0b44c\",\n", - " \"IPY_MODEL_9aaf514a5035413d8cbbad58aa0221f4\",\n", - " \"IPY_MODEL_63f87a2410ba47d38ad9f55a81357a29\"\n", - " ],\n", - " \"layout\": \"IPY_MODEL_104c0d4e90244ebc959e51a58794dcf4\"\n", - " }\n", - " },\n", - " \"9aaf514a5035413d8cbbad58aa0221f4\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"FloatProgressModel\",\n", - " \"state\": {\n", - " \"bar_style\": \"success\",\n", - " \"layout\": \"IPY_MODEL_b25523a221fd4b5e9211d07ef39cccf5\",\n", - " \"max\": 2,\n", - " \"style\": \"IPY_MODEL_318aea09479a479981dcfa29bc856c67\",\n", - " \"value\": 2\n", - " }\n", - " },\n", - " \"9fe5348964cd4f7880bcd33204bbc7a2\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {}\n", - " },\n", - " \"a03d238db31145b881a1be478f9eb72f\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLStyleModel\",\n", - " \"state\": {\n", - " \"description_width\": \"\",\n", - " \"font_size\": null,\n", - " \"text_color\": null\n", - " }\n", - " },\n", - " \"a6aabcd2e57348a49bb59477f6a9fd90\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"FloatProgressModel\",\n", - " \"state\": {\n", - " \"bar_style\": \"success\",\n", - " \"layout\": \"IPY_MODEL_cfb02c9c7447491ca00bbb6acd99bb79\",\n", - " \"max\": 26,\n", - " \"style\": \"IPY_MODEL_7ff32d7deac14f21ab0f0939fe09e440\",\n", - " \"value\": 26\n", - " }\n", - " },\n", - " \"ac4abab2367e461e956e4e0edb27be44\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLModel\",\n", - " \"state\": {\n", - " \"layout\": \"IPY_MODEL_58eaddb54c8840da83d1f6503d6ba64f\",\n", - " \"style\": \"IPY_MODEL_a03d238db31145b881a1be478f9eb72f\",\n", - " \"value\": \" 3/? [00:00<00:00, 8.29block/s]\"\n", - " }\n", - " },\n", - " \"ae2037efb9cc459e84bcc28ca7243437\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLStyleModel\",\n", - " \"state\": {\n", - " \"description_width\": \"\",\n", - " \"font_size\": null,\n", - " \"text_color\": null\n", - " }\n", - " },\n", - " \"b25523a221fd4b5e9211d07ef39cccf5\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {\n", - " \"flex\": \"2\"\n", - " }\n", - " },\n", - " \"b9810ee38bbe43f4bba100e53379be65\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLModel\",\n", - " \"state\": {\n", - " \"layout\": \"IPY_MODEL_42afe4fae9dd4bc4a341a231cf7a9c32\",\n", - " \"style\": \"IPY_MODEL_fdcea609ee7349629604217b625371d3\",\n", - " \"value\": \" 26/26 [00:01<00:00, 18.92block/s]\"\n", - " }\n", - " },\n", - " \"c33f32b62a204ef094f67b10f8adbdc1\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"FloatProgressModel\",\n", - " \"state\": {\n", - " \"bar_style\": \"success\",\n", - " \"layout\": \"IPY_MODEL_d23d88490a1b4941b8ca228b7d4a39cb\",\n", - " \"max\": 6,\n", - " \"style\": \"IPY_MODEL_2693aae410f04e7587f0400b5eef1079\",\n", - " \"value\": 6\n", - " }\n", - " },\n", - " \"c59d6fe969a04f4da332ae2a6fdb9c77\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {\n", - " \"display\": \"inline-flex\",\n", - " \"flex_flow\": \"row wrap\",\n", - " \"width\": \"100%\"\n", - " }\n", - " },\n", - " \"ca48140488574a28a7469552441560e4\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {}\n", - " },\n", - " \"cfb02c9c7447491ca00bbb6acd99bb79\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {\n", - " \"flex\": \"2\"\n", - " }\n", - " },\n", - " \"d16e93f72f3d4aeda2f5deee87e9754f\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"ProgressStyleModel\",\n", - " \"state\": {\n", - " \"description_width\": \"\"\n", - " }\n", - " },\n", - " \"d23d88490a1b4941b8ca228b7d4a39cb\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {\n", - " \"flex\": \"2\"\n", - " }\n", - " },\n", - " \"d565a20d37e84ed0a1195e9a90154960\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HBoxModel\",\n", - " \"state\": {\n", - " \"children\": [\n", - " \"IPY_MODEL_db696e15587c4a54b82886b3eb5a0c96\",\n", - " \"IPY_MODEL_a6aabcd2e57348a49bb59477f6a9fd90\",\n", - " \"IPY_MODEL_b9810ee38bbe43f4bba100e53379be65\"\n", - " ],\n", - " \"layout\": \"IPY_MODEL_eab4b060672b4dd5a73ca7bb8f782cd2\"\n", - " }\n", - " },\n", - " \"db696e15587c4a54b82886b3eb5a0c96\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLModel\",\n", - " \"state\": {\n", - " \"layout\": \"IPY_MODEL_64eb2b9c8a094a1ea5f1991e5f09f5d9\",\n", - " \"style\": \"IPY_MODEL_5b3e72b71f304230bc36bb91f9c173be\",\n", - " \"value\": \"Step 1 / 2 Writing Blocks: 100%\"\n", - " }\n", - " },\n", - " \"e170d60a55a14c489d32b101293a9d33\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLModel\",\n", - " \"state\": {\n", - " \"layout\": \"IPY_MODEL_9fe5348964cd4f7880bcd33204bbc7a2\",\n", - " \"style\": \"IPY_MODEL_4df685a95de542ffab6f265df89b8949\",\n", - " \"value\": \"Step 2 / 2 Concat Blocks: \"\n", - " }\n", - " },\n", - " \"e66368cda8124001b16459a0634029e2\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLStyleModel\",\n", - " \"state\": {\n", - " \"description_width\": \"\",\n", - " \"font_size\": null,\n", - " \"text_color\": null\n", - " }\n", - " },\n", - " \"eab4b060672b4dd5a73ca7bb8f782cd2\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {\n", - " \"display\": \"inline-flex\",\n", - " \"flex_flow\": \"row wrap\",\n", - " \"width\": \"100%\"\n", - " }\n", - " },\n", - " \"f65266f861cf40ef84e9ec74a8e0b44c\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLModel\",\n", - " \"state\": {\n", - " \"layout\": \"IPY_MODEL_fff4199774534d9f982f03738fbb08e7\",\n", - " \"style\": \"IPY_MODEL_e66368cda8124001b16459a0634029e2\",\n", - " \"value\": \"Scanning SEG-Y for geometry attributes: 100%\"\n", - " }\n", - " },\n", - " \"fdcea609ee7349629604217b625371d3\": {\n", - " \"model_module\": \"@jupyter-widgets/controls\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"HTMLStyleModel\",\n", - " \"state\": {\n", - " \"description_width\": \"\",\n", - " \"font_size\": null,\n", - " \"text_color\": null\n", - " }\n", - " },\n", - " \"fff4199774534d9f982f03738fbb08e7\": {\n", - " \"model_module\": \"@jupyter-widgets/base\",\n", - " \"model_module_version\": \"2.0.0\",\n", - " \"model_name\": \"LayoutModel\",\n", - " \"state\": {}\n", - " }\n", - " },\n", - " \"version_major\": 2,\n", - " \"version_minor\": 0\n", - " }\n", - " }\n", - " },\n", - " \"nbformat\": 4,\n", - " \"nbformat_minor\": 4\n", - "}\n" + "## Copying an Existing MDIO without Data and Headers\n", + "\n", + "We also provide a `create_empty_like` function which allows us to create an MDIO file\n", + "with the same structure and basic metadata as an existing one.\n", + "\n", + "This will carry over:\n", + "* All access patterns in source MDIO\n", + "* Grid (shape, coordinates, dimensions, etc)\n", + "* Text Header\n", + "* Binary Header\n", + "\n", + "It will **NOT** carry over:\n", + "* Trace data\n", + "* Header data\n", + "* Statistics\n", + "* Live Mask" ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-16T14:50:17.246513Z", + "start_time": "2025-04-16T14:50:17.111779Z" + } + }, + "outputs": [], + "source": [ + "from mdio import create_empty_like\n", + "\n", + "copy_path = \"copy_of_existing.mdio\"\n", + "create_empty_like(create_conf.path, copy_path)\n", + "\n", + "copy_reader = MDIOReader(copy_path)\n", + "assert copy_reader.shape == reader.shape\n", + "assert copy_reader.binary_header == reader.binary_header\n", + "assert copy_reader.stats != reader.stats" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { From f6b2c34487b912f8bbd21ba263a26efa2a652105 Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Wed, 7 May 2025 09:34:33 -0500 Subject: [PATCH 13/19] update lockfile --- uv.lock | 291 ++++++-------------------------------------------------- 1 file changed, 28 insertions(+), 263 deletions(-) diff --git a/uv.lock b/uv.lock index 68edf47f..f6894429 100644 --- a/uv.lock +++ b/uv.lock @@ -276,21 +276,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537 }, ] -[[package]] -name = "bandit" -version = "1.8.3" -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/1a/a5/144a45f8e67df9d66c3bc3f7e69a39537db8bff1189ab7cff4e9459215da/bandit-1.8.3.tar.gz", hash = "sha256:f5847beb654d309422985c36644649924e0ea4425c76dec2e89110b87506193a", size = 4232005 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/88/85/db74b9233e0aa27ec96891045c5e920a64dd5cbccd50f8e64e9460f48d35/bandit-1.8.3-py3-none-any.whl", hash = "sha256:28f04dc0d258e1dd0f99dee8eefa13d1cb5e3fde1a5ab0c523971f97b289bcd8", size = 129078 }, -] - [[package]] name = "beautifulsoup4" version = "4.13.3" @@ -304,34 +289,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/49/6abb616eb3cbab6a7cca303dc02fdf3836de2e0b834bf966a7f5271a34d8/beautifulsoup4-4.13.3-py3-none-any.whl", hash = "sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16", size = 186015 }, ] -[[package]] -name = "black" -version = "24.10.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "click" }, - { name = "mypy-extensions" }, - { name = "packaging" }, - { name = "pathspec" }, - { name = "platformdirs" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d8/0d/cc2fb42b8c50d80143221515dd7e4766995bd07c56c9a3ed30baf080b6dc/black-24.10.0.tar.gz", hash = "sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875", size = 645813 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/cc/7496bb63a9b06a954d3d0ac9fe7a73f3bf1cd92d7a58877c27f4ad1e9d41/black-24.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5a2221696a8224e335c28816a9d331a6c2ae15a2ee34ec857dcf3e45dbfa99ad", size = 1607468 }, - { url = "https://files.pythonhosted.org/packages/2b/e3/69a738fb5ba18b5422f50b4f143544c664d7da40f09c13969b2fd52900e0/black-24.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9da3333530dbcecc1be13e69c250ed8dfa67f43c4005fb537bb426e19200d50", size = 1437270 }, - { url = "https://files.pythonhosted.org/packages/c9/9b/2db8045b45844665c720dcfe292fdaf2e49825810c0103e1191515fc101a/black-24.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4007b1393d902b48b36958a216c20c4482f601569d19ed1df294a496eb366392", size = 1737061 }, - { url = "https://files.pythonhosted.org/packages/a3/95/17d4a09a5be5f8c65aa4a361444d95edc45def0de887810f508d3f65db7a/black-24.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:394d4ddc64782e51153eadcaaca95144ac4c35e27ef9b0a42e121ae7e57a9175", size = 1423293 }, - { url = "https://files.pythonhosted.org/packages/90/04/bf74c71f592bcd761610bbf67e23e6a3cff824780761f536512437f1e655/black-24.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b5e39e0fae001df40f95bd8cc36b9165c5e2ea88900167bddf258bacef9bbdc3", size = 1644256 }, - { url = "https://files.pythonhosted.org/packages/4c/ea/a77bab4cf1887f4b2e0bce5516ea0b3ff7d04ba96af21d65024629afedb6/black-24.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d37d422772111794b26757c5b55a3eade028aa3fde43121ab7b673d050949d65", size = 1448534 }, - { url = "https://files.pythonhosted.org/packages/4e/3e/443ef8bc1fbda78e61f79157f303893f3fddf19ca3c8989b163eb3469a12/black-24.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14b3502784f09ce2443830e3133dacf2c0110d45191ed470ecb04d0f5f6fcb0f", size = 1761892 }, - { url = "https://files.pythonhosted.org/packages/52/93/eac95ff229049a6901bc84fec6908a5124b8a0b7c26ea766b3b8a5debd22/black-24.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:30d2c30dc5139211dda799758559d1b049f7f14c580c409d6ad925b74a4208a8", size = 1434796 }, - { url = "https://files.pythonhosted.org/packages/d0/a0/a993f58d4ecfba035e61fca4e9f64a2ecae838fc9f33ab798c62173ed75c/black-24.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cbacacb19e922a1d75ef2b6ccaefcd6e93a2c05ede32f06a21386a04cedb981", size = 1643986 }, - { url = "https://files.pythonhosted.org/packages/37/d5/602d0ef5dfcace3fb4f79c436762f130abd9ee8d950fa2abdbf8bbc555e0/black-24.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1f93102e0c5bb3907451063e08b9876dbeac810e7da5a8bfb7aeb5a9ef89066b", size = 1448085 }, - { url = "https://files.pythonhosted.org/packages/47/6d/a3a239e938960df1a662b93d6230d4f3e9b4a22982d060fc38c42f45a56b/black-24.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ddacb691cdcdf77b96f549cf9591701d8db36b2f19519373d60d31746068dbf2", size = 1760928 }, - { url = "https://files.pythonhosted.org/packages/dd/cf/af018e13b0eddfb434df4d9cd1b2b7892bab119f7a20123e93f6910982e8/black-24.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:680359d932801c76d2e9c9068d05c6b107f2584b2a5b88831c83962eb9984c1b", size = 1436875 }, - { url = "https://files.pythonhosted.org/packages/8d/a7/4b27c50537ebca8bec139b872861f9d2bf501c5ec51fcf897cb924d9e264/black-24.10.0-py3-none-any.whl", hash = "sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d", size = 206898 }, -] - [[package]] name = "bokeh" version = "3.7.2" @@ -740,15 +697,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/57/ff/f3b4b2d007c2a646b0f69440ab06224f9cf37a977a72cdb7b50632174e8a/cryptography-44.0.2-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:04abd71114848aa25edb28e225ab5f268096f44cf0127f3d36975bdf1bdf3390", size = 4107081 }, ] -[[package]] -name = "darglint" -version = "1.8.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d4/2c/86e8549e349388c18ca8a4ff8661bb5347da550f598656d32a98eaaf91cc/darglint-1.8.1.tar.gz", hash = "sha256:080d5106df149b199822e7ee7deb9c012b49891538f14a11be681044f0bb20da", size = 74435 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/69/28/85d1e0396d64422c5218d68e5cdcc53153aa8a2c83c7dbc3ee1502adf3a1/darglint-1.8.1-py3-none-any.whl", hash = "sha256:5ae11c259c17b0701618a20c3da343a3eb98b3bc4b5a83d31cdd94f5ebdced8d", size = 120767 }, -] - [[package]] name = "dask" version = "2025.3.0" @@ -905,73 +853,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b9/f8/feced7779d755758a52d1f6635d990b8d98dc0a29fa568bbe0625f18fdf3/filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0", size = 16163 }, ] -[[package]] -name = "flake8" -version = "7.2.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "mccabe" }, - { name = "pycodestyle" }, - { name = "pyflakes" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e7/c4/5842fc9fc94584c455543540af62fd9900faade32511fab650e9891ec225/flake8-7.2.0.tar.gz", hash = "sha256:fa558ae3f6f7dbf2b4f22663e5343b6b6023620461f8d4ff2019ef4b5ee70426", size = 48177 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/83/5c/0627be4c9976d56b1217cb5187b7504e7fd7d3503f8bfd312a04077bd4f7/flake8-7.2.0-py2.py3-none-any.whl", hash = "sha256:93b92ba5bdb60754a6da14fa3b93a9361fd00a59632ada61fd7b130436c40343", size = 57786 }, -] - -[[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 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/5f/55bab0ac89f9ad9f4c6e38087faa80c252daec4ccb7776b4dac216ca9e3f/flake8_bandit-4.1.1-py3-none-any.whl", hash = "sha256:4c8a53eb48f23d4ef1e59293657181a3c989d0077c9952717e98a0eace43e06d", size = 4828 }, -] - -[[package]] -name = "flake8-bugbear" -version = "24.12.12" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "attrs" }, - { name = "flake8" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c7/25/48ba712ff589b0149f21135234f9bb45c14d6689acc6151b5e2ff8ac2ae9/flake8_bugbear-24.12.12.tar.gz", hash = "sha256:46273cef0a6b6ff48ca2d69e472f41420a42a46e24b2a8972e4f0d6733d12a64", size = 82907 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/21/0a875f75fbe4008bd171e2fefa413536258fe6b4cfaaa087986de74588f4/flake8_bugbear-24.12.12-py3-none-any.whl", hash = "sha256:1b6967436f65ca22a42e5373aaa6f2d87966ade9aa38d4baf2a1be550767545e", size = 36664 }, -] - -[[package]] -name = "flake8-docstrings" -version = "1.7.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "flake8" }, - { name = "pydocstyle" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/93/24/f839e3a06e18f4643ccb81370909a497297909f15106e6af2fecdef46894/flake8_docstrings-1.7.0.tar.gz", hash = "sha256:4c8cc748dc16e6869728699e5d0d685da9a10b0ea718e090b1ba088e67a941af", size = 5995 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/7d/76a278fa43250441ed9300c344f889c7fb1817080c8fb8996b840bf421c2/flake8_docstrings-1.7.0-py2.py3-none-any.whl", hash = "sha256:51f2344026da083fc084166a9353f5082b01f72901df422f74b4d953ae88ac75", size = 4994 }, -] - -[[package]] -name = "flake8-rst-docstrings" -version = "0.3.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "flake8" }, - { name = "pygments" }, - { name = "restructuredtext-lint" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b2/e5/013d5858b69b4ba38ff259d55bd8d107009f212f296be0824b7c4a27d7ed/flake8-rst-docstrings-0.3.0.tar.gz", hash = "sha256:d1ce22b4bd37b73cd86b8d980e946ef198cfcc18ed82fedb674ceaa2f8d1afa4", size = 19865 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/12/bf/0e6933d78d172df672325622bf1b7f8364f4a6515da9e89398227c19d02e/flake8_rst_docstrings-0.3.0-py3-none-any.whl", hash = "sha256:f8c3c6892ff402292651c31983a38da082480ad3ba253743de52989bdc84ca1c", size = 10892 }, -] - [[package]] name = "flexcache" version = "0.3" @@ -1382,15 +1263,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320 }, ] -[[package]] -name = "isort" -version = "5.13.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/87/f9/c1eb8635a24e87ade2efce21e3ce8cd6b8630bb685ddc9cdaca1349b2eb5/isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109", size = 175303 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/b3/8def84f539e7d2289a02f0524b944b15d7c75dab7628bedf1c4f0992029c/isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6", size = 92310 }, -] - [[package]] name = "jedi" version = "0.19.2" @@ -1637,15 +1509,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899 }, ] -[[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 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e", size = 7350 }, -] - [[package]] name = "mdit-py-plugins" version = "0.4.2" @@ -1839,23 +1702,14 @@ lossy = [ [package.dev-dependencies] dev = [ - { name = "black" }, { name = "coverage", extra = ["toml"] }, - { name = "darglint" }, - { name = "flake8" }, - { name = "flake8-bandit" }, - { name = "flake8-bugbear" }, - { name = "flake8-docstrings" }, - { name = "flake8-rst-docstrings" }, - { name = "isort" }, { name = "mypy" }, - { name = "pep8-naming" }, { name = "pre-commit" }, { name = "pre-commit-hooks" }, { name = "pygments" }, { name = "pytest" }, { name = "pytest-dependency" }, - { name = "pyupgrade" }, + { name = "ruff" }, { name = "safety" }, { name = "typeguard" }, { name = "xdoctest", extra = ["colors"] }, @@ -1890,30 +1744,21 @@ requires-dist = [ { name = "segy", specifier = ">=0.4.0,<0.5.0" }, { name = "tqdm", specifier = ">=4.67.0,<5.0.0" }, { name = "xarray", specifier = ">=2025.3.1" }, - { name = "zarr", specifier = ">=3.0.3,<3.0.7" }, + { name = "zarr", specifier = ">=3.0.4,<3.0.7" }, { name = "zfpy", marker = "extra == 'lossy'", specifier = ">=1.0.1,<2.0.0" }, ] provides-extras = ["cloud", "distributed", "lossy"] [package.metadata.requires-dev] dev = [ - { name = "black", specifier = ">=24.10.0,<25" }, { name = "coverage", extras = ["toml"], specifier = ">=7.6.7,<8" }, - { name = "darglint", specifier = ">=1.8.1,<2" }, - { name = "flake8", specifier = ">=7.1.0,<8" }, - { name = "flake8-bandit", specifier = ">=4.1.1,<5" }, - { name = "flake8-bugbear", specifier = ">=24.4.26,<25" }, - { name = "flake8-docstrings", specifier = ">=1.7.0,<2" }, - { name = "flake8-rst-docstrings", specifier = ">=0.3.0,<0.4" }, - { name = "isort", specifier = ">=5.13.2,<6" }, { name = "mypy", specifier = ">=1.13.0,<2" }, - { name = "pep8-naming", specifier = ">=0.14.1,<0.15" }, { name = "pre-commit", specifier = ">=4.0.1,<5" }, { name = "pre-commit-hooks", specifier = ">=5.0.0,<6" }, { name = "pygments", specifier = ">=2.18.0,<3" }, { name = "pytest", specifier = ">=8.3.3,<9" }, { name = "pytest-dependency", specifier = ">=0.6.0,<0.7" }, - { name = "pyupgrade", specifier = ">=3.19.0,<4" }, + { name = "ruff", specifier = ">=0.11.8" }, { name = "safety", specifier = ">=3.2.3,<4" }, { name = "typeguard", specifier = ">=4.4.1,<5" }, { name = "xdoctest", extras = ["colors"], specifier = ">=1.2.0,<2" }, @@ -2264,39 +2109,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl", hash = "sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f", size = 18905 }, ] -[[package]] -name = "pathspec" -version = "0.12.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191 }, -] - -[[package]] -name = "pbr" -version = "6.1.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "setuptools" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/01/d2/510cc0d218e753ba62a1bc1434651db3cd797a9716a0a66cc714cb4f0935/pbr-6.1.1.tar.gz", hash = "sha256:93ea72ce6989eb2eed99d0f75721474f69ad88128afdef5ac377eb797c4bf76b", size = 125702 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/47/ac/684d71315abc7b1214d59304e23a982472967f6bf4bde5a98f1503f648dc/pbr-6.1.1-py2.py3-none-any.whl", hash = "sha256:38d4daea5d9fa63b3f626131b9d34947fd0c8be9b05a29276870580050a25a76", size = 108997 }, -] - -[[package]] -name = "pep8-naming" -version = "0.14.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "flake8" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/be/8e/1de32e908d8b008bb9352bfe7749aedecb71e2793d36c7ee342716acd1ec/pep8-naming-0.14.1.tar.gz", hash = "sha256:1ef228ae80875557eb6c1549deafed4dabbf3261cfcafa12f773fe0db9be8a36", size = 16546 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/a2/450b71d1a87fcee50a7b994a53b1c68fc6a6b718df0eb035f2bffb2d3a4f/pep8_naming-0.14.1-py3-none-any.whl", hash = "sha256:63f514fc777d715f935faf185dedd679ab99526a7f2f503abb61587877f7b1c5", size = 8859 }, -] - [[package]] name = "pexpect" version = "4.9.0" @@ -2594,15 +2406,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a", size = 181259 }, ] -[[package]] -name = "pycodestyle" -version = "2.13.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/04/6e/1f4a62078e4d95d82367f24e685aef3a672abfd27d1a868068fed4ed2254/pycodestyle-2.13.0.tar.gz", hash = "sha256:c8415bf09abe81d9c7f872502a6eee881fbe85d8763dd5b9924bb0a01d67efae", size = 39312 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/be/b00116df1bfb3e0bb5b45e29d604799f7b91dd861637e4d448b4e09e6a3e/pycodestyle-2.13.0-py2.py3-none-any.whl", hash = "sha256:35863c5974a271c7a726ed228a14a4f6daf49df369d8c50cd9a6f58a5e143ba9", size = 31424 }, -] - [[package]] name = "pycparser" version = "2.22" @@ -2686,27 +2489,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/53/a64f03044927dc47aafe029c42a5b7aabc38dfb813475e0e1bf71c4a59d0/pydantic_settings-2.8.1-py3-none-any.whl", hash = "sha256:81942d5ac3d905f7f3ee1a70df5dfb62d5569c12f51a5a647defc1c3d9ee2e9c", size = 30839 }, ] -[[package]] -name = "pydocstyle" -version = "6.3.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "snowballstemmer" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e9/5c/d5385ca59fd065e3c6a5fe19f9bc9d5ea7f2509fa8c9c22fb6b2031dd953/pydocstyle-6.3.0.tar.gz", hash = "sha256:7ce43f0c0ac87b07494eb9c0b462c0b73e6ff276807f204d6b53edc72b7e44e1", size = 36796 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/36/ea/99ddefac41971acad68f14114f38261c1f27dac0b3ec529824ebc739bdaa/pydocstyle-6.3.0-py3-none-any.whl", hash = "sha256:118762d452a49d6b05e194ef344a55822987a462831ade91ec5c06fd2169d019", size = 38038 }, -] - -[[package]] -name = "pyflakes" -version = "3.3.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/af/cc/1df338bd7ed1fa7c317081dcf29bf2f01266603b301e6858856d346a12b3/pyflakes-3.3.2.tar.gz", hash = "sha256:6dfd61d87b97fba5dcfaaf781171ac16be16453be6d816147989e7f6e6a9576b", size = 64175 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/15/40/b293a4fa769f3b02ab9e387c707c4cbdc34f073f945de0386107d4e669e6/pyflakes-3.3.2-py2.py3-none-any.whl", hash = "sha256:5039c8339cbb1944045f4ee5466908906180f13cc99cc9949348d10f82a5c32a", size = 63164 }, -] - [[package]] name = "pygments" version = "2.19.1" @@ -2785,18 +2567,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225 }, ] -[[package]] -name = "pyupgrade" -version = "3.19.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "tokenize-rt" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/35/3a/efa8e75cf84d53f1b3f0113387ab120ef460396a4068e41b6cf18a3d216d/pyupgrade-3.19.1.tar.gz", hash = "sha256:d10e8c5f54b8327211828769e98d95d95e4715de632a3414f1eef3f51357b9e2", size = 45116 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/dd/43/c6c1ff945c7900613f6e6ef2a8688639a247d62eb0ffa9935c599f69c08e/pyupgrade-3.19.1-py2.py3-none-any.whl", hash = "sha256:8c5b0bfacae5ff30fa136a53eb7f22c34ba007450d4099e9da8089dabb9e67c9", size = 62412 }, -] - [[package]] name = "pywin32" version = "310" @@ -3059,15 +2829,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36", size = 24179 }, ] -[[package]] -name = "restructuredtext-lint" -version = "1.4.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "docutils" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/48/9c/6d8035cafa2d2d314f34e6cd9313a299de095b26e96f1c7312878f988eec/restructuredtext_lint-1.4.0.tar.gz", hash = "sha256:1b235c0c922341ab6c530390892eb9e92f90b9b75046063e047cacfb0f050c45", size = 16723 } - [[package]] name = "rich" version = "13.9.4" @@ -3220,6 +2981,31 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b0/85/e8e751d8791564dd333d5d9a4eab0a7a115f7e349595417fd50ecae3395c/ruamel.yaml.clib-0.2.12-cp313-cp313-win_amd64.whl", hash = "sha256:e5b8daf27af0b90da7bb903a876477a9e6d7270be6146906b276605997c7e9a3", size = 115190 }, ] +[[package]] +name = "ruff" +version = "0.11.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/52/f6/adcf73711f31c9f5393862b4281c875a462d9f639f4ccdf69dc368311c20/ruff-0.11.8.tar.gz", hash = "sha256:6d742d10626f9004b781f4558154bb226620a7242080e11caeffab1a40e99df8", size = 4086399 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/60/c6aa9062fa518a9f86cb0b85248245cddcd892a125ca00441df77d79ef88/ruff-0.11.8-py3-none-linux_armv6l.whl", hash = "sha256:896a37516c594805e34020c4a7546c8f8a234b679a7716a3f08197f38913e1a3", size = 10272473 }, + { url = "https://files.pythonhosted.org/packages/a0/e4/0325e50d106dc87c00695f7bcd5044c6d252ed5120ebf423773e00270f50/ruff-0.11.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ab86d22d3d721a40dd3ecbb5e86ab03b2e053bc93c700dc68d1c3346b36ce835", size = 11040862 }, + { url = "https://files.pythonhosted.org/packages/e6/27/b87ea1a7be37fef0adbc7fd987abbf90b6607d96aa3fc67e2c5b858e1e53/ruff-0.11.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:258f3585057508d317610e8a412788cf726efeefa2fec4dba4001d9e6f90d46c", size = 10385273 }, + { url = "https://files.pythonhosted.org/packages/d3/f7/3346161570d789045ed47a86110183f6ac3af0e94e7fd682772d89f7f1a1/ruff-0.11.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:727d01702f7c30baed3fc3a34901a640001a2828c793525043c29f7614994a8c", size = 10578330 }, + { url = "https://files.pythonhosted.org/packages/c6/c3/327fb950b4763c7b3784f91d3038ef10c13b2d42322d4ade5ce13a2f9edb/ruff-0.11.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3dca977cc4fc8f66e89900fa415ffe4dbc2e969da9d7a54bfca81a128c5ac219", size = 10122223 }, + { url = "https://files.pythonhosted.org/packages/de/c7/ba686bce9adfeb6c61cb1bbadc17d58110fe1d602f199d79d4c880170f19/ruff-0.11.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c657fa987d60b104d2be8b052d66da0a2a88f9bd1d66b2254333e84ea2720c7f", size = 11697353 }, + { url = "https://files.pythonhosted.org/packages/53/8e/a4fb4a1ddde3c59e73996bb3ac51844ff93384d533629434b1def7a336b0/ruff-0.11.8-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:f2e74b021d0de5eceb8bd32919f6ff8a9b40ee62ed97becd44993ae5b9949474", size = 12375936 }, + { url = "https://files.pythonhosted.org/packages/ad/a1/9529cb1e2936e2479a51aeb011307e7229225df9ac64ae064d91ead54571/ruff-0.11.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9b5ef39820abc0f2c62111f7045009e46b275f5b99d5e59dda113c39b7f4f38", size = 11850083 }, + { url = "https://files.pythonhosted.org/packages/3e/94/8f7eac4c612673ae15a4ad2bc0ee62e03c68a2d4f458daae3de0e47c67ba/ruff-0.11.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c1dba3135ca503727aa4648152c0fa67c3b1385d3dc81c75cd8a229c4b2a1458", size = 14005834 }, + { url = "https://files.pythonhosted.org/packages/1e/7c/6f63b46b2be870cbf3f54c9c4154d13fac4b8827f22fa05ac835c10835b2/ruff-0.11.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f024d32e62faad0f76b2d6afd141b8c171515e4fb91ce9fd6464335c81244e5", size = 11503713 }, + { url = "https://files.pythonhosted.org/packages/3a/91/57de411b544b5fe072779678986a021d87c3ee5b89551f2ca41200c5d643/ruff-0.11.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d365618d3ad747432e1ae50d61775b78c055fee5936d77fb4d92c6f559741948", size = 10457182 }, + { url = "https://files.pythonhosted.org/packages/01/49/cfe73e0ce5ecdd3e6f1137bf1f1be03dcc819d1bfe5cff33deb40c5926db/ruff-0.11.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:4d9aaa91035bdf612c8ee7266153bcf16005c7c7e2f5878406911c92a31633cb", size = 10101027 }, + { url = "https://files.pythonhosted.org/packages/56/21/a5cfe47c62b3531675795f38a0ef1c52ff8de62eaddf370d46634391a3fb/ruff-0.11.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:0eba551324733efc76116d9f3a0d52946bc2751f0cd30661564117d6fd60897c", size = 11111298 }, + { url = "https://files.pythonhosted.org/packages/36/98/f76225f87e88f7cb669ae92c062b11c0a1e91f32705f829bd426f8e48b7b/ruff-0.11.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:161eb4cff5cfefdb6c9b8b3671d09f7def2f960cee33481dd898caf2bcd02304", size = 11566884 }, + { url = "https://files.pythonhosted.org/packages/de/7e/fff70b02e57852fda17bd43f99dda37b9bcf3e1af3d97c5834ff48d04715/ruff-0.11.8-py3-none-win32.whl", hash = "sha256:5b18caa297a786465cc511d7f8be19226acf9c0a1127e06e736cd4e1878c3ea2", size = 10451102 }, + { url = "https://files.pythonhosted.org/packages/7b/a9/eaa571eb70648c9bde3120a1d5892597de57766e376b831b06e7c1e43945/ruff-0.11.8-py3-none-win_amd64.whl", hash = "sha256:6e70d11043bef637c5617297bdedec9632af15d53ac1e1ba29c448da9341b0c4", size = 11597410 }, + { url = "https://files.pythonhosted.org/packages/cd/be/f6b790d6ae98f1f32c645f8540d5c96248b72343b0a56fab3a07f2941897/ruff-0.11.8-py3-none-win_arm64.whl", hash = "sha256:304432e4c4a792e3da85b7699feb3426a0908ab98bf29df22a31b0cdd098fac2", size = 10713129 }, +] + [[package]] name = "s3fs" version = "2024.12.0" @@ -3571,18 +3357,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a0/4b/528ccf7a982216885a1ff4908e886b8fb5f19862d1962f56a3fce2435a70/starlette-0.46.1-py3-none-any.whl", hash = "sha256:77c74ed9d2720138b25875133f3a2dae6d854af2ec37dceb56aef370c1d8a227", size = 71995 }, ] -[[package]] -name = "stevedore" -version = "5.4.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pbr" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/28/3f/13cacea96900bbd31bb05c6b74135f85d15564fc583802be56976c940470/stevedore-5.4.1.tar.gz", hash = "sha256:3135b5ae50fe12816ef291baff420acb727fcd356106e3e9cbfa9e5985cd6f4b", size = 513858 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/45/8c4ebc0c460e6ec38e62ab245ad3c7fc10b210116cea7c16d61602aa9558/stevedore-5.4.1-py3-none-any.whl", hash = "sha256:d10a31c7b86cba16c1f6e8d15416955fc797052351a56af15e608ad20811fcfe", size = 49533 }, -] - [[package]] name = "tabulate" version = "0.9.0" @@ -3601,15 +3375,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/27/44/aa5c8b10b2cce7a053018e0d132bd58e27527a0243c4985383d5b6fd93e9/tblib-3.1.0-py3-none-any.whl", hash = "sha256:670bb4582578134b3d81a84afa1b016128b429f3d48e6cbbaecc9d15675e984e", size = 12552 }, ] -[[package]] -name = "tokenize-rt" -version = "6.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6b/0a/5854d8ced8c1e00193d1353d13db82d7f813f99bd5dcb776ce3e2a4c0d19/tokenize_rt-6.1.0.tar.gz", hash = "sha256:e8ee836616c0877ab7c7b54776d2fefcc3bde714449a206762425ae114b53c86", size = 5506 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/87/ba/576aac29b10dfa49a6ce650001d1bb31f81e734660555eaf144bfe5b8995/tokenize_rt-6.1.0-py2.py3-none-any.whl", hash = "sha256:d706141cdec4aa5f358945abe36b911b8cbdc844545da99e811250c0cee9b6fc", size = 6015 }, -] - [[package]] name = "tomli" version = "2.2.1" From dbec58e9f5339ff5db71bc56351a7821c552a1bd Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Wed, 7 May 2025 09:37:45 -0500 Subject: [PATCH 14/19] lint v1 files --- src/mdio/schemas/__init__.py | 1 - src/mdio/schemas/base.py | 5 +---- src/mdio/schemas/builder.py | 2 -- src/mdio/schemas/compressors.py | 4 +--- src/mdio/schemas/dtype.py | 4 +--- src/mdio/schemas/v0/__init__.py | 1 - src/mdio/schemas/v0/dataset.py | 12 +++--------- src/mdio/schemas/v1/__init__.py | 1 - src/mdio/schemas/v1/stats.py | 8 ++------ src/mdio/schemas/v1/units.py | 13 +++---------- src/mdio/schemas/v1/variable.py | 4 +--- tests/unit/test_schema.py | 3 +-- 12 files changed, 13 insertions(+), 45 deletions(-) diff --git a/src/mdio/schemas/__init__.py b/src/mdio/schemas/__init__.py index 17ae4dd3..8d9d8b86 100644 --- a/src/mdio/schemas/__init__.py +++ b/src/mdio/schemas/__init__.py @@ -7,7 +7,6 @@ from mdio.schemas.dtype import StructuredField from mdio.schemas.dtype import StructuredType - __all__ = [ "Blosc", "ZFP", diff --git a/src/mdio/schemas/base.py b/src/mdio/schemas/base.py index d4bdfd48..5684fa10 100644 --- a/src/mdio/schemas/base.py +++ b/src/mdio/schemas/base.py @@ -10,7 +10,6 @@ from mdio.schemas.dimension import NamedDimension from mdio.schemas.dtype import DataTypeModel - JSON_SCHEMA_DIALECT = GenerateJsonSchema.schema_dialect @@ -31,9 +30,7 @@ class BaseArray(DataTypeModel, CamelCaseStrictModel): dimensions: list[NamedDimension] | list[str] = Field( ..., description="List of Dimension collection or reference to dimension names." ) - compressor: Blosc | ZFP | None = Field( - default=None, description="Compression settings." - ) + compressor: Blosc | ZFP | None = Field(default=None, description="Compression settings.") class NamedArray(BaseArray): diff --git a/src/mdio/schemas/builder.py b/src/mdio/schemas/builder.py index 9a0e6cbb..40908ff0 100644 --- a/src/mdio/schemas/builder.py +++ b/src/mdio/schemas/builder.py @@ -15,7 +15,6 @@ class VariableBuilder: """Dataset builder.""" def __init__(self) -> None: - """Initialize the builder.""" self.name = None self.long_name = None self.dtype = None @@ -126,7 +125,6 @@ class DatasetBuilder: """Dataset builder.""" def __init__(self) -> None: - """Initialize the builder.""" self.variables = [] self.name = None self.metadata = None diff --git a/src/mdio/schemas/compressors.py b/src/mdio/schemas/compressors.py index b550b98d..e17948da 100644 --- a/src/mdio/schemas/compressors.py +++ b/src/mdio/schemas/compressors.py @@ -154,6 +154,4 @@ def make_instance(self): # noqa: ANN201 class CompressorModel(CamelCaseStrictModel): """Model representing compressor configuration.""" - compressor: Blosc | ZFP | None = Field( - default=None, description="Compression settings." - ) + compressor: Blosc | ZFP | None = Field(default=None, description="Compression settings.") diff --git a/src/mdio/schemas/dtype.py b/src/mdio/schemas/dtype.py index 5c2427b0..af7f6582 100644 --- a/src/mdio/schemas/dtype.py +++ b/src/mdio/schemas/dtype.py @@ -50,6 +50,4 @@ class StructuredType(CamelCaseStrictModel): class DataTypeModel(CamelCaseStrictModel): """Structured array type with fields and total item size.""" - data_type: ScalarType | StructuredType = Field( - ..., description="Type of the array." - ) + data_type: ScalarType | StructuredType = Field(..., description="Type of the array.") diff --git a/src/mdio/schemas/v0/__init__.py b/src/mdio/schemas/v0/__init__.py index e74f484f..9b953304 100644 --- a/src/mdio/schemas/v0/__init__.py +++ b/src/mdio/schemas/v0/__init__.py @@ -2,5 +2,4 @@ from mdio.schemas.v0.dataset import DatasetModelV0 - __all__ = ["DatasetModelV0"] diff --git a/src/mdio/schemas/v0/dataset.py b/src/mdio/schemas/v0/dataset.py index 58c3ae72..50103736 100644 --- a/src/mdio/schemas/v0/dataset.py +++ b/src/mdio/schemas/v0/dataset.py @@ -42,13 +42,9 @@ class DatasetMetadataModelV0(StrictModel): ) # Statistical information - std: float | None = Field( - default=None, description="Standard deviation of the samples." - ) + std: float | None = Field(default=None, description="Standard deviation of the samples.") - rms: float | None = Field( - default=None, description="Root mean squared value of the samples." - ) + rms: float | None = Field(default=None, description="Root mean squared value of the samples.") min: float | None = Field( default=None, @@ -60,9 +56,7 @@ class DatasetMetadataModelV0(StrictModel): description="Maximum value of the samples.", ) - trace_count: int | None = Field( - default=None, description="Number of traces in the SEG-Y file." - ) + trace_count: int | None = Field(default=None, description="Number of traces in the SEG-Y file.") class VariableModelV0(BaseArray): diff --git a/src/mdio/schemas/v1/__init__.py b/src/mdio/schemas/v1/__init__.py index 4f9bcdf3..fb98d55e 100644 --- a/src/mdio/schemas/v1/__init__.py +++ b/src/mdio/schemas/v1/__init__.py @@ -2,5 +2,4 @@ from mdio.schemas.v1.dataset import Dataset - __all__ = ["Dataset"] diff --git a/src/mdio/schemas/v1/stats.py b/src/mdio/schemas/v1/stats.py index a8a319c0..29d50add 100644 --- a/src/mdio/schemas/v1/stats.py +++ b/src/mdio/schemas/v1/stats.py @@ -41,12 +41,8 @@ class CenteredBinHistogram(BaseHistogram): class EdgeDefinedHistogram(BaseHistogram): """A class representing an edge-defined histogram.""" - bin_edges: list[float | int] = Field( - ..., description="The left edges of the histogram bins." - ) - bin_widths: list[float | int] = Field( - ..., description="The widths of the histogram bins." - ) + bin_edges: list[float | int] = Field(..., description="The left edges of the histogram bins.") + bin_widths: list[float | int] = Field(..., description="The widths of the histogram bins.") Histogram: TypeAlias = CenteredBinHistogram | EdgeDefinedHistogram diff --git a/src/mdio/schemas/v1/units.py b/src/mdio/schemas/v1/units.py index dd46296c..1913ff2e 100644 --- a/src/mdio/schemas/v1/units.py +++ b/src/mdio/schemas/v1/units.py @@ -11,7 +11,6 @@ from mdio.schemas.units import UnitEnum from mdio.schemas.units import create_unit_model - ureg = UnitRegistry() ureg.default_format = "~C" # compact, abbreviated (symbol). @@ -30,9 +29,7 @@ class LengthUnitEnum(UnitEnum): MILE = ureg.mile -LengthUnitModel = create_unit_model( - LengthUnitEnum, "LengthUnitModel", "length", __name__ -) +LengthUnitModel = create_unit_model(LengthUnitEnum, "LengthUnitModel", "length", __name__) class TimeUnitEnum(UnitEnum): @@ -58,9 +55,7 @@ class DensityUnitEnum(UnitEnum): POUNDS_PER_GAL = ureg.pounds / ureg.gallon -DensityUnitModel = create_unit_model( - DensityUnitEnum, "DensityUnitModel", "density", __name__ -) +DensityUnitModel = create_unit_model(DensityUnitEnum, "DensityUnitModel", "density", __name__) class SpeedUnitEnum(UnitEnum): @@ -102,9 +97,7 @@ class VoltageUnitEnum(UnitEnum): VOLT = ureg.volt -VoltageUnitModel = create_unit_model( - VoltageUnitEnum, "VoltageUnitModel", "voltage", __name__ -) +VoltageUnitModel = create_unit_model(VoltageUnitEnum, "VoltageUnitModel", "voltage", __name__) # Composite model types diff --git a/src/mdio/schemas/v1/variable.py b/src/mdio/schemas/v1/variable.py index 22ad0bf3..519a89f4 100644 --- a/src/mdio/schemas/v1/variable.py +++ b/src/mdio/schemas/v1/variable.py @@ -50,6 +50,4 @@ class Variable(NamedArray): default=None, description="Coordinates of the MDIO variable dimensions.", ) - metadata: VariableMetadata | None = Field( - default=None, description="Variable metadata." - ) + metadata: VariableMetadata | None = Field(default=None, description="Variable metadata.") diff --git a/tests/unit/test_schema.py b/tests/unit/test_schema.py index 1bccde5a..0b2a9f54 100644 --- a/tests/unit/test_schema.py +++ b/tests/unit/test_schema.py @@ -2,7 +2,6 @@ from mdio.schemas.v1 import Dataset as V1Dataset - TEST_SCHEMA = { "metadata": { "name": "test_dataset", @@ -49,6 +48,6 @@ } -def test_dataset_schema_validation(): +def test_dataset_schema_validation() -> None: """Test that the dataset schema validates correctly.""" V1Dataset.model_validate(TEST_SCHEMA) From ecb69d6d2a9ef4a8695243afda69c07c13de5d51 Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Tue, 27 May 2025 09:05:14 -0500 Subject: [PATCH 15/19] update lock file --- uv.lock | 1873 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 1001 insertions(+), 872 deletions(-) diff --git a/uv.lock b/uv.lock index f6894429..de95c4e6 100644 --- a/uv.lock +++ b/uv.lock @@ -26,7 +26,7 @@ wheels = [ [[package]] name = "aiobotocore" -version = "2.21.1" +version = "2.22.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, @@ -37,9 +37,9 @@ dependencies = [ { name = "python-dateutil" }, { name = "wrapt" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d2/dc/f5f872fb01ce37c09525cedc7ecfad7002ffe2a8a23f77d7d2c234399b51/aiobotocore-2.21.1.tar.gz", hash = "sha256:010357f43004413e92a9d066bb0db1f241aeb29ffed306e9197061ffc94e6577", size = 108900 } +sdist = { url = "https://files.pythonhosted.org/packages/9c/4c/113c4f5611103bba8e5252805fbee7944f5d9541addba9a96b091c0c4308/aiobotocore-2.22.0.tar.gz", hash = "sha256:11091477266b75c2b5d28421c1f2bc9a87d175d0b8619cb830805e7a113a170b", size = 110322 } wheels = [ - { url = "https://files.pythonhosted.org/packages/95/67/026598918f92145156f2feb7957f57daefda20375cc2ac1a0692a9b8010b/aiobotocore-2.21.1-py3-none-any.whl", hash = "sha256:bd7c49a6d6f8a3d9444b0a94417c8da13813b5c7eec1c4f0ec2db7e8ce8f23e7", size = 78313 }, + { url = "https://files.pythonhosted.org/packages/00/8e/ffa5840cb7de19ada85bda1fae1ae22671a18992e9373f2e2df9db5389b5/aiobotocore-2.22.0-py3-none-any.whl", hash = "sha256:b4e6306f79df9d81daff1f9d63189a2dbee4b77ce3ab937304834e35eaaeeccf", size = 78930 }, ] [[package]] @@ -53,7 +53,7 @@ wheels = [ [[package]] name = "aiohttp" -version = "3.11.15" +version = "3.12.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohappyeyeballs" }, @@ -64,56 +64,59 @@ dependencies = [ { name = "propcache" }, { name = "yarl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/19/18/31398875dc7b9815767370f60f44284155f2e1c1b87ec721c1b0ee61d1e5/aiohttp-3.11.15.tar.gz", hash = "sha256:b9b9a1e592ac8fcc4584baea240e41f77415e0de98932fdf19565aa3b6a02d0b", size = 7676625 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/44/31/5c8552b13041decee3facbe4a8e6342e9227cc472d7835df7f148049550a/aiohttp-3.11.15-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5bd37d615cd26d09321bd0168305f8508778712cf38aeffeed550274fb48a2ee", size = 708642 }, - { url = "https://files.pythonhosted.org/packages/ee/7f/4bf68f9eaabe8f06917832cd3828636346d6104454af8d5bb420bdc2876c/aiohttp-3.11.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3d706afcc808f6add4208dfa13f911fd93c2a3dab6be484fee4fd0602a0867e", size = 468927 }, - { url = "https://files.pythonhosted.org/packages/dc/e5/7d931db76bf66f58853cb1d3e973c8a52fc4ba3832355949d2e8acdddef5/aiohttp-3.11.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:43625253e3dc018d34867b70909149f15f29eac0382802afe027f2fbf17bcb9c", size = 456037 }, - { url = "https://files.pythonhosted.org/packages/11/79/e463bcdcab7a5538211c4ef2bdadf3d31541d5bc21d09c93dc806c2978ec/aiohttp-3.11.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:437eee9e057a7907b11e4af2b18df56b6c795b28e0a3ac250691936cf6bf40eb", size = 1687945 }, - { url = "https://files.pythonhosted.org/packages/ed/a1/bcb81ee3c6231c440947bf30cad8846158a6da24987889a9a309c47a3a73/aiohttp-3.11.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec3dd04138bd30e6a3403dbd3ab5a5ccfb501597c5a95196cd816936ed55b777", size = 1752679 }, - { url = "https://files.pythonhosted.org/packages/b8/14/febdf2ccedf88633c7638d5ef8909f7cc86fbc35a2e816c7ae3a6c8543a6/aiohttp-3.11.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85d73479b79172e7d667b466c170ca6097a334c09ecd83c95c210546031251b5", size = 1791270 }, - { url = "https://files.pythonhosted.org/packages/b5/73/c16af0ad6703396abb3b2c357194808d23e97f1b439da2beba675dab4fba/aiohttp-3.11.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae3a5d9f2fbe736fec7d24be25c57aa78c2d78d96540439ea68a8abbed9906fc", size = 1674466 }, - { url = "https://files.pythonhosted.org/packages/66/2d/79b72cecf79e5c72fdddaa319b731f81ca5121a2caa51ddf7afef0f1ad4e/aiohttp-3.11.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:269d145c593a65f78fb9a64dece90341561ddb2e91a96d42681132b2f706c42a", size = 1622282 }, - { url = "https://files.pythonhosted.org/packages/c2/a9/10b78cd9f21a820a6d0160682b80a0a08c2b359d9e7936da3a5a21e3f511/aiohttp-3.11.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0987dcf32e4c47f22634d32e4b0ffbc368bbcf2b33b408cd1a3d2dc0a6a5cd34", size = 1658241 }, - { url = "https://files.pythonhosted.org/packages/1a/01/04c934a64853b57e856d883436a839786a9c15ee27c212ee8b448f263e80/aiohttp-3.11.15-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:7cf4b2b5a0f7a738ecd759eaeaef800fc7c57683b7be9d8a43fcb86ca62701b4", size = 1666669 }, - { url = "https://files.pythonhosted.org/packages/f2/2d/60c992f21586703d16d9f957b187da86e33be8be8f8d8a555f31337508ad/aiohttp-3.11.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f1e0369f0dc8c895e718ce37147f56d46142d37596be183ab7a34192c5e6e4c5", size = 1652782 }, - { url = "https://files.pythonhosted.org/packages/9a/e0/5857ef2de285ee68744eba276cbe4ba4716107214fbad5d15cecf028a260/aiohttp-3.11.15-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:82ddf7f642b9c0b08063f3cf4e2818b22901bce8ebad05c232d9e295e77436a0", size = 1735636 }, - { url = "https://files.pythonhosted.org/packages/66/34/2f08d9bdc85a0a7299cbb945810720debed8b14b9b64b58935c50591d4a5/aiohttp-3.11.15-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c7eba0f90e27ec4af64db051f35387fa17128e6eeb58ee0f2318f2627168cc2", size = 1760389 }, - { url = "https://files.pythonhosted.org/packages/c4/51/a607071b04454f0fffa1f402b0d5bb09f15dec8ed630b1d591dbc56b1139/aiohttp-3.11.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5a61df20fa77792e83307e266f76790f7cb67980dd476948948de212ee7ec64c", size = 1694423 }, - { url = "https://files.pythonhosted.org/packages/47/a7/723dd995b43cec56cee27fb54b2ba8fc0372f965c879c5553bb8092f29ee/aiohttp-3.11.15-cp311-cp311-win32.whl", hash = "sha256:be11989cbc0728f81c0d022cef140ef8adb20d3012ad8f0ac61853bef571eb52", size = 416773 }, - { url = "https://files.pythonhosted.org/packages/a7/f4/5849b44fe9243f88001fff0e701b57a855a34fd38499a4c03e786da65ee5/aiohttp-3.11.15-cp311-cp311-win_amd64.whl", hash = "sha256:357355c9d51c8b12bbc7de43b27ce4b51f14cce050e00b5a87d0d5527d779395", size = 442948 }, - { url = "https://files.pythonhosted.org/packages/fb/9b/e3a30cfc8781af8f1175812a1a886f36b75c2ac92f1185ea48d1dc9ec2d3/aiohttp-3.11.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:433e7388b3063bba462b3362641988270b087a9ccae22390364f86b37a480c17", size = 704848 }, - { url = "https://files.pythonhosted.org/packages/ea/b2/abd592077b79638ddfe36681c45670278e9b4a070b3d958f58c46b6dad24/aiohttp-3.11.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d99981304065f4ea407dd7495f74f8b8c10f0e26733f8a47dc174ece73744d14", size = 464529 }, - { url = "https://files.pythonhosted.org/packages/c5/a1/85b0738f108806d3b1e1d83e8131cd7680c1266aad6f4d01737bee5cacc4/aiohttp-3.11.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a3739daa52c0cff42f1c40f63b2fe818fcf41019d84c80a7add3224207a7060f", size = 456517 }, - { url = "https://files.pythonhosted.org/packages/c9/68/0460c66cafd826acd1bbd00e9fc9e1a7838ba56ca518540b1edccfd30cce/aiohttp-3.11.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fd82d0b3f73c59c80dade0ca8e0342de1ee261e147140ade65a465be670e83c", size = 1691717 }, - { url = "https://files.pythonhosted.org/packages/91/4b/f2d9c1d0a9e2c7faf080cfe4013b1ca637311fdf24b0023d1412f0cde0a1/aiohttp-3.11.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c930064b79cc0eb63678e376b819d546b0e2360264cd7544c32119496f646f35", size = 1736840 }, - { url = "https://files.pythonhosted.org/packages/c0/d0/9b989329a912806b58162064e914f943e61a99c8606c103ec5862b34ab24/aiohttp-3.11.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:291f324f49ecede693dfb4820a412d1388cb10a2214ab60028252b505e105d6f", size = 1786852 }, - { url = "https://files.pythonhosted.org/packages/87/a8/e1294430720c67aa92039075fc87ff71485cb80acac948b74c1b7b3e6955/aiohttp-3.11.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65eb40e74e3126cba185da7a78815cf3a30140932193831b3bfd73c79965c723", size = 1698027 }, - { url = "https://files.pythonhosted.org/packages/ce/a8/35c7e118316cf27c8d42c5357b4893e31229117e69802da5d7874df2f690/aiohttp-3.11.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6d6d86443580f846ec9cf60f899b7cace34411f2ff5c95db5970047195e5bfa", size = 1626494 }, - { url = "https://files.pythonhosted.org/packages/48/0c/399e9aba5700591f2c1a9bdad24a4191d6aa497e6107852418c2c4254782/aiohttp-3.11.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8b4d8d78fbd5290204dcf43957a2184acd5cee358f203f24a3a97f7d7984eeb7", size = 1644005 }, - { url = "https://files.pythonhosted.org/packages/0e/48/f0c11b78775d5a6f07c721983229f365860090ff8d57f04a526decff30b6/aiohttp-3.11.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:94c552a4864ed292dadf1d341213374284a3af72e49bea02e70ce6f07cb37004", size = 1685236 }, - { url = "https://files.pythonhosted.org/packages/1c/4a/d3704524d11eab7c8f1b59a4b2c7b87129e3ac2cc8392b2072e5fd2ec277/aiohttp-3.11.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:23857adc919b64bba8a4db0eccb24e53fcaf85633e690ef1581c5562ed58cae7", size = 1650818 }, - { url = "https://files.pythonhosted.org/packages/65/87/12275b20f4a5f5016c114ff12ca6b77e423903bca082f55adf1e729d266f/aiohttp-3.11.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:eba325409a0f990f9b43ed18916cbf5b9779bc4c979b8887c444e7be9c38ccca", size = 1704447 }, - { url = "https://files.pythonhosted.org/packages/c9/99/a7709475303efac3fa929507ecdea1d7c9f9b49a14145eb0f382367f3997/aiohttp-3.11.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f1b6c639750bf2a228957e25fcab7a7ff11987c543d70bf73223369f0d7bdb27", size = 1735337 }, - { url = "https://files.pythonhosted.org/packages/36/b4/5d45c7343a38ff6b463ac860b9fe266f6bdc1c9a6b41ba4659ad3ede4a39/aiohttp-3.11.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2241d862dc6a3c0c2662a6934e79078d3a1e51a76c0dca5d65b30f3debee6c9b", size = 1697586 }, - { url = "https://files.pythonhosted.org/packages/84/d9/61da0272c2b3a00ddbc3176d0eee268624f8dbd5c791f0be3a973ed0c851/aiohttp-3.11.15-cp312-cp312-win32.whl", hash = "sha256:18733fa6bbe44698ff96138c1f1d682bbdf0846250a42c25c108eed328fef0d4", size = 411667 }, - { url = "https://files.pythonhosted.org/packages/c7/ae/c37d218057f9d69ac0423f049f989bbb8dfbe5bcc2404579c9a1958bddae/aiohttp-3.11.15-cp312-cp312-win_amd64.whl", hash = "sha256:0ec98c22030ea2a430cb11afddda7d4737b7e5c236c704f0d7d15504978598f7", size = 437969 }, - { url = "https://files.pythonhosted.org/packages/3f/38/8324c180c8d90ff9afc724f5882e33d6ae6061db954b409dd0bd03bf767f/aiohttp-3.11.15-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c37aa3eb8eb92f3793f0c1e73f212a76cbc8d363e9990df54b5b7099f75ce740", size = 697977 }, - { url = "https://files.pythonhosted.org/packages/5f/2b/fe647a80696877cb99bcd3324672e054112ed022dce201cdc1491bf16314/aiohttp-3.11.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5b5edd482ff0a8585b3f4e8b3681819447324166a43a5588800a5bca340dbf27", size = 461067 }, - { url = "https://files.pythonhosted.org/packages/63/d6/8b0b6ff2557df59125527bb87ec74344da940dfa4061f41a91857ff8c327/aiohttp-3.11.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d8c22c91bdb7417bd4f5119242dbd2e2140c0e9de47342c765f127f897eb57", size = 453367 }, - { url = "https://files.pythonhosted.org/packages/69/10/a9beb08734dfadf8e322efdb79a2b31098ec5b2f29bb7378533d3b4a145c/aiohttp-3.11.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b03093d4140d926965d23497a059ec59c8c07e602d2489ce5fb990f3a897db4", size = 1666611 }, - { url = "https://files.pythonhosted.org/packages/ca/ec/9a6724dd72a356298049913f4590b281fbe01386bc7d0e0c3cc6bff46af0/aiohttp-3.11.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05eea49d598c4ece6f285e00464de206f838b48ff21938d5aa9c394e115945b9", size = 1721916 }, - { url = "https://files.pythonhosted.org/packages/5a/61/dbcd2f2ff8f8282a56166b308dd9a1ca67ff844e05c20a7eade80f8fc99f/aiohttp-3.11.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63f8d6106566f98fcfde7a643c9da52d90679b8592dea76c4adfc3cd5d06d22c", size = 1774421 }, - { url = "https://files.pythonhosted.org/packages/4f/fe/fa6952f41486a18860804d685b978793bd4accd5dd2a5a49801ad76c16e2/aiohttp-3.11.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36a490f1ebe0b982366314c77f02258f87bd5d9bd362839dc6a24188447f37eb", size = 1677753 }, - { url = "https://files.pythonhosted.org/packages/4d/f4/e7ee9b27adae614dd30598cbbb64c6484fa475864392781da7bd3ab43871/aiohttp-3.11.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73a7f6283634dd30f93b9a67c414c00517869478b50361c503535e075fa07eaf", size = 1608419 }, - { url = "https://files.pythonhosted.org/packages/30/c1/f0513cf705ea1e6366530f5b9f1683129e6f9a70e32ee0a730fcbf85f393/aiohttp-3.11.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0e97c1e55f6931f07ecaf53aef8352def8386adfd0cd3caa6429cc40e886d6a9", size = 1622394 }, - { url = "https://files.pythonhosted.org/packages/c9/b9/65c94e9578591b49ee4c7cf26131cd0c4e693f9173e78a9aba4f8c60d24d/aiohttp-3.11.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:d8370d31e6d8ecccd97cd791c466d0acb56527df51b0c105d7ea54c7fcc0f75b", size = 1660913 }, - { url = "https://files.pythonhosted.org/packages/65/28/bbeba6d8a30a42ba591f7feb333ff2a01ed1e2ee0b31bc7195354c2c605a/aiohttp-3.11.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c2de66177e087999568638c02639cf0248011b5c7fca69b006947153c534fcab", size = 1622763 }, - { url = "https://files.pythonhosted.org/packages/d1/39/e123f8dde599ec42da17cf094cfacd343569617c9bce68fe257e627395a9/aiohttp-3.11.15-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:edcddb97574402ff7481bc6f70819ba863e77b0be58a840ed5f59d52d2f20a71", size = 1687127 }, - { url = "https://files.pythonhosted.org/packages/35/cf/1eaaae2dd6f0ea36926cdd0af131d11315a3a06d0a6d9bc79f6e8b11c090/aiohttp-3.11.15-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:29cce2a7e009494e675018c0b1819a133befbab8629c797276c5d793bbdf1138", size = 1718485 }, - { url = "https://files.pythonhosted.org/packages/80/09/1824997f72def3567f451130b7618beab65cf5e99d11611dae87b251de82/aiohttp-3.11.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:825ec92391e3e4ddda74de79ed0f8b443e9b412a0c9c82618ca2163abd875df5", size = 1675221 }, - { url = "https://files.pythonhosted.org/packages/56/2f/c1e86f6452a9abae346b31c48bfd476984baa3a73978ad3eabf53139c513/aiohttp-3.11.15-cp313-cp313-win32.whl", hash = "sha256:430f9707f0c1239a92bff7769b0db185ef400278dc63c89f88ed1bd5153aab7a", size = 410657 }, - { url = "https://files.pythonhosted.org/packages/ef/9e/9913ed27bb195224c3fc6a41f0b169d6d93e3843cd792d24013a112ffb3e/aiohttp-3.11.15-cp313-cp313-win_amd64.whl", hash = "sha256:f30e6980ec5d6ad815a233e19e39fe27ea94b1081c31c8aa1df1b629da3737b8", size = 436351 }, +sdist = { url = "https://files.pythonhosted.org/packages/06/a2/a946c4f5c54233c97788c2278ea50beaadf45211f452f932b36ce322f660/aiohttp-3.12.2.tar.gz", hash = "sha256:0018956472ee535d2cad761a5bb88eb4ad80f94cd86472cee26a244799f7c79f", size = 7780423 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/08/39/9866f5996a7db870464e1f153b9f6a3412167ee79293f138bad09de783cd/aiohttp-3.12.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:536a37af26ed50bd4f3cf7d989955e5a987e9343f1a55f5393e7950a6ac93fce", size = 701750 }, + { url = "https://files.pythonhosted.org/packages/81/eb/187fba5f1c210bed03c4e4fe50b6cc64d18c6776e6d17887b527ee2fb806/aiohttp-3.12.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6f8fbb48953238e7ba8ab9dee6757a4f6b72cd6242eb7fe1cb004b24f91effee", size = 474015 }, + { url = "https://files.pythonhosted.org/packages/c5/e5/8f203120a8a932739face58614f8c93912ccd26c0b18da3f476b7372158b/aiohttp-3.12.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74190229bd54bc3df7090f634b0b7fe53c45fb41aae5fbfae462093ced35c950", size = 462282 }, + { url = "https://files.pythonhosted.org/packages/7d/0f/9c33853f4f1c6c75a0f1b3e7b6d955f5883bd14a189232115e2e0c8633f2/aiohttp-3.12.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7af4737ab145fb1ac6e2db24ee206ee9e9f3abb1f7c6b74bd75c9ce0d36fe286", size = 1732474 }, + { url = "https://files.pythonhosted.org/packages/e6/72/2dee9dd29a6ce5abbfa5ee7b75db00ce9c213aaea588476464285a3aee57/aiohttp-3.12.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2711392a2afe1dcf4a93b05a94ee25efa966971fa0bf3944f2ce101da182ce91", size = 1681143 }, + { url = "https://files.pythonhosted.org/packages/fc/2d/4eb92b7e42f7efb8ab22d0eca89e73b96653d6fbfb9847435ad29dee385d/aiohttp-3.12.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5169898d17a2ac30e31ea814832ad4cf6bb652459a031af40ed56c9d05894c80", size = 1779934 }, + { url = "https://files.pythonhosted.org/packages/41/df/c9dc8dd89e40e469386cfb0adbdf63be04e52a85562bae271c1a863de5b0/aiohttp-3.12.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3a590566c5c139edfbeeb69de62c6868e6ef667322b0080489607acc39e92add", size = 1818982 }, + { url = "https://files.pythonhosted.org/packages/6f/b6/84fd20aca84651e373fd90187abe1daf7596ab5e79b6045b294496b73bea/aiohttp-3.12.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad4be1c1adb604591a607abb9c4474eedc6add6739656ee91a9daddf35f7f9fa", size = 1721441 }, + { url = "https://files.pythonhosted.org/packages/86/9c/412603ca6e3be2656bc3b662828087f8b3a21f82fe20f94219ba7769a6dd/aiohttp-3.12.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cf15667ecf20bfe545adb02882d895e10c8d5c821e46b1a62f22d5170c4803e", size = 1658517 }, + { url = "https://files.pythonhosted.org/packages/c1/70/d1735c170aebdc4eda456768bb8714529a90743fd1de1bff075e33292ee9/aiohttp-3.12.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:875df9e4ed4f24af643f4e35bf267be3cb25b9461d25da4a0d181877a2b401e4", size = 1706789 }, + { url = "https://files.pythonhosted.org/packages/61/80/c0f85511b8f315cab5a86615d155d9584cd5d6f1d48c94f92dc3dffd4a7f/aiohttp-3.12.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:722fe14a899ee049562417449a449dfc7c616fdb5409f8a0a2c459815473767f", size = 1701950 }, + { url = "https://files.pythonhosted.org/packages/5e/f5/95a835814bd34378ad18d05e3351e6bd1035263ec20480f69f3688fa04ec/aiohttp-3.12.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:59668d843c91bd22abc1f70674270ce38e1dad3020284cccecc60f492d6f88ae", size = 1682137 }, + { url = "https://files.pythonhosted.org/packages/89/35/ccf684cd9d343b1401be07f0c43793d8475fed2b2418e01f885bcdcd972b/aiohttp-3.12.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:64e48ed61d5c74b5a4a68fdb3fde664034e59788625ebf3fcae87fb5a2dbde7b", size = 1775737 }, + { url = "https://files.pythonhosted.org/packages/22/a8/0075064d24f4d4987ba8e73a67fc8c0c0075134abb087000316147d2bc77/aiohttp-3.12.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:7061bce1accdfce6e02c80ac10efcdfcae95718f97f77fc5fbe3273b16b8d4bf", size = 1796197 }, + { url = "https://files.pythonhosted.org/packages/4b/bc/de6c5969285b309a11582d0009cea97384f2cac9b2c88e3a35b642cd6d17/aiohttp-3.12.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ef392a613f53fc4c3e6ebba2c3b90729266139a3f534e7eba9bf04e2eac40287", size = 1709254 }, + { url = "https://files.pythonhosted.org/packages/c1/12/bf9ce81a2954b421cd6acb90a41777075baec3a3a21fb0dd10b483ed3652/aiohttp-3.12.2-cp311-cp311-win32.whl", hash = "sha256:e405ccdd3cada578e5bc4000b7d35b80a345c832089d23b04be30c0e7606fb80", size = 419267 }, + { url = "https://files.pythonhosted.org/packages/97/6c/db68994b49a2c50a4a8943ba3696f66906ab09d206243f91ea8ede7b7d87/aiohttp-3.12.2-cp311-cp311-win_amd64.whl", hash = "sha256:a84cf5db31efc14e811ef830288614bf40093befd445efe743dc015d01e6e92c", size = 443663 }, + { url = "https://files.pythonhosted.org/packages/84/25/17af725b3855ad54eb1cb8e45962b05856a7e4986b64fbc6158331d7b64e/aiohttp-3.12.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7679b2af5a1d43d8470672079baedc1a843e4f27a47b630fbe092833f9bc4e73", size = 692835 }, + { url = "https://files.pythonhosted.org/packages/cc/5d/770e9f17f0efeb1c40109535561ea7b0a3e9b654bd7853c27f3d62763086/aiohttp-3.12.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4d6941dd4d8f6dfd9292f391bc2e321c9583a9532b4e9b571b84f163bb3f8135", size = 467456 }, + { url = "https://files.pythonhosted.org/packages/d8/ef/48eda5cd949b8af818d892b5ddf07cb15f0cf133e14c4ac9734ff32ba0a6/aiohttp-3.12.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8345cea33295cc28945c8365ac44ba383ebb757a599b384d752347f40671e984", size = 460294 }, + { url = "https://files.pythonhosted.org/packages/94/1e/9724a45cb932b0c01c558493fac5f706a1a53740a77efc22c2f6764ce611/aiohttp-3.12.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8259a311666becf7049ae43c984208ac20eda5ea16aa5f26ea5d24b863f9afcd", size = 1707089 }, + { url = "https://files.pythonhosted.org/packages/8a/a1/3b267d691a79472e6a0d9909363c2dc6cad44e60deb99385ce41e7926b40/aiohttp-3.12.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7a6f09589cb5928ee793210806d35d69fffc78d46eca9acaa2d38cc30b3f194e", size = 1689737 }, + { url = "https://files.pythonhosted.org/packages/d9/71/f04d5c86cfa5227ec2a54dd72b8de5b1930eb5c9ea75bd1c987b463cbb36/aiohttp-3.12.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0c32972b485828f2b9326a95851520e9a92cdd97efe0a04ae62c7315e8d1098", size = 1744835 }, + { url = "https://files.pythonhosted.org/packages/eb/88/deab2324c7468d6405cf9bae287276edef14a00fd00d084b3010e194e8d9/aiohttp-3.12.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:851d226ecaf30ec7f12d9e9793081ecd0e66fea7f6345bcb5283b39e9ea79c71", size = 1790987 }, + { url = "https://files.pythonhosted.org/packages/17/49/0b7c3fb319c4a9c75c41ec066e578bfd3ee847a550ef579d9fb6d65af3fa/aiohttp-3.12.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7127241e62621eabe437cce249a4858e79896abcdafed4c6f7a90d14d449066", size = 1710431 }, + { url = "https://files.pythonhosted.org/packages/eb/23/3c366db7343384cd81b0ec9609019dc34e14d25b7099d9390cfa561bb49f/aiohttp-3.12.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bca43af1c77f83e88641e74d1bd24b6089bb518fa0e6be97805a048bdac6bbc3", size = 1626229 }, + { url = "https://files.pythonhosted.org/packages/99/3e/a6b7b55a38a6372b7e00f751778fc653cdd14770f1c20c5ed309f1b87768/aiohttp-3.12.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d913623c7e3be188fe5c718bce186e0bbc5977e74c12e4832d540c3637b9f47", size = 1687290 }, + { url = "https://files.pythonhosted.org/packages/3c/69/0542c4c125e40c47e26bab47d8aff50f831c5626a4d4ab9da7018ee2d15c/aiohttp-3.12.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b4924ca6bc74cb630e47edaf111f1d05e13dfe3c1e580c35277dc998965913d3", size = 1708743 }, + { url = "https://files.pythonhosted.org/packages/1d/0e/73a16e4008f78fa3538a1e564d0ecf026c7fd422f522e87af48337942f48/aiohttp-3.12.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a38e144942d4f0740dcb5be2ceb932cc45fc29e404fe64ffd5eef5bc62eafe39", size = 1649396 }, + { url = "https://files.pythonhosted.org/packages/98/23/0a9b1547260d554f2c484c2f5e9d3800eca31a387146e5e0a0cfb6bfe17e/aiohttp-3.12.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6c31782dae093a507b94792d9f32978bf154d051d5237fdedbb9e74d9464d5dd", size = 1728959 }, + { url = "https://files.pythonhosted.org/packages/31/d0/39b2b1111b81952015e7390ea07b404f417577e6ed4df1a683dc3d1a0a2f/aiohttp-3.12.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7f10d664b638f85acdeb7622f7b16773aaf7d67214a7c3b6075735f171d2f021", size = 1756933 }, + { url = "https://files.pythonhosted.org/packages/28/77/faf662e3b87e3d5a1ca3092c5cbeaa4349abdff3388bdc3c3c057302b380/aiohttp-3.12.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7181b4ebd70ad9731f4f7af03e3ed0ff003e49cefbf0b6846b5decb32abc30b7", size = 1716543 }, + { url = "https://files.pythonhosted.org/packages/d3/1a/c79bae467e39439d5ef044f121b280aa0398cb23ecd77ee49f8a1759dde7/aiohttp-3.12.2-cp312-cp312-win32.whl", hash = "sha256:d602fc26cb307993965e5f5dacb2aaa7fea4f01c6658250658bef51e48dd454e", size = 414002 }, + { url = "https://files.pythonhosted.org/packages/e2/dd/0d5f6aef062433cf88ea08ab2c8c3c1466e812311c9e0657370835ed27c9/aiohttp-3.12.2-cp312-cp312-win_amd64.whl", hash = "sha256:35df44dde19fcd146ed13e8847c70f8e138e91138f7615df2bd68b478ac04f99", size = 440104 }, + { url = "https://files.pythonhosted.org/packages/f9/ed/a341ddf8402cc4a177eb63a63d2aee2f177a94b1f2d53ef192e43e82760f/aiohttp-3.12.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e6dd24e72e7425b4eee49eeaa1a08742774f5a0c84041e80625aeba45812f92e", size = 687252 }, + { url = "https://files.pythonhosted.org/packages/e8/93/00e623a2c984d95a52e7f9e92d178828beb4a5d31b9231b0fda77fc13e98/aiohttp-3.12.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5293245b743d3e41fd4de631aed6018e0016488686ee70d3dbd9ac61cc040429", size = 464914 }, + { url = "https://files.pythonhosted.org/packages/5e/ad/4fea70b2d1994edf3c34220a41f0ac1263ee4b704343248f7d15fa8e3b8e/aiohttp-3.12.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b2c7bc896696ada3df4ffd787b80d08af53eb16658fd19623f469f89c5f95846", size = 457217 }, + { url = "https://files.pythonhosted.org/packages/fb/f1/f20c87b0baf096f2d36897fe4a9a0e703f32dbf7b3fcaae0a5a196f779dc/aiohttp-3.12.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e4991a7dcdd577a749429248321196dba6ade4315c6262e9b2ba9a3bb80e9cb", size = 1696029 }, + { url = "https://files.pythonhosted.org/packages/d9/4a/1b0507cfd73c1736e5cd607c7f16790747112c86e0c17860b1b635ad7d52/aiohttp-3.12.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:88f8d247c4b6cc75eb5ef1724998b3076f5f2f6b7d357560caa5b5da08228cb4", size = 1677295 }, + { url = "https://files.pythonhosted.org/packages/7d/ca/ffb5d548d6aa195797bebd5e3688821c40c2a6503363e5849d7114678a59/aiohttp-3.12.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e1f3968162f274ed8e97aad591da178fb04725a386a4852b1c0285f3a51390af", size = 1729363 }, + { url = "https://files.pythonhosted.org/packages/98/3e/e6cb54d8329b7c60b6678631c228339730632ea7c18dd6279e64ad134d52/aiohttp-3.12.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4de7a3a7e482f5832838047c1612c0c3d1f4309e3e2d4ea80cb1b7f5ab0c6bbe", size = 1778736 }, + { url = "https://files.pythonhosted.org/packages/2d/be/76db303c98159b6c0494fe4f14a6c57a28c81db9010d2d5d764219339f0a/aiohttp-3.12.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86ca0aa49854b195e314171756d06f81c1286541425a929950f7316d617cc3b1", size = 1701064 }, + { url = "https://files.pythonhosted.org/packages/c3/c1/d6d4abdeffaa9dee12b27c80919a1bda50aea22d5a1dc03c001a005b16ea/aiohttp-3.12.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bff129c6674f3a14c68a0f49337ebd8637440201cbd8af05df52cb2d7db0902", size = 1614772 }, + { url = "https://files.pythonhosted.org/packages/8c/69/da43fe30ef3323add2ac03b11cef91c50b648d544953732aeff9a47cdb5e/aiohttp-3.12.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:62179517ef8d0abc950ab7e6545e97142bef3f58007da12b9cff5260e8084fd1", size = 1667793 }, + { url = "https://files.pythonhosted.org/packages/8c/03/367badf467bd9708b2eaa5fc36689b9b2e43489b63d8508fddc508ceaace/aiohttp-3.12.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:48d743fbc8a88dffb2d2e96f17f9e2310aaa672bd2103b198d7613361affd1a3", size = 1699458 }, + { url = "https://files.pythonhosted.org/packages/d2/12/c7443b288263b4ab3d8c6329de0be8df2967445aa9731b738da7b34f04ca/aiohttp-3.12.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:385f01fe9be53a0466fb66504b00ab00ca7faa0a285186327509cbbe1386363f", size = 1642052 }, + { url = "https://files.pythonhosted.org/packages/4e/76/2be34ed27931ab1a4cdd40eba3ef2d71bf0eff9d6c0ac8793e92f20f3ac1/aiohttp-3.12.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:631f4da6b1d503f9df883ba86846fa0ff455eae60497fab5f1d21683b2a2784e", size = 1718187 }, + { url = "https://files.pythonhosted.org/packages/43/39/84d014db48122973171c3cfcf23a2c3ba765163ef8169d6b959d9440152b/aiohttp-3.12.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7e071f1371f38c15dad609bb57d698fe4614b1817e7808966c643336f5615655", size = 1751656 }, + { url = "https://files.pythonhosted.org/packages/27/b6/7b13d143352494e943ae3f89b5286dc4ed85f8d5487a09f3dd86efb16eb3/aiohttp-3.12.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:166d8ba47fca7667dd3169be8bd0fb9ffd0f19fd80f0d5291b1e36ab0f77d02c", size = 1700547 }, + { url = "https://files.pythonhosted.org/packages/42/19/1b42589a0f80f14b1bc81ccc5fb0f8c4398fbd03b5886d1307c7aadd8279/aiohttp-3.12.2-cp313-cp313-win32.whl", hash = "sha256:01ac3cc4a0c81f87ed72c614066bfdee15358c5c2cdf30048dd8823826cbc61e", size = 413024 }, + { url = "https://files.pythonhosted.org/packages/d0/d7/00abc34b16f1ea9dc8cedffe45c0f454157472480e5b44b6c15f175aa9c6/aiohttp-3.12.2-cp313-cp313-win_amd64.whl", hash = "sha256:cbf833ca90fda31ec505e80f58f8011c64030fb8e368bce0d60f1f9aae162389", size = 438964 }, ] [[package]] @@ -139,11 +142,11 @@ wheels = [ [[package]] name = "alabaster" -version = "0.7.16" +version = "1.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c9/3e/13dd8e5ed9094e734ac430b5d0eb4f2bb001708a8b7856cbf8e084e001ba/alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65", size = 23776 } +sdist = { url = "https://files.pythonhosted.org/packages/a6/f8/d9c74d0daf3f742840fd818d69cfae176fa332022fd44e3469487d5a9420/alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", size = 24210 } wheels = [ - { url = "https://files.pythonhosted.org/packages/32/34/d4e1c02d3bee589efb5dfa17f88ea08bdb3e3eac12bc475462aec52ed223/alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92", size = 13511 }, + { url = "https://files.pythonhosted.org/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b", size = 13929 }, ] [[package]] @@ -198,28 +201,28 @@ wheels = [ [[package]] name = "authlib" -version = "1.5.1" +version = "1.6.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cryptography" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/36/aa/e1c199d27ea06a13f9641746a9b19f15bd75b04b40b6bd72a89156c75d10/authlib-1.5.1.tar.gz", hash = "sha256:5cbc85ecb0667312c1cdc2f9095680bb735883b123fb509fde1e65b1c5df972e", size = 152534 } +sdist = { url = "https://files.pythonhosted.org/packages/a2/9d/b1e08d36899c12c8b894a44a5583ee157789f26fc4b176f8e4b6217b56e1/authlib-1.6.0.tar.gz", hash = "sha256:4367d32031b7af175ad3a323d571dc7257b7099d55978087ceae4a0d88cd3210", size = 158371 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/ae/4d289407515223677e7d105ec88bc707a115cce79464c6b56313beb0dd36/authlib-1.5.1-py2.py3-none-any.whl", hash = "sha256:8408861cbd9b4ea2ff759b00b6f02fd7d81ac5a56d0b2b22c08606c6049aae11", size = 231358 }, + { url = "https://files.pythonhosted.org/packages/84/29/587c189bbab1ccc8c86a03a5d0e13873df916380ef1be461ebe6acebf48d/authlib-1.6.0-py2.py3-none-any.whl", hash = "sha256:91685589498f79e8655e8a8947431ad6288831d643f11c55c2143ffcc738048d", size = 239981 }, ] [[package]] name = "azure-core" -version = "1.32.0" +version = "1.34.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "requests" }, { name = "six" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cc/ee/668328306a9e963a5ad9f152cd98c7adad86c822729fd1d2a01613ad1e67/azure_core-1.32.0.tar.gz", hash = "sha256:22b3c35d6b2dae14990f6c1be2912bf23ffe50b220e708a28ab1bb92b1c730e5", size = 279128 } +sdist = { url = "https://files.pythonhosted.org/packages/c9/29/ff7a519a315e41c85bab92a7478c6acd1cf0b14353139a08caee4c691f77/azure_core-1.34.0.tar.gz", hash = "sha256:bdb544989f246a0ad1c85d72eeb45f2f835afdcbc5b45e43f0dbde7461c81ece", size = 297999 } wheels = [ - { url = "https://files.pythonhosted.org/packages/39/83/325bf5e02504dbd8b4faa98197a44cdf8a325ef259b48326a2b6f17f8383/azure_core-1.32.0-py3-none-any.whl", hash = "sha256:eac191a0efb23bfa83fddf321b27b122b4ec847befa3091fa736a5c32c50d7b4", size = 198855 }, + { url = "https://files.pythonhosted.org/packages/84/9e/5c87b49f65bb16571599bc789857d0ded2f53014d3392bc88a5d1f3ad779/azure_core-1.34.0-py3-none-any.whl", hash = "sha256:0615d3b756beccdb6624d1c0ae97284f38b78fb59a2a9839bf927c66fbbdddd6", size = 207409 }, ] [[package]] @@ -238,7 +241,7 @@ wheels = [ [[package]] name = "azure-identity" -version = "1.21.0" +version = "1.23.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "azure-core" }, @@ -247,9 +250,9 @@ dependencies = [ { name = "msal-extensions" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b5/a1/f1a683672e7a88ea0e3119f57b6c7843ed52650fdcac8bfa66ed84e86e40/azure_identity-1.21.0.tar.gz", hash = "sha256:ea22ce6e6b0f429bc1b8d9212d5b9f9877bd4c82f1724bfa910760612c07a9a6", size = 266445 } +sdist = { url = "https://files.pythonhosted.org/packages/41/52/458c1be17a5d3796570ae2ed3c6b7b55b134b22d5ef8132b4f97046a9051/azure_identity-1.23.0.tar.gz", hash = "sha256:d9cdcad39adb49d4bb2953a217f62aec1f65bbb3c63c9076da2be2a47e53dde4", size = 265280 } wheels = [ - { url = "https://files.pythonhosted.org/packages/3d/9f/1f9f3ef4f49729ee207a712a5971a9ca747f2ca47d9cbf13cf6953e3478a/azure_identity-1.21.0-py3-none-any.whl", hash = "sha256:258ea6325537352440f71b35c3dffe9d240eae4a5126c1b7ce5efd5766bd9fd9", size = 189190 }, + { url = "https://files.pythonhosted.org/packages/07/16/a51d47780f41e4b87bb2d454df6aea90a44a346e918ac189d3700f3d728d/azure_identity-1.23.0-py3-none-any.whl", hash = "sha256:dbbeb64b8e5eaa81c44c565f264b519ff2de7ff0e02271c49f3cb492762a50b0", size = 186097 }, ] [[package]] @@ -278,20 +281,20 @@ wheels = [ [[package]] name = "beautifulsoup4" -version = "4.13.3" +version = "4.13.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "soupsieve" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f0/3c/adaf39ce1fb4afdd21b611e3d530b183bb7759c9b673d60db0e347fd4439/beautifulsoup4-4.13.3.tar.gz", hash = "sha256:1bd32405dacc920b42b83ba01644747ed77456a65760e285fbc47633ceddaf8b", size = 619516 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/e4/0c4c39e18fd76d6a628d4dd8da40543d136ce2d1752bd6eeeab0791f4d6b/beautifulsoup4-4.13.4.tar.gz", hash = "sha256:dbb3c4e1ceae6aefebdaf2423247260cd062430a410e38c66f2baa50a8437195", size = 621067 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/49/6abb616eb3cbab6a7cca303dc02fdf3836de2e0b834bf966a7f5271a34d8/beautifulsoup4-4.13.3-py3-none-any.whl", hash = "sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16", size = 186015 }, + { url = "https://files.pythonhosted.org/packages/50/cd/30110dc0ffcf3b131156077b90e9f60ed75711223f306da4db08eff8403b/beautifulsoup4-4.13.4-py3-none-any.whl", hash = "sha256:9bbbb14bfde9d79f38b8cd5f8c7c85f4b8f2523190ebed90e950a8dea4cb1c4b", size = 187285 }, ] [[package]] name = "bokeh" -version = "3.7.2" +version = "3.7.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "contourpy" }, @@ -305,23 +308,23 @@ dependencies = [ { name = "tornado", marker = "sys_platform != 'emscripten'" }, { name = "xyzservices" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1d/8f/f41bb2fb9214bfe054055312d5744f354f536e08a3827fedaa75fb5238a3/bokeh-3.7.2.tar.gz", hash = "sha256:80c21885cec276431acd4db92f831c71eb999ea995470ce777e0c577b0cfc1d8", size = 6364893 } +sdist = { url = "https://files.pythonhosted.org/packages/75/18/12d0d6024177ad18ba65deffc363046d0cbafe116f8b964a9efa85d2800f/bokeh-3.7.3.tar.gz", hash = "sha256:70a89a9f797b103d5ee6ad15fb7944adda115cf0da996ed0b75cfba61cb12f2b", size = 6366610 } wheels = [ - { url = "https://files.pythonhosted.org/packages/76/d2/5f2a3c80ab897eaccd15cc89aaebec2bf8b91bc8314fe9e43cf04d6e9edd/bokeh-3.7.2-py3-none-any.whl", hash = "sha256:efd9172a90cc233c1c21ef4813d58a8a6f97ee63c8e2f1b4f2389a64fcef0722", size = 7028135 }, + { url = "https://files.pythonhosted.org/packages/91/48/08b2382e739236aa3360b7976360ba3e0c043b6234e25951c18c1eb6fa06/bokeh-3.7.3-py3-none-any.whl", hash = "sha256:b0e79dd737f088865212e4fdcb0f3b95d087f0f088bf8ca186a300ab1641e2c7", size = 7031447 }, ] [[package]] name = "botocore" -version = "1.37.1" +version = "1.37.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jmespath" }, { name = "python-dateutil" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e5/01/3083bff25fd91193162298920cb093b9095609408416526d52b2826965b7/botocore-1.37.1.tar.gz", hash = "sha256:b194db8fb2a0ffba53568c364ae26166e7eec0445496b2ac86a6e142f3dd982f", size = 13578835 } +sdist = { url = "https://files.pythonhosted.org/packages/74/fb/b243ab806d2e1e6b8a475b731cc59a1f1e4709eded4884b988a27bbc996b/botocore-1.37.3.tar.gz", hash = "sha256:fe8403eb55a88faf9b0f9da6615e5bee7be056d75e17af66c3c8f0a3b0648da4", size = 13574648 } wheels = [ - { url = "https://files.pythonhosted.org/packages/3d/20/352b2bf99f93ba18986615841786cbd0d38f7856bd49d4e154a540f04afe/botocore-1.37.1-py3-none-any.whl", hash = "sha256:c1db1bfc5d8c6b3b6d1ca6794f605294b4264e82a7e727b88e0fef9c2b9fbb9c", size = 13359164 }, + { url = "https://files.pythonhosted.org/packages/88/54/772118f15b5990173aa5264946cc8c9ff70c8f02d72ee6d63167a985188c/botocore-1.37.3-py3-none-any.whl", hash = "sha256:d01bd3bf4c80e61fa88d636ad9f5c9f60a551d71549b481386c6b4efe0bb2b2e", size = 13342066 }, ] [[package]] @@ -335,11 +338,11 @@ wheels = [ [[package]] name = "certifi" -version = "2025.1.31" +version = "2025.4.26" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651", size = 167577 } +sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705 } wheels = [ - { url = "https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe", size = 166393 }, + { url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618 }, ] [[package]] @@ -398,62 +401,62 @@ wheels = [ [[package]] name = "charset-normalizer" -version = "3.4.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", size = 123188 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/72/80/41ef5d5a7935d2d3a773e3eaebf0a9350542f2cab4eac59a7a4741fbbbbe/charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125", size = 194995 }, - { url = "https://files.pythonhosted.org/packages/7a/28/0b9fefa7b8b080ec492110af6d88aa3dea91c464b17d53474b6e9ba5d2c5/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1", size = 139471 }, - { url = "https://files.pythonhosted.org/packages/71/64/d24ab1a997efb06402e3fc07317e94da358e2585165930d9d59ad45fcae2/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3", size = 149831 }, - { url = "https://files.pythonhosted.org/packages/37/ed/be39e5258e198655240db5e19e0b11379163ad7070962d6b0c87ed2c4d39/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd", size = 142335 }, - { url = "https://files.pythonhosted.org/packages/88/83/489e9504711fa05d8dde1574996408026bdbdbd938f23be67deebb5eca92/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00", size = 143862 }, - { url = "https://files.pythonhosted.org/packages/c6/c7/32da20821cf387b759ad24627a9aca289d2822de929b8a41b6241767b461/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12", size = 145673 }, - { url = "https://files.pythonhosted.org/packages/68/85/f4288e96039abdd5aeb5c546fa20a37b50da71b5cf01e75e87f16cd43304/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77", size = 140211 }, - { url = "https://files.pythonhosted.org/packages/28/a3/a42e70d03cbdabc18997baf4f0227c73591a08041c149e710045c281f97b/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146", size = 148039 }, - { url = "https://files.pythonhosted.org/packages/85/e4/65699e8ab3014ecbe6f5c71d1a55d810fb716bbfd74f6283d5c2aa87febf/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd", size = 151939 }, - { url = "https://files.pythonhosted.org/packages/b1/82/8e9fe624cc5374193de6860aba3ea8070f584c8565ee77c168ec13274bd2/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6", size = 149075 }, - { url = "https://files.pythonhosted.org/packages/3d/7b/82865ba54c765560c8433f65e8acb9217cb839a9e32b42af4aa8e945870f/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8", size = 144340 }, - { url = "https://files.pythonhosted.org/packages/b5/b6/9674a4b7d4d99a0d2df9b215da766ee682718f88055751e1e5e753c82db0/charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b", size = 95205 }, - { url = "https://files.pythonhosted.org/packages/1e/ab/45b180e175de4402dcf7547e4fb617283bae54ce35c27930a6f35b6bef15/charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76", size = 102441 }, - { url = "https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545", size = 196105 }, - { url = "https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7", size = 140404 }, - { url = "https://files.pythonhosted.org/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757", size = 150423 }, - { url = "https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa", size = 143184 }, - { url = "https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d", size = 145268 }, - { url = "https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616", size = 147601 }, - { url = "https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b", size = 141098 }, - { url = "https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d", size = 149520 }, - { url = "https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a", size = 152852 }, - { url = "https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9", size = 150488 }, - { url = "https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1", size = 146192 }, - { url = "https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35", size = 95550 }, - { url = "https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f", size = 102785 }, - { url = "https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda", size = 195698 }, - { url = "https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313", size = 140162 }, - { url = "https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9", size = 150263 }, - { url = "https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b", size = 142966 }, - { url = "https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11", size = 144992 }, - { url = "https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f", size = 147162 }, - { url = "https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd", size = 140972 }, - { url = "https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2", size = 149095 }, - { url = "https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886", size = 152668 }, - { url = "https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601", size = 150073 }, - { url = "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", size = 145732 }, - { url = "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", size = 95391 }, - { url = "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", size = 102702 }, - { url = "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", size = 49767 }, +version = "3.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63", size = 126367 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/85/4c40d00dcc6284a1c1ad5de5e0996b06f39d8232f1031cd23c2f5c07ee86/charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2", size = 198794 }, + { url = "https://files.pythonhosted.org/packages/41/d9/7a6c0b9db952598e97e93cbdfcb91bacd89b9b88c7c983250a77c008703c/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645", size = 142846 }, + { url = "https://files.pythonhosted.org/packages/66/82/a37989cda2ace7e37f36c1a8ed16c58cf48965a79c2142713244bf945c89/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd", size = 153350 }, + { url = "https://files.pythonhosted.org/packages/df/68/a576b31b694d07b53807269d05ec3f6f1093e9545e8607121995ba7a8313/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8", size = 145657 }, + { url = "https://files.pythonhosted.org/packages/92/9b/ad67f03d74554bed3aefd56fe836e1623a50780f7c998d00ca128924a499/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f", size = 147260 }, + { url = "https://files.pythonhosted.org/packages/a6/e6/8aebae25e328160b20e31a7e9929b1578bbdc7f42e66f46595a432f8539e/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7", size = 149164 }, + { url = "https://files.pythonhosted.org/packages/8b/f2/b3c2f07dbcc248805f10e67a0262c93308cfa149a4cd3d1fe01f593e5fd2/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9", size = 144571 }, + { url = "https://files.pythonhosted.org/packages/60/5b/c3f3a94bc345bc211622ea59b4bed9ae63c00920e2e8f11824aa5708e8b7/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544", size = 151952 }, + { url = "https://files.pythonhosted.org/packages/e2/4d/ff460c8b474122334c2fa394a3f99a04cf11c646da895f81402ae54f5c42/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82", size = 155959 }, + { url = "https://files.pythonhosted.org/packages/a2/2b/b964c6a2fda88611a1fe3d4c400d39c66a42d6c169c924818c848f922415/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0", size = 153030 }, + { url = "https://files.pythonhosted.org/packages/59/2e/d3b9811db26a5ebf444bc0fa4f4be5aa6d76fc6e1c0fd537b16c14e849b6/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5", size = 148015 }, + { url = "https://files.pythonhosted.org/packages/90/07/c5fd7c11eafd561bb51220d600a788f1c8d77c5eef37ee49454cc5c35575/charset_normalizer-3.4.2-cp311-cp311-win32.whl", hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a", size = 98106 }, + { url = "https://files.pythonhosted.org/packages/a8/05/5e33dbef7e2f773d672b6d79f10ec633d4a71cd96db6673625838a4fd532/charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28", size = 105402 }, + { url = "https://files.pythonhosted.org/packages/d7/a4/37f4d6035c89cac7930395a35cc0f1b872e652eaafb76a6075943754f095/charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7", size = 199936 }, + { url = "https://files.pythonhosted.org/packages/ee/8a/1a5e33b73e0d9287274f899d967907cd0bf9c343e651755d9307e0dbf2b3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3", size = 143790 }, + { url = "https://files.pythonhosted.org/packages/66/52/59521f1d8e6ab1482164fa21409c5ef44da3e9f653c13ba71becdd98dec3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a", size = 153924 }, + { url = "https://files.pythonhosted.org/packages/86/2d/fb55fdf41964ec782febbf33cb64be480a6b8f16ded2dbe8db27a405c09f/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214", size = 146626 }, + { url = "https://files.pythonhosted.org/packages/8c/73/6ede2ec59bce19b3edf4209d70004253ec5f4e319f9a2e3f2f15601ed5f7/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a", size = 148567 }, + { url = "https://files.pythonhosted.org/packages/09/14/957d03c6dc343c04904530b6bef4e5efae5ec7d7990a7cbb868e4595ee30/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd", size = 150957 }, + { url = "https://files.pythonhosted.org/packages/0d/c8/8174d0e5c10ccebdcb1b53cc959591c4c722a3ad92461a273e86b9f5a302/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981", size = 145408 }, + { url = "https://files.pythonhosted.org/packages/58/aa/8904b84bc8084ac19dc52feb4f5952c6df03ffb460a887b42615ee1382e8/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c", size = 153399 }, + { url = "https://files.pythonhosted.org/packages/c2/26/89ee1f0e264d201cb65cf054aca6038c03b1a0c6b4ae998070392a3ce605/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b", size = 156815 }, + { url = "https://files.pythonhosted.org/packages/fd/07/68e95b4b345bad3dbbd3a8681737b4338ff2c9df29856a6d6d23ac4c73cb/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d", size = 154537 }, + { url = "https://files.pythonhosted.org/packages/77/1a/5eefc0ce04affb98af07bc05f3bac9094513c0e23b0562d64af46a06aae4/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f", size = 149565 }, + { url = "https://files.pythonhosted.org/packages/37/a0/2410e5e6032a174c95e0806b1a6585eb21e12f445ebe239fac441995226a/charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c", size = 98357 }, + { url = "https://files.pythonhosted.org/packages/6c/4f/c02d5c493967af3eda9c771ad4d2bbc8df6f99ddbeb37ceea6e8716a32bc/charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e", size = 105776 }, + { url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0", size = 199622 }, + { url = "https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf", size = 143435 }, + { url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e", size = 153653 }, + { url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1", size = 146231 }, + { url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c", size = 148243 }, + { url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691", size = 150442 }, + { url = "https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0", size = 145147 }, + { url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b", size = 153057 }, + { url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff", size = 156454 }, + { url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b", size = 154174 }, + { url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148", size = 149166 }, + { url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7", size = 98064 }, + { url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980", size = 105641 }, + { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626 }, ] [[package]] name = "click" -version = "8.1.8" +version = "8.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 } +sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342 } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 }, + { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215 }, ] [[package]] @@ -502,103 +505,110 @@ wheels = [ [[package]] name = "contourpy" -version = "1.3.1" +version = "1.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/25/c2/fc7193cc5383637ff390a712e88e4ded0452c9fbcf84abe3de5ea3df1866/contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699", size = 13465753 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/12/bb/11250d2906ee2e8b466b5f93e6b19d525f3e0254ac8b445b56e618527718/contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b", size = 269555 }, - { url = "https://files.pythonhosted.org/packages/67/71/1e6e95aee21a500415f5d2dbf037bf4567529b6a4e986594d7026ec5ae90/contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc", size = 254549 }, - { url = "https://files.pythonhosted.org/packages/31/2c/b88986e8d79ac45efe9d8801ae341525f38e087449b6c2f2e6050468a42c/contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86", size = 313000 }, - { url = "https://files.pythonhosted.org/packages/c4/18/65280989b151fcf33a8352f992eff71e61b968bef7432fbfde3a364f0730/contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6", size = 352925 }, - { url = "https://files.pythonhosted.org/packages/f5/c7/5fd0146c93220dbfe1a2e0f98969293b86ca9bc041d6c90c0e065f4619ad/contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85", size = 323693 }, - { url = "https://files.pythonhosted.org/packages/85/fc/7fa5d17daf77306840a4e84668a48ddff09e6bc09ba4e37e85ffc8e4faa3/contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c", size = 326184 }, - { url = "https://files.pythonhosted.org/packages/ef/e7/104065c8270c7397c9571620d3ab880558957216f2b5ebb7e040f85eeb22/contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291", size = 1268031 }, - { url = "https://files.pythonhosted.org/packages/e2/4a/c788d0bdbf32c8113c2354493ed291f924d4793c4a2e85b69e737a21a658/contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f", size = 1325995 }, - { url = "https://files.pythonhosted.org/packages/a6/e6/a2f351a90d955f8b0564caf1ebe4b1451a3f01f83e5e3a414055a5b8bccb/contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375", size = 174396 }, - { url = "https://files.pythonhosted.org/packages/a8/7e/cd93cab453720a5d6cb75588cc17dcdc08fc3484b9de98b885924ff61900/contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9", size = 219787 }, - { url = "https://files.pythonhosted.org/packages/37/6b/175f60227d3e7f5f1549fcb374592be311293132207e451c3d7c654c25fb/contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509", size = 271494 }, - { url = "https://files.pythonhosted.org/packages/6b/6a/7833cfae2c1e63d1d8875a50fd23371394f540ce809d7383550681a1fa64/contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc", size = 255444 }, - { url = "https://files.pythonhosted.org/packages/7f/b3/7859efce66eaca5c14ba7619791b084ed02d868d76b928ff56890d2d059d/contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454", size = 307628 }, - { url = "https://files.pythonhosted.org/packages/48/b2/011415f5e3f0a50b1e285a0bf78eb5d92a4df000553570f0851b6e309076/contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80", size = 347271 }, - { url = "https://files.pythonhosted.org/packages/84/7d/ef19b1db0f45b151ac78c65127235239a8cf21a59d1ce8507ce03e89a30b/contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec", size = 318906 }, - { url = "https://files.pythonhosted.org/packages/ba/99/6794142b90b853a9155316c8f470d2e4821fe6f086b03e372aca848227dd/contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9", size = 323622 }, - { url = "https://files.pythonhosted.org/packages/3c/0f/37d2c84a900cd8eb54e105f4fa9aebd275e14e266736778bb5dccbf3bbbb/contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b", size = 1266699 }, - { url = "https://files.pythonhosted.org/packages/3a/8a/deb5e11dc7d9cc8f0f9c8b29d4f062203f3af230ba83c30a6b161a6effc9/contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d", size = 1326395 }, - { url = "https://files.pythonhosted.org/packages/1a/35/7e267ae7c13aaf12322ccc493531f1e7f2eb8fba2927b9d7a05ff615df7a/contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e", size = 175354 }, - { url = "https://files.pythonhosted.org/packages/a1/35/c2de8823211d07e8a79ab018ef03960716c5dff6f4d5bff5af87fd682992/contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d", size = 220971 }, - { url = "https://files.pythonhosted.org/packages/9a/e7/de62050dce687c5e96f946a93546910bc67e483fe05324439e329ff36105/contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2", size = 271548 }, - { url = "https://files.pythonhosted.org/packages/78/4d/c2a09ae014ae984c6bdd29c11e74d3121b25eaa117eca0bb76340efd7e1c/contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5", size = 255576 }, - { url = "https://files.pythonhosted.org/packages/ab/8a/915380ee96a5638bda80cd061ccb8e666bfdccea38d5741cb69e6dbd61fc/contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81", size = 306635 }, - { url = "https://files.pythonhosted.org/packages/29/5c/c83ce09375428298acd4e6582aeb68b1e0d1447f877fa993d9bf6cd3b0a0/contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2", size = 345925 }, - { url = "https://files.pythonhosted.org/packages/29/63/5b52f4a15e80c66c8078a641a3bfacd6e07106835682454647aca1afc852/contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7", size = 318000 }, - { url = "https://files.pythonhosted.org/packages/9a/e2/30ca086c692691129849198659bf0556d72a757fe2769eb9620a27169296/contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c", size = 322689 }, - { url = "https://files.pythonhosted.org/packages/6b/77/f37812ef700f1f185d348394debf33f22d531e714cf6a35d13d68a7003c7/contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3", size = 1268413 }, - { url = "https://files.pythonhosted.org/packages/3f/6d/ce84e79cdd128542ebeb268f84abb4b093af78e7f8ec504676673d2675bc/contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1", size = 1326530 }, - { url = "https://files.pythonhosted.org/packages/72/22/8282f4eae20c73c89bee7a82a19c4e27af9b57bb602ecaa00713d5bdb54d/contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82", size = 175315 }, - { url = "https://files.pythonhosted.org/packages/e3/d5/28bca491f65312b438fbf076589dcde7f6f966b196d900777f5811b9c4e2/contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd", size = 220987 }, - { url = "https://files.pythonhosted.org/packages/2f/24/a4b285d6adaaf9746e4700932f579f1a7b6f9681109f694cfa233ae75c4e/contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30", size = 285001 }, - { url = "https://files.pythonhosted.org/packages/48/1d/fb49a401b5ca4f06ccf467cd6c4f1fd65767e63c21322b29b04ec40b40b9/contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751", size = 268553 }, - { url = "https://files.pythonhosted.org/packages/79/1e/4aef9470d13fd029087388fae750dccb49a50c012a6c8d1d634295caa644/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342", size = 310386 }, - { url = "https://files.pythonhosted.org/packages/b0/34/910dc706ed70153b60392b5305c708c9810d425bde12499c9184a1100888/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c", size = 349806 }, - { url = "https://files.pythonhosted.org/packages/31/3c/faee6a40d66d7f2a87f7102236bf4780c57990dd7f98e5ff29881b1b1344/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f", size = 321108 }, - { url = "https://files.pythonhosted.org/packages/17/69/390dc9b20dd4bb20585651d7316cc3054b7d4a7b4f8b710b2b698e08968d/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda", size = 327291 }, - { url = "https://files.pythonhosted.org/packages/ef/74/7030b67c4e941fe1e5424a3d988080e83568030ce0355f7c9fc556455b01/contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242", size = 1263752 }, - { url = "https://files.pythonhosted.org/packages/f0/ed/92d86f183a8615f13f6b9cbfc5d4298a509d6ce433432e21da838b4b63f4/contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1", size = 1318403 }, - { url = "https://files.pythonhosted.org/packages/b3/0e/c8e4950c77dcfc897c71d61e56690a0a9df39543d2164040301b5df8e67b/contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1", size = 185117 }, - { url = "https://files.pythonhosted.org/packages/c1/31/1ae946f11dfbd229222e6d6ad8e7bd1891d3d48bde5fbf7a0beb9491f8e3/contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546", size = 236668 }, +sdist = { url = "https://files.pythonhosted.org/packages/66/54/eb9bfc647b19f2009dd5c7f5ec51c4e6ca831725f1aea7a993034f483147/contourpy-1.3.2.tar.gz", hash = "sha256:b6945942715a034c671b7fc54f9588126b0b8bf23db2696e3ca8328f3ff0ab54", size = 13466130 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/b9/ede788a0b56fc5b071639d06c33cb893f68b1178938f3425debebe2dab78/contourpy-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6a37a2fb93d4df3fc4c0e363ea4d16f83195fc09c891bc8ce072b9d084853445", size = 269636 }, + { url = "https://files.pythonhosted.org/packages/e6/75/3469f011d64b8bbfa04f709bfc23e1dd71be54d05b1b083be9f5b22750d1/contourpy-1.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b7cd50c38f500bbcc9b6a46643a40e0913673f869315d8e70de0438817cb7773", size = 254636 }, + { url = "https://files.pythonhosted.org/packages/8d/2f/95adb8dae08ce0ebca4fd8e7ad653159565d9739128b2d5977806656fcd2/contourpy-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6658ccc7251a4433eebd89ed2672c2ed96fba367fd25ca9512aa92a4b46c4f1", size = 313053 }, + { url = "https://files.pythonhosted.org/packages/c3/a6/8ccf97a50f31adfa36917707fe39c9a0cbc24b3bbb58185577f119736cc9/contourpy-1.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:70771a461aaeb335df14deb6c97439973d253ae70660ca085eec25241137ef43", size = 352985 }, + { url = "https://files.pythonhosted.org/packages/1d/b6/7925ab9b77386143f39d9c3243fdd101621b4532eb126743201160ffa7e6/contourpy-1.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65a887a6e8c4cd0897507d814b14c54a8c2e2aa4ac9f7686292f9769fcf9a6ab", size = 323750 }, + { url = "https://files.pythonhosted.org/packages/c2/f3/20c5d1ef4f4748e52d60771b8560cf00b69d5c6368b5c2e9311bcfa2a08b/contourpy-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3859783aefa2b8355697f16642695a5b9792e7a46ab86da1118a4a23a51a33d7", size = 326246 }, + { url = "https://files.pythonhosted.org/packages/8c/e5/9dae809e7e0b2d9d70c52b3d24cba134dd3dad979eb3e5e71f5df22ed1f5/contourpy-1.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eab0f6db315fa4d70f1d8ab514e527f0366ec021ff853d7ed6a2d33605cf4b83", size = 1308728 }, + { url = "https://files.pythonhosted.org/packages/e2/4a/0058ba34aeea35c0b442ae61a4f4d4ca84d6df8f91309bc2d43bb8dd248f/contourpy-1.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d91a3ccc7fea94ca0acab82ceb77f396d50a1f67412efe4c526f5d20264e6ecd", size = 1375762 }, + { url = "https://files.pythonhosted.org/packages/09/33/7174bdfc8b7767ef2c08ed81244762d93d5c579336fc0b51ca57b33d1b80/contourpy-1.3.2-cp311-cp311-win32.whl", hash = "sha256:1c48188778d4d2f3d48e4643fb15d8608b1d01e4b4d6b0548d9b336c28fc9b6f", size = 178196 }, + { url = "https://files.pythonhosted.org/packages/5e/fe/4029038b4e1c4485cef18e480b0e2cd2d755448bb071eb9977caac80b77b/contourpy-1.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:5ebac872ba09cb8f2131c46b8739a7ff71de28a24c869bcad554477eb089a878", size = 222017 }, + { url = "https://files.pythonhosted.org/packages/34/f7/44785876384eff370c251d58fd65f6ad7f39adce4a093c934d4a67a7c6b6/contourpy-1.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4caf2bcd2969402bf77edc4cb6034c7dd7c0803213b3523f111eb7460a51b8d2", size = 271580 }, + { url = "https://files.pythonhosted.org/packages/93/3b/0004767622a9826ea3d95f0e9d98cd8729015768075d61f9fea8eeca42a8/contourpy-1.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:82199cb78276249796419fe36b7386bd8d2cc3f28b3bc19fe2454fe2e26c4c15", size = 255530 }, + { url = "https://files.pythonhosted.org/packages/e7/bb/7bd49e1f4fa805772d9fd130e0d375554ebc771ed7172f48dfcd4ca61549/contourpy-1.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:106fab697af11456fcba3e352ad50effe493a90f893fca6c2ca5c033820cea92", size = 307688 }, + { url = "https://files.pythonhosted.org/packages/fc/97/e1d5dbbfa170725ef78357a9a0edc996b09ae4af170927ba8ce977e60a5f/contourpy-1.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d14f12932a8d620e307f715857107b1d1845cc44fdb5da2bc8e850f5ceba9f87", size = 347331 }, + { url = "https://files.pythonhosted.org/packages/6f/66/e69e6e904f5ecf6901be3dd16e7e54d41b6ec6ae3405a535286d4418ffb4/contourpy-1.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:532fd26e715560721bb0d5fc7610fce279b3699b018600ab999d1be895b09415", size = 318963 }, + { url = "https://files.pythonhosted.org/packages/a8/32/b8a1c8965e4f72482ff2d1ac2cd670ce0b542f203c8e1d34e7c3e6925da7/contourpy-1.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b383144cf2d2c29f01a1e8170f50dacf0eac02d64139dcd709a8ac4eb3cfe", size = 323681 }, + { url = "https://files.pythonhosted.org/packages/30/c6/12a7e6811d08757c7162a541ca4c5c6a34c0f4e98ef2b338791093518e40/contourpy-1.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c49f73e61f1f774650a55d221803b101d966ca0c5a2d6d5e4320ec3997489441", size = 1308674 }, + { url = "https://files.pythonhosted.org/packages/2a/8a/bebe5a3f68b484d3a2b8ffaf84704b3e343ef1addea528132ef148e22b3b/contourpy-1.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3d80b2c0300583228ac98d0a927a1ba6a2ba6b8a742463c564f1d419ee5b211e", size = 1380480 }, + { url = "https://files.pythonhosted.org/packages/34/db/fcd325f19b5978fb509a7d55e06d99f5f856294c1991097534360b307cf1/contourpy-1.3.2-cp312-cp312-win32.whl", hash = "sha256:90df94c89a91b7362e1142cbee7568f86514412ab8a2c0d0fca72d7e91b62912", size = 178489 }, + { url = "https://files.pythonhosted.org/packages/01/c8/fadd0b92ffa7b5eb5949bf340a63a4a496a6930a6c37a7ba0f12acb076d6/contourpy-1.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:8c942a01d9163e2e5cfb05cb66110121b8d07ad438a17f9e766317bcb62abf73", size = 223042 }, + { url = "https://files.pythonhosted.org/packages/2e/61/5673f7e364b31e4e7ef6f61a4b5121c5f170f941895912f773d95270f3a2/contourpy-1.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:de39db2604ae755316cb5967728f4bea92685884b1e767b7c24e983ef5f771cb", size = 271630 }, + { url = "https://files.pythonhosted.org/packages/ff/66/a40badddd1223822c95798c55292844b7e871e50f6bfd9f158cb25e0bd39/contourpy-1.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f9e896f447c5c8618f1edb2bafa9a4030f22a575ec418ad70611450720b5b08", size = 255670 }, + { url = "https://files.pythonhosted.org/packages/1e/c7/cf9fdee8200805c9bc3b148f49cb9482a4e3ea2719e772602a425c9b09f8/contourpy-1.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71e2bd4a1c4188f5c2b8d274da78faab884b59df20df63c34f74aa1813c4427c", size = 306694 }, + { url = "https://files.pythonhosted.org/packages/dd/e7/ccb9bec80e1ba121efbffad7f38021021cda5be87532ec16fd96533bb2e0/contourpy-1.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de425af81b6cea33101ae95ece1f696af39446db9682a0b56daaa48cfc29f38f", size = 345986 }, + { url = "https://files.pythonhosted.org/packages/dc/49/ca13bb2da90391fa4219fdb23b078d6065ada886658ac7818e5441448b78/contourpy-1.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:977e98a0e0480d3fe292246417239d2d45435904afd6d7332d8455981c408b85", size = 318060 }, + { url = "https://files.pythonhosted.org/packages/c8/65/5245ce8c548a8422236c13ffcdcdada6a2a812c361e9e0c70548bb40b661/contourpy-1.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:434f0adf84911c924519d2b08fc10491dd282b20bdd3fa8f60fd816ea0b48841", size = 322747 }, + { url = "https://files.pythonhosted.org/packages/72/30/669b8eb48e0a01c660ead3752a25b44fdb2e5ebc13a55782f639170772f9/contourpy-1.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c66c4906cdbc50e9cba65978823e6e00b45682eb09adbb78c9775b74eb222422", size = 1308895 }, + { url = "https://files.pythonhosted.org/packages/05/5a/b569f4250decee6e8d54498be7bdf29021a4c256e77fe8138c8319ef8eb3/contourpy-1.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8b7fc0cd78ba2f4695fd0a6ad81a19e7e3ab825c31b577f384aa9d7817dc3bef", size = 1379098 }, + { url = "https://files.pythonhosted.org/packages/19/ba/b227c3886d120e60e41b28740ac3617b2f2b971b9f601c835661194579f1/contourpy-1.3.2-cp313-cp313-win32.whl", hash = "sha256:15ce6ab60957ca74cff444fe66d9045c1fd3e92c8936894ebd1f3eef2fff075f", size = 178535 }, + { url = "https://files.pythonhosted.org/packages/12/6e/2fed56cd47ca739b43e892707ae9a13790a486a3173be063681ca67d2262/contourpy-1.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e1578f7eafce927b168752ed7e22646dad6cd9bca673c60bff55889fa236ebf9", size = 223096 }, + { url = "https://files.pythonhosted.org/packages/54/4c/e76fe2a03014a7c767d79ea35c86a747e9325537a8b7627e0e5b3ba266b4/contourpy-1.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0475b1f6604896bc7c53bb070e355e9321e1bc0d381735421a2d2068ec56531f", size = 285090 }, + { url = "https://files.pythonhosted.org/packages/7b/e2/5aba47debd55d668e00baf9651b721e7733975dc9fc27264a62b0dd26eb8/contourpy-1.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c85bb486e9be652314bb5b9e2e3b0d1b2e643d5eec4992c0fbe8ac71775da739", size = 268643 }, + { url = "https://files.pythonhosted.org/packages/a1/37/cd45f1f051fe6230f751cc5cdd2728bb3a203f5619510ef11e732109593c/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:745b57db7758f3ffc05a10254edd3182a2a83402a89c00957a8e8a22f5582823", size = 310443 }, + { url = "https://files.pythonhosted.org/packages/8b/a2/36ea6140c306c9ff6dd38e3bcec80b3b018474ef4d17eb68ceecd26675f4/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:970e9173dbd7eba9b4e01aab19215a48ee5dd3f43cef736eebde064a171f89a5", size = 349865 }, + { url = "https://files.pythonhosted.org/packages/95/b7/2fc76bc539693180488f7b6cc518da7acbbb9e3b931fd9280504128bf956/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6c4639a9c22230276b7bffb6a850dfc8258a2521305e1faefe804d006b2e532", size = 321162 }, + { url = "https://files.pythonhosted.org/packages/f4/10/76d4f778458b0aa83f96e59d65ece72a060bacb20cfbee46cf6cd5ceba41/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc829960f34ba36aad4302e78eabf3ef16a3a100863f0d4eeddf30e8a485a03b", size = 327355 }, + { url = "https://files.pythonhosted.org/packages/43/a3/10cf483ea683f9f8ab096c24bad3cce20e0d1dd9a4baa0e2093c1c962d9d/contourpy-1.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d32530b534e986374fc19eaa77fcb87e8a99e5431499949b828312bdcd20ac52", size = 1307935 }, + { url = "https://files.pythonhosted.org/packages/78/73/69dd9a024444489e22d86108e7b913f3528f56cfc312b5c5727a44188471/contourpy-1.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e298e7e70cf4eb179cc1077be1c725b5fd131ebc81181bf0c03525c8abc297fd", size = 1372168 }, + { url = "https://files.pythonhosted.org/packages/0f/1b/96d586ccf1b1a9d2004dd519b25fbf104a11589abfd05484ff12199cca21/contourpy-1.3.2-cp313-cp313t-win32.whl", hash = "sha256:d0e589ae0d55204991450bb5c23f571c64fe43adaa53f93fc902a84c96f52fe1", size = 189550 }, + { url = "https://files.pythonhosted.org/packages/b0/e6/6000d0094e8a5e32ad62591c8609e269febb6e4db83a1c75ff8868b42731/contourpy-1.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:78e9253c3de756b3f6a5174d024c4835acd59eb3f8e2ca13e775dbffe1558f69", size = 238214 }, + { url = "https://files.pythonhosted.org/packages/ff/c0/91f1215d0d9f9f343e4773ba6c9b89e8c0cc7a64a6263f21139da639d848/contourpy-1.3.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5f5964cdad279256c084b69c3f412b7801e15356b16efa9d78aa974041903da0", size = 266807 }, + { url = "https://files.pythonhosted.org/packages/d4/79/6be7e90c955c0487e7712660d6cead01fa17bff98e0ea275737cc2bc8e71/contourpy-1.3.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49b65a95d642d4efa8f64ba12558fcb83407e58a2dfba9d796d77b63ccfcaff5", size = 318729 }, + { url = "https://files.pythonhosted.org/packages/87/68/7f46fb537958e87427d98a4074bcde4b67a70b04900cfc5ce29bc2f556c1/contourpy-1.3.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:8c5acb8dddb0752bf252e01a3035b21443158910ac16a3b0d20e7fed7d534ce5", size = 221791 }, ] [[package]] name = "coverage" -version = "7.8.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/19/4f/2251e65033ed2ce1e68f00f91a0294e0f80c80ae8c3ebbe2f12828c4cd53/coverage-7.8.0.tar.gz", hash = "sha256:7a3d62b3b03b4b6fd41a085f3574874cf946cb4604d2b4d3e8dca8cd570ca501", size = 811872 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/77/074d201adb8383addae5784cb8e2dac60bb62bfdf28b2b10f3a3af2fda47/coverage-7.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7ac22a0bb2c7c49f441f7a6d46c9c80d96e56f5a8bc6972529ed43c8b694e27", size = 211493 }, - { url = "https://files.pythonhosted.org/packages/a9/89/7a8efe585750fe59b48d09f871f0e0c028a7b10722b2172dfe021fa2fdd4/coverage-7.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf13d564d310c156d1c8e53877baf2993fb3073b2fc9f69790ca6a732eb4bfea", size = 211921 }, - { url = "https://files.pythonhosted.org/packages/e9/ef/96a90c31d08a3f40c49dbe897df4f1fd51fb6583821a1a1c5ee30cc8f680/coverage-7.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5761c70c017c1b0d21b0815a920ffb94a670c8d5d409d9b38857874c21f70d7", size = 244556 }, - { url = "https://files.pythonhosted.org/packages/89/97/dcd5c2ce72cee9d7b0ee8c89162c24972fb987a111b92d1a3d1d19100c61/coverage-7.8.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ff52d790c7e1628241ffbcaeb33e07d14b007b6eb00a19320c7b8a7024c040", size = 242245 }, - { url = "https://files.pythonhosted.org/packages/b2/7b/b63cbb44096141ed435843bbb251558c8e05cc835c8da31ca6ffb26d44c0/coverage-7.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d39fc4817fd67b3915256af5dda75fd4ee10621a3d484524487e33416c6f3543", size = 244032 }, - { url = "https://files.pythonhosted.org/packages/97/e3/7fa8c2c00a1ef530c2a42fa5df25a6971391f92739d83d67a4ee6dcf7a02/coverage-7.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b44674870709017e4b4036e3d0d6c17f06a0e6d4436422e0ad29b882c40697d2", size = 243679 }, - { url = "https://files.pythonhosted.org/packages/4f/b3/e0a59d8df9150c8a0c0841d55d6568f0a9195692136c44f3d21f1842c8f6/coverage-7.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8f99eb72bf27cbb167b636eb1726f590c00e1ad375002230607a844d9e9a2318", size = 241852 }, - { url = "https://files.pythonhosted.org/packages/9b/82/db347ccd57bcef150c173df2ade97976a8367a3be7160e303e43dd0c795f/coverage-7.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b571bf5341ba8c6bc02e0baeaf3b061ab993bf372d982ae509807e7f112554e9", size = 242389 }, - { url = "https://files.pythonhosted.org/packages/21/f6/3f7d7879ceb03923195d9ff294456241ed05815281f5254bc16ef71d6a20/coverage-7.8.0-cp311-cp311-win32.whl", hash = "sha256:e75a2ad7b647fd8046d58c3132d7eaf31b12d8a53c0e4b21fa9c4d23d6ee6d3c", size = 213997 }, - { url = "https://files.pythonhosted.org/packages/28/87/021189643e18ecf045dbe1e2071b2747901f229df302de01c998eeadf146/coverage-7.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:3043ba1c88b2139126fc72cb48574b90e2e0546d4c78b5299317f61b7f718b78", size = 214911 }, - { url = "https://files.pythonhosted.org/packages/aa/12/4792669473297f7973518bec373a955e267deb4339286f882439b8535b39/coverage-7.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bbb5cc845a0292e0c520656d19d7ce40e18d0e19b22cb3e0409135a575bf79fc", size = 211684 }, - { url = "https://files.pythonhosted.org/packages/be/e1/2a4ec273894000ebedd789e8f2fc3813fcaf486074f87fd1c5b2cb1c0a2b/coverage-7.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4dfd9a93db9e78666d178d4f08a5408aa3f2474ad4d0e0378ed5f2ef71640cb6", size = 211935 }, - { url = "https://files.pythonhosted.org/packages/f8/3a/7b14f6e4372786709a361729164125f6b7caf4024ce02e596c4a69bccb89/coverage-7.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f017a61399f13aa6d1039f75cd467be388d157cd81f1a119b9d9a68ba6f2830d", size = 245994 }, - { url = "https://files.pythonhosted.org/packages/54/80/039cc7f1f81dcbd01ea796d36d3797e60c106077e31fd1f526b85337d6a1/coverage-7.8.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0915742f4c82208ebf47a2b154a5334155ed9ef9fe6190674b8a46c2fb89cb05", size = 242885 }, - { url = "https://files.pythonhosted.org/packages/10/e0/dc8355f992b6cc2f9dcd5ef6242b62a3f73264893bc09fbb08bfcab18eb4/coverage-7.8.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a40fcf208e021eb14b0fac6bdb045c0e0cab53105f93ba0d03fd934c956143a", size = 245142 }, - { url = "https://files.pythonhosted.org/packages/43/1b/33e313b22cf50f652becb94c6e7dae25d8f02e52e44db37a82de9ac357e8/coverage-7.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a1f406a8e0995d654b2ad87c62caf6befa767885301f3b8f6f73e6f3c31ec3a6", size = 244906 }, - { url = "https://files.pythonhosted.org/packages/05/08/c0a8048e942e7f918764ccc99503e2bccffba1c42568693ce6955860365e/coverage-7.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:77af0f6447a582fdc7de5e06fa3757a3ef87769fbb0fdbdeba78c23049140a47", size = 243124 }, - { url = "https://files.pythonhosted.org/packages/5b/62/ea625b30623083c2aad645c9a6288ad9fc83d570f9adb913a2abdba562dd/coverage-7.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f2d32f95922927186c6dbc8bc60df0d186b6edb828d299ab10898ef3f40052fe", size = 244317 }, - { url = "https://files.pythonhosted.org/packages/62/cb/3871f13ee1130a6c8f020e2f71d9ed269e1e2124aa3374d2180ee451cee9/coverage-7.8.0-cp312-cp312-win32.whl", hash = "sha256:769773614e676f9d8e8a0980dd7740f09a6ea386d0f383db6821df07d0f08545", size = 214170 }, - { url = "https://files.pythonhosted.org/packages/88/26/69fe1193ab0bfa1eb7a7c0149a066123611baba029ebb448500abd8143f9/coverage-7.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:e5d2b9be5b0693cf21eb4ce0ec8d211efb43966f6657807f6859aab3814f946b", size = 214969 }, - { url = "https://files.pythonhosted.org/packages/f3/21/87e9b97b568e223f3438d93072479c2f36cc9b3f6b9f7094b9d50232acc0/coverage-7.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5ac46d0c2dd5820ce93943a501ac5f6548ea81594777ca585bf002aa8854cacd", size = 211708 }, - { url = "https://files.pythonhosted.org/packages/75/be/882d08b28a0d19c9c4c2e8a1c6ebe1f79c9c839eb46d4fca3bd3b34562b9/coverage-7.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:771eb7587a0563ca5bb6f622b9ed7f9d07bd08900f7589b4febff05f469bea00", size = 211981 }, - { url = "https://files.pythonhosted.org/packages/7a/1d/ce99612ebd58082fbe3f8c66f6d8d5694976c76a0d474503fa70633ec77f/coverage-7.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42421e04069fb2cbcbca5a696c4050b84a43b05392679d4068acbe65449b5c64", size = 245495 }, - { url = "https://files.pythonhosted.org/packages/dc/8d/6115abe97df98db6b2bd76aae395fcc941d039a7acd25f741312ced9a78f/coverage-7.8.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:554fec1199d93ab30adaa751db68acec2b41c5602ac944bb19187cb9a41a8067", size = 242538 }, - { url = "https://files.pythonhosted.org/packages/cb/74/2f8cc196643b15bc096d60e073691dadb3dca48418f08bc78dd6e899383e/coverage-7.8.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aaeb00761f985007b38cf463b1d160a14a22c34eb3f6a39d9ad6fc27cb73008", size = 244561 }, - { url = "https://files.pythonhosted.org/packages/22/70/c10c77cd77970ac965734fe3419f2c98665f6e982744a9bfb0e749d298f4/coverage-7.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:581a40c7b94921fffd6457ffe532259813fc68eb2bdda60fa8cc343414ce3733", size = 244633 }, - { url = "https://files.pythonhosted.org/packages/38/5a/4f7569d946a07c952688debee18c2bb9ab24f88027e3d71fd25dbc2f9dca/coverage-7.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f319bae0321bc838e205bf9e5bc28f0a3165f30c203b610f17ab5552cff90323", size = 242712 }, - { url = "https://files.pythonhosted.org/packages/bb/a1/03a43b33f50475a632a91ea8c127f7e35e53786dbe6781c25f19fd5a65f8/coverage-7.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04bfec25a8ef1c5f41f5e7e5c842f6b615599ca8ba8391ec33a9290d9d2db3a3", size = 244000 }, - { url = "https://files.pythonhosted.org/packages/6a/89/ab6c43b1788a3128e4d1b7b54214548dcad75a621f9d277b14d16a80d8a1/coverage-7.8.0-cp313-cp313-win32.whl", hash = "sha256:dd19608788b50eed889e13a5d71d832edc34fc9dfce606f66e8f9f917eef910d", size = 214195 }, - { url = "https://files.pythonhosted.org/packages/12/12/6bf5f9a8b063d116bac536a7fb594fc35cb04981654cccb4bbfea5dcdfa0/coverage-7.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:a9abbccd778d98e9c7e85038e35e91e67f5b520776781d9a1e2ee9d400869487", size = 214998 }, - { url = "https://files.pythonhosted.org/packages/2a/e6/1e9df74ef7a1c983a9c7443dac8aac37a46f1939ae3499424622e72a6f78/coverage-7.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:18c5ae6d061ad5b3e7eef4363fb27a0576012a7447af48be6c75b88494c6cf25", size = 212541 }, - { url = "https://files.pythonhosted.org/packages/04/51/c32174edb7ee49744e2e81c4b1414ac9df3dacfcb5b5f273b7f285ad43f6/coverage-7.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95aa6ae391a22bbbce1b77ddac846c98c5473de0372ba5c463480043a07bff42", size = 212767 }, - { url = "https://files.pythonhosted.org/packages/e9/8f/f454cbdb5212f13f29d4a7983db69169f1937e869a5142bce983ded52162/coverage-7.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e013b07ba1c748dacc2a80e69a46286ff145935f260eb8c72df7185bf048f502", size = 256997 }, - { url = "https://files.pythonhosted.org/packages/e6/74/2bf9e78b321216d6ee90a81e5c22f912fc428442c830c4077b4a071db66f/coverage-7.8.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d766a4f0e5aa1ba056ec3496243150698dc0481902e2b8559314368717be82b1", size = 252708 }, - { url = "https://files.pythonhosted.org/packages/92/4d/50d7eb1e9a6062bee6e2f92e78b0998848a972e9afad349b6cdde6fa9e32/coverage-7.8.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad80e6b4a0c3cb6f10f29ae4c60e991f424e6b14219d46f1e7d442b938ee68a4", size = 255046 }, - { url = "https://files.pythonhosted.org/packages/40/9e/71fb4e7402a07c4198ab44fc564d09d7d0ffca46a9fb7b0a7b929e7641bd/coverage-7.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b87eb6fc9e1bb8f98892a2458781348fa37e6925f35bb6ceb9d4afd54ba36c73", size = 256139 }, - { url = "https://files.pythonhosted.org/packages/49/1a/78d37f7a42b5beff027e807c2843185961fdae7fe23aad5a4837c93f9d25/coverage-7.8.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d1ba00ae33be84066cfbe7361d4e04dec78445b2b88bdb734d0d1cbab916025a", size = 254307 }, - { url = "https://files.pythonhosted.org/packages/58/e9/8fb8e0ff6bef5e170ee19d59ca694f9001b2ec085dc99b4f65c128bb3f9a/coverage-7.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f3c38e4e5ccbdc9198aecc766cedbb134b2d89bf64533973678dfcf07effd883", size = 255116 }, - { url = "https://files.pythonhosted.org/packages/56/b0/d968ecdbe6fe0a863de7169bbe9e8a476868959f3af24981f6a10d2b6924/coverage-7.8.0-cp313-cp313t-win32.whl", hash = "sha256:379fe315e206b14e21db5240f89dc0774bdd3e25c3c58c2c733c99eca96f1ada", size = 214909 }, - { url = "https://files.pythonhosted.org/packages/87/e9/d6b7ef9fecf42dfb418d93544af47c940aa83056c49e6021a564aafbc91f/coverage-7.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2e4b6b87bb0c846a9315e3ab4be2d52fac905100565f4b92f02c445c8799e257", size = 216068 }, - { url = "https://files.pythonhosted.org/packages/c4/f1/1da77bb4c920aa30e82fa9b6ea065da3467977c2e5e032e38e66f1c57ffd/coverage-7.8.0-pp39.pp310.pp311-none-any.whl", hash = "sha256:b8194fb8e50d556d5849753de991d390c5a1edeeba50f68e3a9253fbd8bf8ccd", size = 203443 }, - { url = "https://files.pythonhosted.org/packages/59/f1/4da7717f0063a222db253e7121bd6a56f6fb1ba439dcc36659088793347c/coverage-7.8.0-py3-none-any.whl", hash = "sha256:dbf364b4c5e7bae9250528167dfe40219b62e2d573c854d74be213e1e52069f7", size = 203435 }, +version = "7.8.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/07/998afa4a0ecdf9b1981ae05415dad2d4e7716e1b1f00abbd91691ac09ac9/coverage-7.8.2.tar.gz", hash = "sha256:a886d531373a1f6ff9fad2a2ba4a045b68467b779ae729ee0b3b10ac20033b27", size = 812759 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/4d/1ff618ee9f134d0de5cc1661582c21a65e06823f41caf801aadf18811a8e/coverage-7.8.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b99058eef42e6a8dcd135afb068b3d53aff3921ce699e127602efff9956457a9", size = 211692 }, + { url = "https://files.pythonhosted.org/packages/96/fa/c3c1b476de96f2bc7a8ca01a9f1fcb51c01c6b60a9d2c3e66194b2bdb4af/coverage-7.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5feb7f2c3e6ea94d3b877def0270dff0947b8d8c04cfa34a17be0a4dc1836879", size = 212115 }, + { url = "https://files.pythonhosted.org/packages/f7/c2/5414c5a1b286c0f3881ae5adb49be1854ac5b7e99011501f81c8c1453065/coverage-7.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:670a13249b957bb9050fab12d86acef7bf8f6a879b9d1a883799276e0d4c674a", size = 244740 }, + { url = "https://files.pythonhosted.org/packages/cd/46/1ae01912dfb06a642ef3dd9cf38ed4996fda8fe884dab8952da616f81a2b/coverage-7.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0bdc8bf760459a4a4187b452213e04d039990211f98644c7292adf1e471162b5", size = 242429 }, + { url = "https://files.pythonhosted.org/packages/06/58/38c676aec594bfe2a87c7683942e5a30224791d8df99bcc8439fde140377/coverage-7.8.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07a989c867986c2a75f158f03fdb413128aad29aca9d4dbce5fc755672d96f11", size = 244218 }, + { url = "https://files.pythonhosted.org/packages/80/0c/95b1023e881ce45006d9abc250f76c6cdab7134a1c182d9713878dfefcb2/coverage-7.8.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2db10dedeb619a771ef0e2949ccba7b75e33905de959c2643a4607bef2f3fb3a", size = 243865 }, + { url = "https://files.pythonhosted.org/packages/57/37/0ae95989285a39e0839c959fe854a3ae46c06610439350d1ab860bf020ac/coverage-7.8.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e6ea7dba4e92926b7b5f0990634b78ea02f208d04af520c73a7c876d5a8d36cb", size = 242038 }, + { url = "https://files.pythonhosted.org/packages/4d/82/40e55f7c0eb5e97cc62cbd9d0746fd24e8caf57be5a408b87529416e0c70/coverage-7.8.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ef2f22795a7aca99fc3c84393a55a53dd18ab8c93fb431004e4d8f0774150f54", size = 242567 }, + { url = "https://files.pythonhosted.org/packages/f9/35/66a51adc273433a253989f0d9cc7aa6bcdb4855382cf0858200afe578861/coverage-7.8.2-cp311-cp311-win32.whl", hash = "sha256:641988828bc18a6368fe72355df5f1703e44411adbe49bba5644b941ce6f2e3a", size = 214194 }, + { url = "https://files.pythonhosted.org/packages/f6/8f/a543121f9f5f150eae092b08428cb4e6b6d2d134152c3357b77659d2a605/coverage-7.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:8ab4a51cb39dc1933ba627e0875046d150e88478dbe22ce145a68393e9652975", size = 215109 }, + { url = "https://files.pythonhosted.org/packages/77/65/6cc84b68d4f35186463cd7ab1da1169e9abb59870c0f6a57ea6aba95f861/coverage-7.8.2-cp311-cp311-win_arm64.whl", hash = "sha256:8966a821e2083c74d88cca5b7dcccc0a3a888a596a04c0b9668a891de3a0cc53", size = 213521 }, + { url = "https://files.pythonhosted.org/packages/8d/2a/1da1ada2e3044fcd4a3254fb3576e160b8fe5b36d705c8a31f793423f763/coverage-7.8.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e2f6fe3654468d061942591aef56686131335b7a8325684eda85dacdf311356c", size = 211876 }, + { url = "https://files.pythonhosted.org/packages/70/e9/3d715ffd5b6b17a8be80cd14a8917a002530a99943cc1939ad5bb2aa74b9/coverage-7.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76090fab50610798cc05241bf83b603477c40ee87acd358b66196ab0ca44ffa1", size = 212130 }, + { url = "https://files.pythonhosted.org/packages/a0/02/fdce62bb3c21649abfd91fbdcf041fb99be0d728ff00f3f9d54d97ed683e/coverage-7.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bd0a0a5054be160777a7920b731a0570284db5142abaaf81bcbb282b8d99279", size = 246176 }, + { url = "https://files.pythonhosted.org/packages/a7/52/decbbed61e03b6ffe85cd0fea360a5e04a5a98a7423f292aae62423b8557/coverage-7.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da23ce9a3d356d0affe9c7036030b5c8f14556bd970c9b224f9c8205505e3b99", size = 243068 }, + { url = "https://files.pythonhosted.org/packages/38/6c/d0e9c0cce18faef79a52778219a3c6ee8e336437da8eddd4ab3dbd8fadff/coverage-7.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9392773cffeb8d7e042a7b15b82a414011e9d2b5fdbbd3f7e6a6b17d5e21b20", size = 245328 }, + { url = "https://files.pythonhosted.org/packages/f0/70/f703b553a2f6b6c70568c7e398ed0789d47f953d67fbba36a327714a7bca/coverage-7.8.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:876cbfd0b09ce09d81585d266c07a32657beb3eaec896f39484b631555be0fe2", size = 245099 }, + { url = "https://files.pythonhosted.org/packages/ec/fb/4cbb370dedae78460c3aacbdad9d249e853f3bc4ce5ff0e02b1983d03044/coverage-7.8.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3da9b771c98977a13fbc3830f6caa85cae6c9c83911d24cb2d218e9394259c57", size = 243314 }, + { url = "https://files.pythonhosted.org/packages/39/9f/1afbb2cb9c8699b8bc38afdce00a3b4644904e6a38c7bf9005386c9305ec/coverage-7.8.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a990f6510b3292686713bfef26d0049cd63b9c7bb17e0864f133cbfd2e6167f", size = 244489 }, + { url = "https://files.pythonhosted.org/packages/79/fa/f3e7ec7d220bff14aba7a4786ae47043770cbdceeea1803083059c878837/coverage-7.8.2-cp312-cp312-win32.whl", hash = "sha256:bf8111cddd0f2b54d34e96613e7fbdd59a673f0cf5574b61134ae75b6f5a33b8", size = 214366 }, + { url = "https://files.pythonhosted.org/packages/54/aa/9cbeade19b7e8e853e7ffc261df885d66bf3a782c71cba06c17df271f9e6/coverage-7.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:86a323a275e9e44cdf228af9b71c5030861d4d2610886ab920d9945672a81223", size = 215165 }, + { url = "https://files.pythonhosted.org/packages/c4/73/e2528bf1237d2448f882bbebaec5c3500ef07301816c5c63464b9da4d88a/coverage-7.8.2-cp312-cp312-win_arm64.whl", hash = "sha256:820157de3a589e992689ffcda8639fbabb313b323d26388d02e154164c57b07f", size = 213548 }, + { url = "https://files.pythonhosted.org/packages/1a/93/eb6400a745ad3b265bac36e8077fdffcf0268bdbbb6c02b7220b624c9b31/coverage-7.8.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ea561010914ec1c26ab4188aef8b1567272ef6de096312716f90e5baa79ef8ca", size = 211898 }, + { url = "https://files.pythonhosted.org/packages/1b/7c/bdbf113f92683024406a1cd226a199e4200a2001fc85d6a6e7e299e60253/coverage-7.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cb86337a4fcdd0e598ff2caeb513ac604d2f3da6d53df2c8e368e07ee38e277d", size = 212171 }, + { url = "https://files.pythonhosted.org/packages/91/22/594513f9541a6b88eb0dba4d5da7d71596dadef6b17a12dc2c0e859818a9/coverage-7.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26a4636ddb666971345541b59899e969f3b301143dd86b0ddbb570bd591f1e85", size = 245564 }, + { url = "https://files.pythonhosted.org/packages/1f/f4/2860fd6abeebd9f2efcfe0fd376226938f22afc80c1943f363cd3c28421f/coverage-7.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5040536cf9b13fb033f76bcb5e1e5cb3b57c4807fef37db9e0ed129c6a094257", size = 242719 }, + { url = "https://files.pythonhosted.org/packages/89/60/f5f50f61b6332451520e6cdc2401700c48310c64bc2dd34027a47d6ab4ca/coverage-7.8.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc67994df9bcd7e0150a47ef41278b9e0a0ea187caba72414b71dc590b99a108", size = 244634 }, + { url = "https://files.pythonhosted.org/packages/3b/70/7f4e919039ab7d944276c446b603eea84da29ebcf20984fb1fdf6e602028/coverage-7.8.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e6c86888fd076d9e0fe848af0a2142bf606044dc5ceee0aa9eddb56e26895a0", size = 244824 }, + { url = "https://files.pythonhosted.org/packages/26/45/36297a4c0cea4de2b2c442fe32f60c3991056c59cdc3cdd5346fbb995c97/coverage-7.8.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:684ca9f58119b8e26bef860db33524ae0365601492e86ba0b71d513f525e7050", size = 242872 }, + { url = "https://files.pythonhosted.org/packages/a4/71/e041f1b9420f7b786b1367fa2a375703889ef376e0d48de9f5723fb35f11/coverage-7.8.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8165584ddedb49204c4e18da083913bdf6a982bfb558632a79bdaadcdafd0d48", size = 244179 }, + { url = "https://files.pythonhosted.org/packages/bd/db/3c2bf49bdc9de76acf2491fc03130c4ffc51469ce2f6889d2640eb563d77/coverage-7.8.2-cp313-cp313-win32.whl", hash = "sha256:34759ee2c65362163699cc917bdb2a54114dd06d19bab860725f94ef45a3d9b7", size = 214393 }, + { url = "https://files.pythonhosted.org/packages/c6/dc/947e75d47ebbb4b02d8babb1fad4ad381410d5bc9da7cfca80b7565ef401/coverage-7.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:2f9bc608fbafaee40eb60a9a53dbfb90f53cc66d3d32c2849dc27cf5638a21e3", size = 215194 }, + { url = "https://files.pythonhosted.org/packages/90/31/a980f7df8a37eaf0dc60f932507fda9656b3a03f0abf188474a0ea188d6d/coverage-7.8.2-cp313-cp313-win_arm64.whl", hash = "sha256:9fe449ee461a3b0c7105690419d0b0aba1232f4ff6d120a9e241e58a556733f7", size = 213580 }, + { url = "https://files.pythonhosted.org/packages/8a/6a/25a37dd90f6c95f59355629417ebcb74e1c34e38bb1eddf6ca9b38b0fc53/coverage-7.8.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8369a7c8ef66bded2b6484053749ff220dbf83cba84f3398c84c51a6f748a008", size = 212734 }, + { url = "https://files.pythonhosted.org/packages/36/8b/3a728b3118988725f40950931abb09cd7f43b3c740f4640a59f1db60e372/coverage-7.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:159b81df53a5fcbc7d45dae3adad554fdbde9829a994e15227b3f9d816d00b36", size = 212959 }, + { url = "https://files.pythonhosted.org/packages/53/3c/212d94e6add3a3c3f412d664aee452045ca17a066def8b9421673e9482c4/coverage-7.8.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6fcbbd35a96192d042c691c9e0c49ef54bd7ed865846a3c9d624c30bb67ce46", size = 257024 }, + { url = "https://files.pythonhosted.org/packages/a4/40/afc03f0883b1e51bbe804707aae62e29c4e8c8bbc365c75e3e4ddeee9ead/coverage-7.8.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05364b9cc82f138cc86128dc4e2e1251c2981a2218bfcd556fe6b0fbaa3501be", size = 252867 }, + { url = "https://files.pythonhosted.org/packages/18/a2/3699190e927b9439c6ded4998941a3c1d6fa99e14cb28d8536729537e307/coverage-7.8.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46d532db4e5ff3979ce47d18e2fe8ecad283eeb7367726da0e5ef88e4fe64740", size = 255096 }, + { url = "https://files.pythonhosted.org/packages/b4/06/16e3598b9466456b718eb3e789457d1a5b8bfb22e23b6e8bbc307df5daf0/coverage-7.8.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4000a31c34932e7e4fa0381a3d6deb43dc0c8f458e3e7ea6502e6238e10be625", size = 256276 }, + { url = "https://files.pythonhosted.org/packages/a7/d5/4b5a120d5d0223050a53d2783c049c311eea1709fa9de12d1c358e18b707/coverage-7.8.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:43ff5033d657cd51f83015c3b7a443287250dc14e69910577c3e03bd2e06f27b", size = 254478 }, + { url = "https://files.pythonhosted.org/packages/ba/85/f9ecdb910ecdb282b121bfcaa32fa8ee8cbd7699f83330ee13ff9bbf1a85/coverage-7.8.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94316e13f0981cbbba132c1f9f365cac1d26716aaac130866ca812006f662199", size = 255255 }, + { url = "https://files.pythonhosted.org/packages/50/63/2d624ac7d7ccd4ebbd3c6a9eba9d7fc4491a1226071360d59dd84928ccb2/coverage-7.8.2-cp313-cp313t-win32.whl", hash = "sha256:3f5673888d3676d0a745c3d0e16da338c5eea300cb1f4ada9c872981265e76d8", size = 215109 }, + { url = "https://files.pythonhosted.org/packages/22/5e/7053b71462e970e869111c1853afd642212568a350eba796deefdfbd0770/coverage-7.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:2c08b05ee8d7861e45dc5a2cc4195c8c66dca5ac613144eb6ebeaff2d502e73d", size = 216268 }, + { url = "https://files.pythonhosted.org/packages/07/69/afa41aa34147655543dbe96994f8a246daf94b361ccf5edfd5df62ce066a/coverage-7.8.2-cp313-cp313t-win_arm64.whl", hash = "sha256:1e1448bb72b387755e1ff3ef1268a06617afd94188164960dba8d0245a46004b", size = 214071 }, + { url = "https://files.pythonhosted.org/packages/69/2f/572b29496d8234e4a7773200dd835a0d32d9e171f2d974f3fe04a9dbc271/coverage-7.8.2-pp39.pp310.pp311-none-any.whl", hash = "sha256:ec455eedf3ba0bbdf8f5a570012617eb305c63cb9f03428d39bf544cb2b94837", size = 203636 }, + { url = "https://files.pythonhosted.org/packages/a0/1a/0b9c32220ad694d66062f571cc5cedfa9997b64a591e8a500bb63de1bd40/coverage-7.8.2-py3-none-any.whl", hash = "sha256:726f32ee3713f7359696331a18daf0c3b3a70bb0ae71141b9d3c52be7c595e32", size = 203623 }, ] [package.optional-dependencies] @@ -660,46 +670,48 @@ wheels = [ [[package]] name = "cryptography" -version = "44.0.2" +version = "45.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cd/25/4ce80c78963834b8a9fd1cc1266be5ed8d1840785c0f2e1b73b8d128d505/cryptography-44.0.2.tar.gz", hash = "sha256:c63454aa261a0cf0c5b4718349629793e9e634993538db841165b3df74f37ec0", size = 710807 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/92/ef/83e632cfa801b221570c5f58c0369db6fa6cef7d9ff859feab1aae1a8a0f/cryptography-44.0.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:efcfe97d1b3c79e486554efddeb8f6f53a4cdd4cf6086642784fa31fc384e1d7", size = 6676361 }, - { url = "https://files.pythonhosted.org/packages/30/ec/7ea7c1e4c8fc8329506b46c6c4a52e2f20318425d48e0fe597977c71dbce/cryptography-44.0.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29ecec49f3ba3f3849362854b7253a9f59799e3763b0c9d0826259a88efa02f1", size = 3952350 }, - { url = "https://files.pythonhosted.org/packages/27/61/72e3afdb3c5ac510330feba4fc1faa0fe62e070592d6ad00c40bb69165e5/cryptography-44.0.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc821e161ae88bfe8088d11bb39caf2916562e0a2dc7b6d56714a48b784ef0bb", size = 4166572 }, - { url = "https://files.pythonhosted.org/packages/26/e4/ba680f0b35ed4a07d87f9e98f3ebccb05091f3bf6b5a478b943253b3bbd5/cryptography-44.0.2-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:3c00b6b757b32ce0f62c574b78b939afab9eecaf597c4d624caca4f9e71e7843", size = 3958124 }, - { url = "https://files.pythonhosted.org/packages/9c/e8/44ae3e68c8b6d1cbc59040288056df2ad7f7f03bbcaca6b503c737ab8e73/cryptography-44.0.2-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7bdcd82189759aba3816d1f729ce42ffded1ac304c151d0a8e89b9996ab863d5", size = 3678122 }, - { url = "https://files.pythonhosted.org/packages/27/7b/664ea5e0d1eab511a10e480baf1c5d3e681c7d91718f60e149cec09edf01/cryptography-44.0.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:4973da6ca3db4405c54cd0b26d328be54c7747e89e284fcff166132eb7bccc9c", size = 4191831 }, - { url = "https://files.pythonhosted.org/packages/2a/07/79554a9c40eb11345e1861f46f845fa71c9e25bf66d132e123d9feb8e7f9/cryptography-44.0.2-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4e389622b6927d8133f314949a9812972711a111d577a5d1f4bee5e58736b80a", size = 3960583 }, - { url = "https://files.pythonhosted.org/packages/bb/6d/858e356a49a4f0b591bd6789d821427de18432212e137290b6d8a817e9bf/cryptography-44.0.2-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:f514ef4cd14bb6fb484b4a60203e912cfcb64f2ab139e88c2274511514bf7308", size = 4191753 }, - { url = "https://files.pythonhosted.org/packages/b2/80/62df41ba4916067fa6b125aa8c14d7e9181773f0d5d0bd4dcef580d8b7c6/cryptography-44.0.2-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1bc312dfb7a6e5d66082c87c34c8a62176e684b6fe3d90fcfe1568de675e6688", size = 4079550 }, - { url = "https://files.pythonhosted.org/packages/f3/cd/2558cc08f7b1bb40683f99ff4327f8dcfc7de3affc669e9065e14824511b/cryptography-44.0.2-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b721b8b4d948b218c88cb8c45a01793483821e709afe5f622861fc6182b20a7", size = 4298367 }, - { url = "https://files.pythonhosted.org/packages/71/59/94ccc74788945bc3bd4cf355d19867e8057ff5fdbcac781b1ff95b700fb1/cryptography-44.0.2-cp37-abi3-win32.whl", hash = "sha256:51e4de3af4ec3899d6d178a8c005226491c27c4ba84101bfb59c901e10ca9f79", size = 2772843 }, - { url = "https://files.pythonhosted.org/packages/ca/2c/0d0bbaf61ba05acb32f0841853cfa33ebb7a9ab3d9ed8bb004bd39f2da6a/cryptography-44.0.2-cp37-abi3-win_amd64.whl", hash = "sha256:c505d61b6176aaf982c5717ce04e87da5abc9a36a5b39ac03905c4aafe8de7aa", size = 3209057 }, - { url = "https://files.pythonhosted.org/packages/9e/be/7a26142e6d0f7683d8a382dd963745e65db895a79a280a30525ec92be890/cryptography-44.0.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8e0ddd63e6bf1161800592c71ac794d3fb8001f2caebe0966e77c5234fa9efc3", size = 6677789 }, - { url = "https://files.pythonhosted.org/packages/06/88/638865be7198a84a7713950b1db7343391c6066a20e614f8fa286eb178ed/cryptography-44.0.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81276f0ea79a208d961c433a947029e1a15948966658cf6710bbabb60fcc2639", size = 3951919 }, - { url = "https://files.pythonhosted.org/packages/d7/fc/99fe639bcdf58561dfad1faa8a7369d1dc13f20acd78371bb97a01613585/cryptography-44.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a1e657c0f4ea2a23304ee3f964db058c9e9e635cc7019c4aa21c330755ef6fd", size = 4167812 }, - { url = "https://files.pythonhosted.org/packages/53/7b/aafe60210ec93d5d7f552592a28192e51d3c6b6be449e7fd0a91399b5d07/cryptography-44.0.2-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6210c05941994290f3f7f175a4a57dbbb2afd9273657614c506d5976db061181", size = 3958571 }, - { url = "https://files.pythonhosted.org/packages/16/32/051f7ce79ad5a6ef5e26a92b37f172ee2d6e1cce09931646eef8de1e9827/cryptography-44.0.2-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1c3572526997b36f245a96a2b1713bf79ce99b271bbcf084beb6b9b075f29ea", size = 3679832 }, - { url = "https://files.pythonhosted.org/packages/78/2b/999b2a1e1ba2206f2d3bca267d68f350beb2b048a41ea827e08ce7260098/cryptography-44.0.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b042d2a275c8cee83a4b7ae30c45a15e6a4baa65a179a0ec2d78ebb90e4f6699", size = 4193719 }, - { url = "https://files.pythonhosted.org/packages/72/97/430e56e39a1356e8e8f10f723211a0e256e11895ef1a135f30d7d40f2540/cryptography-44.0.2-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:d03806036b4f89e3b13b6218fefea8d5312e450935b1a2d55f0524e2ed7c59d9", size = 3960852 }, - { url = "https://files.pythonhosted.org/packages/89/33/c1cf182c152e1d262cac56850939530c05ca6c8d149aa0dcee490b417e99/cryptography-44.0.2-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:c7362add18b416b69d58c910caa217f980c5ef39b23a38a0880dfd87bdf8cd23", size = 4193906 }, - { url = "https://files.pythonhosted.org/packages/e1/99/87cf26d4f125380dc674233971069bc28d19b07f7755b29861570e513650/cryptography-44.0.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:8cadc6e3b5a1f144a039ea08a0bdb03a2a92e19c46be3285123d32029f40a922", size = 4081572 }, - { url = "https://files.pythonhosted.org/packages/b3/9f/6a3e0391957cc0c5f84aef9fbdd763035f2b52e998a53f99345e3ac69312/cryptography-44.0.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6f101b1f780f7fc613d040ca4bdf835c6ef3b00e9bd7125a4255ec574c7916e4", size = 4298631 }, - { url = "https://files.pythonhosted.org/packages/e2/a5/5bc097adb4b6d22a24dea53c51f37e480aaec3465285c253098642696423/cryptography-44.0.2-cp39-abi3-win32.whl", hash = "sha256:3dc62975e31617badc19a906481deacdeb80b4bb454394b4098e3f2525a488c5", size = 2773792 }, - { url = "https://files.pythonhosted.org/packages/33/cf/1f7649b8b9a3543e042d3f348e398a061923ac05b507f3f4d95f11938aa9/cryptography-44.0.2-cp39-abi3-win_amd64.whl", hash = "sha256:5f6f90b72d8ccadb9c6e311c775c8305381db88374c65fa1a68250aa8a9cb3a6", size = 3210957 }, - { url = "https://files.pythonhosted.org/packages/d6/d7/f30e75a6aa7d0f65031886fa4a1485c2fbfe25a1896953920f6a9cfe2d3b/cryptography-44.0.2-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:909c97ab43a9c0c0b0ada7a1281430e4e5ec0458e6d9244c0e821bbf152f061d", size = 3887513 }, - { url = "https://files.pythonhosted.org/packages/9c/b4/7a494ce1032323ca9db9a3661894c66e0d7142ad2079a4249303402d8c71/cryptography-44.0.2-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:96e7a5e9d6e71f9f4fca8eebfd603f8e86c5225bb18eb621b2c1e50b290a9471", size = 4107432 }, - { url = "https://files.pythonhosted.org/packages/45/f8/6b3ec0bc56123b344a8d2b3264a325646d2dcdbdd9848b5e6f3d37db90b3/cryptography-44.0.2-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:d1b3031093a366ac767b3feb8bcddb596671b3aaff82d4050f984da0c248b615", size = 3891421 }, - { url = "https://files.pythonhosted.org/packages/57/ff/f3b4b2d007c2a646b0f69440ab06224f9cf37a977a72cdb7b50632174e8a/cryptography-44.0.2-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:04abd71114848aa25edb28e225ab5f268096f44cf0127f3d36975bdf1bdf3390", size = 4107081 }, +sdist = { url = "https://files.pythonhosted.org/packages/13/1f/9fa001e74a1993a9cadd2333bb889e50c66327b8594ac538ab8a04f915b7/cryptography-45.0.3.tar.gz", hash = "sha256:ec21313dd335c51d7877baf2972569f40a4291b76a0ce51391523ae358d05899", size = 744738 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/b2/2345dc595998caa6f68adf84e8f8b50d18e9fc4638d32b22ea8daedd4b7a/cryptography-45.0.3-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:7573d9eebaeceeb55285205dbbb8753ac1e962af3d9640791d12b36864065e71", size = 7056239 }, + { url = "https://files.pythonhosted.org/packages/71/3d/ac361649a0bfffc105e2298b720d8b862330a767dab27c06adc2ddbef96a/cryptography-45.0.3-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d377dde61c5d67eb4311eace661c3efda46c62113ff56bf05e2d679e02aebb5b", size = 4205541 }, + { url = "https://files.pythonhosted.org/packages/70/3e/c02a043750494d5c445f769e9c9f67e550d65060e0bfce52d91c1362693d/cryptography-45.0.3-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fae1e637f527750811588e4582988932c222f8251f7b7ea93739acb624e1487f", size = 4433275 }, + { url = "https://files.pythonhosted.org/packages/40/7a/9af0bfd48784e80eef3eb6fd6fde96fe706b4fc156751ce1b2b965dada70/cryptography-45.0.3-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ca932e11218bcc9ef812aa497cdf669484870ecbcf2d99b765d6c27a86000942", size = 4209173 }, + { url = "https://files.pythonhosted.org/packages/31/5f/d6f8753c8708912df52e67969e80ef70b8e8897306cd9eb8b98201f8c184/cryptography-45.0.3-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af3f92b1dc25621f5fad065288a44ac790c5798e986a34d393ab27d2b27fcff9", size = 3898150 }, + { url = "https://files.pythonhosted.org/packages/8b/50/f256ab79c671fb066e47336706dc398c3b1e125f952e07d54ce82cf4011a/cryptography-45.0.3-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2f8f8f0b73b885ddd7f3d8c2b2234a7d3ba49002b0223f58cfde1bedd9563c56", size = 4466473 }, + { url = "https://files.pythonhosted.org/packages/62/e7/312428336bb2df0848d0768ab5a062e11a32d18139447a76dfc19ada8eed/cryptography-45.0.3-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9cc80ce69032ffa528b5e16d217fa4d8d4bb7d6ba8659c1b4d74a1b0f4235fca", size = 4211890 }, + { url = "https://files.pythonhosted.org/packages/e7/53/8a130e22c1e432b3c14896ec5eb7ac01fb53c6737e1d705df7e0efb647c6/cryptography-45.0.3-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:c824c9281cb628015bfc3c59335163d4ca0540d49de4582d6c2637312907e4b1", size = 4466300 }, + { url = "https://files.pythonhosted.org/packages/ba/75/6bb6579688ef805fd16a053005fce93944cdade465fc92ef32bbc5c40681/cryptography-45.0.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5833bb4355cb377ebd880457663a972cd044e7f49585aee39245c0d592904578", size = 4332483 }, + { url = "https://files.pythonhosted.org/packages/2f/11/2538f4e1ce05c6c4f81f43c1ef2bd6de7ae5e24ee284460ff6c77e42ca77/cryptography-45.0.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:9bb5bf55dcb69f7067d80354d0a348368da907345a2c448b0babc4215ccd3497", size = 4573714 }, + { url = "https://files.pythonhosted.org/packages/f5/bb/e86e9cf07f73a98d84a4084e8fd420b0e82330a901d9cac8149f994c3417/cryptography-45.0.3-cp311-abi3-win32.whl", hash = "sha256:3ad69eeb92a9de9421e1f6685e85a10fbcfb75c833b42cc9bc2ba9fb00da4710", size = 2934752 }, + { url = "https://files.pythonhosted.org/packages/c7/75/063bc9ddc3d1c73e959054f1fc091b79572e716ef74d6caaa56e945b4af9/cryptography-45.0.3-cp311-abi3-win_amd64.whl", hash = "sha256:97787952246a77d77934d41b62fb1b6f3581d83f71b44796a4158d93b8f5c490", size = 3412465 }, + { url = "https://files.pythonhosted.org/packages/71/9b/04ead6015229a9396890d7654ee35ef630860fb42dc9ff9ec27f72157952/cryptography-45.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:c92519d242703b675ccefd0f0562eb45e74d438e001f8ab52d628e885751fb06", size = 7031892 }, + { url = "https://files.pythonhosted.org/packages/46/c7/c7d05d0e133a09fc677b8a87953815c522697bdf025e5cac13ba419e7240/cryptography-45.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5edcb90da1843df85292ef3a313513766a78fbbb83f584a5a58fb001a5a9d57", size = 4196181 }, + { url = "https://files.pythonhosted.org/packages/08/7a/6ad3aa796b18a683657cef930a986fac0045417e2dc428fd336cfc45ba52/cryptography-45.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38deed72285c7ed699864f964a3f4cf11ab3fb38e8d39cfcd96710cd2b5bb716", size = 4423370 }, + { url = "https://files.pythonhosted.org/packages/4f/58/ec1461bfcb393525f597ac6a10a63938d18775b7803324072974b41a926b/cryptography-45.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5555365a50efe1f486eed6ac7062c33b97ccef409f5970a0b6f205a7cfab59c8", size = 4197839 }, + { url = "https://files.pythonhosted.org/packages/d4/3d/5185b117c32ad4f40846f579369a80e710d6146c2baa8ce09d01612750db/cryptography-45.0.3-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9e4253ed8f5948a3589b3caee7ad9a5bf218ffd16869c516535325fece163dcc", size = 3886324 }, + { url = "https://files.pythonhosted.org/packages/67/85/caba91a57d291a2ad46e74016d1f83ac294f08128b26e2a81e9b4f2d2555/cryptography-45.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cfd84777b4b6684955ce86156cfb5e08d75e80dc2585e10d69e47f014f0a5342", size = 4450447 }, + { url = "https://files.pythonhosted.org/packages/ae/d1/164e3c9d559133a38279215c712b8ba38e77735d3412f37711b9f8f6f7e0/cryptography-45.0.3-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:a2b56de3417fd5f48773ad8e91abaa700b678dc7fe1e0c757e1ae340779acf7b", size = 4200576 }, + { url = "https://files.pythonhosted.org/packages/71/7a/e002d5ce624ed46dfc32abe1deff32190f3ac47ede911789ee936f5a4255/cryptography-45.0.3-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:57a6500d459e8035e813bd8b51b671977fb149a8c95ed814989da682314d0782", size = 4450308 }, + { url = "https://files.pythonhosted.org/packages/87/ad/3fbff9c28cf09b0a71e98af57d74f3662dea4a174b12acc493de00ea3f28/cryptography-45.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f22af3c78abfbc7cbcdf2c55d23c3e022e1a462ee2481011d518c7fb9c9f3d65", size = 4325125 }, + { url = "https://files.pythonhosted.org/packages/f5/b4/51417d0cc01802304c1984d76e9592f15e4801abd44ef7ba657060520bf0/cryptography-45.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:232954730c362638544758a8160c4ee1b832dc011d2c41a306ad8f7cccc5bb0b", size = 4560038 }, + { url = "https://files.pythonhosted.org/packages/80/38/d572f6482d45789a7202fb87d052deb7a7b136bf17473ebff33536727a2c/cryptography-45.0.3-cp37-abi3-win32.whl", hash = "sha256:cb6ab89421bc90e0422aca911c69044c2912fc3debb19bb3c1bfe28ee3dff6ab", size = 2924070 }, + { url = "https://files.pythonhosted.org/packages/91/5a/61f39c0ff4443651cc64e626fa97ad3099249152039952be8f344d6b0c86/cryptography-45.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:d54ae41e6bd70ea23707843021c778f151ca258081586f0cfa31d936ae43d1b2", size = 3395005 }, + { url = "https://files.pythonhosted.org/packages/e7/d4/58a246342093a66af8935d6aa59f790cbb4731adae3937b538d054bdc2f9/cryptography-45.0.3-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:edd6d51869beb7f0d472e902ef231a9b7689508e83880ea16ca3311a00bf5ce7", size = 3589802 }, + { url = "https://files.pythonhosted.org/packages/96/61/751ebea58c87b5be533c429f01996050a72c7283b59eee250275746632ea/cryptography-45.0.3-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:555e5e2d3a53b4fabeca32835878b2818b3f23966a4efb0d566689777c5a12c8", size = 4146964 }, + { url = "https://files.pythonhosted.org/packages/8d/01/28c90601b199964de383da0b740b5156f5d71a1da25e7194fdf793d373ef/cryptography-45.0.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:25286aacb947286620a31f78f2ed1a32cded7be5d8b729ba3fb2c988457639e4", size = 4388103 }, + { url = "https://files.pythonhosted.org/packages/3d/ec/cd892180b9e42897446ef35c62442f5b8b039c3d63a05f618aa87ec9ebb5/cryptography-45.0.3-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:050ce5209d5072472971e6efbfc8ec5a8f9a841de5a4db0ebd9c2e392cb81972", size = 4150031 }, + { url = "https://files.pythonhosted.org/packages/db/d4/22628c2dedd99289960a682439c6d3aa248dff5215123ead94ac2d82f3f5/cryptography-45.0.3-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:dc10ec1e9f21f33420cc05214989544727e776286c1c16697178978327b95c9c", size = 4387389 }, + { url = "https://files.pythonhosted.org/packages/39/ec/ba3961abbf8ecb79a3586a4ff0ee08c9d7a9938b4312fb2ae9b63f48a8ba/cryptography-45.0.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:9eda14f049d7f09c2e8fb411dda17dd6b16a3c76a1de5e249188a32aeb92de19", size = 3337432 }, ] [[package]] name = "dask" -version = "2025.3.0" +version = "2025.5.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, @@ -711,9 +723,9 @@ dependencies = [ { name = "pyyaml" }, { name = "toolz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c3/f1/b4d8ccb5010ecba58a1799cb3c6b7ef5ed0d7d2add53adc1fc0d0ace56fe/dask-2025.3.0.tar.gz", hash = "sha256:322834f44ebc24abeb564c56ccb817c97d6e7af6be71ad0ad96b78b51f2e0e85", size = 10928728 } +sdist = { url = "https://files.pythonhosted.org/packages/3d/29/05feb8e2531c46d763547c66b7f5deb39b53d99b3be1b4ddddbd1cec6567/dask-2025.5.1.tar.gz", hash = "sha256:979d9536549de0e463f4cab8a8c66c3a2ef55791cd740d07d9bf58fab1d1076a", size = 10969324 } wheels = [ - { url = "https://files.pythonhosted.org/packages/bd/8a/3609033a4bfd7c9b3e8a4e8a5d6e318dfc06ab2e2d3b5cb0e01a60458858/dask-2025.3.0-py3-none-any.whl", hash = "sha256:b5d72bb33788904a218fd7da1850238517592358ecc79c30bb5c188a71df506d", size = 1437133 }, + { url = "https://files.pythonhosted.org/packages/38/30/53b0844a7a4c6b041b111b24ca15cc9b8661a86fe1f6aaeb2d0d7f0fb1f2/dask-2025.5.1-py3-none-any.whl", hash = "sha256:3b85fdaa5f6f989dde49da6008415b1ae996985ebdfb1e40de2c997d9010371d", size = 1474226 }, ] [[package]] @@ -769,7 +781,7 @@ wheels = [ [[package]] name = "distributed" -version = "2025.3.0" +version = "2025.5.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, @@ -788,9 +800,9 @@ dependencies = [ { name = "urllib3" }, { name = "zict" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2d/24/161ef76cdf39f38b4092ceae233f02f8eb673b2ef3c3f0d478f479e28c30/distributed-2025.3.0.tar.gz", hash = "sha256:84a68c91db2a106c752ca7845fba8cd92ad4f3545c0fb2d9b6dec0f44b225539", size = 1112159 } +sdist = { url = "https://files.pythonhosted.org/packages/29/ba/45950f405d023a520a4d10753ef40209a465b86c8fdc131236ec29bcb15c/distributed-2025.5.1.tar.gz", hash = "sha256:cf1d62a2c17a0a9fc1544bd10bb7afd39f22f24aaa9e3df3209c44d2cfb16703", size = 1107874 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e4/f1/196d28df38200133574922a3fa20b58629bb11cdabe185cbd9943d6fd371/distributed-2025.3.0-py3-none-any.whl", hash = "sha256:ebdacd181873b39bc30185857a5a856f051efaaf42ef2a8f507708857acdc6a9", size = 1018811 }, + { url = "https://files.pythonhosted.org/packages/25/65/89601dcc7383f0e5109e59eab90677daa9abb260d821570cd6089c8894bf/distributed-2025.5.1-py3-none-any.whl", hash = "sha256:74782b965ddb24ce59c6441fa777e944b5962d82325cc41f228537b59bb7fbbe", size = 1014789 }, ] [[package]] @@ -879,56 +891,79 @@ wheels = [ [[package]] name = "frozenlist" -version = "1.5.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8f/ed/0f4cec13a93c02c47ec32d81d11c0c1efbadf4a471e3f3ce7cad366cbbd3/frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817", size = 39930 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/79/43/0bed28bf5eb1c9e4301003b74453b8e7aa85fb293b31dde352aac528dafc/frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30", size = 94987 }, - { url = "https://files.pythonhosted.org/packages/bb/bf/b74e38f09a246e8abbe1e90eb65787ed745ccab6eaa58b9c9308e052323d/frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5", size = 54584 }, - { url = "https://files.pythonhosted.org/packages/2c/31/ab01375682f14f7613a1ade30149f684c84f9b8823a4391ed950c8285656/frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778", size = 52499 }, - { url = "https://files.pythonhosted.org/packages/98/a8/d0ac0b9276e1404f58fec3ab6e90a4f76b778a49373ccaf6a563f100dfbc/frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a", size = 276357 }, - { url = "https://files.pythonhosted.org/packages/ad/c9/c7761084fa822f07dac38ac29f841d4587570dd211e2262544aa0b791d21/frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869", size = 287516 }, - { url = "https://files.pythonhosted.org/packages/a1/ff/cd7479e703c39df7bdab431798cef89dc75010d8aa0ca2514c5b9321db27/frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d", size = 283131 }, - { url = "https://files.pythonhosted.org/packages/59/a0/370941beb47d237eca4fbf27e4e91389fd68699e6f4b0ebcc95da463835b/frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45", size = 261320 }, - { url = "https://files.pythonhosted.org/packages/b8/5f/c10123e8d64867bc9b4f2f510a32042a306ff5fcd7e2e09e5ae5100ee333/frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d", size = 274877 }, - { url = "https://files.pythonhosted.org/packages/fa/79/38c505601ae29d4348f21706c5d89755ceded02a745016ba2f58bd5f1ea6/frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3", size = 269592 }, - { url = "https://files.pythonhosted.org/packages/19/e2/39f3a53191b8204ba9f0bb574b926b73dd2efba2a2b9d2d730517e8f7622/frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a", size = 265934 }, - { url = "https://files.pythonhosted.org/packages/d5/c9/3075eb7f7f3a91f1a6b00284af4de0a65a9ae47084930916f5528144c9dd/frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9", size = 283859 }, - { url = "https://files.pythonhosted.org/packages/05/f5/549f44d314c29408b962fa2b0e69a1a67c59379fb143b92a0a065ffd1f0f/frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2", size = 287560 }, - { url = "https://files.pythonhosted.org/packages/9d/f8/cb09b3c24a3eac02c4c07a9558e11e9e244fb02bf62c85ac2106d1eb0c0b/frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf", size = 277150 }, - { url = "https://files.pythonhosted.org/packages/37/48/38c2db3f54d1501e692d6fe058f45b6ad1b358d82cd19436efab80cfc965/frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942", size = 45244 }, - { url = "https://files.pythonhosted.org/packages/ca/8c/2ddffeb8b60a4bce3b196c32fcc30d8830d4615e7b492ec2071da801b8ad/frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d", size = 51634 }, - { url = "https://files.pythonhosted.org/packages/79/73/fa6d1a96ab7fd6e6d1c3500700963eab46813847f01ef0ccbaa726181dd5/frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21", size = 94026 }, - { url = "https://files.pythonhosted.org/packages/ab/04/ea8bf62c8868b8eada363f20ff1b647cf2e93377a7b284d36062d21d81d1/frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d", size = 54150 }, - { url = "https://files.pythonhosted.org/packages/d0/9a/8e479b482a6f2070b26bda572c5e6889bb3ba48977e81beea35b5ae13ece/frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e", size = 51927 }, - { url = "https://files.pythonhosted.org/packages/e3/12/2aad87deb08a4e7ccfb33600871bbe8f0e08cb6d8224371387f3303654d7/frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a", size = 282647 }, - { url = "https://files.pythonhosted.org/packages/77/f2/07f06b05d8a427ea0060a9cef6e63405ea9e0d761846b95ef3fb3be57111/frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a", size = 289052 }, - { url = "https://files.pythonhosted.org/packages/bd/9f/8bf45a2f1cd4aa401acd271b077989c9267ae8463e7c8b1eb0d3f561b65e/frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee", size = 291719 }, - { url = "https://files.pythonhosted.org/packages/41/d1/1f20fd05a6c42d3868709b7604c9f15538a29e4f734c694c6bcfc3d3b935/frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6", size = 267433 }, - { url = "https://files.pythonhosted.org/packages/af/f2/64b73a9bb86f5a89fb55450e97cd5c1f84a862d4ff90d9fd1a73ab0f64a5/frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e", size = 283591 }, - { url = "https://files.pythonhosted.org/packages/29/e2/ffbb1fae55a791fd6c2938dd9ea779509c977435ba3940b9f2e8dc9d5316/frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9", size = 273249 }, - { url = "https://files.pythonhosted.org/packages/2e/6e/008136a30798bb63618a114b9321b5971172a5abddff44a100c7edc5ad4f/frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039", size = 271075 }, - { url = "https://files.pythonhosted.org/packages/ae/f0/4e71e54a026b06724cec9b6c54f0b13a4e9e298cc8db0f82ec70e151f5ce/frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784", size = 285398 }, - { url = "https://files.pythonhosted.org/packages/4d/36/70ec246851478b1c0b59f11ef8ade9c482ff447c1363c2bd5fad45098b12/frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631", size = 294445 }, - { url = "https://files.pythonhosted.org/packages/37/e0/47f87544055b3349b633a03c4d94b405956cf2437f4ab46d0928b74b7526/frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f", size = 280569 }, - { url = "https://files.pythonhosted.org/packages/f9/7c/490133c160fb6b84ed374c266f42800e33b50c3bbab1652764e6e1fc498a/frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8", size = 44721 }, - { url = "https://files.pythonhosted.org/packages/b1/56/4e45136ffc6bdbfa68c29ca56ef53783ef4c2fd395f7cbf99a2624aa9aaa/frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f", size = 51329 }, - { url = "https://files.pythonhosted.org/packages/da/3b/915f0bca8a7ea04483622e84a9bd90033bab54bdf485479556c74fd5eaf5/frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953", size = 91538 }, - { url = "https://files.pythonhosted.org/packages/c7/d1/a7c98aad7e44afe5306a2b068434a5830f1470675f0e715abb86eb15f15b/frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0", size = 52849 }, - { url = "https://files.pythonhosted.org/packages/3a/c8/76f23bf9ab15d5f760eb48701909645f686f9c64fbb8982674c241fbef14/frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2", size = 50583 }, - { url = "https://files.pythonhosted.org/packages/1f/22/462a3dd093d11df623179d7754a3b3269de3b42de2808cddef50ee0f4f48/frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f", size = 265636 }, - { url = "https://files.pythonhosted.org/packages/80/cf/e075e407fc2ae7328155a1cd7e22f932773c8073c1fc78016607d19cc3e5/frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608", size = 270214 }, - { url = "https://files.pythonhosted.org/packages/a1/58/0642d061d5de779f39c50cbb00df49682832923f3d2ebfb0fedf02d05f7f/frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b", size = 273905 }, - { url = "https://files.pythonhosted.org/packages/ab/66/3fe0f5f8f2add5b4ab7aa4e199f767fd3b55da26e3ca4ce2cc36698e50c4/frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840", size = 250542 }, - { url = "https://files.pythonhosted.org/packages/f6/b8/260791bde9198c87a465224e0e2bb62c4e716f5d198fc3a1dacc4895dbd1/frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439", size = 267026 }, - { url = "https://files.pythonhosted.org/packages/2e/a4/3d24f88c527f08f8d44ade24eaee83b2627793fa62fa07cbb7ff7a2f7d42/frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de", size = 257690 }, - { url = "https://files.pythonhosted.org/packages/de/9a/d311d660420b2beeff3459b6626f2ab4fb236d07afbdac034a4371fe696e/frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641", size = 253893 }, - { url = "https://files.pythonhosted.org/packages/c6/23/e491aadc25b56eabd0f18c53bb19f3cdc6de30b2129ee0bc39cd387cd560/frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e", size = 267006 }, - { url = "https://files.pythonhosted.org/packages/08/c4/ab918ce636a35fb974d13d666dcbe03969592aeca6c3ab3835acff01f79c/frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9", size = 276157 }, - { url = "https://files.pythonhosted.org/packages/c0/29/3b7a0bbbbe5a34833ba26f686aabfe982924adbdcafdc294a7a129c31688/frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03", size = 264642 }, - { url = "https://files.pythonhosted.org/packages/ab/42/0595b3dbffc2e82d7fe658c12d5a5bafcd7516c6bf2d1d1feb5387caa9c1/frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c", size = 44914 }, - { url = "https://files.pythonhosted.org/packages/17/c4/b7db1206a3fea44bf3b838ca61deb6f74424a8a5db1dd53ecb21da669be6/frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28", size = 51167 }, - { url = "https://files.pythonhosted.org/packages/c6/c8/a5be5b7550c10858fcf9b0ea054baccab474da77d37f1e828ce043a3a5d4/frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3", size = 11901 }, +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/f4/d744cba2da59b5c1d88823cf9e8a6c74e4659e2b27604ed973be2a0bf5ab/frozenlist-1.6.0.tar.gz", hash = "sha256:b99655c32c1c8e06d111e7f41c06c29a5318cb1835df23a45518e02a47c63b68", size = 42831 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/53/b5/bc883b5296ec902115c00be161da93bf661199c465ec4c483feec6ea4c32/frozenlist-1.6.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae8337990e7a45683548ffb2fee1af2f1ed08169284cd829cdd9a7fa7470530d", size = 160912 }, + { url = "https://files.pythonhosted.org/packages/6f/93/51b058b563d0704b39c56baa222828043aafcac17fd3734bec5dbeb619b1/frozenlist-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8c952f69dd524558694818a461855f35d36cc7f5c0adddce37e962c85d06eac0", size = 124315 }, + { url = "https://files.pythonhosted.org/packages/c9/e0/46cd35219428d350558b874d595e132d1c17a9471a1bd0d01d518a261e7c/frozenlist-1.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8f5fef13136c4e2dee91bfb9a44e236fff78fc2cd9f838eddfc470c3d7d90afe", size = 122230 }, + { url = "https://files.pythonhosted.org/packages/d1/0f/7ad2ce928ad06d6dd26a61812b959ded573d3e9d0ee6109d96c2be7172e9/frozenlist-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:716bbba09611b4663ecbb7cd022f640759af8259e12a6ca939c0a6acd49eedba", size = 314842 }, + { url = "https://files.pythonhosted.org/packages/34/76/98cbbd8a20a5c3359a2004ae5e5b216af84a150ccbad67c8f8f30fb2ea91/frozenlist-1.6.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7b8c4dc422c1a3ffc550b465090e53b0bf4839047f3e436a34172ac67c45d595", size = 304919 }, + { url = "https://files.pythonhosted.org/packages/9a/fa/258e771ce3a44348c05e6b01dffc2bc67603fba95761458c238cd09a2c77/frozenlist-1.6.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b11534872256e1666116f6587a1592ef395a98b54476addb5e8d352925cb5d4a", size = 324074 }, + { url = "https://files.pythonhosted.org/packages/d5/a4/047d861fd8c538210e12b208c0479912273f991356b6bdee7ea8356b07c9/frozenlist-1.6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c6eceb88aaf7221f75be6ab498dc622a151f5f88d536661af3ffc486245a626", size = 321292 }, + { url = "https://files.pythonhosted.org/packages/c0/25/cfec8af758b4525676cabd36efcaf7102c1348a776c0d1ad046b8a7cdc65/frozenlist-1.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62c828a5b195570eb4b37369fcbbd58e96c905768d53a44d13044355647838ff", size = 301569 }, + { url = "https://files.pythonhosted.org/packages/87/2f/0c819372fa9f0c07b153124bf58683b8d0ca7bb73ea5ccde9b9ef1745beb/frozenlist-1.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1c6bd2c6399920c9622362ce95a7d74e7f9af9bfec05fff91b8ce4b9647845a", size = 313625 }, + { url = "https://files.pythonhosted.org/packages/50/5f/f0cf8b0fdedffdb76b3745aa13d5dbe404d63493cc211ce8250f2025307f/frozenlist-1.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:49ba23817781e22fcbd45fd9ff2b9b8cdb7b16a42a4851ab8025cae7b22e96d0", size = 312523 }, + { url = "https://files.pythonhosted.org/packages/e1/6c/38c49108491272d3e84125bbabf2c2d0b304899b52f49f0539deb26ad18d/frozenlist-1.6.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:431ef6937ae0f853143e2ca67d6da76c083e8b1fe3df0e96f3802fd37626e606", size = 322657 }, + { url = "https://files.pythonhosted.org/packages/bd/4b/3bd3bad5be06a9d1b04b1c22be80b5fe65b502992d62fab4bdb25d9366ee/frozenlist-1.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9d124b38b3c299ca68433597ee26b7819209cb8a3a9ea761dfe9db3a04bba584", size = 303414 }, + { url = "https://files.pythonhosted.org/packages/5b/89/7e225a30bef6e85dbfe22622c24afe932e9444de3b40d58b1ea589a14ef8/frozenlist-1.6.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:118e97556306402e2b010da1ef21ea70cb6d6122e580da64c056b96f524fbd6a", size = 320321 }, + { url = "https://files.pythonhosted.org/packages/22/72/7e3acef4dd9e86366cb8f4d8f28e852c2b7e116927e9722b31a6f71ea4b0/frozenlist-1.6.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fb3b309f1d4086b5533cf7bbcf3f956f0ae6469664522f1bde4feed26fba60f1", size = 323975 }, + { url = "https://files.pythonhosted.org/packages/d8/85/e5da03d20507e13c66ce612c9792b76811b7a43e3320cce42d95b85ac755/frozenlist-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54dece0d21dce4fdb188a1ffc555926adf1d1c516e493c2914d7c370e454bc9e", size = 316553 }, + { url = "https://files.pythonhosted.org/packages/ac/8e/6c609cbd0580ae8a0661c408149f196aade7d325b1ae7adc930501b81acb/frozenlist-1.6.0-cp311-cp311-win32.whl", hash = "sha256:654e4ba1d0b2154ca2f096bed27461cf6160bc7f504a7f9a9ef447c293caf860", size = 115511 }, + { url = "https://files.pythonhosted.org/packages/f2/13/a84804cfde6de12d44ed48ecbf777ba62b12ff09e761f76cdd1ff9e14bb1/frozenlist-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:3e911391bffdb806001002c1f860787542f45916c3baf764264a52765d5a5603", size = 120863 }, + { url = "https://files.pythonhosted.org/packages/9c/8a/289b7d0de2fbac832ea80944d809759976f661557a38bb8e77db5d9f79b7/frozenlist-1.6.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c5b9e42ace7d95bf41e19b87cec8f262c41d3510d8ad7514ab3862ea2197bfb1", size = 160193 }, + { url = "https://files.pythonhosted.org/packages/19/80/2fd17d322aec7f430549f0669f599997174f93ee17929ea5b92781ec902c/frozenlist-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ca9973735ce9f770d24d5484dcb42f68f135351c2fc81a7a9369e48cf2998a29", size = 123831 }, + { url = "https://files.pythonhosted.org/packages/99/06/f5812da431273f78c6543e0b2f7de67dfd65eb0a433978b2c9c63d2205e4/frozenlist-1.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6ac40ec76041c67b928ca8aaffba15c2b2ee3f5ae8d0cb0617b5e63ec119ca25", size = 121862 }, + { url = "https://files.pythonhosted.org/packages/d0/31/9e61c6b5fc493cf24d54881731204d27105234d09878be1a5983182cc4a5/frozenlist-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b7a8a3180dfb280eb044fdec562f9b461614c0ef21669aea6f1d3dac6ee576", size = 316361 }, + { url = "https://files.pythonhosted.org/packages/9d/55/22ca9362d4f0222324981470fd50192be200154d51509ee6eb9baa148e96/frozenlist-1.6.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c444d824e22da6c9291886d80c7d00c444981a72686e2b59d38b285617cb52c8", size = 307115 }, + { url = "https://files.pythonhosted.org/packages/ae/39/4fff42920a57794881e7bb3898dc7f5f539261711ea411b43bba3cde8b79/frozenlist-1.6.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb52c8166499a8150bfd38478248572c924c003cbb45fe3bcd348e5ac7c000f9", size = 322505 }, + { url = "https://files.pythonhosted.org/packages/55/f2/88c41f374c1e4cf0092a5459e5f3d6a1e17ed274c98087a76487783df90c/frozenlist-1.6.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b35298b2db9c2468106278537ee529719228950a5fdda686582f68f247d1dc6e", size = 322666 }, + { url = "https://files.pythonhosted.org/packages/75/51/034eeb75afdf3fd03997856195b500722c0b1a50716664cde64e28299c4b/frozenlist-1.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d108e2d070034f9d57210f22fefd22ea0d04609fc97c5f7f5a686b3471028590", size = 302119 }, + { url = "https://files.pythonhosted.org/packages/2b/a6/564ecde55ee633270a793999ef4fd1d2c2b32b5a7eec903b1012cb7c5143/frozenlist-1.6.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e1be9111cb6756868ac242b3c2bd1f09d9aea09846e4f5c23715e7afb647103", size = 316226 }, + { url = "https://files.pythonhosted.org/packages/f1/c8/6c0682c32377f402b8a6174fb16378b683cf6379ab4d2827c580892ab3c7/frozenlist-1.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:94bb451c664415f02f07eef4ece976a2c65dcbab9c2f1705b7031a3a75349d8c", size = 312788 }, + { url = "https://files.pythonhosted.org/packages/b6/b8/10fbec38f82c5d163ca1750bfff4ede69713badf236a016781cf1f10a0f0/frozenlist-1.6.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d1a686d0b0949182b8faddea596f3fc11f44768d1f74d4cad70213b2e139d821", size = 325914 }, + { url = "https://files.pythonhosted.org/packages/62/ca/2bf4f3a1bd40cdedd301e6ecfdbb291080d5afc5f9ce350c0739f773d6b9/frozenlist-1.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ea8e59105d802c5a38bdbe7362822c522230b3faba2aa35c0fa1765239b7dd70", size = 305283 }, + { url = "https://files.pythonhosted.org/packages/09/64/20cc13ccf94abc2a1f482f74ad210703dc78a590d0b805af1c9aa67f76f9/frozenlist-1.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:abc4e880a9b920bc5020bf6a431a6bb40589d9bca3975c980495f63632e8382f", size = 319264 }, + { url = "https://files.pythonhosted.org/packages/20/ff/86c6a2bbe98cfc231519f5e6d712a0898488ceac804a917ce014f32e68f6/frozenlist-1.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9a79713adfe28830f27a3c62f6b5406c37376c892b05ae070906f07ae4487046", size = 326482 }, + { url = "https://files.pythonhosted.org/packages/2f/da/8e381f66367d79adca245d1d71527aac774e30e291d41ef161ce2d80c38e/frozenlist-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a0318c2068e217a8f5e3b85e35899f5a19e97141a45bb925bb357cfe1daf770", size = 318248 }, + { url = "https://files.pythonhosted.org/packages/39/24/1a1976563fb476ab6f0fa9fefaac7616a4361dbe0461324f9fd7bf425dbe/frozenlist-1.6.0-cp312-cp312-win32.whl", hash = "sha256:853ac025092a24bb3bf09ae87f9127de9fe6e0c345614ac92536577cf956dfcc", size = 115161 }, + { url = "https://files.pythonhosted.org/packages/80/2e/fb4ed62a65f8cd66044706b1013f0010930d8cbb0729a2219561ea075434/frozenlist-1.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:2bdfe2d7e6c9281c6e55523acd6c2bf77963cb422fdc7d142fb0cb6621b66878", size = 120548 }, + { url = "https://files.pythonhosted.org/packages/6f/e5/04c7090c514d96ca00887932417f04343ab94904a56ab7f57861bf63652d/frozenlist-1.6.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1d7fb014fe0fbfee3efd6a94fc635aeaa68e5e1720fe9e57357f2e2c6e1a647e", size = 158182 }, + { url = "https://files.pythonhosted.org/packages/e9/8f/60d0555c61eec855783a6356268314d204137f5e0c53b59ae2fc28938c99/frozenlist-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01bcaa305a0fdad12745502bfd16a1c75b14558dabae226852f9159364573117", size = 122838 }, + { url = "https://files.pythonhosted.org/packages/5a/a7/d0ec890e3665b4b3b7c05dc80e477ed8dc2e2e77719368e78e2cd9fec9c8/frozenlist-1.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8b314faa3051a6d45da196a2c495e922f987dc848e967d8cfeaee8a0328b1cd4", size = 120980 }, + { url = "https://files.pythonhosted.org/packages/cc/19/9b355a5e7a8eba903a008579964192c3e427444752f20b2144b10bb336df/frozenlist-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da62fecac21a3ee10463d153549d8db87549a5e77eefb8c91ac84bb42bb1e4e3", size = 305463 }, + { url = "https://files.pythonhosted.org/packages/9c/8d/5b4c758c2550131d66935ef2fa700ada2461c08866aef4229ae1554b93ca/frozenlist-1.6.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1eb89bf3454e2132e046f9599fbcf0a4483ed43b40f545551a39316d0201cd1", size = 297985 }, + { url = "https://files.pythonhosted.org/packages/48/2c/537ec09e032b5865715726b2d1d9813e6589b571d34d01550c7aeaad7e53/frozenlist-1.6.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18689b40cb3936acd971f663ccb8e2589c45db5e2c5f07e0ec6207664029a9c", size = 311188 }, + { url = "https://files.pythonhosted.org/packages/31/2f/1aa74b33f74d54817055de9a4961eff798f066cdc6f67591905d4fc82a84/frozenlist-1.6.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e67ddb0749ed066b1a03fba812e2dcae791dd50e5da03be50b6a14d0c1a9ee45", size = 311874 }, + { url = "https://files.pythonhosted.org/packages/bf/f0/cfec18838f13ebf4b37cfebc8649db5ea71a1b25dacd691444a10729776c/frozenlist-1.6.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc5e64626e6682638d6e44398c9baf1d6ce6bc236d40b4b57255c9d3f9761f1f", size = 291897 }, + { url = "https://files.pythonhosted.org/packages/ea/a5/deb39325cbbea6cd0a46db8ccd76150ae2fcbe60d63243d9df4a0b8c3205/frozenlist-1.6.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:437cfd39564744ae32ad5929e55b18ebd88817f9180e4cc05e7d53b75f79ce85", size = 305799 }, + { url = "https://files.pythonhosted.org/packages/78/22/6ddec55c5243a59f605e4280f10cee8c95a449f81e40117163383829c241/frozenlist-1.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:62dd7df78e74d924952e2feb7357d826af8d2f307557a779d14ddf94d7311be8", size = 302804 }, + { url = "https://files.pythonhosted.org/packages/5d/b7/d9ca9bab87f28855063c4d202936800219e39db9e46f9fb004d521152623/frozenlist-1.6.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a66781d7e4cddcbbcfd64de3d41a61d6bdde370fc2e38623f30b2bd539e84a9f", size = 316404 }, + { url = "https://files.pythonhosted.org/packages/a6/3a/1255305db7874d0b9eddb4fe4a27469e1fb63720f1fc6d325a5118492d18/frozenlist-1.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:482fe06e9a3fffbcd41950f9d890034b4a54395c60b5e61fae875d37a699813f", size = 295572 }, + { url = "https://files.pythonhosted.org/packages/2a/f2/8d38eeee39a0e3a91b75867cc102159ecccf441deb6ddf67be96d3410b84/frozenlist-1.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e4f9373c500dfc02feea39f7a56e4f543e670212102cc2eeb51d3a99c7ffbde6", size = 307601 }, + { url = "https://files.pythonhosted.org/packages/38/04/80ec8e6b92f61ef085422d7b196822820404f940950dde5b2e367bede8bc/frozenlist-1.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e69bb81de06827147b7bfbaeb284d85219fa92d9f097e32cc73675f279d70188", size = 314232 }, + { url = "https://files.pythonhosted.org/packages/3a/58/93b41fb23e75f38f453ae92a2f987274c64637c450285577bd81c599b715/frozenlist-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7613d9977d2ab4a9141dde4a149f4357e4065949674c5649f920fec86ecb393e", size = 308187 }, + { url = "https://files.pythonhosted.org/packages/6a/a2/e64df5c5aa36ab3dee5a40d254f3e471bb0603c225f81664267281c46a2d/frozenlist-1.6.0-cp313-cp313-win32.whl", hash = "sha256:4def87ef6d90429f777c9d9de3961679abf938cb6b7b63d4a7eb8a268babfce4", size = 114772 }, + { url = "https://files.pythonhosted.org/packages/a0/77/fead27441e749b2d574bb73d693530d59d520d4b9e9679b8e3cb779d37f2/frozenlist-1.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:37a8a52c3dfff01515e9bbbee0e6063181362f9de3db2ccf9bc96189b557cbfd", size = 119847 }, + { url = "https://files.pythonhosted.org/packages/df/bd/cc6d934991c1e5d9cafda83dfdc52f987c7b28343686aef2e58a9cf89f20/frozenlist-1.6.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:46138f5a0773d064ff663d273b309b696293d7a7c00a0994c5c13a5078134b64", size = 174937 }, + { url = "https://files.pythonhosted.org/packages/f2/a2/daf945f335abdbfdd5993e9dc348ef4507436936ab3c26d7cfe72f4843bf/frozenlist-1.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f88bc0a2b9c2a835cb888b32246c27cdab5740059fb3688852bf91e915399b91", size = 136029 }, + { url = "https://files.pythonhosted.org/packages/51/65/4c3145f237a31247c3429e1c94c384d053f69b52110a0d04bfc8afc55fb2/frozenlist-1.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:777704c1d7655b802c7850255639672e90e81ad6fa42b99ce5ed3fbf45e338dd", size = 134831 }, + { url = "https://files.pythonhosted.org/packages/77/38/03d316507d8dea84dfb99bdd515ea245628af964b2bf57759e3c9205cc5e/frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85ef8d41764c7de0dcdaf64f733a27352248493a85a80661f3c678acd27e31f2", size = 392981 }, + { url = "https://files.pythonhosted.org/packages/37/02/46285ef9828f318ba400a51d5bb616ded38db8466836a9cfa39f3903260b/frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:da5cb36623f2b846fb25009d9d9215322318ff1c63403075f812b3b2876c8506", size = 371999 }, + { url = "https://files.pythonhosted.org/packages/0d/64/1212fea37a112c3c5c05bfb5f0a81af4836ce349e69be75af93f99644da9/frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbb56587a16cf0fb8acd19e90ff9924979ac1431baea8681712716a8337577b0", size = 392200 }, + { url = "https://files.pythonhosted.org/packages/81/ce/9a6ea1763e3366e44a5208f76bf37c76c5da570772375e4d0be85180e588/frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6154c3ba59cda3f954c6333025369e42c3acd0c6e8b6ce31eb5c5b8116c07e0", size = 390134 }, + { url = "https://files.pythonhosted.org/packages/bc/36/939738b0b495b2c6d0c39ba51563e453232813042a8d908b8f9544296c29/frozenlist-1.6.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e8246877afa3f1ae5c979fe85f567d220f86a50dc6c493b9b7d8191181ae01e", size = 365208 }, + { url = "https://files.pythonhosted.org/packages/b4/8b/939e62e93c63409949c25220d1ba8e88e3960f8ef6a8d9ede8f94b459d27/frozenlist-1.6.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b0f6cce16306d2e117cf9db71ab3a9e8878a28176aeaf0dbe35248d97b28d0c", size = 385548 }, + { url = "https://files.pythonhosted.org/packages/62/38/22d2873c90102e06a7c5a3a5b82ca47e393c6079413e8a75c72bff067fa8/frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:1b8e8cd8032ba266f91136d7105706ad57770f3522eac4a111d77ac126a25a9b", size = 391123 }, + { url = "https://files.pythonhosted.org/packages/44/78/63aaaf533ee0701549500f6d819be092c6065cb5c577edb70c09df74d5d0/frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:e2ada1d8515d3ea5378c018a5f6d14b4994d4036591a52ceaf1a1549dec8e1ad", size = 394199 }, + { url = "https://files.pythonhosted.org/packages/54/45/71a6b48981d429e8fbcc08454dc99c4c2639865a646d549812883e9c9dd3/frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:cdb2c7f071e4026c19a3e32b93a09e59b12000751fc9b0b7758da899e657d215", size = 373854 }, + { url = "https://files.pythonhosted.org/packages/3f/f3/dbf2a5e11736ea81a66e37288bf9f881143a7822b288a992579ba1b4204d/frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:03572933a1969a6d6ab509d509e5af82ef80d4a5d4e1e9f2e1cdd22c77a3f4d2", size = 395412 }, + { url = "https://files.pythonhosted.org/packages/b3/f1/c63166806b331f05104d8ea385c4acd511598568b1f3e4e8297ca54f2676/frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:77effc978947548b676c54bbd6a08992759ea6f410d4987d69feea9cd0919911", size = 394936 }, + { url = "https://files.pythonhosted.org/packages/ef/ea/4f3e69e179a430473eaa1a75ff986526571215fefc6b9281cdc1f09a4eb8/frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a2bda8be77660ad4089caf2223fdbd6db1858462c4b85b67fbfa22102021e497", size = 391459 }, + { url = "https://files.pythonhosted.org/packages/d3/c3/0fc2c97dea550df9afd072a37c1e95421652e3206bbeaa02378b24c2b480/frozenlist-1.6.0-cp313-cp313t-win32.whl", hash = "sha256:a4d96dc5bcdbd834ec6b0f91027817214216b5b30316494d2b1aebffb87c534f", size = 128797 }, + { url = "https://files.pythonhosted.org/packages/ae/f5/79c9320c5656b1965634fe4be9c82b12a3305bdbc58ad9cb941131107b20/frozenlist-1.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:e18036cb4caa17ea151fd5f3d70be9d354c99eb8cf817a3ccde8a7873b074348", size = 134709 }, + { url = "https://files.pythonhosted.org/packages/71/3e/b04a0adda73bd52b390d730071c0d577073d3d26740ee1bad25c3ad0f37b/frozenlist-1.6.0-py3-none-any.whl", hash = "sha256:535eec9987adb04701266b92745d6cdcef2e77669299359c3009c3404dd5d191", size = 12404 }, ] [[package]] @@ -991,29 +1026,29 @@ wheels = [ [[package]] name = "google-auth" -version = "2.38.0" +version = "2.40.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cachetools" }, { name = "pyasn1-modules" }, { name = "rsa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c6/eb/d504ba1daf190af6b204a9d4714d457462b486043744901a6eeea711f913/google_auth-2.38.0.tar.gz", hash = "sha256:8285113607d3b80a3f1543b75962447ba8a09fe85783432a784fdeef6ac094c4", size = 270866 } +sdist = { url = "https://files.pythonhosted.org/packages/66/84/f67f53c505a6b2c5da05c988e2a5483f5ba9eee4b1841d2e3ff22f547cd5/google_auth-2.40.2.tar.gz", hash = "sha256:a33cde547a2134273226fa4b853883559947ebe9207521f7afc707efbf690f58", size = 280990 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9d/47/603554949a37bca5b7f894d51896a9c534b9eab808e2520a748e081669d0/google_auth-2.38.0-py2.py3-none-any.whl", hash = "sha256:e7dae6694313f434a2727bf2906f27ad259bae090d7aa896590d86feec3d9d4a", size = 210770 }, + { url = "https://files.pythonhosted.org/packages/6a/c7/e2d82e6702e2a9e2311c138f8e1100f21d08aed0231290872b229ae57a86/google_auth-2.40.2-py2.py3-none-any.whl", hash = "sha256:f7e568d42eedfded58734f6a60c58321896a621f7c116c411550a4b4a13da90b", size = 216102 }, ] [[package]] name = "google-auth-oauthlib" -version = "1.2.1" +version = "1.2.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "google-auth" }, { name = "requests-oauthlib" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cc/0f/1772edb8d75ecf6280f1c7f51cbcebe274e8b17878b382f63738fd96cee5/google_auth_oauthlib-1.2.1.tar.gz", hash = "sha256:afd0cad092a2eaa53cd8e8298557d6de1034c6cb4a740500b5357b648af97263", size = 24970 } +sdist = { url = "https://files.pythonhosted.org/packages/fb/87/e10bf24f7bcffc1421b84d6f9c3377c30ec305d082cd737ddaa6d8f77f7c/google_auth_oauthlib-1.2.2.tar.gz", hash = "sha256:11046fb8d3348b296302dd939ace8af0a724042e8029c1b872d87fabc9f41684", size = 20955 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/8e/22a28dfbd218033e4eeaf3a0533b2b54852b6530da0c0fe934f0cc494b29/google_auth_oauthlib-1.2.1-py2.py3-none-any.whl", hash = "sha256:2d58a27262d55aa1b87678c3ba7142a080098cbc2024f903c62355deb235d91f", size = 24930 }, + { url = "https://files.pythonhosted.org/packages/ac/84/40ee070be95771acd2f4418981edb834979424565c3eec3cd88b6aa09d24/google_auth_oauthlib-1.2.2-py3-none-any.whl", hash = "sha256:fd619506f4b3908b5df17b65f39ca8d66ea56986e5472eb5978fd8f3786f00a2", size = 19072 }, ] [[package]] @@ -1087,74 +1122,102 @@ wheels = [ [[package]] name = "googleapis-common-protos" -version = "1.69.2" +version = "1.70.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1b/d7/ee9d56af4e6dbe958562b5020f46263c8a4628e7952070241fc0e9b182ae/googleapis_common_protos-1.69.2.tar.gz", hash = "sha256:3e1b904a27a33c821b4b749fd31d334c0c9c30e6113023d495e48979a3dc9c5f", size = 144496 } +sdist = { url = "https://files.pythonhosted.org/packages/39/24/33db22342cf4a2ea27c9955e6713140fedd51e8b141b5ce5260897020f1a/googleapis_common_protos-1.70.0.tar.gz", hash = "sha256:0e1b44e0ea153e6594f9f394fef15193a68aaaea2d843f83e2742717ca753257", size = 145903 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/53/d35476d547a286506f0a6a634ccf1e5d288fffd53d48f0bd5fef61d68684/googleapis_common_protos-1.69.2-py3-none-any.whl", hash = "sha256:0b30452ff9c7a27d80bfc5718954063e8ab53dd3697093d3bc99581f5fd24212", size = 293215 }, + { url = "https://files.pythonhosted.org/packages/86/f1/62a193f0227cf15a920390abe675f386dec35f7ae3ffe6da582d3ade42c7/googleapis_common_protos-1.70.0-py3-none-any.whl", hash = "sha256:b8bfcca8c25a2bb253e0e0b0adaf8c00773e5e6af6fd92397576680b807e0fd8", size = 294530 }, ] [[package]] name = "greenlet" -version = "3.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3f/74/907bb43af91782e0366b0960af62a8ce1f9398e4291cac7beaeffbee0c04/greenlet-3.2.1.tar.gz", hash = "sha256:9f4dd4b4946b14bb3bf038f81e1d2e535b7d94f1b2a59fdba1293cd9c1a0a4d7", size = 184475 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/26/80/a6ee52c59f75a387ec1f0c0075cf7981fb4644e4162afd3401dabeaa83ca/greenlet-3.2.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:aa30066fd6862e1153eaae9b51b449a6356dcdb505169647f69e6ce315b9468b", size = 268609 }, - { url = "https://files.pythonhosted.org/packages/ad/11/bd7a900629a4dd0e691dda88f8c2a7bfa44d0c4cffdb47eb5302f87a30d0/greenlet-3.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b0f3a0a67786facf3b907a25db80efe74310f9d63cc30869e49c79ee3fcef7e", size = 628776 }, - { url = "https://files.pythonhosted.org/packages/46/f1/686754913fcc2707addadf815c884fd49c9f00a88e6dac277a1e1a8b8086/greenlet-3.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64a4d0052de53ab3ad83ba86de5ada6aeea8f099b4e6c9ccce70fb29bc02c6a2", size = 640827 }, - { url = "https://files.pythonhosted.org/packages/03/74/bef04fa04125f6bcae2c1117e52f99c5706ac6ee90b7300b49b3bc18fc7d/greenlet-3.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:852ef432919830022f71a040ff7ba3f25ceb9fe8f3ab784befd747856ee58530", size = 636752 }, - { url = "https://files.pythonhosted.org/packages/aa/08/e8d493ab65ae1e9823638b8d0bf5d6b44f062221d424c5925f03960ba3d0/greenlet-3.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4818116e75a0dd52cdcf40ca4b419e8ce5cb6669630cb4f13a6c384307c9543f", size = 635993 }, - { url = "https://files.pythonhosted.org/packages/1f/9d/3a3a979f2b019fb756c9a92cd5e69055aded2862ebd0437de109cf7472a2/greenlet-3.2.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9afa05fe6557bce1642d8131f87ae9462e2a8e8c46f7ed7929360616088a3975", size = 583927 }, - { url = "https://files.pythonhosted.org/packages/59/21/a00d27d9abb914c1213926be56b2a2bf47999cf0baf67d9ef5b105b8eb5b/greenlet-3.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5c12f0d17a88664757e81a6e3fc7c2452568cf460a2f8fb44f90536b2614000b", size = 1112891 }, - { url = "https://files.pythonhosted.org/packages/20/c7/922082bf41f0948a78d703d75261d5297f3db894758317409e4677dc1446/greenlet-3.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dbb4e1aa2000852937dd8f4357fb73e3911da426df8ca9b8df5db231922da474", size = 1138318 }, - { url = "https://files.pythonhosted.org/packages/34/d7/e05aa525d824ec32735ba7e66917e944a64866c1a95365b5bd03f3eb2c08/greenlet-3.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:cb5ee928ce5fedf9a4b0ccdc547f7887136c4af6109d8f2fe8e00f90c0db47f5", size = 295407 }, - { url = "https://files.pythonhosted.org/packages/f0/d1/e4777b188a04726f6cf69047830d37365b9191017f54caf2f7af336a6f18/greenlet-3.2.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:0ba2811509a30e5f943be048895a983a8daf0b9aa0ac0ead526dfb5d987d80ea", size = 270381 }, - { url = "https://files.pythonhosted.org/packages/59/e7/b5b738f5679247ddfcf2179c38945519668dced60c3164c20d55c1a7bb4a/greenlet-3.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4245246e72352b150a1588d43ddc8ab5e306bef924c26571aafafa5d1aaae4e8", size = 637195 }, - { url = "https://files.pythonhosted.org/packages/6c/9f/57968c88a5f6bc371364baf983a2e5549cca8f503bfef591b6dd81332cbc/greenlet-3.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7abc0545d8e880779f0c7ce665a1afc3f72f0ca0d5815e2b006cafc4c1cc5840", size = 651381 }, - { url = "https://files.pythonhosted.org/packages/40/81/1533c9a458e9f2ebccb3ae22f1463b2093b0eb448a88aac36182f1c2cd3d/greenlet-3.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6dcc6d604a6575c6225ac0da39df9335cc0c6ac50725063fa90f104f3dbdb2c9", size = 646110 }, - { url = "https://files.pythonhosted.org/packages/06/66/25f7e4b1468ebe4a520757f2e41c2a36a2f49a12e963431b82e9f98df2a0/greenlet-3.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2273586879affca2d1f414709bb1f61f0770adcabf9eda8ef48fd90b36f15d12", size = 648070 }, - { url = "https://files.pythonhosted.org/packages/d7/4c/49d366565c4c4d29e6f666287b9e2f471a66c3a3d8d5066692e347f09e27/greenlet-3.2.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ff38c869ed30fff07f1452d9a204ece1ec6d3c0870e0ba6e478ce7c1515acf22", size = 603816 }, - { url = "https://files.pythonhosted.org/packages/04/15/1612bb61506f44b6b8b6bebb6488702b1fe1432547e95dda57874303a1f5/greenlet-3.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e934591a7a4084fa10ee5ef50eb9d2ac8c4075d5c9cf91128116b5dca49d43b1", size = 1119572 }, - { url = "https://files.pythonhosted.org/packages/cc/2f/002b99dacd1610e825876f5cbbe7f86740aa2a6b76816e5eca41c8457e85/greenlet-3.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:063bcf7f8ee28eb91e7f7a8148c65a43b73fbdc0064ab693e024b5a940070145", size = 1147442 }, - { url = "https://files.pythonhosted.org/packages/c0/ba/82a2c3b9868644ee6011da742156247070f30e952f4d33f33857458450f2/greenlet-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7132e024ebeeeabbe661cf8878aac5d2e643975c4feae833142592ec2f03263d", size = 296207 }, - { url = "https://files.pythonhosted.org/packages/77/2a/581b3808afec55b2db838742527c40b4ce68b9b64feedff0fd0123f4b19a/greenlet-3.2.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:e1967882f0c42eaf42282a87579685c8673c51153b845fde1ee81be720ae27ac", size = 269119 }, - { url = "https://files.pythonhosted.org/packages/b0/f3/1c4e27fbdc84e13f05afc2baf605e704668ffa26e73a43eca93e1120813e/greenlet-3.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e77ae69032a95640a5fe8c857ec7bee569a0997e809570f4c92048691ce4b437", size = 637314 }, - { url = "https://files.pythonhosted.org/packages/fc/1a/9fc43cb0044f425f7252da9847893b6de4e3b20c0a748bce7ab3f063d5bc/greenlet-3.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3227c6ec1149d4520bc99edac3b9bc8358d0034825f3ca7572165cb502d8f29a", size = 651421 }, - { url = "https://files.pythonhosted.org/packages/8a/65/d47c03cdc62c6680206b7420c4a98363ee997e87a5e9da1e83bd7eeb57a8/greenlet-3.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ddda0197c5b46eedb5628d33dad034c455ae77708c7bf192686e760e26d6a0c", size = 645789 }, - { url = "https://files.pythonhosted.org/packages/2f/40/0faf8bee1b106c241780f377b9951dd4564ef0972de1942ef74687aa6bba/greenlet-3.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de62b542e5dcf0b6116c310dec17b82bb06ef2ceb696156ff7bf74a7a498d982", size = 648262 }, - { url = "https://files.pythonhosted.org/packages/e0/a8/73305f713183c2cb08f3ddd32eaa20a6854ba9c37061d682192db9b021c3/greenlet-3.2.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c07a0c01010df42f1f058b3973decc69c4d82e036a951c3deaf89ab114054c07", size = 606770 }, - { url = "https://files.pythonhosted.org/packages/c3/05/7d726e1fb7f8a6ac55ff212a54238a36c57db83446523c763e20cd30b837/greenlet-3.2.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:2530bfb0abcd451ea81068e6d0a1aac6dabf3f4c23c8bd8e2a8f579c2dd60d95", size = 1117960 }, - { url = "https://files.pythonhosted.org/packages/bf/9f/2b6cb1bd9f1537e7b08c08705c4a1d7bd4f64489c67d102225c4fd262bda/greenlet-3.2.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:1c472adfca310f849903295c351d297559462067f618944ce2650a1878b84123", size = 1145500 }, - { url = "https://files.pythonhosted.org/packages/e4/f6/339c6e707062319546598eb9827d3ca8942a3eccc610d4a54c1da7b62527/greenlet-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:24a496479bc8bd01c39aa6516a43c717b4cee7196573c47b1f8e1011f7c12495", size = 295994 }, - { url = "https://files.pythonhosted.org/packages/f1/72/2a251d74a596af7bb1717e891ad4275a3fd5ac06152319d7ad8c77f876af/greenlet-3.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:175d583f7d5ee57845591fc30d852b75b144eb44b05f38b67966ed6df05c8526", size = 629889 }, - { url = "https://files.pythonhosted.org/packages/29/2e/d7ed8bf97641bf704b6a43907c0e082cdf44d5bc026eb8e1b79283e7a719/greenlet-3.2.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ecc9d33ca9428e4536ea53e79d781792cee114d2fa2695b173092bdbd8cd6d5", size = 635261 }, - { url = "https://files.pythonhosted.org/packages/1e/75/802aa27848a6fcb5e566f69c64534f572e310f0f12d41e9201a81e741551/greenlet-3.2.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f56382ac4df3860ebed8ed838f268f03ddf4e459b954415534130062b16bc32", size = 632523 }, - { url = "https://files.pythonhosted.org/packages/56/09/f7c1c3bab9b4c589ad356503dd71be00935e9c4db4db516ed88fc80f1187/greenlet-3.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc45a7189c91c0f89aaf9d69da428ce8301b0fd66c914a499199cfb0c28420fc", size = 628816 }, - { url = "https://files.pythonhosted.org/packages/79/e0/1bb90d30b5450eac2dffeaac6b692857c4bd642c21883b79faa8fa056cf2/greenlet-3.2.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51a2f49da08cff79ee42eb22f1658a2aed60c72792f0a0a95f5f0ca6d101b1fb", size = 593687 }, - { url = "https://files.pythonhosted.org/packages/c5/b5/adbe03c8b4c178add20cc716021183ae6b0326d56ba8793d7828c94286f6/greenlet-3.2.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:0c68bbc639359493420282d2f34fa114e992a8724481d700da0b10d10a7611b8", size = 1105754 }, - { url = "https://files.pythonhosted.org/packages/39/93/84582d7ef38dec009543ccadec6ab41079a6cbc2b8c0566bcd07bf1aaf6c/greenlet-3.2.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:e775176b5c203a1fa4be19f91da00fd3bff536868b77b237da3f4daa5971ae5d", size = 1125160 }, +version = "3.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/34/c1/a82edae11d46c0d83481aacaa1e578fea21d94a1ef400afd734d47ad95ad/greenlet-3.2.2.tar.gz", hash = "sha256:ad053d34421a2debba45aa3cc39acf454acbcd025b3fc1a9f8a0dee237abd485", size = 185797 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/9f/a47e19261747b562ce88219e5ed8c859d42c6e01e73da6fbfa3f08a7be13/greenlet-3.2.2-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:dcb9cebbf3f62cb1e5afacae90761ccce0effb3adaa32339a0670fe7805d8068", size = 268635 }, + { url = "https://files.pythonhosted.org/packages/11/80/a0042b91b66975f82a914d515e81c1944a3023f2ce1ed7a9b22e10b46919/greenlet-3.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf3fc9145141250907730886b031681dfcc0de1c158f3cc51c092223c0f381ce", size = 628786 }, + { url = "https://files.pythonhosted.org/packages/38/a2/8336bf1e691013f72a6ebab55da04db81a11f68e82bb691f434909fa1327/greenlet-3.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:efcdfb9df109e8a3b475c016f60438fcd4be68cd13a365d42b35914cdab4bb2b", size = 640866 }, + { url = "https://files.pythonhosted.org/packages/f8/7e/f2a3a13e424670a5d08826dab7468fa5e403e0fbe0b5f951ff1bc4425b45/greenlet-3.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4bd139e4943547ce3a56ef4b8b1b9479f9e40bb47e72cc906f0f66b9d0d5cab3", size = 636752 }, + { url = "https://files.pythonhosted.org/packages/fd/5d/ce4a03a36d956dcc29b761283f084eb4a3863401c7cb505f113f73af8774/greenlet-3.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71566302219b17ca354eb274dfd29b8da3c268e41b646f330e324e3967546a74", size = 636028 }, + { url = "https://files.pythonhosted.org/packages/4b/29/b130946b57e3ceb039238413790dd3793c5e7b8e14a54968de1fe449a7cf/greenlet-3.2.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3091bc45e6b0c73f225374fefa1536cd91b1e987377b12ef5b19129b07d93ebe", size = 583869 }, + { url = "https://files.pythonhosted.org/packages/ac/30/9f538dfe7f87b90ecc75e589d20cbd71635531a617a336c386d775725a8b/greenlet-3.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:44671c29da26539a5f142257eaba5110f71887c24d40df3ac87f1117df589e0e", size = 1112886 }, + { url = "https://files.pythonhosted.org/packages/be/92/4b7deeb1a1e9c32c1b59fdca1cac3175731c23311ddca2ea28a8b6ada91c/greenlet-3.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c23ea227847c9dbe0b3910f5c0dd95658b607137614eb821e6cbaecd60d81cc6", size = 1138355 }, + { url = "https://files.pythonhosted.org/packages/c5/eb/7551c751a2ea6498907b2fcbe31d7a54b602ba5e8eb9550a9695ca25d25c/greenlet-3.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:0a16fb934fcabfdfacf21d79e6fed81809d8cd97bc1be9d9c89f0e4567143d7b", size = 295437 }, + { url = "https://files.pythonhosted.org/packages/2c/a1/88fdc6ce0df6ad361a30ed78d24c86ea32acb2b563f33e39e927b1da9ea0/greenlet-3.2.2-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:df4d1509efd4977e6a844ac96d8be0b9e5aa5d5c77aa27ca9f4d3f92d3fcf330", size = 270413 }, + { url = "https://files.pythonhosted.org/packages/a6/2e/6c1caffd65490c68cd9bcec8cb7feb8ac7b27d38ba1fea121fdc1f2331dc/greenlet-3.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da956d534a6d1b9841f95ad0f18ace637668f680b1339ca4dcfb2c1837880a0b", size = 637242 }, + { url = "https://files.pythonhosted.org/packages/98/28/088af2cedf8823b6b7ab029a5626302af4ca1037cf8b998bed3a8d3cb9e2/greenlet-3.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c7b15fb9b88d9ee07e076f5a683027bc3befd5bb5d25954bb633c385d8b737e", size = 651444 }, + { url = "https://files.pythonhosted.org/packages/4a/9f/0116ab876bb0bc7a81eadc21c3f02cd6100dcd25a1cf2a085a130a63a26a/greenlet-3.2.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:752f0e79785e11180ebd2e726c8a88109ded3e2301d40abced2543aa5d164275", size = 646067 }, + { url = "https://files.pythonhosted.org/packages/35/17/bb8f9c9580e28a94a9575da847c257953d5eb6e39ca888239183320c1c28/greenlet-3.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ae572c996ae4b5e122331e12bbb971ea49c08cc7c232d1bd43150800a2d6c65", size = 648153 }, + { url = "https://files.pythonhosted.org/packages/2c/ee/7f31b6f7021b8df6f7203b53b9cc741b939a2591dcc6d899d8042fcf66f2/greenlet-3.2.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02f5972ff02c9cf615357c17ab713737cccfd0eaf69b951084a9fd43f39833d3", size = 603865 }, + { url = "https://files.pythonhosted.org/packages/b5/2d/759fa59323b521c6f223276a4fc3d3719475dc9ae4c44c2fe7fc750f8de0/greenlet-3.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4fefc7aa68b34b9224490dfda2e70ccf2131368493add64b4ef2d372955c207e", size = 1119575 }, + { url = "https://files.pythonhosted.org/packages/30/05/356813470060bce0e81c3df63ab8cd1967c1ff6f5189760c1a4734d405ba/greenlet-3.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a31ead8411a027c2c4759113cf2bd473690517494f3d6e4bf67064589afcd3c5", size = 1147460 }, + { url = "https://files.pythonhosted.org/packages/07/f4/b2a26a309a04fb844c7406a4501331b9400e1dd7dd64d3450472fd47d2e1/greenlet-3.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:b24c7844c0a0afc3ccbeb0b807adeefb7eff2b5599229ecedddcfeb0ef333bec", size = 296239 }, + { url = "https://files.pythonhosted.org/packages/89/30/97b49779fff8601af20972a62cc4af0c497c1504dfbb3e93be218e093f21/greenlet-3.2.2-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:3ab7194ee290302ca15449f601036007873028712e92ca15fc76597a0aeb4c59", size = 269150 }, + { url = "https://files.pythonhosted.org/packages/21/30/877245def4220f684bc2e01df1c2e782c164e84b32e07373992f14a2d107/greenlet-3.2.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dc5c43bb65ec3669452af0ab10729e8fdc17f87a1f2ad7ec65d4aaaefabf6bf", size = 637381 }, + { url = "https://files.pythonhosted.org/packages/8e/16/adf937908e1f913856b5371c1d8bdaef5f58f251d714085abeea73ecc471/greenlet-3.2.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:decb0658ec19e5c1f519faa9a160c0fc85a41a7e6654b3ce1b44b939f8bf1325", size = 651427 }, + { url = "https://files.pythonhosted.org/packages/ad/49/6d79f58fa695b618654adac64e56aff2eeb13344dc28259af8f505662bb1/greenlet-3.2.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6fadd183186db360b61cb34e81117a096bff91c072929cd1b529eb20dd46e6c5", size = 645795 }, + { url = "https://files.pythonhosted.org/packages/5a/e6/28ed5cb929c6b2f001e96b1d0698c622976cd8f1e41fe7ebc047fa7c6dd4/greenlet-3.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1919cbdc1c53ef739c94cf2985056bcc0838c1f217b57647cbf4578576c63825", size = 648398 }, + { url = "https://files.pythonhosted.org/packages/9d/70/b200194e25ae86bc57077f695b6cc47ee3118becf54130c5514456cf8dac/greenlet-3.2.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3885f85b61798f4192d544aac7b25a04ece5fe2704670b4ab73c2d2c14ab740d", size = 606795 }, + { url = "https://files.pythonhosted.org/packages/f8/c8/ba1def67513a941154ed8f9477ae6e5a03f645be6b507d3930f72ed508d3/greenlet-3.2.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:85f3e248507125bf4af607a26fd6cb8578776197bd4b66e35229cdf5acf1dfbf", size = 1117976 }, + { url = "https://files.pythonhosted.org/packages/c3/30/d0e88c1cfcc1b3331d63c2b54a0a3a4a950ef202fb8b92e772ca714a9221/greenlet-3.2.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:1e76106b6fc55fa3d6fe1c527f95ee65e324a13b62e243f77b48317346559708", size = 1145509 }, + { url = "https://files.pythonhosted.org/packages/90/2e/59d6491834b6e289051b252cf4776d16da51c7c6ca6a87ff97e3a50aa0cd/greenlet-3.2.2-cp313-cp313-win_amd64.whl", hash = "sha256:fe46d4f8e94e637634d54477b0cfabcf93c53f29eedcbdeecaf2af32029b4421", size = 296023 }, + { url = "https://files.pythonhosted.org/packages/65/66/8a73aace5a5335a1cba56d0da71b7bd93e450f17d372c5b7c5fa547557e9/greenlet-3.2.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba30e88607fb6990544d84caf3c706c4b48f629e18853fc6a646f82db9629418", size = 629911 }, + { url = "https://files.pythonhosted.org/packages/48/08/c8b8ebac4e0c95dcc68ec99198842e7db53eda4ab3fb0a4e785690883991/greenlet-3.2.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:055916fafad3e3388d27dd68517478933a97edc2fc54ae79d3bec827de2c64c4", size = 635251 }, + { url = "https://files.pythonhosted.org/packages/37/26/7db30868f73e86b9125264d2959acabea132b444b88185ba5c462cb8e571/greenlet-3.2.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2593283bf81ca37d27d110956b79e8723f9aa50c4bcdc29d3c0543d4743d2763", size = 632620 }, + { url = "https://files.pythonhosted.org/packages/10/ec/718a3bd56249e729016b0b69bee4adea0dfccf6ca43d147ef3b21edbca16/greenlet-3.2.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89c69e9a10670eb7a66b8cef6354c24671ba241f46152dd3eed447f79c29fb5b", size = 628851 }, + { url = "https://files.pythonhosted.org/packages/9b/9d/d1c79286a76bc62ccdc1387291464af16a4204ea717f24e77b0acd623b99/greenlet-3.2.2-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02a98600899ca1ca5d3a2590974c9e3ec259503b2d6ba6527605fcd74e08e207", size = 593718 }, + { url = "https://files.pythonhosted.org/packages/cd/41/96ba2bf948f67b245784cd294b84e3d17933597dffd3acdb367a210d1949/greenlet-3.2.2-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:b50a8c5c162469c3209e5ec92ee4f95c8231b11db6a04db09bbe338176723bb8", size = 1105752 }, + { url = "https://files.pythonhosted.org/packages/68/3b/3b97f9d33c1f2eb081759da62bd6162159db260f602f048bc2f36b4c453e/greenlet-3.2.2-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:45f9f4853fb4cc46783085261c9ec4706628f3b57de3e68bae03e8f8b3c0de51", size = 1125170 }, ] [[package]] name = "h11" -version = "0.14.0" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515 }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f5/38/3af3d3633a34a3316095b39c8e8fb4853a28a536e55d347bd8d8e9a14b03/h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d", size = 100418 } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784 }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 } wheels = [ - { url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", size = 58259 }, + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 }, ] [[package]] name = "identify" -version = "2.6.9" +version = "2.6.12" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9b/98/a71ab060daec766acc30fb47dfca219d03de34a70d616a79a38c6066c5bf/identify-2.6.9.tar.gz", hash = "sha256:d40dfe3142a1421d8518e3d3985ef5ac42890683e32306ad614a29490abeb6bf", size = 99249 } +sdist = { url = "https://files.pythonhosted.org/packages/a2/88/d193a27416618628a5eea64e3223acd800b40749a96ffb322a9b55a49ed1/identify-2.6.12.tar.gz", hash = "sha256:d8de45749f1efb108badef65ee8386f0f7bb19a7f26185f74de6367bffbaf0e6", size = 99254 } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/ce/0845144ed1f0e25db5e7a79c2354c1da4b5ce392b8966449d5db8dca18f1/identify-2.6.9-py2.py3-none-any.whl", hash = "sha256:c98b4322da415a8e5a70ff6e51fbc2d2932c015532d77e9f8537b4ba7813b150", size = 99101 }, + { url = "https://files.pythonhosted.org/packages/7a/cd/18f8da995b658420625f7ef13f037be53ae04ec5ad33f9b718240dcfd48c/identify-2.6.12-py2.py3-none-any.whl", hash = "sha256:ad9672d5a72e0d2ff7c5c8809b62dfa60458626352fb0eb7b55e69bdc45334a2", size = 99145 }, ] [[package]] @@ -1177,14 +1240,14 @@ wheels = [ [[package]] name = "importlib-metadata" -version = "8.6.1" +version = "8.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "zipp" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/33/08/c1395a292bb23fd03bdf572a1357c5a733d3eecbab877641ceacab23db6e/importlib_metadata-8.6.1.tar.gz", hash = "sha256:310b41d755445d74569f993ccfc22838295d9fe005425094fad953d7f15c8580", size = 55767 } +sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641 } wheels = [ - { url = "https://files.pythonhosted.org/packages/79/9d/0fb148dc4d6fa4a7dd1d8378168d9b4cd8d4560a6fbf6f0121c5fc34eb68/importlib_metadata-8.6.1-py3-none-any.whl", hash = "sha256:02a89390c1e15fdfdc0d7c6b25cb3e62650d0494005c97d6f148bf5b9787525e", size = 26971 }, + { url = "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", size = 27656 }, ] [[package]] @@ -1298,16 +1361,16 @@ wheels = [ [[package]] name = "joblib" -version = "1.4.2" +version = "1.5.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/64/33/60135848598c076ce4b231e1b1895170f45fbcaeaa2c9d5e38b04db70c35/joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e", size = 2116621 } +sdist = { url = "https://files.pythonhosted.org/packages/dc/fe/0f5a938c54105553436dbff7a61dc4fed4b1b2c98852f8833beaf4d5968f/joblib-1.5.1.tar.gz", hash = "sha256:f4f86e351f39fe3d0d32a9f2c3d8af1ee4cec285aafcb27003dda5205576b444", size = 330475 } wheels = [ - { url = "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6", size = 301817 }, + { url = "https://files.pythonhosted.org/packages/7d/4f/1195bbac8e0c2acc5f740661631d8d750dc38d4a32b23ee5df3cde6f4e0d/joblib-1.5.1-py3-none-any.whl", hash = "sha256:4719a31f054c7d766948dcd83e9613686b27114f190f717cec7eaa2084f8a74a", size = 307746 }, ] [[package]] name = "jsonschema" -version = "4.23.0" +version = "4.24.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, @@ -1315,9 +1378,9 @@ dependencies = [ { name = "referencing" }, { name = "rpds-py" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/38/2e/03362ee4034a4c917f697890ccd4aec0800ccf9ded7f511971c75451deec/jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", size = 325778 } +sdist = { url = "https://files.pythonhosted.org/packages/bf/d3/1cf5326b923a53515d8f3a2cd442e6d7e94fcc444716e879ea70a0ce3177/jsonschema-4.24.0.tar.gz", hash = "sha256:0b4e8069eb12aedfa881333004bccaec24ecef5a8a6a4b6df142b2cc9599d196", size = 353480 } wheels = [ - { url = "https://files.pythonhosted.org/packages/69/4a/4f9dbeb84e8850557c02365a0eee0649abe5eb1d84af92a25731c6c0f922/jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566", size = 88462 }, + { url = "https://files.pythonhosted.org/packages/a2/3d/023389198f69c722d039351050738d6755376c8fd343e91dc493ea485905/jsonschema-4.24.0-py3-none-any.whl", hash = "sha256:a462455f19f5faf404a7902952b6f0e3ce868f3ee09a359b05eca6673bd8412d", size = 88709 }, ] [[package]] @@ -1369,16 +1432,16 @@ wheels = [ [[package]] name = "jupyter-core" -version = "5.7.2" +version = "5.8.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "platformdirs" }, { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/00/11/b56381fa6c3f4cc5d2cf54a7dbf98ad9aa0b339ef7a601d6053538b079a7/jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9", size = 87629 } +sdist = { url = "https://files.pythonhosted.org/packages/99/1b/72906d554acfeb588332eaaa6f61577705e9ec752ddb486f302dafa292d9/jupyter_core-5.8.1.tar.gz", hash = "sha256:0a5f9706f70e64786b75acba995988915ebd4601c8a52e534a40b51c95f59941", size = 88923 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/fb/108ecd1fe961941959ad0ee4e12ee7b8b1477247f30b1fdfd83ceaf017f0/jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409", size = 28965 }, + { url = "https://files.pythonhosted.org/packages/2f/57/6bffd4b20b88da3800c5d691e0337761576ee688eb01299eae865689d2df/jupyter_core-5.8.1-py3-none-any.whl", hash = "sha256:c28d268fc90fb53f1338ded2eb410704c5449a358406e8a948b75706e24863d0", size = 28880 }, ] [[package]] @@ -1487,14 +1550,11 @@ wheels = [ [[package]] name = "marshmallow" -version = "3.26.1" +version = "4.0.0" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "packaging" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ab/5e/5e53d26b42ab75491cda89b871dab9e97c840bf12c63ec58a1919710cd06/marshmallow-3.26.1.tar.gz", hash = "sha256:e6d8affb6cb61d39d26402096dc0aee12d5a26d490a121f118d2e81dc0719dc6", size = 221825 } +sdist = { url = "https://files.pythonhosted.org/packages/1e/ff/26df5a9f5ac57ccf693a5854916ab47243039d2aa9e0fe5f5a0331e7b74b/marshmallow-4.0.0.tar.gz", hash = "sha256:3b6e80aac299a7935cfb97ed01d1854fb90b5079430969af92118ea1b12a8d55", size = 220507 } wheels = [ - { url = "https://files.pythonhosted.org/packages/34/75/51952c7b2d3873b44a0028b1bd26a25078c18f92f256608e8d1dc61b39fd/marshmallow-3.26.1-py3-none-any.whl", hash = "sha256:3350409f20a70a7e4e11a27661187b77cdcaeb20abca41c1454fe33636bea09c", size = 50878 }, + { url = "https://files.pythonhosted.org/packages/d6/26/6cc45d156f44dbe1d5696d9e54042e4dcaf7b946c0b86df6a97d29706f32/marshmallow-4.0.0-py3-none-any.whl", hash = "sha256:e7b0528337e9990fd64950f8a6b3a1baabed09ad17a0dfb844d701151f92d203", size = 48420 }, ] [[package]] @@ -1532,16 +1592,16 @@ wheels = [ [[package]] name = "msal" -version = "1.32.0" +version = "1.32.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cryptography" }, { name = "pyjwt", extra = ["crypto"] }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/aa/5f/ef42ef25fba682e83a8ee326a1a788e60c25affb58d014495349e37bce50/msal-1.32.0.tar.gz", hash = "sha256:5445fe3af1da6be484991a7ab32eaa82461dc2347de105b76af92c610c3335c2", size = 149817 } +sdist = { url = "https://files.pythonhosted.org/packages/3f/90/81dcc50f0be11a8c4dcbae1a9f761a26e5f905231330a7cacc9f04ec4c61/msal-1.32.3.tar.gz", hash = "sha256:5eea038689c78a5a70ca8ecbe1245458b55a857bd096efb6989c69ba15985d35", size = 151449 } wheels = [ - { url = "https://files.pythonhosted.org/packages/93/5a/2e663ef56a5d89eba962941b267ebe5be8c5ea340a9929d286e2f5fac505/msal-1.32.0-py3-none-any.whl", hash = "sha256:9dbac5384a10bbbf4dae5c7ea0d707d14e087b92c5aa4954b3feaa2d1aa0bcb7", size = 114655 }, + { url = "https://files.pythonhosted.org/packages/04/bf/81516b9aac7fd867709984d08eb4db1d2e3fe1df795c8e442cde9b568962/msal-1.32.3-py3-none-any.whl", hash = "sha256:b2798db57760b1961b142f027ffb7c8169536bf77316e99a0df5c4aaebb11569", size = 115358 }, ] [[package]] @@ -1599,71 +1659,79 @@ wheels = [ [[package]] name = "multidict" -version = "6.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/99/68/42bf1fb4272959aa7c0775caf53265c1a0da9d77f2d4e76326296c943811/multidict-6.3.0.tar.gz", hash = "sha256:2cf3e0781febf9f093eff3eca2d6dd7954ef2969ff46f6cd95173a4db8397fd8", size = 85840 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/27/72/82817e4ef98e180d4042b8311c0842567d75432f5536227994de7858cc4a/multidict-6.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:904895323a59dd50387cddd1337c3eac48ec0fe6cb4d2e4106dc1a3b80091727", size = 61822 }, - { url = "https://files.pythonhosted.org/packages/75/4f/89325dc60759f503bf90a885a356364bacb809b36af8b2268104e0e36e77/multidict-6.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1aa6e1a605c602c119a22368f7d3b9dfb102a7cd69edae5a89e55da34fd64c2b", size = 36629 }, - { url = "https://files.pythonhosted.org/packages/dc/bd/c7e5c7e195fa779e340033ceb09d13a7c99de1b13122e67cc84b8fea15d0/multidict-6.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:72574693fad34d075a54fa771984a1a8809a9eff880b731152078e81c7d8c80f", size = 35881 }, - { url = "https://files.pythonhosted.org/packages/d6/b4/1097e84f2b5b27c50923c37a171f66a9a5931507af2aa0bf3f1b5ff379b9/multidict-6.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72d15a61b76fa4b814390c21defd772893d1152157e3297e6afb328ef32d1711", size = 241302 }, - { url = "https://files.pythonhosted.org/packages/f7/90/256968c41ae8c888b0c29ef20e73572ed39650c600b638508ff61917b1f5/multidict-6.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7bf0d43f2c56b600c6895c25a420e4b46c6a5acf91d6c9a6300713496f70e63b", size = 254140 }, - { url = "https://files.pythonhosted.org/packages/0c/3d/0c4ee2ac266da5c63919208c90616f550146c9afcca82efb4a54e0c3ebb2/multidict-6.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6be1182387fb9a95fd8a8cbfab2f2b61d61ea0ab4699780d4300ea207c8f8d71", size = 249501 }, - { url = "https://files.pythonhosted.org/packages/3f/1e/1299a62d01b867c33f7426399d0f7d2c940a4777d1b4ce50bd115bf5d152/multidict-6.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ba7d12ff77cadb59519aba674cac3a0b16d0fc5abaa3ef79b5ff3806e52e991", size = 235545 }, - { url = "https://files.pythonhosted.org/packages/e0/ab/6f7d70da577d93a9c7e8fecf9719e86865b8dc70c7e83281ad65131a8020/multidict-6.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eeca775446b00826ec8ca34eed8c902c6a1ae7dc42d78094b1f73ecd38d1dcf8", size = 227731 }, - { url = "https://files.pythonhosted.org/packages/02/e3/3373b230cd63c60aaeea076e82f7728a6bccf61daf91bbb6f26353686dae/multidict-6.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a1a5f50ccc57a317db68582411ce6aca076ee3bc386290b416a5783e807afa1", size = 237998 }, - { url = "https://files.pythonhosted.org/packages/a0/5c/8ec19376bbb51b570f931be9c828f498ab1779ab18a598412226d2ce4da4/multidict-6.3.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6989ea9326f9a9171edc920a459003b1deffc6cb48605b8f2610846c7fbd201a", size = 233334 }, - { url = "https://files.pythonhosted.org/packages/11/22/ed4a2ed109a3c6eb8e72256cae382cad9bf53a6748e3b18b44671b1e03de/multidict-6.3.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:9efe23b3d0671eeb8b1e70791612538dcdc1b39275563ca78f338aa0ce9619d2", size = 245813 }, - { url = "https://files.pythonhosted.org/packages/a5/d7/00b08fe59647e7cec9c0cb3ba8c6fc6d3688f31cf648aa768541b3c59a7c/multidict-6.3.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:560af476d03256a65bd4ff05c83e7869ec3c2b40579d4ed1ac74075ef19e02bf", size = 238766 }, - { url = "https://files.pythonhosted.org/packages/5c/99/2627bb3eb6ac215c263a62b8259fac55dc70cf4fc1b96260b43c7324ba03/multidict-6.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:091f3dfe63e9f48ae6c7da8d638e8d8e050ff11e348f69bafc20e65d11f7aa48", size = 234087 }, - { url = "https://files.pythonhosted.org/packages/da/b2/efedb9854d206d038d578529d3429f13b35d263462cc4d81c73eb741b392/multidict-6.3.0-cp311-cp311-win32.whl", hash = "sha256:38e60e400e07ba678a755cc89b09955a49acb0188d47aee2829ed4efc1ccb053", size = 34417 }, - { url = "https://files.pythonhosted.org/packages/d6/53/5a87558f5cdd37574d7ee72a61e7bfb41d3cc4acaa816f612141a72dbd74/multidict-6.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:65e763769cec2fa9c79b70555e3f2a7903747d127ab14ec9eaa5f00763bb4152", size = 37820 }, - { url = "https://files.pythonhosted.org/packages/82/60/6905d85104d39092a9f6b21123f1d2df85d30b22dbd01e795b47c9b6eb32/multidict-6.3.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2a83896925e3a2ddec736c48255572e6f15a95339024c02b800dab28e63461a3", size = 61868 }, - { url = "https://files.pythonhosted.org/packages/e6/db/9223dcc59aa26f48e3915e0ce9c31a989a8225e3c794e0d6390772de6f9c/multidict-6.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:74e45386528db2d9346618276e8746507ec6ccb91512c5f02d2049ccafb0576e", size = 36835 }, - { url = "https://files.pythonhosted.org/packages/21/1b/f7080011d022bfc68c2b29c329012f2b3d19c446e77a0dc34e0cdfaed768/multidict-6.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bc15e81587b652bbeba9d4d7d3707bcaaa1d7b4aab2024c14be477662003a211", size = 35737 }, - { url = "https://files.pythonhosted.org/packages/91/59/33391241661176e1691add307a72757faecf5ae035e16b93c527f52a1d51/multidict-6.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a716344c6e92551bdf842b999c7d7b34a13e32facf3e6c5942690c9883d45e3a", size = 245422 }, - { url = "https://files.pythonhosted.org/packages/44/4a/e4f70e767067c9fd31e45d625490c128da4d63689ad99342e5e87599e5a9/multidict-6.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:299070f503a9a99e4af38d07da784ced28377cc62b678084b9e2e48fa51c57d3", size = 255425 }, - { url = "https://files.pythonhosted.org/packages/2f/18/6c37d3e336e270cbe1deecf2b5669edde93dfabb15796c3e19362f06da0e/multidict-6.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e87a8635a7db577617b50bd2f2080744ed20e556750b97e4f9988e6d20d3941", size = 251939 }, - { url = "https://files.pythonhosted.org/packages/3b/47/76f9e21ad746262b70bc5992e69c840aec8f1501d3a974cc46678f334cf5/multidict-6.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ab4ea5f49166b990411c522c1f5f901014932ead15a463616ec93e10fff2c05", size = 246197 }, - { url = "https://files.pythonhosted.org/packages/88/4f/52b26ef6fef9b7dcc9083c5c9e3e621f300a06c7bb9a67aa0a167618ddc0/multidict-6.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2cef02d3878804909283549bc10d4789a14c610fcd286f17cd94a195b21fe469", size = 231438 }, - { url = "https://files.pythonhosted.org/packages/09/dc/425c013d902ccad1b666bd06bfd7e2124a7be473e812ab812318858e5194/multidict-6.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a466c14574152b7caed5d76f1e46ae2963d33f5b0eb2dd915fa33870183b0f26", size = 249942 }, - { url = "https://files.pythonhosted.org/packages/18/cb/277fe0a3d83e094716ee436d39a6707496d77c255fd235b0aed1e71deddc/multidict-6.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:883c07b404229e98d30b1ef64f07d4e3422d431ecd727c2ebba8549f70b2ba16", size = 243881 }, - { url = "https://files.pythonhosted.org/packages/28/eb/3087bc61a29d62c9637699ed4f6dfc98759bc8e54a899477b1a309a17afb/multidict-6.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:767ed12b1662fac32d84eb43707e4f778b12554fc12ce3c8f7793a02111a9e32", size = 256525 }, - { url = "https://files.pythonhosted.org/packages/10/a7/25f50ca151999ec32f1ade23be06cffe088e7ffe3fe826e05c1dbd84db6d/multidict-6.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ef116022119d3053ecce8ba62109c8b54a650a537b183e79de1db4078894a8", size = 252166 }, - { url = "https://files.pythonhosted.org/packages/c6/4d/ac24c83fa6fe19b05b03fb7a3ca283eed5f74c26d238a41411fcd90a0c3a/multidict-6.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ad737617d38c55c0b72cd3ea01bf5cbab0d75123de5e52c39643ddc6465cb5f", size = 248461 }, - { url = "https://files.pythonhosted.org/packages/55/a9/cc2ec0dbdcb252ca461711363089d14a6ae80f97d8f0dcaffa025d1d5d4c/multidict-6.3.0-cp312-cp312-win32.whl", hash = "sha256:3d783be54d076843f58bf061fdaf1071789fb924fb35a0eb84dbc2c8b68499a2", size = 34640 }, - { url = "https://files.pythonhosted.org/packages/9a/20/ad6bf2fd522c0ab35a942e35c8b21bc8197fad6890f66d725eebf03a8770/multidict-6.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:6fbe184451480c17f1f8dac160c9f3f6d243010fdb8416de4d3d7ee69ea65aa4", size = 37969 }, - { url = "https://files.pythonhosted.org/packages/9b/de/988a79bc03f03a191458d938236fb06fa7ba2e03e1fec6ce53c86ababd8a/multidict-6.3.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90c3c60985e7da13e44aeaaf2e1c10fe1b7825788a18c82b0f9eaeb6c4e9d9c6", size = 61608 }, - { url = "https://files.pythonhosted.org/packages/b8/30/a8e15a3ac94fba52c8a6eb85dc8552b39e60112002317f7542c890dbff15/multidict-6.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:80935f26af0eec490c4e52381a28f39b08c2bc4ef4562448890027e4a4cfa3a4", size = 36724 }, - { url = "https://files.pythonhosted.org/packages/06/49/88d4971e61d98b208c98eec56ae13af6fb128d73fee18e9bb568a7a0415a/multidict-6.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e18db3b38ac30d8cc1ddbdfc7f6d3d814c1abb8936c57bd1c09c5da02873c8c4", size = 35611 }, - { url = "https://files.pythonhosted.org/packages/e6/1b/08ba37f64d4eacfceec12cc11aecd0a6482cca2c57a94dafef41ed66dd0a/multidict-6.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c8836280abc310ea6260dac93126645d21284885008c317c2ac4281a90f1398", size = 245274 }, - { url = "https://files.pythonhosted.org/packages/bb/d9/f5c5a381cffef4bf500e710ca73d6ef00a2de9647abf7bcd0a9f032dd408/multidict-6.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5737f40ffb1926b8bf38d32fdac48a27c441b757f1bf44cbaa100dafef049a01", size = 256891 }, - { url = "https://files.pythonhosted.org/packages/17/23/553528d531fd8d93834365d8e6b7c0bda25c787a8b5ae738099266f34bd7/multidict-6.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b6df1b707adab4858dfaa74877f60f07d9d6be01a57015cf4e62aa8f00f3576b", size = 253116 }, - { url = "https://files.pythonhosted.org/packages/07/d0/79229446cb1507ff5f83ae372a4648e703fda7a4f7729332da0858d47e4e/multidict-6.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:162af9c2e0743465a47e2b32d9b0a7c260b7843629b5e6f0a8a92819b5a40d27", size = 245941 }, - { url = "https://files.pythonhosted.org/packages/d4/c9/91b09bda811e212816776967a3232f8776aa846af4c44e0e9139cf73fc60/multidict-6.3.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc4e82c5db4e65703c842b0947699dd958a7262a8b854d1c19bbfe2d27be9333", size = 232343 }, - { url = "https://files.pythonhosted.org/packages/c4/94/2941f8605a3ff8aaaef31c1c8adfd7c889d78763efc4e7f963fbca96a6c4/multidict-6.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5a922601cb94f427dd96eec3a7c776537ce7490f2beb69e88a81859e537343e4", size = 249610 }, - { url = "https://files.pythonhosted.org/packages/e3/8b/04a18732ab7d29db3d6009d8cab1a737c3262cd06ba1764756edb66d9a96/multidict-6.3.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3da30fb560b37cede31306b890c982213a23fa7335d368cdc16cf7034170860b", size = 244832 }, - { url = "https://files.pythonhosted.org/packages/67/27/4fafdc178bb7c5a870ca449e922a0e069b77fda1ba4e1729fde385ca6314/multidict-6.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5a1996d963016e6486b6a672f64f868e6b4e7e9e2caf710994df11b04790903e", size = 256546 }, - { url = "https://files.pythonhosted.org/packages/a6/09/f2c0d6974d1b3ac922834eb159d39f4a7f61b4560373821e5028623645a1/multidict-6.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:9584441b7a603a12aa382adf8c093ddc5a22328a108dabc6a4a112fa5b4facae", size = 252193 }, - { url = "https://files.pythonhosted.org/packages/e1/6b/7b2ec53aea30c3729ac6bd92bcc620584b08e1333621e0fe48dc5dc36fdb/multidict-6.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:71a8ce430f6c341725aefc0031626c484e0858fd95d1bf3625e0d27919d8edca", size = 247797 }, - { url = "https://files.pythonhosted.org/packages/fa/07/086ac59a24e05ba5748abc57298a27705bab824f47842494dfa4b50bff15/multidict-6.3.0-cp313-cp313-win32.whl", hash = "sha256:b7d3053742a9a559dda8598a52e0c1bcbd18258cc199cba52137ce8c8e92c537", size = 34662 }, - { url = "https://files.pythonhosted.org/packages/cf/a3/5e0b74e8c1507623b7564fa8bfd07e626d45fc05fbb03f6248902c00c749/multidict-6.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:6b7e30e4246c2cd5e6c2c907486d235e4f3e8a39979744e9e0b8090629c62da4", size = 37826 }, - { url = "https://files.pythonhosted.org/packages/33/0c/e92a3398e80339e356e7aa8b2566d075ed876f5c12e9ad08704c49301a1d/multidict-6.3.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:be034aa2841c57ea43a55bc123d8f3f41cc2d3d102a22390c863791ba6bf23f1", size = 66383 }, - { url = "https://files.pythonhosted.org/packages/02/23/21ea785c2bbd36ad832e4365ac518bc7c14c72cc8be117fccb853ac3ee1f/multidict-6.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:168a02178b7e980899f3475ff008436eaab035d50e39cb8f7de641bbe9bbc3a6", size = 38709 }, - { url = "https://files.pythonhosted.org/packages/42/7b/52f65ed679b25e16a453bbacc06892622710ad3fc31cfa5c61f862af99fd/multidict-6.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0c4a6ec469c30f4162745d6485b778432c497032b8a2cb3a0332eea9d3b6aef6", size = 38314 }, - { url = "https://files.pythonhosted.org/packages/2e/5b/923e8b22268e53be4f11d0abe3f7b091e5ee7d213e7ca837f215cbc22bdb/multidict-6.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b293804f4b53be6297bc2afdeaf15aff76c1b6be69f3a3da785143eebdfb656", size = 244220 }, - { url = "https://files.pythonhosted.org/packages/1f/9c/d0c515f234f2958771c7463f6a03383d36e4074f1eb00459ec3c7190e8dd/multidict-6.3.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5eb2a8415a891564054447a327a7ef7ec90e69e0e63d85d1ffb03f82e102c740", size = 243508 }, - { url = "https://files.pythonhosted.org/packages/64/41/9a1a3308b4b99302a4502758baba6bb79c853332f26ef5a90968737d4563/multidict-6.3.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:db61c6ae9ee7268dc69a078ea22deaaf861350ad2e4c194c70798b8ec9789131", size = 238985 }, - { url = "https://files.pythonhosted.org/packages/40/68/fba5926f53ff3e7b19799399bd82e27cb3df5d569839d07b6b42827194f1/multidict-6.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88548dec2f6f69e547252fe3113bf1b3b08c0879f5b44633927be07ed18c5cc0", size = 238675 }, - { url = "https://files.pythonhosted.org/packages/f2/c6/3a5160331b9842905a3e8ae81527068318c9f6ebddfe7ed07853b97ba216/multidict-6.3.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:864684b36e0488715aac531785abe7514e872bfe83ecc768828e9ddaadeed320", size = 225747 }, - { url = "https://files.pythonhosted.org/packages/ed/0d/cc98fde65ee79beb0632c8d2f7a9e639e5175885d7c7ac2400f56bc78f73/multidict-6.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:71d92e846541669ae1d11e00906c408c1dc9890196e13f11d4d62bd235ac9ddb", size = 240611 }, - { url = "https://files.pythonhosted.org/packages/f6/73/580793855a587663b2e26aa9fa2fba3d16dbce26aff4cb92d48ae4814ff0/multidict-6.3.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:c5223ab45639ce93c7233d518f6c3199422b49dbd0ebfb1d7917b5da2636712e", size = 227815 }, - { url = "https://files.pythonhosted.org/packages/90/a6/ba293045efd338e4131726d7226c9d0870568486a6d025ec20dbf79f3972/multidict-6.3.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:56225de73d69f5ee6b783648eb1936e1bbe874a529cb1e15d64038904c54efb2", size = 239895 }, - { url = "https://files.pythonhosted.org/packages/4b/4a/ecda417af238696daafe921fbbdc96fa7e829656206442a785174377c61d/multidict-6.3.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:66c108d8e02da2febb0aa7d7002e14c4a0571460993c9edf8249393cdae7eeef", size = 233297 }, - { url = "https://files.pythonhosted.org/packages/73/90/8cea643f4e9b7f9c73b72032aa38f765e96db07636ea4b00f0420d9f6a5f/multidict-6.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:b95d96a0640decaa24cd9cf386fd4d8a96c973aafa42dd9c65609f9f0d66cc34", size = 232030 }, - { url = "https://files.pythonhosted.org/packages/1b/37/8d42820299fbfbc774ed8247a75b16dfe2f09c4e0d1ae62ac751b6c25397/multidict-6.3.0-cp313-cp313t-win32.whl", hash = "sha256:6b25953a1d6a97746becbd663b49e3b436a5001c995a62662d65835a2ba996a7", size = 41166 }, - { url = "https://files.pythonhosted.org/packages/74/63/44bb663fdd4da768d55fb0406daa50e2ea1904da014a0972068e6a7e44d1/multidict-6.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d9c2b1ca98e5454b78cd434f29fc33eb8f8a2f343efc5f975225d92070b9f7f6", size = 44929 }, - { url = "https://files.pythonhosted.org/packages/65/66/730bb6dbfbf87df8a341707ebd468044ea6c530605d41b3f31b494f03d6a/multidict-6.3.0-py3-none-any.whl", hash = "sha256:9ca652d9c6f68535537d75502b549ed0ca07fa6d3908f84f29f92148ec7310f2", size = 10266 }, +version = "6.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/91/2f/a3470242707058fe856fe59241eee5635d79087100b7042a867368863a27/multidict-6.4.4.tar.gz", hash = "sha256:69ee9e6ba214b5245031b76233dd95408a0fd57fdb019ddcc1ead4790932a8e8", size = 90183 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/1b/4c6e638195851524a63972c5773c7737bea7e47b1ba402186a37773acee2/multidict-6.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4f5f29794ac0e73d2a06ac03fd18870adc0135a9d384f4a306a951188ed02f95", size = 65515 }, + { url = "https://files.pythonhosted.org/packages/25/d5/10e6bca9a44b8af3c7f920743e5fc0c2bcf8c11bf7a295d4cfe00b08fb46/multidict-6.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c04157266344158ebd57b7120d9b0b35812285d26d0e78193e17ef57bfe2979a", size = 38609 }, + { url = "https://files.pythonhosted.org/packages/26/b4/91fead447ccff56247edc7f0535fbf140733ae25187a33621771ee598a18/multidict-6.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bb61ffd3ab8310d93427e460f565322c44ef12769f51f77277b4abad7b6f7223", size = 37871 }, + { url = "https://files.pythonhosted.org/packages/3b/37/cbc977cae59277e99d15bbda84cc53b5e0c4929ffd91d958347200a42ad0/multidict-6.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e0ba18a9afd495f17c351d08ebbc4284e9c9f7971d715f196b79636a4d0de44", size = 226661 }, + { url = "https://files.pythonhosted.org/packages/15/cd/7e0b57fbd4dc2fc105169c4ecce5be1a63970f23bb4ec8c721b67e11953d/multidict-6.4.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9faf1b1dcaadf9f900d23a0e6d6c8eadd6a95795a0e57fcca73acce0eb912065", size = 223422 }, + { url = "https://files.pythonhosted.org/packages/f1/01/1de268da121bac9f93242e30cd3286f6a819e5f0b8896511162d6ed4bf8d/multidict-6.4.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a4d1cb1327c6082c4fce4e2a438483390964c02213bc6b8d782cf782c9b1471f", size = 235447 }, + { url = "https://files.pythonhosted.org/packages/d2/8c/8b9a5e4aaaf4f2de14e86181a3a3d7b105077f668b6a06f043ec794f684c/multidict-6.4.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:941f1bec2f5dbd51feeb40aea654c2747f811ab01bdd3422a48a4e4576b7d76a", size = 231455 }, + { url = "https://files.pythonhosted.org/packages/35/db/e1817dcbaa10b319c412769cf999b1016890849245d38905b73e9c286862/multidict-6.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5f8a146184da7ea12910a4cec51ef85e44f6268467fb489c3caf0cd512f29c2", size = 223666 }, + { url = "https://files.pythonhosted.org/packages/4a/e1/66e8579290ade8a00e0126b3d9a93029033ffd84f0e697d457ed1814d0fc/multidict-6.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:232b7237e57ec3c09be97206bfb83a0aa1c5d7d377faa019c68a210fa35831f1", size = 217392 }, + { url = "https://files.pythonhosted.org/packages/7b/6f/f8639326069c24a48c7747c2a5485d37847e142a3f741ff3340c88060a9a/multidict-6.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:55ae0721c1513e5e3210bca4fc98456b980b0c2c016679d3d723119b6b202c42", size = 228969 }, + { url = "https://files.pythonhosted.org/packages/d2/c3/3d58182f76b960eeade51c89fcdce450f93379340457a328e132e2f8f9ed/multidict-6.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:51d662c072579f63137919d7bb8fc250655ce79f00c82ecf11cab678f335062e", size = 217433 }, + { url = "https://files.pythonhosted.org/packages/e1/4b/f31a562906f3bd375f3d0e83ce314e4a660c01b16c2923e8229b53fba5d7/multidict-6.4.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0e05c39962baa0bb19a6b210e9b1422c35c093b651d64246b6c2e1a7e242d9fd", size = 225418 }, + { url = "https://files.pythonhosted.org/packages/99/89/78bb95c89c496d64b5798434a3deee21996114d4d2c28dd65850bf3a691e/multidict-6.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5b1cc3ab8c31d9ebf0faa6e3540fb91257590da330ffe6d2393d4208e638925", size = 235042 }, + { url = "https://files.pythonhosted.org/packages/74/91/8780a6e5885a8770442a8f80db86a0887c4becca0e5a2282ba2cae702bc4/multidict-6.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:93ec84488a384cd7b8a29c2c7f467137d8a73f6fe38bb810ecf29d1ade011a7c", size = 230280 }, + { url = "https://files.pythonhosted.org/packages/68/c1/fcf69cabd542eb6f4b892469e033567ee6991d361d77abdc55e3a0f48349/multidict-6.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b308402608493638763abc95f9dc0030bbd6ac6aff784512e8ac3da73a88af08", size = 223322 }, + { url = "https://files.pythonhosted.org/packages/b8/85/5b80bf4b83d8141bd763e1d99142a9cdfd0db83f0739b4797172a4508014/multidict-6.4.4-cp311-cp311-win32.whl", hash = "sha256:343892a27d1a04d6ae455ecece12904d242d299ada01633d94c4f431d68a8c49", size = 35070 }, + { url = "https://files.pythonhosted.org/packages/09/66/0bed198ffd590ab86e001f7fa46b740d58cf8ff98c2f254e4a36bf8861ad/multidict-6.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:73484a94f55359780c0f458bbd3c39cb9cf9c182552177d2136e828269dee529", size = 38667 }, + { url = "https://files.pythonhosted.org/packages/d2/b5/5675377da23d60875fe7dae6be841787755878e315e2f517235f22f59e18/multidict-6.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dc388f75a1c00000824bf28b7633e40854f4127ede80512b44c3cfeeea1839a2", size = 64293 }, + { url = "https://files.pythonhosted.org/packages/34/a7/be384a482754bb8c95d2bbe91717bf7ccce6dc38c18569997a11f95aa554/multidict-6.4.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:98af87593a666f739d9dba5d0ae86e01b0e1a9cfcd2e30d2d361fbbbd1a9162d", size = 38096 }, + { url = "https://files.pythonhosted.org/packages/66/6d/d59854bb4352306145bdfd1704d210731c1bb2c890bfee31fb7bbc1c4c7f/multidict-6.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aff4cafea2d120327d55eadd6b7f1136a8e5a0ecf6fb3b6863e8aca32cd8e50a", size = 37214 }, + { url = "https://files.pythonhosted.org/packages/99/e0/c29d9d462d7cfc5fc8f9bf24f9c6843b40e953c0b55e04eba2ad2cf54fba/multidict-6.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:169c4ba7858176b797fe551d6e99040c531c775d2d57b31bcf4de6d7a669847f", size = 224686 }, + { url = "https://files.pythonhosted.org/packages/dc/4a/da99398d7fd8210d9de068f9a1b5f96dfaf67d51e3f2521f17cba4ee1012/multidict-6.4.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b9eb4c59c54421a32b3273d4239865cb14ead53a606db066d7130ac80cc8ec93", size = 231061 }, + { url = "https://files.pythonhosted.org/packages/21/f5/ac11add39a0f447ac89353e6ca46666847051103649831c08a2800a14455/multidict-6.4.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7cf3bd54c56aa16fdb40028d545eaa8d051402b61533c21e84046e05513d5780", size = 232412 }, + { url = "https://files.pythonhosted.org/packages/d9/11/4b551e2110cded705a3c13a1d4b6a11f73891eb5a1c449f1b2b6259e58a6/multidict-6.4.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f682c42003c7264134bfe886376299db4cc0c6cd06a3295b41b347044bcb5482", size = 231563 }, + { url = "https://files.pythonhosted.org/packages/4c/02/751530c19e78fe73b24c3da66618eda0aa0d7f6e7aa512e46483de6be210/multidict-6.4.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a920f9cf2abdf6e493c519492d892c362007f113c94da4c239ae88429835bad1", size = 223811 }, + { url = "https://files.pythonhosted.org/packages/c7/cb/2be8a214643056289e51ca356026c7b2ce7225373e7a1f8c8715efee8988/multidict-6.4.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:530d86827a2df6504526106b4c104ba19044594f8722d3e87714e847c74a0275", size = 216524 }, + { url = "https://files.pythonhosted.org/packages/19/f3/6d5011ec375c09081f5250af58de85f172bfcaafebff286d8089243c4bd4/multidict-6.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ecde56ea2439b96ed8a8d826b50c57364612ddac0438c39e473fafad7ae1c23b", size = 229012 }, + { url = "https://files.pythonhosted.org/packages/67/9c/ca510785df5cf0eaf5b2a8132d7d04c1ce058dcf2c16233e596ce37a7f8e/multidict-6.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:dc8c9736d8574b560634775ac0def6bdc1661fc63fa27ffdfc7264c565bcb4f2", size = 226765 }, + { url = "https://files.pythonhosted.org/packages/36/c8/ca86019994e92a0f11e642bda31265854e6ea7b235642f0477e8c2e25c1f/multidict-6.4.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7f3d3b3c34867579ea47cbd6c1f2ce23fbfd20a273b6f9e3177e256584f1eacc", size = 222888 }, + { url = "https://files.pythonhosted.org/packages/c6/67/bc25a8e8bd522935379066950ec4e2277f9b236162a73548a2576d4b9587/multidict-6.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:87a728af265e08f96b6318ebe3c0f68b9335131f461efab2fc64cc84a44aa6ed", size = 234041 }, + { url = "https://files.pythonhosted.org/packages/f1/a0/70c4c2d12857fccbe607b334b7ee28b6b5326c322ca8f73ee54e70d76484/multidict-6.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9f193eeda1857f8e8d3079a4abd258f42ef4a4bc87388452ed1e1c4d2b0c8740", size = 231046 }, + { url = "https://files.pythonhosted.org/packages/c1/0f/52954601d02d39742aab01d6b92f53c1dd38b2392248154c50797b4df7f1/multidict-6.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be06e73c06415199200e9a2324a11252a3d62030319919cde5e6950ffeccf72e", size = 227106 }, + { url = "https://files.pythonhosted.org/packages/af/24/679d83ec4379402d28721790dce818e5d6b9f94ce1323a556fb17fa9996c/multidict-6.4.4-cp312-cp312-win32.whl", hash = "sha256:622f26ea6a7e19b7c48dd9228071f571b2fbbd57a8cd71c061e848f281550e6b", size = 35351 }, + { url = "https://files.pythonhosted.org/packages/52/ef/40d98bc5f986f61565f9b345f102409534e29da86a6454eb6b7c00225a13/multidict-6.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:5e2bcda30d5009996ff439e02a9f2b5c3d64a20151d34898c000a6281faa3781", size = 38791 }, + { url = "https://files.pythonhosted.org/packages/df/2a/e166d2ffbf4b10131b2d5b0e458f7cee7d986661caceae0de8753042d4b2/multidict-6.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:82ffabefc8d84c2742ad19c37f02cde5ec2a1ee172d19944d380f920a340e4b9", size = 64123 }, + { url = "https://files.pythonhosted.org/packages/8c/96/e200e379ae5b6f95cbae472e0199ea98913f03d8c9a709f42612a432932c/multidict-6.4.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6a2f58a66fe2c22615ad26156354005391e26a2f3721c3621504cd87c1ea87bf", size = 38049 }, + { url = "https://files.pythonhosted.org/packages/75/fb/47afd17b83f6a8c7fa863c6d23ac5ba6a0e6145ed8a6bcc8da20b2b2c1d2/multidict-6.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5883d6ee0fd9d8a48e9174df47540b7545909841ac82354c7ae4cbe9952603bd", size = 37078 }, + { url = "https://files.pythonhosted.org/packages/fa/70/1af3143000eddfb19fd5ca5e78393985ed988ac493bb859800fe0914041f/multidict-6.4.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9abcf56a9511653fa1d052bfc55fbe53dbee8f34e68bd6a5a038731b0ca42d15", size = 224097 }, + { url = "https://files.pythonhosted.org/packages/b1/39/d570c62b53d4fba844e0378ffbcd02ac25ca423d3235047013ba2f6f60f8/multidict-6.4.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6ed5ae5605d4ad5a049fad2a28bb7193400700ce2f4ae484ab702d1e3749c3f9", size = 230768 }, + { url = "https://files.pythonhosted.org/packages/fd/f8/ed88f2c4d06f752b015933055eb291d9bc184936903752c66f68fb3c95a7/multidict-6.4.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbfcb60396f9bcfa63e017a180c3105b8c123a63e9d1428a36544e7d37ca9e20", size = 231331 }, + { url = "https://files.pythonhosted.org/packages/9c/6f/8e07cffa32f483ab887b0d56bbd8747ac2c1acd00dc0af6fcf265f4a121e/multidict-6.4.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0f1987787f5f1e2076b59692352ab29a955b09ccc433c1f6b8e8e18666f608b", size = 230169 }, + { url = "https://files.pythonhosted.org/packages/e6/2b/5dcf173be15e42f330110875a2668ddfc208afc4229097312212dc9c1236/multidict-6.4.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d0121ccce8c812047d8d43d691a1ad7641f72c4f730474878a5aeae1b8ead8c", size = 222947 }, + { url = "https://files.pythonhosted.org/packages/39/75/4ddcbcebe5ebcd6faa770b629260d15840a5fc07ce8ad295a32e14993726/multidict-6.4.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83ec4967114295b8afd120a8eec579920c882831a3e4c3331d591a8e5bfbbc0f", size = 215761 }, + { url = "https://files.pythonhosted.org/packages/6a/c9/55e998ae45ff15c5608e384206aa71a11e1b7f48b64d166db400b14a3433/multidict-6.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:995f985e2e268deaf17867801b859a282e0448633f1310e3704b30616d269d69", size = 227605 }, + { url = "https://files.pythonhosted.org/packages/04/49/c2404eac74497503c77071bd2e6f88c7e94092b8a07601536b8dbe99be50/multidict-6.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:d832c608f94b9f92a0ec8b7e949be7792a642b6e535fcf32f3e28fab69eeb046", size = 226144 }, + { url = "https://files.pythonhosted.org/packages/62/c5/0cd0c3c6f18864c40846aa2252cd69d308699cb163e1c0d989ca301684da/multidict-6.4.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d21c1212171cf7da703c5b0b7a0e85be23b720818aef502ad187d627316d5645", size = 221100 }, + { url = "https://files.pythonhosted.org/packages/71/7b/f2f3887bea71739a046d601ef10e689528d4f911d84da873b6be9194ffea/multidict-6.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:cbebaa076aaecad3d4bb4c008ecc73b09274c952cf6a1b78ccfd689e51f5a5b0", size = 232731 }, + { url = "https://files.pythonhosted.org/packages/e5/b3/d9de808349df97fa75ec1372758701b5800ebad3c46ae377ad63058fbcc6/multidict-6.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:c93a6fb06cc8e5d3628b2b5fda215a5db01e8f08fc15fadd65662d9b857acbe4", size = 229637 }, + { url = "https://files.pythonhosted.org/packages/5e/57/13207c16b615eb4f1745b44806a96026ef8e1b694008a58226c2d8f5f0a5/multidict-6.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8cd8f81f1310182362fb0c7898145ea9c9b08a71081c5963b40ee3e3cac589b1", size = 225594 }, + { url = "https://files.pythonhosted.org/packages/3a/e4/d23bec2f70221604f5565000632c305fc8f25ba953e8ce2d8a18842b9841/multidict-6.4.4-cp313-cp313-win32.whl", hash = "sha256:3e9f1cd61a0ab857154205fb0b1f3d3ace88d27ebd1409ab7af5096e409614cd", size = 35359 }, + { url = "https://files.pythonhosted.org/packages/a7/7a/cfe1a47632be861b627f46f642c1d031704cc1c0f5c0efbde2ad44aa34bd/multidict-6.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:8ffb40b74400e4455785c2fa37eba434269149ec525fc8329858c862e4b35373", size = 38903 }, + { url = "https://files.pythonhosted.org/packages/68/7b/15c259b0ab49938a0a1c8f3188572802704a779ddb294edc1b2a72252e7c/multidict-6.4.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6a602151dbf177be2450ef38966f4be3467d41a86c6a845070d12e17c858a156", size = 68895 }, + { url = "https://files.pythonhosted.org/packages/f1/7d/168b5b822bccd88142e0a3ce985858fea612404edd228698f5af691020c9/multidict-6.4.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0d2b9712211b860d123815a80b859075d86a4d54787e247d7fbee9db6832cf1c", size = 40183 }, + { url = "https://files.pythonhosted.org/packages/e0/b7/d4b8d98eb850ef28a4922ba508c31d90715fd9b9da3801a30cea2967130b/multidict-6.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d2fa86af59f8fc1972e121ade052145f6da22758f6996a197d69bb52f8204e7e", size = 39592 }, + { url = "https://files.pythonhosted.org/packages/18/28/a554678898a19583548e742080cf55d169733baf57efc48c2f0273a08583/multidict-6.4.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50855d03e9e4d66eab6947ba688ffb714616f985838077bc4b490e769e48da51", size = 226071 }, + { url = "https://files.pythonhosted.org/packages/ee/dc/7ba6c789d05c310e294f85329efac1bf5b450338d2542498db1491a264df/multidict-6.4.4-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5bce06b83be23225be1905dcdb6b789064fae92499fbc458f59a8c0e68718601", size = 222597 }, + { url = "https://files.pythonhosted.org/packages/24/4f/34eadbbf401b03768dba439be0fb94b0d187facae9142821a3d5599ccb3b/multidict-6.4.4-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66ed0731f8e5dfd8369a883b6e564aca085fb9289aacabd9decd70568b9a30de", size = 228253 }, + { url = "https://files.pythonhosted.org/packages/c0/e6/493225a3cdb0d8d80d43a94503fc313536a07dae54a3f030d279e629a2bc/multidict-6.4.4-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:329ae97fc2f56f44d91bc47fe0972b1f52d21c4b7a2ac97040da02577e2daca2", size = 226146 }, + { url = "https://files.pythonhosted.org/packages/2f/70/e411a7254dc3bff6f7e6e004303b1b0591358e9f0b7c08639941e0de8bd6/multidict-6.4.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c27e5dcf520923d6474d98b96749e6805f7677e93aaaf62656005b8643f907ab", size = 220585 }, + { url = "https://files.pythonhosted.org/packages/08/8f/beb3ae7406a619100d2b1fb0022c3bb55a8225ab53c5663648ba50dfcd56/multidict-6.4.4-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:058cc59b9e9b143cc56715e59e22941a5d868c322242278d28123a5d09cdf6b0", size = 212080 }, + { url = "https://files.pythonhosted.org/packages/9c/ec/355124e9d3d01cf8edb072fd14947220f357e1c5bc79c88dff89297e9342/multidict-6.4.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:69133376bc9a03f8c47343d33f91f74a99c339e8b58cea90433d8e24bb298031", size = 226558 }, + { url = "https://files.pythonhosted.org/packages/fd/22/d2b95cbebbc2ada3be3812ea9287dcc9712d7f1a012fad041770afddb2ad/multidict-6.4.4-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d6b15c55721b1b115c5ba178c77104123745b1417527ad9641a4c5e2047450f0", size = 212168 }, + { url = "https://files.pythonhosted.org/packages/4d/c5/62bfc0b2f9ce88326dbe7179f9824a939c6c7775b23b95de777267b9725c/multidict-6.4.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a887b77f51d3d41e6e1a63cf3bc7ddf24de5939d9ff69441387dfefa58ac2e26", size = 217970 }, + { url = "https://files.pythonhosted.org/packages/79/74/977cea1aadc43ff1c75d23bd5bc4768a8fac98c14e5878d6ee8d6bab743c/multidict-6.4.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:632a3bf8f1787f7ef7d3c2f68a7bde5be2f702906f8b5842ad6da9d974d0aab3", size = 226980 }, + { url = "https://files.pythonhosted.org/packages/48/fc/cc4a1a2049df2eb84006607dc428ff237af38e0fcecfdb8a29ca47b1566c/multidict-6.4.4-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:a145c550900deb7540973c5cdb183b0d24bed6b80bf7bddf33ed8f569082535e", size = 220641 }, + { url = "https://files.pythonhosted.org/packages/3b/6a/a7444d113ab918701988d4abdde373dbdfd2def7bd647207e2bf645c7eac/multidict-6.4.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cc5d83c6619ca5c9672cb78b39ed8542f1975a803dee2cda114ff73cbb076edd", size = 221728 }, + { url = "https://files.pythonhosted.org/packages/2b/b0/fdf4c73ad1c55e0f4dbbf2aa59dd37037334091f9a4961646d2b7ac91a86/multidict-6.4.4-cp313-cp313t-win32.whl", hash = "sha256:3312f63261b9df49be9d57aaa6abf53a6ad96d93b24f9cc16cf979956355ce6e", size = 41913 }, + { url = "https://files.pythonhosted.org/packages/8e/92/27989ecca97e542c0d01d05a98a5ae12198a243a9ee12563a0313291511f/multidict-6.4.4-cp313-cp313t-win_amd64.whl", hash = "sha256:ba852168d814b2c73333073e1c7116d9395bea69575a01b0b3c89d2d5a87c8fb", size = 46112 }, + { url = "https://files.pythonhosted.org/packages/84/5d/e17845bb0fa76334477d5de38654d27946d5b5d3695443987a094a71b440/multidict-6.4.4-py3-none-any.whl", hash = "sha256:bd4557071b561a8b3b6075c3ce93cf9bfb6182cb241805c3d66ced3b75eff4ac", size = 10481 }, ] [[package]] @@ -1744,7 +1812,7 @@ requires-dist = [ { name = "segy", specifier = ">=0.4.0,<0.5.0" }, { name = "tqdm", specifier = ">=4.67.0,<5.0.0" }, { name = "xarray", specifier = ">=2025.3.1" }, - { name = "zarr", specifier = ">=3.0.4,<3.0.7" }, + { name = "zarr", specifier = ">=3.0.8,<4.0.0" }, { name = "zfpy", marker = "extra == 'lossy'", specifier = ">=1.0.1,<2.0.0" }, ] provides-extras = ["cloud", "distributed", "lossy"] @@ -1807,11 +1875,11 @@ wheels = [ [[package]] name = "mypy-extensions" -version = "1.0.0" +version = "1.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/98/a4/1ab47638b92648243faf97a5aeb6ea83059cc3624972ab6b8d2316078d3f/mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782", size = 4433 } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", size = 4695 }, + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963 }, ] [[package]] @@ -1854,11 +1922,11 @@ wheels = [ [[package]] name = "narwhals" -version = "1.33.0" +version = "1.41.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/85/fd/484aa8bb557f97a1781f38c78b79f795a2fa320e4165c4230f679937d1e8/narwhals-1.33.0.tar.gz", hash = "sha256:6233d2457debf4b5fe4a1da54530c6fe2d84326f4a8e3bca35bbbff580a347cb", size = 262554 } +sdist = { url = "https://files.pythonhosted.org/packages/32/fc/7b9a3689911662be59889b1b0b40e17d5dba6f98080994d86ca1f3154d41/narwhals-1.41.0.tar.gz", hash = "sha256:0ab2e5a1757a19b071e37ca74b53b0b5426789321d68939738337dfddea629b5", size = 488446 } wheels = [ - { url = "https://files.pythonhosted.org/packages/41/c1/e9bc6b67c774e7c1f939c91ea535f18f7644fedc61b20d6baa861ad52b34/narwhals-1.33.0-py3-none-any.whl", hash = "sha256:f653319112fd121a1f1c18a40cf70dada773cdacfd53e62c2aa0afae43c17129", size = 322750 }, + { url = "https://files.pythonhosted.org/packages/c9/e0/ade8619846645461c012498f02b93a659e50f07d9d9a6ffefdf5ea2c02a0/narwhals-1.41.0-py3-none-any.whl", hash = "sha256:d958336b40952e4c4b7aeef259a7074851da0800cf902186a58f2faeff97be02", size = 357968 }, ] [[package]] @@ -1926,53 +1994,56 @@ wheels = [ [[package]] name = "numba" -version = "0.61.0" +version = "0.61.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "llvmlite" }, { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3c/88/c13a935f200fda51384411e49840a8e7f70c9cb1ee8d809dd0f2477cf7ef/numba-0.61.0.tar.gz", hash = "sha256:888d2e89b8160899e19591467e8fdd4970e07606e1fbc248f239c89818d5f925", size = 2816484 } +sdist = { url = "https://files.pythonhosted.org/packages/1c/a0/e21f57604304aa03ebb8e098429222722ad99176a4f979d34af1d1ee80da/numba-0.61.2.tar.gz", hash = "sha256:8750ee147940a6637b80ecf7f95062185ad8726c8c28a2295b8ec1160a196f7d", size = 2820615 } wheels = [ - { url = "https://files.pythonhosted.org/packages/63/8f/f983a7c859ccad73d3cc3f86fbba94f16e137cd1ee464631d61b624363b2/numba-0.61.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:bf64c2d0f3d161af603de3825172fb83c2600bcb1d53ae8ea568d4c53ba6ac08", size = 2768960 }, - { url = "https://files.pythonhosted.org/packages/be/1b/c33dc847d475d5b647b4ad5aefc38df7a72283763f4cda47745050375a81/numba-0.61.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:de5aa7904741425f28e1028b85850b31f0a245e9eb4f7c38507fb893283a066c", size = 2771862 }, - { url = "https://files.pythonhosted.org/packages/14/91/18b9f64b34ff318a14d072251480547f89ebfb864b2b7168e5dc5f64f502/numba-0.61.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:21c2fe25019267a608e2710a6a947f557486b4b0478b02e45a81cf606a05a7d4", size = 3825411 }, - { url = "https://files.pythonhosted.org/packages/f2/97/1a38030c2a331e273ace1de2b61988e33d80878fda8a5eedee0cd78399d3/numba-0.61.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:74250b26ed6a1428763e774dc5b2d4e70d93f73795635b5412b8346a4d054574", size = 3519604 }, - { url = "https://files.pythonhosted.org/packages/df/a7/56f547de8fc197963f238fd62beb5f1d2cace047602d0577956bf6840970/numba-0.61.0-cp311-cp311-win_amd64.whl", hash = "sha256:b72bbc8708e98b3741ad0c63f9929c47b623cc4ee86e17030a4f3e301e8401ac", size = 2827642 }, - { url = "https://files.pythonhosted.org/packages/63/c9/c61881e7f2e253e745209f078bbd428ce23b6cf901f7d93afe166720ff95/numba-0.61.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:152146ecdbb8d8176f294e9f755411e6f270103a11c3ff50cecc413f794e52c8", size = 2769758 }, - { url = "https://files.pythonhosted.org/packages/e1/28/ddec0147a4933f86ceaca580aa9bb767d5632ecdb1ece6cfb3eab4ac78e5/numba-0.61.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5cafa6095716fcb081618c28a8d27bf7c001e09696f595b41836dec114be2905", size = 2772445 }, - { url = "https://files.pythonhosted.org/packages/18/74/6a9f0e6c76c088f8a6aa702eab31734068061dca5cc0f34e8bc1eb447de1/numba-0.61.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ffe9fe373ed30638d6e20a0269f817b2c75d447141f55a675bfcf2d1fe2e87fb", size = 3882115 }, - { url = "https://files.pythonhosted.org/packages/53/68/d7c31e53f08e6b4669c9b5a3cd7c5fb9097220c5ef388bc099ca8ab9749f/numba-0.61.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:9f25f7fef0206d55c1cfb796ad833cbbc044e2884751e56e798351280038484c", size = 3573296 }, - { url = "https://files.pythonhosted.org/packages/94/4f/8357a99a14f331b865a42cb4756ae37da85599b9c95e01277ea10361e91a/numba-0.61.0-cp312-cp312-win_amd64.whl", hash = "sha256:550d389573bc3b895e1ccb18289feea11d937011de4d278b09dc7ed585d1cdcb", size = 2828077 }, - { url = "https://files.pythonhosted.org/packages/3b/54/71fba18e4af5619f1ea8175ee92e82dd8e220bd6feb8c0153c6b814c8a60/numba-0.61.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:b96fafbdcf6f69b69855273e988696aae4974115a815f6818fef4af7afa1f6b8", size = 2768024 }, - { url = "https://files.pythonhosted.org/packages/39/76/2448b43d08e904aad1b1b9cd12835b19411e84a81aa9192f83642a5e0afd/numba-0.61.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5f6c452dca1de8e60e593f7066df052dd8da09b243566ecd26d2b796e5d3087d", size = 2769541 }, - { url = "https://files.pythonhosted.org/packages/32/8f/4bb2374247ab988c9eac587b304b2947a36d605b9bb9ba4bf06e955c17d3/numba-0.61.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:44240e694d4aa321430c97b21453e46014fe6c7b8b7d932afa7f6a88cc5d7e5e", size = 3890102 }, - { url = "https://files.pythonhosted.org/packages/ab/bc/dc2d03555289ae5263f65c01d45eb186ce347585c191daf0e60021d5ed39/numba-0.61.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:764f0e47004f126f58c3b28e0a02374c420a9d15157b90806d68590f5c20cc89", size = 3580239 }, - { url = "https://files.pythonhosted.org/packages/61/08/71247ce560d2c222d9ca705c7d3547fc4069b96fc85d71aabeb890befe9f/numba-0.61.0-cp313-cp313-win_amd64.whl", hash = "sha256:074cd38c5b1f9c65a4319d1f3928165f48975ef0537ad43385b2bd908e6e2e35", size = 2828035 }, + { url = "https://files.pythonhosted.org/packages/3f/97/c99d1056aed767503c228f7099dc11c402906b42a4757fec2819329abb98/numba-0.61.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:efd3db391df53aaa5cfbee189b6c910a5b471488749fd6606c3f33fc984c2ae2", size = 2775825 }, + { url = "https://files.pythonhosted.org/packages/95/9e/63c549f37136e892f006260c3e2613d09d5120672378191f2dc387ba65a2/numba-0.61.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:49c980e4171948ffebf6b9a2520ea81feed113c1f4890747ba7f59e74be84b1b", size = 2778695 }, + { url = "https://files.pythonhosted.org/packages/97/c8/8740616c8436c86c1b9a62e72cb891177d2c34c2d24ddcde4c390371bf4c/numba-0.61.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3945615cd73c2c7eba2a85ccc9c1730c21cd3958bfcf5a44302abae0fb07bb60", size = 3829227 }, + { url = "https://files.pythonhosted.org/packages/fc/06/66e99ae06507c31d15ff3ecd1f108f2f59e18b6e08662cd5f8a5853fbd18/numba-0.61.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbfdf4eca202cebade0b7d43896978e146f39398909a42941c9303f82f403a18", size = 3523422 }, + { url = "https://files.pythonhosted.org/packages/0f/a4/2b309a6a9f6d4d8cfba583401c7c2f9ff887adb5d54d8e2e130274c0973f/numba-0.61.2-cp311-cp311-win_amd64.whl", hash = "sha256:76bcec9f46259cedf888041b9886e257ae101c6268261b19fda8cfbc52bec9d1", size = 2831505 }, + { url = "https://files.pythonhosted.org/packages/b4/a0/c6b7b9c615cfa3b98c4c63f4316e3f6b3bbe2387740277006551784218cd/numba-0.61.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:34fba9406078bac7ab052efbf0d13939426c753ad72946baaa5bf9ae0ebb8dd2", size = 2776626 }, + { url = "https://files.pythonhosted.org/packages/92/4a/fe4e3c2ecad72d88f5f8cd04e7f7cff49e718398a2fac02d2947480a00ca/numba-0.61.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4ddce10009bc097b080fc96876d14c051cc0c7679e99de3e0af59014dab7dfe8", size = 2779287 }, + { url = "https://files.pythonhosted.org/packages/9a/2d/e518df036feab381c23a624dac47f8445ac55686ec7f11083655eb707da3/numba-0.61.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b1bb509d01f23d70325d3a5a0e237cbc9544dd50e50588bc581ba860c213546", size = 3885928 }, + { url = "https://files.pythonhosted.org/packages/10/0f/23cced68ead67b75d77cfcca3df4991d1855c897ee0ff3fe25a56ed82108/numba-0.61.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48a53a3de8f8793526cbe330f2a39fe9a6638efcbf11bd63f3d2f9757ae345cd", size = 3577115 }, + { url = "https://files.pythonhosted.org/packages/68/1d/ddb3e704c5a8fb90142bf9dc195c27db02a08a99f037395503bfbc1d14b3/numba-0.61.2-cp312-cp312-win_amd64.whl", hash = "sha256:97cf4f12c728cf77c9c1d7c23707e4d8fb4632b46275f8f3397de33e5877af18", size = 2831929 }, + { url = "https://files.pythonhosted.org/packages/0b/f3/0fe4c1b1f2569e8a18ad90c159298d862f96c3964392a20d74fc628aee44/numba-0.61.2-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:3a10a8fc9afac40b1eac55717cece1b8b1ac0b946f5065c89e00bde646b5b154", size = 2771785 }, + { url = "https://files.pythonhosted.org/packages/e9/71/91b277d712e46bd5059f8a5866862ed1116091a7cb03bd2704ba8ebe015f/numba-0.61.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d3bcada3c9afba3bed413fba45845f2fb9cd0d2b27dd58a1be90257e293d140", size = 2773289 }, + { url = "https://files.pythonhosted.org/packages/0d/e0/5ea04e7ad2c39288c0f0f9e8d47638ad70f28e275d092733b5817cf243c9/numba-0.61.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bdbca73ad81fa196bd53dc12e3aaf1564ae036e0c125f237c7644fe64a4928ab", size = 3893918 }, + { url = "https://files.pythonhosted.org/packages/17/58/064f4dcb7d7e9412f16ecf80ed753f92297e39f399c905389688cf950b81/numba-0.61.2-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:5f154aaea625fb32cfbe3b80c5456d514d416fcdf79733dd69c0df3a11348e9e", size = 3584056 }, + { url = "https://files.pythonhosted.org/packages/af/a4/6d3a0f2d3989e62a18749e1e9913d5fa4910bbb3e3311a035baea6caf26d/numba-0.61.2-cp313-cp313-win_amd64.whl", hash = "sha256:59321215e2e0ac5fa928a8020ab00b8e57cda8a97384963ac0dfa4d4e6aa54e7", size = 2831846 }, ] [[package]] name = "numcodecs" -version = "0.15.1" +version = "0.16.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "deprecated" }, { name = "numpy" }, + { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/63/fc/bb532969eb8236984ba65e4f0079a7da885b8ac0ce1f0835decbb3938a62/numcodecs-0.15.1.tar.gz", hash = "sha256:eeed77e4d6636641a2cc605fbc6078c7a8f2cc40f3dfa2b3f61e52e6091b04ff", size = 6267275 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e4/fc/410f1cacaef0931f5daf06813b1b8a2442f7418ee284ec73fe5e830dca48/numcodecs-0.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:698f1d59511488b8fe215fadc1e679a4c70d894de2cca6d8bf2ab770eed34dfd", size = 1649501 }, - { url = "https://files.pythonhosted.org/packages/85/29/dff62fae04323035912c419a82dc9624fad7d08541dbfcd9ab78a3a40074/numcodecs-0.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bef8c8e64fab76677324a07672b10c31861775d03fc63ed5012ca384144e4bb9", size = 1187306 }, - { url = "https://files.pythonhosted.org/packages/a6/a8/908a226632ffabf19caf8c99f1b2898f2f22aac02795a6fe9d018fd6d9dd/numcodecs-0.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdfaef9f5f2ed8f65858db801f1953f1007c9613ee490a1c56233cd78b505ed5", size = 8891971 }, - { url = "https://files.pythonhosted.org/packages/2b/e8/058aac43e1300d588e99b2d0d5b771c8a43fa92ce9c9517da596869fc146/numcodecs-0.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:e2547fa3a7ffc9399cfd2936aecb620a3db285f2630c86c8a678e477741a4b3c", size = 840035 }, - { url = "https://files.pythonhosted.org/packages/e7/7e/f12fc32d3beedc6a8f1ec69ea0ba72e93cb99c0350feed2cff5d04679bc3/numcodecs-0.15.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b0a9d9cd29a0088220682dda4a9898321f7813ff7802be2bbb545f6e3d2f10ff", size = 1691889 }, - { url = "https://files.pythonhosted.org/packages/81/38/88e40d40288b73c3b3a390ed5614a34b0661d00255bdd4cfb91c32101364/numcodecs-0.15.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a34f0fe5e5f3b837bbedbeb98794a6d4a12eeeef8d4697b523905837900b5e1c", size = 1189149 }, - { url = "https://files.pythonhosted.org/packages/28/7d/7527d9180bc76011d6163c848c9cf02cd28a623c2c66cf543e1e86de7c5e/numcodecs-0.15.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3a09e22140f2c691f7df26303ff8fa2dadcf26d7d0828398c0bc09b69e5efa3", size = 8879163 }, - { url = "https://files.pythonhosted.org/packages/ab/bc/b6c3cde91c754860a3467a8c058dcf0b1a5ca14d82b1c5397c700cf8b1eb/numcodecs-0.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:daed6066ffcf40082da847d318b5ab6123d69ceb433ba603cb87c323a541a8bc", size = 836785 }, - { url = "https://files.pythonhosted.org/packages/78/57/acbc54b3419e5be65015e47177c76c0a73e037fd3ae2cde5808169194d4d/numcodecs-0.15.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e3d82b70500cf61e8d115faa0d0a76be6ecdc24a16477ee3279d711699ad85f3", size = 1688220 }, - { url = "https://files.pythonhosted.org/packages/b6/56/9863fa6dc679f40a31bea5e9713ee5507a31dcd3ee82ea4b1a9268ce52e8/numcodecs-0.15.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1d471a1829ce52d3f365053a2bd1379e32e369517557c4027ddf5ac0d99c591e", size = 1180294 }, - { url = "https://files.pythonhosted.org/packages/fa/91/d96999b41e3146b6c0ce6bddc5ad85803cb4d743c95394562c2a4bb8cded/numcodecs-0.15.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1dfdea4a67108205edfce99c1cb6cd621343bc7abb7e16a041c966776920e7de", size = 8834323 }, - { url = "https://files.pythonhosted.org/packages/c3/32/233e5ede6568bdb044e6f99aaa9fa39827ff3109c6487fc137315f733586/numcodecs-0.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:a4f7bdb26f1b34423cb56d48e75821223be38040907c9b5954eeb7463e7eb03c", size = 831955 }, +sdist = { url = "https://files.pythonhosted.org/packages/00/35/49da850ce5371da3930d099da364a73ce9ae4fc64075e521674b48f4804d/numcodecs-0.16.1.tar.gz", hash = "sha256:c47f20d656454568c6b4697ce02081e6bbb512f198738c6a56fafe8029c97fb1", size = 6268134 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/82/8d6ca1166dc9b020f383073c1c604e004f0495d243647a83e5d5fff2b7ad/numcodecs-0.16.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:5348a25aefbce37ea7c00c3363d36176155233c95597e5905a932e9620df960d", size = 1623980 }, + { url = "https://files.pythonhosted.org/packages/aa/4e/11258b7945c6cd3579f16228c803a13291d16ef7ef46f9551008090b6763/numcodecs-0.16.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2058b0a985470809c720d2457758b61e6c9495a49d5f20dfac9b5ebabd8848eb", size = 1153826 }, + { url = "https://files.pythonhosted.org/packages/a1/24/4099ccb29754fc1d2e55dbd9b540f58a24cab6e844dc996e37812c3fb79d/numcodecs-0.16.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b216b6d7bc207b85d41fddbc25b09fd00d76e265454db6e3fb09d5da0216397", size = 8263684 }, + { url = "https://files.pythonhosted.org/packages/04/e3/816a82b984dd7fb7a0afadd16842260ccfee23cc5edbda48a92649ee161b/numcodecs-0.16.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2308d56c4f84a5b942f8668b4adedd3d9cdd6a22e6e6e20768ec356c77050f38", size = 8788927 }, + { url = "https://files.pythonhosted.org/packages/6f/54/dbea8b17928670412db0efb20efc087b30c2a67b84b1605fa8a136e482af/numcodecs-0.16.1-cp311-cp311-win_amd64.whl", hash = "sha256:acd8d68b4b815e62cb91e6064a53dac51ee99849350784ee16dd52cdbb4bc70f", size = 790259 }, + { url = "https://files.pythonhosted.org/packages/b7/ee/e2a903c88fed347dc74c70bbd7a8dab9aa22bb0dac68c5bc6393c2e9373b/numcodecs-0.16.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1abe0651ecb6f207656ebfc802effa55c4ae3136cf172c295a067749a2699122", size = 1663434 }, + { url = "https://files.pythonhosted.org/packages/f2/f0/37819d4f6896b1ac43a164ffd3ab99d7cbf63bf63cb375fef97aedaef4f0/numcodecs-0.16.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:abb39b7102d0816c8563669cdddca40392d34d0cbf31e3e996706b244586a458", size = 1150402 }, + { url = "https://files.pythonhosted.org/packages/60/3c/5059a29750305b80b7428b1e6695878dea9ea3b537d7fba57875e4bbc2c7/numcodecs-0.16.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3359a951f8b23317f12736a7ad1e7375ec3d735465f92049c76d032ebca4c40", size = 8237455 }, + { url = "https://files.pythonhosted.org/packages/1b/f5/515f98d659ab0cbe3738da153eddae22186fd38f05a808511e10f04cf679/numcodecs-0.16.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82cc70592ec18060786b1bfa0da23afd2a7807d7975d766e626954d6628ec609", size = 8770711 }, + { url = "https://files.pythonhosted.org/packages/a2/3a/9fc6104f888af11bad804ebd32dffe0bcb83337f4525b4fe5b379942fefd/numcodecs-0.16.1-cp312-cp312-win_amd64.whl", hash = "sha256:4b48ddc8a7d132b7808bc53eb2705342de5c1e39289d725f988bd143c0fd86df", size = 788701 }, + { url = "https://files.pythonhosted.org/packages/5e/1e/73ffb1074f03d52cb1c4f4deaba26a2008ca45262f3622ed26dbec7a7362/numcodecs-0.16.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ad8ee940315f59188accfc3f2d39726a4ca0d76b49bf8d0018e121f01c49028", size = 1659453 }, + { url = "https://files.pythonhosted.org/packages/42/72/5affb1ce92b7a6becee17921de7c6b521a48fa61fc3d36d9f1eea2cf83f5/numcodecs-0.16.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:179ca7bf3525a0f7379df7767d87dd495253de44597cb7e511198b28b09da633", size = 1143932 }, + { url = "https://files.pythonhosted.org/packages/e3/f1/b092679d84c67c6ed62e4df5781d89bbb089f24a0df4187cbab9db51cf6b/numcodecs-0.16.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e2babbb50bf348ae982818d5560af330eab0dcd925fb0e49509785ad57d11db", size = 8187716 }, + { url = "https://files.pythonhosted.org/packages/a8/e8/86e7741adb43261aff409b53c53c8bac2797bfca055d64dd65dc731d5141/numcodecs-0.16.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4b29d8d3284b72bfad4fb83d672a17f497ae86ee1ef8087bac7222b620d3d91", size = 8728650 }, + { url = "https://files.pythonhosted.org/packages/21/03/87c5c217232aa3515d350728c6dcefca252fa582246100ef68a51fbda456/numcodecs-0.16.1-cp313-cp313-win_amd64.whl", hash = "sha256:06489635f43e1a959aea73cb830d78cf3adb07ac5f34daccb92091e4d9ac6b07", size = 785553 }, ] [package.optional-dependencies] @@ -1982,50 +2053,50 @@ crc32c = [ [[package]] name = "numpy" -version = "2.1.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/25/ca/1166b75c21abd1da445b97bf1fa2f14f423c6cfb4fc7c4ef31dccf9f6a94/numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761", size = 20166090 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/81/c8167192eba5247593cd9d305ac236847c2912ff39e11402e72ae28a4985/numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d", size = 21156252 }, - { url = "https://files.pythonhosted.org/packages/da/74/5a60003fc3d8a718d830b08b654d0eea2d2db0806bab8f3c2aca7e18e010/numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41", size = 13784119 }, - { url = "https://files.pythonhosted.org/packages/47/7c/864cb966b96fce5e63fcf25e1e4d957fe5725a635e5f11fe03f39dd9d6b5/numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9", size = 5352978 }, - { url = "https://files.pythonhosted.org/packages/09/ac/61d07930a4993dd9691a6432de16d93bbe6aa4b1c12a5e573d468eefc1ca/numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09", size = 6892570 }, - { url = "https://files.pythonhosted.org/packages/27/2f/21b94664f23af2bb52030653697c685022119e0dc93d6097c3cb45bce5f9/numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a", size = 13896715 }, - { url = "https://files.pythonhosted.org/packages/7a/f0/80811e836484262b236c684a75dfc4ba0424bc670e765afaa911468d9f39/numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b", size = 16339644 }, - { url = "https://files.pythonhosted.org/packages/fa/81/ce213159a1ed8eb7d88a2a6ef4fbdb9e4ffd0c76b866c350eb4e3c37e640/numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee", size = 16712217 }, - { url = "https://files.pythonhosted.org/packages/7d/84/4de0b87d5a72f45556b2a8ee9fc8801e8518ec867fc68260c1f5dcb3903f/numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0", size = 14399053 }, - { url = "https://files.pythonhosted.org/packages/7e/1c/e5fabb9ad849f9d798b44458fd12a318d27592d4bc1448e269dec070ff04/numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9", size = 6534741 }, - { url = "https://files.pythonhosted.org/packages/1e/48/a9a4b538e28f854bfb62e1dea3c8fea12e90216a276c7777ae5345ff29a7/numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2", size = 12869487 }, - { url = "https://files.pythonhosted.org/packages/8a/f0/385eb9970309643cbca4fc6eebc8bb16e560de129c91258dfaa18498da8b/numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e", size = 20849658 }, - { url = "https://files.pythonhosted.org/packages/54/4a/765b4607f0fecbb239638d610d04ec0a0ded9b4951c56dc68cef79026abf/numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958", size = 13492258 }, - { url = "https://files.pythonhosted.org/packages/bd/a7/2332679479c70b68dccbf4a8eb9c9b5ee383164b161bee9284ac141fbd33/numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8", size = 5090249 }, - { url = "https://files.pythonhosted.org/packages/c1/67/4aa00316b3b981a822c7a239d3a8135be2a6945d1fd11d0efb25d361711a/numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564", size = 6621704 }, - { url = "https://files.pythonhosted.org/packages/5e/da/1a429ae58b3b6c364eeec93bf044c532f2ff7b48a52e41050896cf15d5b1/numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512", size = 13606089 }, - { url = "https://files.pythonhosted.org/packages/9e/3e/3757f304c704f2f0294a6b8340fcf2be244038be07da4cccf390fa678a9f/numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b", size = 16043185 }, - { url = "https://files.pythonhosted.org/packages/43/97/75329c28fea3113d00c8d2daf9bc5828d58d78ed661d8e05e234f86f0f6d/numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc", size = 16410751 }, - { url = "https://files.pythonhosted.org/packages/ad/7a/442965e98b34e0ae9da319f075b387bcb9a1e0658276cc63adb8c9686f7b/numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0", size = 14082705 }, - { url = "https://files.pythonhosted.org/packages/ac/b6/26108cf2cfa5c7e03fb969b595c93131eab4a399762b51ce9ebec2332e80/numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9", size = 6239077 }, - { url = "https://files.pythonhosted.org/packages/a6/84/fa11dad3404b7634aaab50733581ce11e5350383311ea7a7010f464c0170/numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a", size = 12566858 }, - { url = "https://files.pythonhosted.org/packages/4d/0b/620591441457e25f3404c8057eb924d04f161244cb8a3680d529419aa86e/numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f", size = 20836263 }, - { url = "https://files.pythonhosted.org/packages/45/e1/210b2d8b31ce9119145433e6ea78046e30771de3fe353f313b2778142f34/numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598", size = 13507771 }, - { url = "https://files.pythonhosted.org/packages/55/44/aa9ee3caee02fa5a45f2c3b95cafe59c44e4b278fbbf895a93e88b308555/numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57", size = 5075805 }, - { url = "https://files.pythonhosted.org/packages/78/d6/61de6e7e31915ba4d87bbe1ae859e83e6582ea14c6add07c8f7eefd8488f/numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe", size = 6608380 }, - { url = "https://files.pythonhosted.org/packages/3e/46/48bdf9b7241e317e6cf94276fe11ba673c06d1fdf115d8b4ebf616affd1a/numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43", size = 13602451 }, - { url = "https://files.pythonhosted.org/packages/70/50/73f9a5aa0810cdccda9c1d20be3cbe4a4d6ea6bfd6931464a44c95eef731/numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56", size = 16039822 }, - { url = "https://files.pythonhosted.org/packages/ad/cd/098bc1d5a5bc5307cfc65ee9369d0ca658ed88fbd7307b0d49fab6ca5fa5/numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a", size = 16411822 }, - { url = "https://files.pythonhosted.org/packages/83/a2/7d4467a2a6d984549053b37945620209e702cf96a8bc658bc04bba13c9e2/numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef", size = 14079598 }, - { url = "https://files.pythonhosted.org/packages/e9/6a/d64514dcecb2ee70bfdfad10c42b76cab657e7ee31944ff7a600f141d9e9/numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f", size = 6236021 }, - { url = "https://files.pythonhosted.org/packages/bb/f9/12297ed8d8301a401e7d8eb6b418d32547f1d700ed3c038d325a605421a4/numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed", size = 12560405 }, - { url = "https://files.pythonhosted.org/packages/a7/45/7f9244cd792e163b334e3a7f02dff1239d2890b6f37ebf9e82cbe17debc0/numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f", size = 20859062 }, - { url = "https://files.pythonhosted.org/packages/b1/b4/a084218e7e92b506d634105b13e27a3a6645312b93e1c699cc9025adb0e1/numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4", size = 13515839 }, - { url = "https://files.pythonhosted.org/packages/27/45/58ed3f88028dcf80e6ea580311dc3edefdd94248f5770deb980500ef85dd/numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e", size = 5116031 }, - { url = "https://files.pythonhosted.org/packages/37/a8/eb689432eb977d83229094b58b0f53249d2209742f7de529c49d61a124a0/numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0", size = 6629977 }, - { url = "https://files.pythonhosted.org/packages/42/a3/5355ad51ac73c23334c7caaed01adadfda49544f646fcbfbb4331deb267b/numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408", size = 13575951 }, - { url = "https://files.pythonhosted.org/packages/c4/70/ea9646d203104e647988cb7d7279f135257a6b7e3354ea6c56f8bafdb095/numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6", size = 16022655 }, - { url = "https://files.pythonhosted.org/packages/14/ce/7fc0612903e91ff9d0b3f2eda4e18ef9904814afcae5b0f08edb7f637883/numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f", size = 16399902 }, - { url = "https://files.pythonhosted.org/packages/ef/62/1d3204313357591c913c32132a28f09a26357e33ea3c4e2fe81269e0dca1/numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17", size = 14067180 }, - { url = "https://files.pythonhosted.org/packages/24/d7/78a40ed1d80e23a774cb8a34ae8a9493ba1b4271dde96e56ccdbab1620ef/numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48", size = 6291907 }, - { url = "https://files.pythonhosted.org/packages/86/09/a5ab407bd7f5f5599e6a9261f964ace03a73e7c6928de906981c31c38082/numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4", size = 12644098 }, +version = "2.2.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963 }, + { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743 }, + { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616 }, + { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579 }, + { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005 }, + { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570 }, + { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548 }, + { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521 }, + { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866 }, + { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455 }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348 }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362 }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103 }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382 }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462 }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618 }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511 }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783 }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506 }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190 }, + { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828 }, + { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006 }, + { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765 }, + { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736 }, + { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719 }, + { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072 }, + { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213 }, + { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632 }, + { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532 }, + { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885 }, + { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467 }, + { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144 }, + { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217 }, + { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014 }, + { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935 }, + { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122 }, + { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143 }, + { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260 }, + { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225 }, + { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374 }, ] [[package]] @@ -2039,11 +2110,11 @@ wheels = [ [[package]] name = "packaging" -version = "24.2" +version = "25.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727 } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469 }, ] [[package]] @@ -2197,20 +2268,20 @@ wheels = [ [[package]] name = "platformdirs" -version = "4.3.7" +version = "4.3.8" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b6/2d/7d512a3913d60623e7eb945c6d1b4f0bddf1d0b7ada5225274c87e5b53d1/platformdirs-4.3.7.tar.gz", hash = "sha256:eb437d586b6a0986388f0d6f74aa0cde27b48d0e3d66843640bfb6bdcdb6e351", size = 21291 } +sdist = { url = "https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2/platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc", size = 21362 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/45/59578566b3275b8fd9157885918fcd0c4d74162928a5310926887b856a51/platformdirs-4.3.7-py3-none-any.whl", hash = "sha256:a03875334331946f13c549dbd8f4bac7a13a50a895a0eb1e8c6a8ace80d40a94", size = 18499 }, + { url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4", size = 18567 }, ] [[package]] name = "pluggy" -version = "1.5.0" +version = "1.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955 } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412 } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556 }, + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538 }, ] [[package]] @@ -2340,16 +2411,16 @@ wheels = [ [[package]] name = "protobuf" -version = "6.30.2" +version = "6.31.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c8/8c/cf2ac658216eebe49eaedf1e06bc06cbf6a143469236294a1171a51357c3/protobuf-6.30.2.tar.gz", hash = "sha256:35c859ae076d8c56054c25b59e5e59638d86545ed6e2b6efac6be0b6ea3ba048", size = 429315 } +sdist = { url = "https://files.pythonhosted.org/packages/13/48/718c1e104a2e89970a8ff3b06d87e152834b576c570a6908f8c17ba88d65/protobuf-6.31.0.tar.gz", hash = "sha256:314fab1a6a316469dc2dd46f993cbbe95c861ea6807da910becfe7475bc26ffe", size = 441644 } wheels = [ - { url = "https://files.pythonhosted.org/packages/be/85/cd53abe6a6cbf2e0029243d6ae5fb4335da2996f6c177bb2ce685068e43d/protobuf-6.30.2-cp310-abi3-win32.whl", hash = "sha256:b12ef7df7b9329886e66404bef5e9ce6a26b54069d7f7436a0853ccdeb91c103", size = 419148 }, - { url = "https://files.pythonhosted.org/packages/97/e9/7b9f1b259d509aef2b833c29a1f3c39185e2bf21c9c1be1cd11c22cb2149/protobuf-6.30.2-cp310-abi3-win_amd64.whl", hash = "sha256:7653c99774f73fe6b9301b87da52af0e69783a2e371e8b599b3e9cb4da4b12b9", size = 431003 }, - { url = "https://files.pythonhosted.org/packages/8e/66/7f3b121f59097c93267e7f497f10e52ced7161b38295137a12a266b6c149/protobuf-6.30.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:0eb523c550a66a09a0c20f86dd554afbf4d32b02af34ae53d93268c1f73bc65b", size = 417579 }, - { url = "https://files.pythonhosted.org/packages/d0/89/bbb1bff09600e662ad5b384420ad92de61cab2ed0f12ace1fd081fd4c295/protobuf-6.30.2-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:50f32cc9fd9cb09c783ebc275611b4f19dfdfb68d1ee55d2f0c7fa040df96815", size = 317319 }, - { url = "https://files.pythonhosted.org/packages/28/50/1925de813499546bc8ab3ae857e3ec84efe7d2f19b34529d0c7c3d02d11d/protobuf-6.30.2-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:4f6c687ae8efae6cf6093389a596548214467778146b7245e886f35e1485315d", size = 316212 }, - { url = "https://files.pythonhosted.org/packages/e5/a1/93c2acf4ade3c5b557d02d500b06798f4ed2c176fa03e3c34973ca92df7f/protobuf-6.30.2-py3-none-any.whl", hash = "sha256:ae86b030e69a98e08c77beab574cbcb9fff6d031d57209f574a5aea1445f4b51", size = 167062 }, + { url = "https://files.pythonhosted.org/packages/b6/77/8671682038b08237c927215fa3296bc1c54e4086fe542c87017c1b626663/protobuf-6.31.0-cp310-abi3-win32.whl", hash = "sha256:10bd62802dfa0588649740a59354090eaf54b8322f772fbdcca19bc78d27f0d6", size = 423437 }, + { url = "https://files.pythonhosted.org/packages/e4/07/cc9b0cbf7593f6ef8cf87fa9b0e55cd74c5cb526dd89ad84aa7d6547ef8d/protobuf-6.31.0-cp310-abi3-win_amd64.whl", hash = "sha256:3e987c99fd634be8347246a02123250f394ba20573c953de133dc8b2c107dd71", size = 435118 }, + { url = "https://files.pythonhosted.org/packages/21/46/33f884aa8bc59114dc97e0d954ca4618c556483670236008c88fbb7e834f/protobuf-6.31.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2c812f0f96ceb6b514448cefeb1df54ec06dde456783f5099c0e2f8a0f2caa89", size = 425439 }, + { url = "https://files.pythonhosted.org/packages/9b/f2/9a676b50229ce37b12777d7b21de90ae7bc0f9505d07e72e2e8d47b8d165/protobuf-6.31.0-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:67ce50195e4e584275623b8e6bc6d3d3dfd93924bf6116b86b3b8975ab9e4571", size = 321950 }, + { url = "https://files.pythonhosted.org/packages/a1/a7/243fa2d3c1b7675d54744b32dacf30356f4c27c0d3ad940ca8745a1c6b2c/protobuf-6.31.0-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:5353e38844168a327acd2b2aa440044411cd8d1b6774d5701008bd1dba067c79", size = 320904 }, + { url = "https://files.pythonhosted.org/packages/ee/01/1ed1d482960a5718fd99c82f6d79120181947cfd4667ec3944d448ed44a3/protobuf-6.31.0-py3-none-any.whl", hash = "sha256:6ac2e82556e822c17a8d23aa1190bbc1d06efb9c261981da95c71c9da09e9e23", size = 168558 }, ] [[package]] @@ -2478,15 +2549,16 @@ wheels = [ [[package]] name = "pydantic-settings" -version = "2.8.1" +version = "2.9.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, { name = "python-dotenv" }, + { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/88/82/c79424d7d8c29b994fb01d277da57b0a9b09cc03c3ff875f9bd8a86b2145/pydantic_settings-2.8.1.tar.gz", hash = "sha256:d5c663dfbe9db9d5e1c646b2e161da12f0d734d422ee56f567d0ea2cee4e8585", size = 83550 } +sdist = { url = "https://files.pythonhosted.org/packages/67/1d/42628a2c33e93f8e9acbde0d5d735fa0850f3e6a2f8cb1eb6c40b9a732ac/pydantic_settings-2.9.1.tar.gz", hash = "sha256:c509bf79d27563add44e8446233359004ed85066cd096d8b510f715e6ef5d268", size = 163234 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/53/a64f03044927dc47aafe029c42a5b7aabc38dfb813475e0e1bf71c4a59d0/pydantic_settings-2.8.1-py3-none-any.whl", hash = "sha256:81942d5ac3d905f7f3ee1a70df5dfb62d5569c12f51a5a647defc1c3d9ee2e9c", size = 30839 }, + { url = "https://files.pythonhosted.org/packages/b6/5f/d6d641b490fd3ec2c4c13b4244d68deea3a1b970a97be64f34fb5504ff72/pydantic_settings-2.9.1-py3-none-any.whl", hash = "sha256:59b4f431b1defb26fe620c71a7d3968a710d719f5f4cdbbdb7926edeb770f6ef", size = 44356 }, ] [[package]] @@ -2677,61 +2749,61 @@ wheels = [ [[package]] name = "rapidfuzz" -version = "3.12.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/be/8dff25a6157dfbde9867720b1282157fe7b809e085130bb89d7655c62186/rapidfuzz-3.12.2.tar.gz", hash = "sha256:b0ba1ccc22fff782e7152a3d3d0caca44ec4e32dc48ba01c560b8593965b5aa3", size = 57907839 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8e/41/985b8786f7895f7a7f03f80b547e04a5b9f41187f43de386ad2f32b9f9fc/rapidfuzz-3.12.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e9c4d984621ae17404c58f8d06ed8b025e167e52c0e6a511dfec83c37e9220cd", size = 1960568 }, - { url = "https://files.pythonhosted.org/packages/90/9e/9278b4160bf86346fc5f110b5daf07af629343bfcd04a9366d355bc6104e/rapidfuzz-3.12.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9f9132c55d330f0a1d34ce6730a76805323a6250d97468a1ca766a883d6a9a25", size = 1434362 }, - { url = "https://files.pythonhosted.org/packages/e7/53/fe3fb50111e203da4e82b8694c29cbf44101cdbf1efd7ef721cdf85e0aca/rapidfuzz-3.12.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b343b6cb4b2c3dbc8d2d4c5ee915b6088e3b144ddf8305a57eaab16cf9fc74", size = 1417839 }, - { url = "https://files.pythonhosted.org/packages/fd/c4/aa11749bc9d9c0539061d32f2c525d99e11588867d3d6e94693ccd4e0dd0/rapidfuzz-3.12.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:24081077b571ec4ee6d5d7ea0e49bc6830bf05b50c1005028523b9cd356209f3", size = 5620525 }, - { url = "https://files.pythonhosted.org/packages/5f/62/463c618a5a8a44bf6b087325353e13dbd5bc19c44cc06134d3c9eff0d04a/rapidfuzz-3.12.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c988a4fc91856260355773bf9d32bebab2083d4c6df33fafeddf4330e5ae9139", size = 1671267 }, - { url = "https://files.pythonhosted.org/packages/ca/b6/ec87c56ed0fab59f8220f5b832d5c1dd374667bee73318a01392ccc8c23d/rapidfuzz-3.12.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:780b4469ee21cf62b1b2e8ada042941fd2525e45d5fb6a6901a9798a0e41153c", size = 1683415 }, - { url = "https://files.pythonhosted.org/packages/46/08/862e65a1022cbfa2935e7b3f04cdaa73b0967ebf4762ddf509735da47d73/rapidfuzz-3.12.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:edd84b0a323885493c893bad16098c5e3b3005d7caa995ae653da07373665d97", size = 3139234 }, - { url = "https://files.pythonhosted.org/packages/ee/fa/7e8c0d1d26a4b892344c743f17e2c8482f749b616cd651590bd60994b49f/rapidfuzz-3.12.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efa22059c765b3d8778083805b199deaaf643db070f65426f87d274565ddf36a", size = 2523730 }, - { url = "https://files.pythonhosted.org/packages/8a/52/1d5b80e990c2e9998e47be118c2dbabda75daa2a5f5ff978df1ed76d7f81/rapidfuzz-3.12.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:095776b11bb45daf7c2973dd61cc472d7ea7f2eecfa454aef940b4675659b92f", size = 7880525 }, - { url = "https://files.pythonhosted.org/packages/0c/18/9c8cd7378272590a1eb0855b587f3a1fbd3492bd1612825d675320eeeb1b/rapidfuzz-3.12.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7e2574cf4aa86065600b664a1ac7b8b8499107d102ecde836aaaa403fc4f1784", size = 2905180 }, - { url = "https://files.pythonhosted.org/packages/4b/94/992de5d0fc9269a93ce62979aced028e0939d3477ea99d87fd0e22f44e8d/rapidfuzz-3.12.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d5a3425a6c50fd8fbd991d8f085ddb504791dae6ef9cc3ab299fea2cb5374bef", size = 3548613 }, - { url = "https://files.pythonhosted.org/packages/9b/25/ed3a0317f118131ee297de5936e1587e48b059e6438f4bbf92ef3bbc4927/rapidfuzz-3.12.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:97fb05e1ddb7b71a054040af588b0634214ee87cea87900d309fafc16fd272a4", size = 4583047 }, - { url = "https://files.pythonhosted.org/packages/4d/27/10585a5a62ff6ebbefa3e836a3fd8c123e2ed0bbde8cfcdd7477032cd458/rapidfuzz-3.12.2-cp311-cp311-win32.whl", hash = "sha256:b4c5a0413589aef936892fbfa94b7ff6f7dd09edf19b5a7b83896cc9d4e8c184", size = 1863208 }, - { url = "https://files.pythonhosted.org/packages/38/4c/faacecf70a4e202a02f029ec6f6e04e910d95c4ef36d7d63b83b160f7f3e/rapidfuzz-3.12.2-cp311-cp311-win_amd64.whl", hash = "sha256:58d9ae5cf9246d102db2a2558b67fe7e73c533e5d769099747921232d88b9be2", size = 1630876 }, - { url = "https://files.pythonhosted.org/packages/a7/4b/4931da26e0677880a9a533ef75ccbe564c091aa4a3579aed0355c7e06900/rapidfuzz-3.12.2-cp311-cp311-win_arm64.whl", hash = "sha256:7635fe34246cd241c8e35eb83084e978b01b83d5ef7e5bf72a704c637f270017", size = 870896 }, - { url = "https://files.pythonhosted.org/packages/a7/d2/e071753227c9e9f7f3550b983f30565f6e994581529815fa5a8879e7cd10/rapidfuzz-3.12.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1d982a651253ffe8434d9934ff0c1089111d60502228464721a2a4587435e159", size = 1944403 }, - { url = "https://files.pythonhosted.org/packages/aa/d1/4a10d21cc97aa36f4019af24382b5b4dc5ea6444499883c1c1286c6089ba/rapidfuzz-3.12.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:02e6466caa0222d5233b1f05640873671cd99549a5c5ba4c29151634a1e56080", size = 1430287 }, - { url = "https://files.pythonhosted.org/packages/6a/2d/76d39ab0beeb884d432096fe288c41850e37608e0145264081d0cb809f3c/rapidfuzz-3.12.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e956b3f053e474abae69ac693a52742109d860ac2375fe88e9387d3277f4c96c", size = 1403693 }, - { url = "https://files.pythonhosted.org/packages/85/1a/719b0f6498c003627e4b83b841bdcd48b11de8a9908a9051c4d2a0bc2245/rapidfuzz-3.12.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2dee7d740a2d5418d4f964f39ab8d89923e6b945850db833e798a1969b19542a", size = 5555878 }, - { url = "https://files.pythonhosted.org/packages/af/48/14d952a73254b4b0e517141acd27979bd23948adaf197f6ca2dc722fde6a/rapidfuzz-3.12.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a057cdb0401e42c84b6516c9b1635f7aedd5e430c6e388bd5f6bcd1d6a0686bb", size = 1655301 }, - { url = "https://files.pythonhosted.org/packages/db/3f/b093e154e9752325d7459aa6dca43b7acbcaffa05133507e2403676e3e75/rapidfuzz-3.12.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dccf8d4fb5b86d39c581a59463c596b1d09df976da26ff04ae219604223d502f", size = 1678069 }, - { url = "https://files.pythonhosted.org/packages/d6/7e/88853ecae5b5456eb1a1d8a01cbd534e25b671735d5d974609cbae082542/rapidfuzz-3.12.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21d5b3793c6f5aecca595cd24164bf9d3c559e315ec684f912146fc4e769e367", size = 3137119 }, - { url = "https://files.pythonhosted.org/packages/4d/d2/b1f809b815aaf682ddac9c57929149f740b90feeb4f8da2f535c196de821/rapidfuzz-3.12.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:46a616c0e13cff2de1761b011e0b14bb73b110182f009223f1453d505c9a975c", size = 2491639 }, - { url = "https://files.pythonhosted.org/packages/61/e4/a908d7b8db6e52ba2f80f6f0d0709ef9fdedb767db4307084331742b67f0/rapidfuzz-3.12.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:19fa5bc4301a1ee55400d4a38a8ecf9522b0391fc31e6da5f4d68513fe5c0026", size = 7821561 }, - { url = "https://files.pythonhosted.org/packages/f3/83/0250c49deefff15c46f5e590d8ee6abbd0f056e20b85994db55c16ac6ead/rapidfuzz-3.12.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:544a47190a0d25971658a9365dba7095397b4ce3e897f7dd0a77ca2cf6fa984e", size = 2874048 }, - { url = "https://files.pythonhosted.org/packages/6c/3f/8d433d964c6e476476ee53eae5fa77b9f16b38d312eb1571e9099a6a3b12/rapidfuzz-3.12.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f21af27c5e001f0ba1b88c36a0936437dfe034c452548d998891c21125eb640f", size = 3522801 }, - { url = "https://files.pythonhosted.org/packages/82/85/4931bfa41ef837b1544838e46e0556640d18114b3da9cf05e10defff00ae/rapidfuzz-3.12.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b63170d9db00629b5b3f2862114d8d6ee19127eaba0eee43762d62a25817dbe0", size = 4567304 }, - { url = "https://files.pythonhosted.org/packages/b1/fe/fdae322869885115dd19a38c1da71b73a8832aa77757c93f460743d4f54c/rapidfuzz-3.12.2-cp312-cp312-win32.whl", hash = "sha256:6c7152d77b2eb6bfac7baa11f2a9c45fd5a2d848dbb310acd0953b3b789d95c9", size = 1845332 }, - { url = "https://files.pythonhosted.org/packages/ca/a4/2ccebda5fb8a266d163d57a42c2a6ef6f91815df5d89cf38c12e8aa6ed0b/rapidfuzz-3.12.2-cp312-cp312-win_amd64.whl", hash = "sha256:1a314d170ee272ac87579f25a6cf8d16a031e1f7a7b07663434b41a1473bc501", size = 1617926 }, - { url = "https://files.pythonhosted.org/packages/a5/bc/aa8a4dc4ebff966dd039cce017c614cfd202049b4d1a2daafee7d018521b/rapidfuzz-3.12.2-cp312-cp312-win_arm64.whl", hash = "sha256:d41e8231326e94fd07c4d8f424f6bed08fead6f5e6688d1e6e787f1443ae7631", size = 864737 }, - { url = "https://files.pythonhosted.org/packages/96/59/2ea3b5bb82798eae73d6ee892264ebfe42727626c1f0e96c77120f0d5cf6/rapidfuzz-3.12.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:941f31038dba5d3dedcfcceba81d61570ad457c873a24ceb13f4f44fcb574260", size = 1936870 }, - { url = "https://files.pythonhosted.org/packages/54/85/4e486bf9ea05e771ad231731305ed701db1339157f630b76b246ce29cf71/rapidfuzz-3.12.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fe2dfc454ee51ba168a67b1e92b72aad251e45a074972cef13340bbad2fd9438", size = 1424231 }, - { url = "https://files.pythonhosted.org/packages/dc/60/aeea3eed402c40a8cf055d554678769fbee0dd95c22f04546070a22bb90e/rapidfuzz-3.12.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78fafaf7f5a48ee35ccd7928339080a0136e27cf97396de45259eca1d331b714", size = 1398055 }, - { url = "https://files.pythonhosted.org/packages/33/6b/757106f4c21fe3f20ce13ba3df560da60e52fe0dc390fd22bf613761669c/rapidfuzz-3.12.2-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0c7989ff32c077bb8fd53253fd6ca569d1bfebc80b17557e60750e6909ba4fe", size = 5526188 }, - { url = "https://files.pythonhosted.org/packages/1e/a2/7c680cdc5532746dba67ecf302eed975252657094e50ae334fa9268352e8/rapidfuzz-3.12.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96fa00bc105caa34b6cd93dca14a29243a3a7f0c336e4dcd36348d38511e15ac", size = 1648483 }, - { url = "https://files.pythonhosted.org/packages/f6/b0/ce942a1448b1a75d64af230dd746dede502224dd29ca9001665bbfd4bee6/rapidfuzz-3.12.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bccfb30c668620c5bc3490f2dc7d7da1cca0ead5a9da8b755e2e02e2ef0dff14", size = 1676076 }, - { url = "https://files.pythonhosted.org/packages/ba/71/81f77b08333200be6984b6cdf2bdfd7cfca4943f16b478a2f7838cba8d66/rapidfuzz-3.12.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f9b0adc3d894beb51f5022f64717b6114a6fabaca83d77e93ac7675911c8cc5", size = 3114169 }, - { url = "https://files.pythonhosted.org/packages/01/16/f3f34b207fdc8c61a33f9d2d61fc96b62c7dadca88bda1df1be4b94afb0b/rapidfuzz-3.12.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:32691aa59577f42864d5535cb6225d0f47e2c7bff59cf4556e5171e96af68cc1", size = 2485317 }, - { url = "https://files.pythonhosted.org/packages/b2/a6/b954f0766f644eb8dd8df44703e024ab4f5f15a8f8f5ea969963dd036f50/rapidfuzz-3.12.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:758b10380ad34c1f51753a070d7bb278001b5e6fcf544121c6df93170952d705", size = 7844495 }, - { url = "https://files.pythonhosted.org/packages/fb/8f/1dc604d05e07150a02b56a8ffc47df75ce316c65467259622c9edf098451/rapidfuzz-3.12.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:50a9c54c0147b468363119132d514c5024fbad1ed8af12bd8bd411b0119f9208", size = 2873242 }, - { url = "https://files.pythonhosted.org/packages/78/a9/9c649ace4b7f885e0a5fdcd1f33b057ebd83ecc2837693e6659bd944a2bb/rapidfuzz-3.12.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e3ceb87c11d2d0fbe8559bb795b0c0604b84cfc8bb7b8720b5c16e9e31e00f41", size = 3519124 }, - { url = "https://files.pythonhosted.org/packages/f5/81/ce0b774e540a2e22ec802e383131d7ead18347197304d584c4ccf7b8861a/rapidfuzz-3.12.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f7c9a003002434889255ff5676ca0f8934a478065ab5e702f75dc42639505bba", size = 4557831 }, - { url = "https://files.pythonhosted.org/packages/13/28/7bf0ee8d35efa7ab14e83d1795cdfd54833aa0428b6f87e987893136c372/rapidfuzz-3.12.2-cp313-cp313-win32.whl", hash = "sha256:cf165a76870cd875567941cf861dfd361a0a6e6a56b936c5d30042ddc9def090", size = 1842802 }, - { url = "https://files.pythonhosted.org/packages/ef/7e/792d609484776c8a40e1695ebd28b62196be9f8347b785b9104604dc7268/rapidfuzz-3.12.2-cp313-cp313-win_amd64.whl", hash = "sha256:55bcc003541f5f16ec0a73bf6de758161973f9e8d75161954380738dd147f9f2", size = 1615808 }, - { url = "https://files.pythonhosted.org/packages/4b/43/ca3d1018b392f49131843648e10b08ace23afe8dad3bee5f136e4346b7cd/rapidfuzz-3.12.2-cp313-cp313-win_arm64.whl", hash = "sha256:69f6ecdf1452139f2b947d0c169a605de578efdb72cbb2373cb0a94edca1fd34", size = 863535 }, - { url = "https://files.pythonhosted.org/packages/ee/4d/e910b70839d88d1c38ba806b0ddaa94b478cca8a09f4e7155b2b607c34b2/rapidfuzz-3.12.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:9b1e6f48e1ffa0749261ee23a1c6462bdd0be5eac83093f4711de17a42ae78ad", size = 1860425 }, - { url = "https://files.pythonhosted.org/packages/fd/62/54914f63e185539fbcca65acb1f7c879740a278d240527ed5ddd40bd7690/rapidfuzz-3.12.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:1ae9ded463f2ca4ba1eb762913c5f14c23d2e120739a62b7f4cc102eab32dc90", size = 1369066 }, - { url = "https://files.pythonhosted.org/packages/56/4a/de2cfab279497d0b2529d3fec398f60cf8e27a51d667b6529081fbdb0af2/rapidfuzz-3.12.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dda45f47b559be72ecbce45c7f71dc7c97b9772630ab0f3286d97d2c3025ab71", size = 1365330 }, - { url = "https://files.pythonhosted.org/packages/dd/48/170c37cfdf04efa34e7cafc688a8517c9098c1d27e1513393ad71bf3165c/rapidfuzz-3.12.2-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3745c6443890265513a3c8777f2de4cb897aeb906a406f97741019be8ad5bcc", size = 5481251 }, - { url = "https://files.pythonhosted.org/packages/4e/2d/107c489443f6438780d2e40747d5880c8d9374a64e17487eb4085fe7f1f5/rapidfuzz-3.12.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36d3ef4f047ed1bc96fa29289f9e67a637ddca5e4f4d3dc7cb7f50eb33ec1664", size = 3060633 }, - { url = "https://files.pythonhosted.org/packages/09/f6/fa777f336629aee8938f3d5c95c09df38459d4eadbdbe34642889857fb6a/rapidfuzz-3.12.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:54bb69ebe5ca0bd7527357e348f16a4c0c52fe0c2fcc8a041010467dcb8385f7", size = 1555000 }, +version = "3.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/6895abc3a3d056b9698da3199b04c0e56226d530ae44a470edabf8b664f0/rapidfuzz-3.13.0.tar.gz", hash = "sha256:d2eaf3839e52cbcc0accbe9817a67b4b0fcf70aaeb229cfddc1c28061f9ce5d8", size = 57904226 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/17/9be9eff5a3c7dfc831c2511262082c6786dca2ce21aa8194eef1cb71d67a/rapidfuzz-3.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d395a5cad0c09c7f096433e5fd4224d83b53298d53499945a9b0e5a971a84f3a", size = 1999453 }, + { url = "https://files.pythonhosted.org/packages/75/67/62e57896ecbabe363f027d24cc769d55dd49019e576533ec10e492fcd8a2/rapidfuzz-3.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b7b3eda607a019169f7187328a8d1648fb9a90265087f6903d7ee3a8eee01805", size = 1450881 }, + { url = "https://files.pythonhosted.org/packages/96/5c/691c5304857f3476a7b3df99e91efc32428cbe7d25d234e967cc08346c13/rapidfuzz-3.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98e0bfa602e1942d542de077baf15d658bd9d5dcfe9b762aff791724c1c38b70", size = 1422990 }, + { url = "https://files.pythonhosted.org/packages/46/81/7a7e78f977496ee2d613154b86b203d373376bcaae5de7bde92f3ad5a192/rapidfuzz-3.13.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bef86df6d59667d9655905b02770a0c776d2853971c0773767d5ef8077acd624", size = 5342309 }, + { url = "https://files.pythonhosted.org/packages/51/44/12fdd12a76b190fe94bf38d252bb28ddf0ab7a366b943e792803502901a2/rapidfuzz-3.13.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fedd316c165beed6307bf754dee54d3faca2c47e1f3bcbd67595001dfa11e969", size = 1656881 }, + { url = "https://files.pythonhosted.org/packages/27/ae/0d933e660c06fcfb087a0d2492f98322f9348a28b2cc3791a5dbadf6e6fb/rapidfuzz-3.13.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5158da7f2ec02a930be13bac53bb5903527c073c90ee37804090614cab83c29e", size = 1608494 }, + { url = "https://files.pythonhosted.org/packages/3d/2c/4b2f8aafdf9400e5599b6ed2f14bc26ca75f5a923571926ccbc998d4246a/rapidfuzz-3.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b6f913ee4618ddb6d6f3e387b76e8ec2fc5efee313a128809fbd44e65c2bbb2", size = 3072160 }, + { url = "https://files.pythonhosted.org/packages/60/7d/030d68d9a653c301114101c3003b31ce01cf2c3224034cd26105224cd249/rapidfuzz-3.13.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d25fdbce6459ccbbbf23b4b044f56fbd1158b97ac50994eaae2a1c0baae78301", size = 2491549 }, + { url = "https://files.pythonhosted.org/packages/8e/cd/7040ba538fc6a8ddc8816a05ecf46af9988b46c148ddd7f74fb0fb73d012/rapidfuzz-3.13.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:25343ccc589a4579fbde832e6a1e27258bfdd7f2eb0f28cb836d6694ab8591fc", size = 7584142 }, + { url = "https://files.pythonhosted.org/packages/c1/96/85f7536fbceb0aa92c04a1c37a3fc4fcd4e80649e9ed0fb585382df82edc/rapidfuzz-3.13.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a9ad1f37894e3ffb76bbab76256e8a8b789657183870be11aa64e306bb5228fd", size = 2896234 }, + { url = "https://files.pythonhosted.org/packages/55/fd/460e78438e7019f2462fe9d4ecc880577ba340df7974c8a4cfe8d8d029df/rapidfuzz-3.13.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5dc71ef23845bb6b62d194c39a97bb30ff171389c9812d83030c1199f319098c", size = 3437420 }, + { url = "https://files.pythonhosted.org/packages/cc/df/c3c308a106a0993befd140a414c5ea78789d201cf1dfffb8fd9749718d4f/rapidfuzz-3.13.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b7f4c65facdb94f44be759bbd9b6dda1fa54d0d6169cdf1a209a5ab97d311a75", size = 4410860 }, + { url = "https://files.pythonhosted.org/packages/75/ee/9d4ece247f9b26936cdeaae600e494af587ce9bf8ddc47d88435f05cfd05/rapidfuzz-3.13.0-cp311-cp311-win32.whl", hash = "sha256:b5104b62711565e0ff6deab2a8f5dbf1fbe333c5155abe26d2cfd6f1849b6c87", size = 1843161 }, + { url = "https://files.pythonhosted.org/packages/c9/5a/d00e1f63564050a20279015acb29ecaf41646adfacc6ce2e1e450f7f2633/rapidfuzz-3.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:9093cdeb926deb32a4887ebe6910f57fbcdbc9fbfa52252c10b56ef2efb0289f", size = 1629962 }, + { url = "https://files.pythonhosted.org/packages/3b/74/0a3de18bc2576b794f41ccd07720b623e840fda219ab57091897f2320fdd/rapidfuzz-3.13.0-cp311-cp311-win_arm64.whl", hash = "sha256:f70f646751b6aa9d05be1fb40372f006cc89d6aad54e9d79ae97bd1f5fce5203", size = 866631 }, + { url = "https://files.pythonhosted.org/packages/13/4b/a326f57a4efed8f5505b25102797a58e37ee11d94afd9d9422cb7c76117e/rapidfuzz-3.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a1a6a906ba62f2556372282b1ef37b26bca67e3d2ea957277cfcefc6275cca7", size = 1989501 }, + { url = "https://files.pythonhosted.org/packages/b7/53/1f7eb7ee83a06c400089ec7cb841cbd581c2edd7a4b21eb2f31030b88daa/rapidfuzz-3.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2fd0975e015b05c79a97f38883a11236f5a24cca83aa992bd2558ceaa5652b26", size = 1445379 }, + { url = "https://files.pythonhosted.org/packages/07/09/de8069a4599cc8e6d194e5fa1782c561151dea7d5e2741767137e2a8c1f0/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d4e13593d298c50c4f94ce453f757b4b398af3fa0fd2fde693c3e51195b7f69", size = 1405986 }, + { url = "https://files.pythonhosted.org/packages/5d/77/d9a90b39c16eca20d70fec4ca377fbe9ea4c0d358c6e4736ab0e0e78aaf6/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed6f416bda1c9133000009d84d9409823eb2358df0950231cc936e4bf784eb97", size = 5310809 }, + { url = "https://files.pythonhosted.org/packages/1e/7d/14da291b0d0f22262d19522afaf63bccf39fc027c981233fb2137a57b71f/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1dc82b6ed01acb536b94a43996a94471a218f4d89f3fdd9185ab496de4b2a981", size = 1629394 }, + { url = "https://files.pythonhosted.org/packages/b7/e4/79ed7e4fa58f37c0f8b7c0a62361f7089b221fe85738ae2dbcfb815e985a/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9d824de871daa6e443b39ff495a884931970d567eb0dfa213d234337343835f", size = 1600544 }, + { url = "https://files.pythonhosted.org/packages/4e/20/e62b4d13ba851b0f36370060025de50a264d625f6b4c32899085ed51f980/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d18228a2390375cf45726ce1af9d36ff3dc1f11dce9775eae1f1b13ac6ec50f", size = 3052796 }, + { url = "https://files.pythonhosted.org/packages/cd/8d/55fdf4387dec10aa177fe3df8dbb0d5022224d95f48664a21d6b62a5299d/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9f5fe634c9482ec5d4a6692afb8c45d370ae86755e5f57aa6c50bfe4ca2bdd87", size = 2464016 }, + { url = "https://files.pythonhosted.org/packages/9b/be/0872f6a56c0f473165d3b47d4170fa75263dc5f46985755aa9bf2bbcdea1/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:694eb531889f71022b2be86f625a4209c4049e74be9ca836919b9e395d5e33b3", size = 7556725 }, + { url = "https://files.pythonhosted.org/packages/5d/f3/6c0750e484d885a14840c7a150926f425d524982aca989cdda0bb3bdfa57/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:11b47b40650e06147dee5e51a9c9ad73bb7b86968b6f7d30e503b9f8dd1292db", size = 2859052 }, + { url = "https://files.pythonhosted.org/packages/6f/98/5a3a14701b5eb330f444f7883c9840b43fb29c575e292e09c90a270a6e07/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:98b8107ff14f5af0243f27d236bcc6e1ef8e7e3b3c25df114e91e3a99572da73", size = 3390219 }, + { url = "https://files.pythonhosted.org/packages/e9/7d/f4642eaaeb474b19974332f2a58471803448be843033e5740965775760a5/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b836f486dba0aceb2551e838ff3f514a38ee72b015364f739e526d720fdb823a", size = 4377924 }, + { url = "https://files.pythonhosted.org/packages/8e/83/fa33f61796731891c3e045d0cbca4436a5c436a170e7f04d42c2423652c3/rapidfuzz-3.13.0-cp312-cp312-win32.whl", hash = "sha256:4671ee300d1818d7bdfd8fa0608580d7778ba701817216f0c17fb29e6b972514", size = 1823915 }, + { url = "https://files.pythonhosted.org/packages/03/25/5ee7ab6841ca668567d0897905eebc79c76f6297b73bf05957be887e9c74/rapidfuzz-3.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e2065f68fb1d0bf65adc289c1bdc45ba7e464e406b319d67bb54441a1b9da9e", size = 1616985 }, + { url = "https://files.pythonhosted.org/packages/76/5e/3f0fb88db396cb692aefd631e4805854e02120a2382723b90dcae720bcc6/rapidfuzz-3.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:65cc97c2fc2c2fe23586599686f3b1ceeedeca8e598cfcc1b7e56dc8ca7e2aa7", size = 860116 }, + { url = "https://files.pythonhosted.org/packages/0a/76/606e71e4227790750f1646f3c5c873e18d6cfeb6f9a77b2b8c4dec8f0f66/rapidfuzz-3.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:09e908064d3684c541d312bd4c7b05acb99a2c764f6231bd507d4b4b65226c23", size = 1982282 }, + { url = "https://files.pythonhosted.org/packages/0a/f5/d0b48c6b902607a59fd5932a54e3518dae8223814db8349b0176e6e9444b/rapidfuzz-3.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:57c390336cb50d5d3bfb0cfe1467478a15733703af61f6dffb14b1cd312a6fae", size = 1439274 }, + { url = "https://files.pythonhosted.org/packages/59/cf/c3ac8c80d8ced6c1f99b5d9674d397ce5d0e9d0939d788d67c010e19c65f/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0da54aa8547b3c2c188db3d1c7eb4d1bb6dd80baa8cdaeaec3d1da3346ec9caa", size = 1399854 }, + { url = "https://files.pythonhosted.org/packages/09/5d/ca8698e452b349c8313faf07bfa84e7d1c2d2edf7ccc67bcfc49bee1259a/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df8e8c21e67afb9d7fbe18f42c6111fe155e801ab103c81109a61312927cc611", size = 5308962 }, + { url = "https://files.pythonhosted.org/packages/66/0a/bebada332854e78e68f3d6c05226b23faca79d71362509dbcf7b002e33b7/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:461fd13250a2adf8e90ca9a0e1e166515cbcaa5e9c3b1f37545cbbeff9e77f6b", size = 1625016 }, + { url = "https://files.pythonhosted.org/packages/de/0c/9e58d4887b86d7121d1c519f7050d1be5eb189d8a8075f5417df6492b4f5/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2b3dd5d206a12deca16870acc0d6e5036abeb70e3cad6549c294eff15591527", size = 1600414 }, + { url = "https://files.pythonhosted.org/packages/9b/df/6096bc669c1311568840bdcbb5a893edc972d1c8d2b4b4325c21d54da5b1/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1343d745fbf4688e412d8f398c6e6d6f269db99a54456873f232ba2e7aeb4939", size = 3053179 }, + { url = "https://files.pythonhosted.org/packages/f9/46/5179c583b75fce3e65a5cd79a3561bd19abd54518cb7c483a89b284bf2b9/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b1b065f370d54551dcc785c6f9eeb5bd517ae14c983d2784c064b3aa525896df", size = 2456856 }, + { url = "https://files.pythonhosted.org/packages/6b/64/e9804212e3286d027ac35bbb66603c9456c2bce23f823b67d2f5cabc05c1/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:11b125d8edd67e767b2295eac6eb9afe0b1cdc82ea3d4b9257da4b8e06077798", size = 7567107 }, + { url = "https://files.pythonhosted.org/packages/8a/f2/7d69e7bf4daec62769b11757ffc31f69afb3ce248947aadbb109fefd9f65/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c33f9c841630b2bb7e69a3fb5c84a854075bb812c47620978bddc591f764da3d", size = 2854192 }, + { url = "https://files.pythonhosted.org/packages/05/21/ab4ad7d7d0f653e6fe2e4ccf11d0245092bef94cdff587a21e534e57bda8/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ae4574cb66cf1e85d32bb7e9ec45af5409c5b3970b7ceb8dea90168024127566", size = 3398876 }, + { url = "https://files.pythonhosted.org/packages/0f/a8/45bba94c2489cb1ee0130dcb46e1df4fa2c2b25269e21ffd15240a80322b/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e05752418b24bbd411841b256344c26f57da1148c5509e34ea39c7eb5099ab72", size = 4377077 }, + { url = "https://files.pythonhosted.org/packages/0c/f3/5e0c6ae452cbb74e5436d3445467447e8c32f3021f48f93f15934b8cffc2/rapidfuzz-3.13.0-cp313-cp313-win32.whl", hash = "sha256:0e1d08cb884805a543f2de1f6744069495ef527e279e05370dd7c83416af83f8", size = 1822066 }, + { url = "https://files.pythonhosted.org/packages/96/e3/a98c25c4f74051df4dcf2f393176b8663bfd93c7afc6692c84e96de147a2/rapidfuzz-3.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9a7c6232be5f809cd39da30ee5d24e6cadd919831e6020ec6c2391f4c3bc9264", size = 1615100 }, + { url = "https://files.pythonhosted.org/packages/60/b1/05cd5e697c00cd46d7791915f571b38c8531f714832eff2c5e34537c49ee/rapidfuzz-3.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:3f32f15bacd1838c929b35c84b43618481e1b3d7a61b5ed2db0291b70ae88b53", size = 858976 }, + { url = "https://files.pythonhosted.org/packages/88/df/6060c5a9c879b302bd47a73fc012d0db37abf6544c57591bcbc3459673bd/rapidfuzz-3.13.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1ba007f4d35a45ee68656b2eb83b8715e11d0f90e5b9f02d615a8a321ff00c27", size = 1905935 }, + { url = "https://files.pythonhosted.org/packages/a2/6c/a0b819b829e20525ef1bd58fc776fb8d07a0c38d819e63ba2b7c311a2ed4/rapidfuzz-3.13.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d7a217310429b43be95b3b8ad7f8fc41aba341109dc91e978cd7c703f928c58f", size = 1383714 }, + { url = "https://files.pythonhosted.org/packages/6a/c1/3da3466cc8a9bfb9cd345ad221fac311143b6a9664b5af4adb95b5e6ce01/rapidfuzz-3.13.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:558bf526bcd777de32b7885790a95a9548ffdcce68f704a81207be4a286c1095", size = 1367329 }, + { url = "https://files.pythonhosted.org/packages/da/f0/9f2a9043bfc4e66da256b15d728c5fc2d865edf0028824337f5edac36783/rapidfuzz-3.13.0-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:202a87760f5145140d56153b193a797ae9338f7939eb16652dd7ff96f8faf64c", size = 5251057 }, + { url = "https://files.pythonhosted.org/packages/6a/ff/af2cb1d8acf9777d52487af5c6b34ce9d13381a753f991d95ecaca813407/rapidfuzz-3.13.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cfcccc08f671646ccb1e413c773bb92e7bba789e3a1796fd49d23c12539fe2e4", size = 2992401 }, + { url = "https://files.pythonhosted.org/packages/c1/c5/c243b05a15a27b946180db0d1e4c999bef3f4221505dff9748f1f6c917be/rapidfuzz-3.13.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:1f219f1e3c3194d7a7de222f54450ce12bc907862ff9a8962d83061c1f923c86", size = 1553782 }, ] [[package]] @@ -2853,97 +2925,100 @@ wheels = [ [[package]] name = "rpds-py" -version = "0.24.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0b/b3/52b213298a0ba7097c7ea96bee95e1947aa84cc816d48cebb539770cdf41/rpds_py-0.24.0.tar.gz", hash = "sha256:772cc1b2cd963e7e17e6cc55fe0371fb9c704d63e44cacec7b9b7f523b78919e", size = 26863 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/80/e6/c1458bbfb257448fdb2528071f1f4e19e26798ed5ef6d47d7aab0cb69661/rpds_py-0.24.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2d3ee4615df36ab8eb16c2507b11e764dcc11fd350bbf4da16d09cda11fcedef", size = 377679 }, - { url = "https://files.pythonhosted.org/packages/dd/26/ea4181ef78f58b2c167548c6a833d7dc22408e5b3b181bda9dda440bb92d/rpds_py-0.24.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e13ae74a8a3a0c2f22f450f773e35f893484fcfacb00bb4344a7e0f4f48e1f97", size = 362571 }, - { url = "https://files.pythonhosted.org/packages/56/fa/1ec54dd492c64c280a2249a047fc3369e2789dc474eac20445ebfc72934b/rpds_py-0.24.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf86f72d705fc2ef776bb7dd9e5fbba79d7e1f3e258bf9377f8204ad0fc1c51e", size = 388012 }, - { url = "https://files.pythonhosted.org/packages/3a/be/bad8b0e0f7e58ef4973bb75e91c472a7d51da1977ed43b09989264bf065c/rpds_py-0.24.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c43583ea8517ed2e780a345dd9960896afc1327e8cf3ac8239c167530397440d", size = 394730 }, - { url = "https://files.pythonhosted.org/packages/35/56/ab417fc90c21826df048fc16e55316ac40876e4b790104ececcbce813d8f/rpds_py-0.24.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4cd031e63bc5f05bdcda120646a0d32f6d729486d0067f09d79c8db5368f4586", size = 448264 }, - { url = "https://files.pythonhosted.org/packages/b6/75/4c63862d5c05408589196c8440a35a14ea4ae337fa70ded1f03638373f06/rpds_py-0.24.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:34d90ad8c045df9a4259c47d2e16a3f21fdb396665c94520dbfe8766e62187a4", size = 446813 }, - { url = "https://files.pythonhosted.org/packages/e7/0c/91cf17dffa9a38835869797a9f041056091ebba6a53963d3641207e3d467/rpds_py-0.24.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e838bf2bb0b91ee67bf2b889a1a841e5ecac06dd7a2b1ef4e6151e2ce155c7ae", size = 389438 }, - { url = "https://files.pythonhosted.org/packages/1b/b0/60e6c72727c978276e02851819f3986bc40668f115be72c1bc4d922c950f/rpds_py-0.24.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04ecf5c1ff4d589987b4d9882872f80ba13da7d42427234fce8f22efb43133bc", size = 420416 }, - { url = "https://files.pythonhosted.org/packages/a1/d7/f46f85b9f863fb59fd3c534b5c874c48bee86b19e93423b9da8784605415/rpds_py-0.24.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:630d3d8ea77eabd6cbcd2ea712e1c5cecb5b558d39547ac988351195db433f6c", size = 565236 }, - { url = "https://files.pythonhosted.org/packages/2a/d1/1467620ded6dd70afc45ec822cdf8dfe7139537780d1f3905de143deb6fd/rpds_py-0.24.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ebcb786b9ff30b994d5969213a8430cbb984cdd7ea9fd6df06663194bd3c450c", size = 592016 }, - { url = "https://files.pythonhosted.org/packages/5d/13/fb1ded2e6adfaa0c0833106c42feb290973f665300f4facd5bf5d7891d9c/rpds_py-0.24.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:174e46569968ddbbeb8a806d9922f17cd2b524aa753b468f35b97ff9c19cb718", size = 560123 }, - { url = "https://files.pythonhosted.org/packages/1e/df/09fc1857ac7cc2eb16465a7199c314cbce7edde53c8ef21d615410d7335b/rpds_py-0.24.0-cp311-cp311-win32.whl", hash = "sha256:5ef877fa3bbfb40b388a5ae1cb00636a624690dcb9a29a65267054c9ea86d88a", size = 222256 }, - { url = "https://files.pythonhosted.org/packages/ff/25/939b40bc4d54bf910e5ee60fb5af99262c92458f4948239e8c06b0b750e7/rpds_py-0.24.0-cp311-cp311-win_amd64.whl", hash = "sha256:e274f62cbd274359eff63e5c7e7274c913e8e09620f6a57aae66744b3df046d6", size = 234718 }, - { url = "https://files.pythonhosted.org/packages/1a/e0/1c55f4a3be5f1ca1a4fd1f3ff1504a1478c1ed48d84de24574c4fa87e921/rpds_py-0.24.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:d8551e733626afec514b5d15befabea0dd70a343a9f23322860c4f16a9430205", size = 366945 }, - { url = "https://files.pythonhosted.org/packages/39/1b/a3501574fbf29118164314dbc800d568b8c1c7b3258b505360e8abb3902c/rpds_py-0.24.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0e374c0ce0ca82e5b67cd61fb964077d40ec177dd2c4eda67dba130de09085c7", size = 351935 }, - { url = "https://files.pythonhosted.org/packages/dc/47/77d3d71c55f6a374edde29f1aca0b2e547325ed00a9da820cabbc9497d2b/rpds_py-0.24.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d69d003296df4840bd445a5d15fa5b6ff6ac40496f956a221c4d1f6f7b4bc4d9", size = 390817 }, - { url = "https://files.pythonhosted.org/packages/4e/ec/1e336ee27484379e19c7f9cc170f4217c608aee406d3ae3a2e45336bff36/rpds_py-0.24.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8212ff58ac6dfde49946bea57474a386cca3f7706fc72c25b772b9ca4af6b79e", size = 401983 }, - { url = "https://files.pythonhosted.org/packages/07/f8/39b65cbc272c635eaea6d393c2ad1ccc81c39eca2db6723a0ca4b2108fce/rpds_py-0.24.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:528927e63a70b4d5f3f5ccc1fa988a35456eb5d15f804d276709c33fc2f19bda", size = 451719 }, - { url = "https://files.pythonhosted.org/packages/32/05/05c2b27dd9c30432f31738afed0300659cb9415db0ff7429b05dfb09bbde/rpds_py-0.24.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a824d2c7a703ba6daaca848f9c3d5cb93af0505be505de70e7e66829affd676e", size = 442546 }, - { url = "https://files.pythonhosted.org/packages/7d/e0/19383c8b5d509bd741532a47821c3e96acf4543d0832beba41b4434bcc49/rpds_py-0.24.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44d51febb7a114293ffd56c6cf4736cb31cd68c0fddd6aa303ed09ea5a48e029", size = 393695 }, - { url = "https://files.pythonhosted.org/packages/9d/15/39f14e96d94981d0275715ae8ea564772237f3fa89bc3c21e24de934f2c7/rpds_py-0.24.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3fab5f4a2c64a8fb64fc13b3d139848817a64d467dd6ed60dcdd6b479e7febc9", size = 427218 }, - { url = "https://files.pythonhosted.org/packages/22/b9/12da7124905a680f690da7a9de6f11de770b5e359f5649972f7181c8bf51/rpds_py-0.24.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9be4f99bee42ac107870c61dfdb294d912bf81c3c6d45538aad7aecab468b6b7", size = 568062 }, - { url = "https://files.pythonhosted.org/packages/88/17/75229017a2143d915f6f803721a6d721eca24f2659c5718a538afa276b4f/rpds_py-0.24.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:564c96b6076a98215af52f55efa90d8419cc2ef45d99e314fddefe816bc24f91", size = 596262 }, - { url = "https://files.pythonhosted.org/packages/aa/64/8e8a1d8bd1b6b638d6acb6d41ab2cec7f2067a5b8b4c9175703875159a7c/rpds_py-0.24.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:75a810b7664c17f24bf2ffd7f92416c00ec84b49bb68e6a0d93e542406336b56", size = 564306 }, - { url = "https://files.pythonhosted.org/packages/68/1c/a7eac8d8ed8cb234a9b1064647824c387753343c3fab6ed7c83481ed0be7/rpds_py-0.24.0-cp312-cp312-win32.whl", hash = "sha256:f6016bd950be4dcd047b7475fdf55fb1e1f59fc7403f387be0e8123e4a576d30", size = 224281 }, - { url = "https://files.pythonhosted.org/packages/bb/46/b8b5424d1d21f2f2f3f2d468660085318d4f74a8df8289e3dd6ad224d488/rpds_py-0.24.0-cp312-cp312-win_amd64.whl", hash = "sha256:998c01b8e71cf051c28f5d6f1187abbdf5cf45fc0efce5da6c06447cba997034", size = 239719 }, - { url = "https://files.pythonhosted.org/packages/9d/c3/3607abc770395bc6d5a00cb66385a5479fb8cd7416ddef90393b17ef4340/rpds_py-0.24.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:3d2d8e4508e15fc05b31285c4b00ddf2e0eb94259c2dc896771966a163122a0c", size = 367072 }, - { url = "https://files.pythonhosted.org/packages/d8/35/8c7ee0fe465793e3af3298dc5a9f3013bd63e7a69df04ccfded8293a4982/rpds_py-0.24.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0f00c16e089282ad68a3820fd0c831c35d3194b7cdc31d6e469511d9bffc535c", size = 351919 }, - { url = "https://files.pythonhosted.org/packages/91/d3/7e1b972501eb5466b9aca46a9c31bcbbdc3ea5a076e9ab33f4438c1d069d/rpds_py-0.24.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:951cc481c0c395c4a08639a469d53b7d4afa252529a085418b82a6b43c45c240", size = 390360 }, - { url = "https://files.pythonhosted.org/packages/a2/a8/ccabb50d3c91c26ad01f9b09a6a3b03e4502ce51a33867c38446df9f896b/rpds_py-0.24.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9ca89938dff18828a328af41ffdf3902405a19f4131c88e22e776a8e228c5a8", size = 400704 }, - { url = "https://files.pythonhosted.org/packages/53/ae/5fa5bf0f3bc6ce21b5ea88fc0ecd3a439e7cb09dd5f9ffb3dbe1b6894fc5/rpds_py-0.24.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed0ef550042a8dbcd657dfb284a8ee00f0ba269d3f2286b0493b15a5694f9fe8", size = 450839 }, - { url = "https://files.pythonhosted.org/packages/e3/ac/c4e18b36d9938247e2b54f6a03746f3183ca20e1edd7d3654796867f5100/rpds_py-0.24.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b2356688e5d958c4d5cb964af865bea84db29971d3e563fb78e46e20fe1848b", size = 441494 }, - { url = "https://files.pythonhosted.org/packages/bf/08/b543969c12a8f44db6c0f08ced009abf8f519191ca6985509e7c44102e3c/rpds_py-0.24.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78884d155fd15d9f64f5d6124b486f3d3f7fd7cd71a78e9670a0f6f6ca06fb2d", size = 393185 }, - { url = "https://files.pythonhosted.org/packages/da/7e/f6eb6a7042ce708f9dfc781832a86063cea8a125bbe451d663697b51944f/rpds_py-0.24.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6a4a535013aeeef13c5532f802708cecae8d66c282babb5cd916379b72110cf7", size = 426168 }, - { url = "https://files.pythonhosted.org/packages/38/b0/6cd2bb0509ac0b51af4bb138e145b7c4c902bb4b724d6fd143689d6e0383/rpds_py-0.24.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:84e0566f15cf4d769dade9b366b7b87c959be472c92dffb70462dd0844d7cbad", size = 567622 }, - { url = "https://files.pythonhosted.org/packages/64/b0/c401f4f077547d98e8b4c2ec6526a80e7cb04f519d416430ec1421ee9e0b/rpds_py-0.24.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:823e74ab6fbaa028ec89615ff6acb409e90ff45580c45920d4dfdddb069f2120", size = 595435 }, - { url = "https://files.pythonhosted.org/packages/9f/ec/7993b6e803294c87b61c85bd63e11142ccfb2373cf88a61ec602abcbf9d6/rpds_py-0.24.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c61a2cb0085c8783906b2f8b1f16a7e65777823c7f4d0a6aaffe26dc0d358dd9", size = 563762 }, - { url = "https://files.pythonhosted.org/packages/1f/29/4508003204cb2f461dc2b83dd85f8aa2b915bc98fe6046b9d50d4aa05401/rpds_py-0.24.0-cp313-cp313-win32.whl", hash = "sha256:60d9b630c8025b9458a9d114e3af579a2c54bd32df601c4581bd054e85258143", size = 223510 }, - { url = "https://files.pythonhosted.org/packages/f9/12/09e048d1814195e01f354155fb772fb0854bd3450b5f5a82224b3a319f0e/rpds_py-0.24.0-cp313-cp313-win_amd64.whl", hash = "sha256:6eea559077d29486c68218178ea946263b87f1c41ae7f996b1f30a983c476a5a", size = 239075 }, - { url = "https://files.pythonhosted.org/packages/d2/03/5027cde39bb2408d61e4dd0cf81f815949bb629932a6c8df1701d0257fc4/rpds_py-0.24.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:d09dc82af2d3c17e7dd17120b202a79b578d79f2b5424bda209d9966efeed114", size = 362974 }, - { url = "https://files.pythonhosted.org/packages/bf/10/24d374a2131b1ffafb783e436e770e42dfdb74b69a2cd25eba8c8b29d861/rpds_py-0.24.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5fc13b44de6419d1e7a7e592a4885b323fbc2f46e1f22151e3a8ed3b8b920405", size = 348730 }, - { url = "https://files.pythonhosted.org/packages/7a/d1/1ef88d0516d46cd8df12e5916966dbf716d5ec79b265eda56ba1b173398c/rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c347a20d79cedc0a7bd51c4d4b7dbc613ca4e65a756b5c3e57ec84bd43505b47", size = 387627 }, - { url = "https://files.pythonhosted.org/packages/4e/35/07339051b8b901ecefd449ebf8e5522e92bcb95e1078818cbfd9db8e573c/rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:20f2712bd1cc26a3cc16c5a1bfee9ed1abc33d4cdf1aabd297fe0eb724df4272", size = 394094 }, - { url = "https://files.pythonhosted.org/packages/dc/62/ee89ece19e0ba322b08734e95441952062391065c157bbd4f8802316b4f1/rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aad911555286884be1e427ef0dc0ba3929e6821cbeca2194b13dc415a462c7fd", size = 449639 }, - { url = "https://files.pythonhosted.org/packages/15/24/b30e9f9e71baa0b9dada3a4ab43d567c6b04a36d1cb531045f7a8a0a7439/rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0aeb3329c1721c43c58cae274d7d2ca85c1690d89485d9c63a006cb79a85771a", size = 438584 }, - { url = "https://files.pythonhosted.org/packages/28/d9/49f7b8f3b4147db13961e19d5e30077cd0854ccc08487026d2cb2142aa4a/rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a0f156e9509cee987283abd2296ec816225145a13ed0391df8f71bf1d789e2d", size = 391047 }, - { url = "https://files.pythonhosted.org/packages/49/b0/e66918d0972c33a259ba3cd7b7ff10ed8bd91dbcfcbec6367b21f026db75/rpds_py-0.24.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aa6800adc8204ce898c8a424303969b7aa6a5e4ad2789c13f8648739830323b7", size = 418085 }, - { url = "https://files.pythonhosted.org/packages/e1/6b/99ed7ea0a94c7ae5520a21be77a82306aac9e4e715d4435076ead07d05c6/rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a18fc371e900a21d7392517c6f60fe859e802547309e94313cd8181ad9db004d", size = 564498 }, - { url = "https://files.pythonhosted.org/packages/28/26/1cacfee6b800e6fb5f91acecc2e52f17dbf8b0796a7c984b4568b6d70e38/rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:9168764133fd919f8dcca2ead66de0105f4ef5659cbb4fa044f7014bed9a1797", size = 590202 }, - { url = "https://files.pythonhosted.org/packages/a9/9e/57bd2f9fba04a37cef673f9a66b11ca8c43ccdd50d386c455cd4380fe461/rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f6e3cec44ba05ee5cbdebe92d052f69b63ae792e7d05f1020ac5e964394080c", size = 561771 }, - { url = "https://files.pythonhosted.org/packages/9f/cf/b719120f375ab970d1c297dbf8de1e3c9edd26fe92c0ed7178dd94b45992/rpds_py-0.24.0-cp313-cp313t-win32.whl", hash = "sha256:8ebc7e65ca4b111d928b669713865f021b7773350eeac4a31d3e70144297baba", size = 221195 }, - { url = "https://files.pythonhosted.org/packages/2d/e5/22865285789f3412ad0c3d7ec4dc0a3e86483b794be8a5d9ed5a19390900/rpds_py-0.24.0-cp313-cp313t-win_amd64.whl", hash = "sha256:675269d407a257b8c00a6b58205b72eec8231656506c56fd429d924ca00bb350", size = 237354 }, - { url = "https://files.pythonhosted.org/packages/65/53/40bcc246a8354530d51a26d2b5b9afd1deacfb0d79e67295cc74df362f52/rpds_py-0.24.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f9e0057a509e096e47c87f753136c9b10d7a91842d8042c2ee6866899a717c0d", size = 378386 }, - { url = "https://files.pythonhosted.org/packages/80/b0/5ea97dd2f53e3618560aa1f9674e896e63dff95a9b796879a201bc4c1f00/rpds_py-0.24.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d6e109a454412ab82979c5b1b3aee0604eca4bbf9a02693bb9df027af2bfa91a", size = 363440 }, - { url = "https://files.pythonhosted.org/packages/57/9d/259b6eada6f747cdd60c9a5eb3efab15f6704c182547149926c38e5bd0d5/rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc1c892b1ec1f8cbd5da8de287577b455e388d9c328ad592eabbdcb6fc93bee5", size = 388816 }, - { url = "https://files.pythonhosted.org/packages/94/c1/faafc7183712f89f4b7620c3c15979ada13df137d35ef3011ae83e93b005/rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c39438c55983d48f4bb3487734d040e22dad200dab22c41e331cee145e7a50d", size = 395058 }, - { url = "https://files.pythonhosted.org/packages/6c/96/d7fa9d2a7b7604a61da201cc0306a355006254942093779d7121c64700ce/rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d7e8ce990ae17dda686f7e82fd41a055c668e13ddcf058e7fb5e9da20b57793", size = 448692 }, - { url = "https://files.pythonhosted.org/packages/96/37/a3146c6eebc65d6d8c96cc5ffdcdb6af2987412c789004213227fbe52467/rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ea7f4174d2e4194289cb0c4e172d83e79a6404297ff95f2875cf9ac9bced8ba", size = 446462 }, - { url = "https://files.pythonhosted.org/packages/1f/13/6481dfd9ac7de43acdaaa416e3a7da40bc4bb8f5c6ca85e794100aa54596/rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb2954155bb8f63bb19d56d80e5e5320b61d71084617ed89efedb861a684baea", size = 390460 }, - { url = "https://files.pythonhosted.org/packages/61/e1/37e36bce65e109543cc4ff8d23206908649023549604fa2e7fbeba5342f7/rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04f2b712a2206e13800a8136b07aaedc23af3facab84918e7aa89e4be0260032", size = 421609 }, - { url = "https://files.pythonhosted.org/packages/20/dd/1f1a923d6cd798b8582176aca8a0784676f1a0449fb6f07fce6ac1cdbfb6/rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:eda5c1e2a715a4cbbca2d6d304988460942551e4e5e3b7457b50943cd741626d", size = 565818 }, - { url = "https://files.pythonhosted.org/packages/56/ec/d8da6df6a1eb3a418944a17b1cb38dd430b9e5a2e972eafd2b06f10c7c46/rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:9abc80fe8c1f87218db116016de575a7998ab1629078c90840e8d11ab423ee25", size = 592627 }, - { url = "https://files.pythonhosted.org/packages/b3/14/c492b9c7d5dd133e13f211ddea6bb9870f99e4f73932f11aa00bc09a9be9/rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6a727fd083009bc83eb83d6950f0c32b3c94c8b80a9b667c87f4bd1274ca30ba", size = 560885 }, +version = "0.25.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/a6/60184b7fc00dd3ca80ac635dd5b8577d444c57e8e8742cecabfacb829921/rpds_py-0.25.1.tar.gz", hash = "sha256:8960b6dac09b62dac26e75d7e2c4a22efb835d827a7278c34f72b2b84fa160e3", size = 27304 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/95/e1/df13fe3ddbbea43567e07437f097863b20c99318ae1f58a0fe389f763738/rpds_py-0.25.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5f048bbf18b1f9120685c6d6bb70cc1a52c8cc11bdd04e643d28d3be0baf666d", size = 373341 }, + { url = "https://files.pythonhosted.org/packages/7a/58/deef4d30fcbcbfef3b6d82d17c64490d5c94585a2310544ce8e2d3024f83/rpds_py-0.25.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4fbb0dbba559959fcb5d0735a0f87cdbca9e95dac87982e9b95c0f8f7ad10255", size = 359111 }, + { url = "https://files.pythonhosted.org/packages/bb/7e/39f1f4431b03e96ebaf159e29a0f82a77259d8f38b2dd474721eb3a8ac9b/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4ca54b9cf9d80b4016a67a0193ebe0bcf29f6b0a96f09db942087e294d3d4c2", size = 386112 }, + { url = "https://files.pythonhosted.org/packages/db/e7/847068a48d63aec2ae695a1646089620b3b03f8ccf9f02c122ebaf778f3c/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ee3e26eb83d39b886d2cb6e06ea701bba82ef30a0de044d34626ede51ec98b0", size = 400362 }, + { url = "https://files.pythonhosted.org/packages/3b/3d/9441d5db4343d0cee759a7ab4d67420a476cebb032081763de934719727b/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:89706d0683c73a26f76a5315d893c051324d771196ae8b13e6ffa1ffaf5e574f", size = 522214 }, + { url = "https://files.pythonhosted.org/packages/a2/ec/2cc5b30d95f9f1a432c79c7a2f65d85e52812a8f6cbf8768724571710786/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2013ee878c76269c7b557a9a9c042335d732e89d482606990b70a839635feb7", size = 411491 }, + { url = "https://files.pythonhosted.org/packages/dc/6c/44695c1f035077a017dd472b6a3253553780837af2fac9b6ac25f6a5cb4d/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45e484db65e5380804afbec784522de84fa95e6bb92ef1bd3325d33d13efaebd", size = 386978 }, + { url = "https://files.pythonhosted.org/packages/b1/74/b4357090bb1096db5392157b4e7ed8bb2417dc7799200fcbaee633a032c9/rpds_py-0.25.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:48d64155d02127c249695abb87d39f0faf410733428d499867606be138161d65", size = 420662 }, + { url = "https://files.pythonhosted.org/packages/26/dd/8cadbebf47b96e59dfe8b35868e5c38a42272699324e95ed522da09d3a40/rpds_py-0.25.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:048893e902132fd6548a2e661fb38bf4896a89eea95ac5816cf443524a85556f", size = 563385 }, + { url = "https://files.pythonhosted.org/packages/c3/ea/92960bb7f0e7a57a5ab233662f12152085c7dc0d5468534c65991a3d48c9/rpds_py-0.25.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0317177b1e8691ab5879f4f33f4b6dc55ad3b344399e23df2e499de7b10a548d", size = 592047 }, + { url = "https://files.pythonhosted.org/packages/61/ad/71aabc93df0d05dabcb4b0c749277881f8e74548582d96aa1bf24379493a/rpds_py-0.25.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bffcf57826d77a4151962bf1701374e0fc87f536e56ec46f1abdd6a903354042", size = 557863 }, + { url = "https://files.pythonhosted.org/packages/93/0f/89df0067c41f122b90b76f3660028a466eb287cbe38efec3ea70e637ca78/rpds_py-0.25.1-cp311-cp311-win32.whl", hash = "sha256:cda776f1967cb304816173b30994faaf2fd5bcb37e73118a47964a02c348e1bc", size = 219627 }, + { url = "https://files.pythonhosted.org/packages/7c/8d/93b1a4c1baa903d0229374d9e7aa3466d751f1d65e268c52e6039c6e338e/rpds_py-0.25.1-cp311-cp311-win_amd64.whl", hash = "sha256:dc3c1ff0abc91444cd20ec643d0f805df9a3661fcacf9c95000329f3ddf268a4", size = 231603 }, + { url = "https://files.pythonhosted.org/packages/cb/11/392605e5247bead2f23e6888e77229fbd714ac241ebbebb39a1e822c8815/rpds_py-0.25.1-cp311-cp311-win_arm64.whl", hash = "sha256:5a3ddb74b0985c4387719fc536faced33cadf2172769540c62e2a94b7b9be1c4", size = 223967 }, + { url = "https://files.pythonhosted.org/packages/7f/81/28ab0408391b1dc57393653b6a0cf2014cc282cc2909e4615e63e58262be/rpds_py-0.25.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b5ffe453cde61f73fea9430223c81d29e2fbf412a6073951102146c84e19e34c", size = 364647 }, + { url = "https://files.pythonhosted.org/packages/2c/9a/7797f04cad0d5e56310e1238434f71fc6939d0bc517192a18bb99a72a95f/rpds_py-0.25.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:115874ae5e2fdcfc16b2aedc95b5eef4aebe91b28e7e21951eda8a5dc0d3461b", size = 350454 }, + { url = "https://files.pythonhosted.org/packages/69/3c/93d2ef941b04898011e5d6eaa56a1acf46a3b4c9f4b3ad1bbcbafa0bee1f/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a714bf6e5e81b0e570d01f56e0c89c6375101b8463999ead3a93a5d2a4af91fa", size = 389665 }, + { url = "https://files.pythonhosted.org/packages/c1/57/ad0e31e928751dde8903a11102559628d24173428a0f85e25e187defb2c1/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:35634369325906bcd01577da4c19e3b9541a15e99f31e91a02d010816b49bfda", size = 403873 }, + { url = "https://files.pythonhosted.org/packages/16/ad/c0c652fa9bba778b4f54980a02962748479dc09632e1fd34e5282cf2556c/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4cb2b3ddc16710548801c6fcc0cfcdeeff9dafbc983f77265877793f2660309", size = 525866 }, + { url = "https://files.pythonhosted.org/packages/2a/39/3e1839bc527e6fcf48d5fec4770070f872cdee6c6fbc9b259932f4e88a38/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ceca1cf097ed77e1a51f1dbc8d174d10cb5931c188a4505ff9f3e119dfe519b", size = 416886 }, + { url = "https://files.pythonhosted.org/packages/7a/95/dd6b91cd4560da41df9d7030a038298a67d24f8ca38e150562644c829c48/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c2cd1a4b0c2b8c5e31ffff50d09f39906fe351389ba143c195566056c13a7ea", size = 390666 }, + { url = "https://files.pythonhosted.org/packages/64/48/1be88a820e7494ce0a15c2d390ccb7c52212370badabf128e6a7bb4cb802/rpds_py-0.25.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1de336a4b164c9188cb23f3703adb74a7623ab32d20090d0e9bf499a2203ad65", size = 425109 }, + { url = "https://files.pythonhosted.org/packages/cf/07/3e2a17927ef6d7720b9949ec1b37d1e963b829ad0387f7af18d923d5cfa5/rpds_py-0.25.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9fca84a15333e925dd59ce01da0ffe2ffe0d6e5d29a9eeba2148916d1824948c", size = 567244 }, + { url = "https://files.pythonhosted.org/packages/d2/e5/76cf010998deccc4f95305d827847e2eae9c568099c06b405cf96384762b/rpds_py-0.25.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88ec04afe0c59fa64e2f6ea0dd9657e04fc83e38de90f6de201954b4d4eb59bd", size = 596023 }, + { url = "https://files.pythonhosted.org/packages/52/9a/df55efd84403736ba37a5a6377b70aad0fd1cb469a9109ee8a1e21299a1c/rpds_py-0.25.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a8bd2f19e312ce3e1d2c635618e8a8d8132892bb746a7cf74780a489f0f6cdcb", size = 561634 }, + { url = "https://files.pythonhosted.org/packages/ab/aa/dc3620dd8db84454aaf9374bd318f1aa02578bba5e567f5bf6b79492aca4/rpds_py-0.25.1-cp312-cp312-win32.whl", hash = "sha256:e5e2f7280d8d0d3ef06f3ec1b4fd598d386cc6f0721e54f09109a8132182fbfe", size = 222713 }, + { url = "https://files.pythonhosted.org/packages/a3/7f/7cef485269a50ed5b4e9bae145f512d2a111ca638ae70cc101f661b4defd/rpds_py-0.25.1-cp312-cp312-win_amd64.whl", hash = "sha256:db58483f71c5db67d643857404da360dce3573031586034b7d59f245144cc192", size = 235280 }, + { url = "https://files.pythonhosted.org/packages/99/f2/c2d64f6564f32af913bf5f3f7ae41c7c263c5ae4c4e8f1a17af8af66cd46/rpds_py-0.25.1-cp312-cp312-win_arm64.whl", hash = "sha256:6d50841c425d16faf3206ddbba44c21aa3310a0cebc3c1cdfc3e3f4f9f6f5728", size = 225399 }, + { url = "https://files.pythonhosted.org/packages/2b/da/323848a2b62abe6a0fec16ebe199dc6889c5d0a332458da8985b2980dffe/rpds_py-0.25.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:659d87430a8c8c704d52d094f5ba6fa72ef13b4d385b7e542a08fc240cb4a559", size = 364498 }, + { url = "https://files.pythonhosted.org/packages/1f/b4/4d3820f731c80fd0cd823b3e95b9963fec681ae45ba35b5281a42382c67d/rpds_py-0.25.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68f6f060f0bbdfb0245267da014d3a6da9be127fe3e8cc4a68c6f833f8a23bb1", size = 350083 }, + { url = "https://files.pythonhosted.org/packages/d5/b1/3a8ee1c9d480e8493619a437dec685d005f706b69253286f50f498cbdbcf/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:083a9513a33e0b92cf6e7a6366036c6bb43ea595332c1ab5c8ae329e4bcc0a9c", size = 389023 }, + { url = "https://files.pythonhosted.org/packages/3b/31/17293edcfc934dc62c3bf74a0cb449ecd549531f956b72287203e6880b87/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:816568614ecb22b18a010c7a12559c19f6fe993526af88e95a76d5a60b8b75fb", size = 403283 }, + { url = "https://files.pythonhosted.org/packages/d1/ca/e0f0bc1a75a8925024f343258c8ecbd8828f8997ea2ac71e02f67b6f5299/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c6564c0947a7f52e4792983f8e6cf9bac140438ebf81f527a21d944f2fd0a40", size = 524634 }, + { url = "https://files.pythonhosted.org/packages/3e/03/5d0be919037178fff33a6672ffc0afa04ea1cfcb61afd4119d1b5280ff0f/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c4a128527fe415d73cf1f70a9a688d06130d5810be69f3b553bf7b45e8acf79", size = 416233 }, + { url = "https://files.pythonhosted.org/packages/05/7c/8abb70f9017a231c6c961a8941403ed6557664c0913e1bf413cbdc039e75/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a49e1d7a4978ed554f095430b89ecc23f42014a50ac385eb0c4d163ce213c325", size = 390375 }, + { url = "https://files.pythonhosted.org/packages/7a/ac/a87f339f0e066b9535074a9f403b9313fd3892d4a164d5d5f5875ac9f29f/rpds_py-0.25.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d74ec9bc0e2feb81d3f16946b005748119c0f52a153f6db6a29e8cd68636f295", size = 424537 }, + { url = "https://files.pythonhosted.org/packages/1f/8f/8d5c1567eaf8c8afe98a838dd24de5013ce6e8f53a01bd47fe8bb06b5533/rpds_py-0.25.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3af5b4cc10fa41e5bc64e5c198a1b2d2864337f8fcbb9a67e747e34002ce812b", size = 566425 }, + { url = "https://files.pythonhosted.org/packages/95/33/03016a6be5663b389c8ab0bbbcca68d9e96af14faeff0a04affcb587e776/rpds_py-0.25.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:79dc317a5f1c51fd9c6a0c4f48209c6b8526d0524a6904fc1076476e79b00f98", size = 595197 }, + { url = "https://files.pythonhosted.org/packages/33/8d/da9f4d3e208c82fda311bff0cf0a19579afceb77cf456e46c559a1c075ba/rpds_py-0.25.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1521031351865e0181bc585147624d66b3b00a84109b57fcb7a779c3ec3772cd", size = 561244 }, + { url = "https://files.pythonhosted.org/packages/e2/b3/39d5dcf7c5f742ecd6dbc88f6f84ae54184b92f5f387a4053be2107b17f1/rpds_py-0.25.1-cp313-cp313-win32.whl", hash = "sha256:5d473be2b13600b93a5675d78f59e63b51b1ba2d0476893415dfbb5477e65b31", size = 222254 }, + { url = "https://files.pythonhosted.org/packages/5f/19/2d6772c8eeb8302c5f834e6d0dfd83935a884e7c5ce16340c7eaf89ce925/rpds_py-0.25.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7b74e92a3b212390bdce1d93da9f6488c3878c1d434c5e751cbc202c5e09500", size = 234741 }, + { url = "https://files.pythonhosted.org/packages/5b/5a/145ada26cfaf86018d0eb304fe55eafdd4f0b6b84530246bb4a7c4fb5c4b/rpds_py-0.25.1-cp313-cp313-win_arm64.whl", hash = "sha256:dd326a81afe332ede08eb39ab75b301d5676802cdffd3a8f287a5f0b694dc3f5", size = 224830 }, + { url = "https://files.pythonhosted.org/packages/4b/ca/d435844829c384fd2c22754ff65889c5c556a675d2ed9eb0e148435c6690/rpds_py-0.25.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:a58d1ed49a94d4183483a3ce0af22f20318d4a1434acee255d683ad90bf78129", size = 359668 }, + { url = "https://files.pythonhosted.org/packages/1f/01/b056f21db3a09f89410d493d2f6614d87bb162499f98b649d1dbd2a81988/rpds_py-0.25.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f251bf23deb8332823aef1da169d5d89fa84c89f67bdfb566c49dea1fccfd50d", size = 345649 }, + { url = "https://files.pythonhosted.org/packages/e0/0f/e0d00dc991e3d40e03ca36383b44995126c36b3eafa0ccbbd19664709c88/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dbd586bfa270c1103ece2109314dd423df1fa3d9719928b5d09e4840cec0d72", size = 384776 }, + { url = "https://files.pythonhosted.org/packages/9f/a2/59374837f105f2ca79bde3c3cd1065b2f8c01678900924949f6392eab66d/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6d273f136e912aa101a9274c3145dcbddbe4bac560e77e6d5b3c9f6e0ed06d34", size = 395131 }, + { url = "https://files.pythonhosted.org/packages/9c/dc/48e8d84887627a0fe0bac53f0b4631e90976fd5d35fff8be66b8e4f3916b/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:666fa7b1bd0a3810a7f18f6d3a25ccd8866291fbbc3c9b912b917a6715874bb9", size = 520942 }, + { url = "https://files.pythonhosted.org/packages/7c/f5/ee056966aeae401913d37befeeab57a4a43a4f00099e0a20297f17b8f00c/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:921954d7fbf3fccc7de8f717799304b14b6d9a45bbeec5a8d7408ccbf531faf5", size = 411330 }, + { url = "https://files.pythonhosted.org/packages/ab/74/b2cffb46a097cefe5d17f94ede7a174184b9d158a0aeb195f39f2c0361e8/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3d86373ff19ca0441ebeb696ef64cb58b8b5cbacffcda5a0ec2f3911732a194", size = 387339 }, + { url = "https://files.pythonhosted.org/packages/7f/9a/0ff0b375dcb5161c2b7054e7d0b7575f1680127505945f5cabaac890bc07/rpds_py-0.25.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c8980cde3bb8575e7c956a530f2c217c1d6aac453474bf3ea0f9c89868b531b6", size = 418077 }, + { url = "https://files.pythonhosted.org/packages/0d/a1/fda629bf20d6b698ae84c7c840cfb0e9e4200f664fc96e1f456f00e4ad6e/rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8eb8c84ecea987a2523e057c0d950bcb3f789696c0499290b8d7b3107a719d78", size = 562441 }, + { url = "https://files.pythonhosted.org/packages/20/15/ce4b5257f654132f326f4acd87268e1006cc071e2c59794c5bdf4bebbb51/rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:e43a005671a9ed5a650f3bc39e4dbccd6d4326b24fb5ea8be5f3a43a6f576c72", size = 590750 }, + { url = "https://files.pythonhosted.org/packages/fb/ab/e04bf58a8d375aeedb5268edcc835c6a660ebf79d4384d8e0889439448b0/rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:58f77c60956501a4a627749a6dcb78dac522f249dd96b5c9f1c6af29bfacfb66", size = 558891 }, + { url = "https://files.pythonhosted.org/packages/90/82/cb8c6028a6ef6cd2b7991e2e4ced01c854b6236ecf51e81b64b569c43d73/rpds_py-0.25.1-cp313-cp313t-win32.whl", hash = "sha256:2cb9e5b5e26fc02c8a4345048cd9998c2aca7c2712bd1b36da0c72ee969a3523", size = 218718 }, + { url = "https://files.pythonhosted.org/packages/b6/97/5a4b59697111c89477d20ba8a44df9ca16b41e737fa569d5ae8bff99e650/rpds_py-0.25.1-cp313-cp313t-win_amd64.whl", hash = "sha256:401ca1c4a20cc0510d3435d89c069fe0a9ae2ee6495135ac46bdd49ec0495763", size = 232218 }, + { url = "https://files.pythonhosted.org/packages/49/74/48f3df0715a585cbf5d34919c9c757a4c92c1a9eba059f2d334e72471f70/rpds_py-0.25.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee86d81551ec68a5c25373c5643d343150cc54672b5e9a0cafc93c1870a53954", size = 374208 }, + { url = "https://files.pythonhosted.org/packages/55/b0/9b01bb11ce01ec03d05e627249cc2c06039d6aa24ea5a22a39c312167c10/rpds_py-0.25.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89c24300cd4a8e4a51e55c31a8ff3918e6651b241ee8876a42cc2b2a078533ba", size = 359262 }, + { url = "https://files.pythonhosted.org/packages/a9/eb/5395621618f723ebd5116c53282052943a726dba111b49cd2071f785b665/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:771c16060ff4e79584dc48902a91ba79fd93eade3aa3a12d6d2a4aadaf7d542b", size = 387366 }, + { url = "https://files.pythonhosted.org/packages/68/73/3d51442bdb246db619d75039a50ea1cf8b5b4ee250c3e5cd5c3af5981cd4/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:785ffacd0ee61c3e60bdfde93baa6d7c10d86f15655bd706c89da08068dc5038", size = 400759 }, + { url = "https://files.pythonhosted.org/packages/b7/4c/3a32d5955d7e6cb117314597bc0f2224efc798428318b13073efe306512a/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a40046a529cc15cef88ac5ab589f83f739e2d332cb4d7399072242400ed68c9", size = 523128 }, + { url = "https://files.pythonhosted.org/packages/be/95/1ffccd3b0bb901ae60b1dd4b1be2ab98bb4eb834cd9b15199888f5702f7b/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85fc223d9c76cabe5d0bff82214459189720dc135db45f9f66aa7cffbf9ff6c1", size = 411597 }, + { url = "https://files.pythonhosted.org/packages/ef/6d/6e6cd310180689db8b0d2de7f7d1eabf3fb013f239e156ae0d5a1a85c27f/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0be9965f93c222fb9b4cc254235b3b2b215796c03ef5ee64f995b1b69af0762", size = 388053 }, + { url = "https://files.pythonhosted.org/packages/4a/87/ec4186b1fe6365ced6fa470960e68fc7804bafbe7c0cf5a36237aa240efa/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8378fa4a940f3fb509c081e06cb7f7f2adae8cf46ef258b0e0ed7519facd573e", size = 421821 }, + { url = "https://files.pythonhosted.org/packages/7a/60/84f821f6bf4e0e710acc5039d91f8f594fae0d93fc368704920d8971680d/rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:33358883a4490287e67a2c391dfaea4d9359860281db3292b6886bf0be3d8692", size = 564534 }, + { url = "https://files.pythonhosted.org/packages/41/3a/bc654eb15d3b38f9330fe0f545016ba154d89cdabc6177b0295910cd0ebe/rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1d1fadd539298e70cac2f2cb36f5b8a65f742b9b9f1014dd4ea1f7785e2470bf", size = 592674 }, + { url = "https://files.pythonhosted.org/packages/2e/ba/31239736f29e4dfc7a58a45955c5db852864c306131fd6320aea214d5437/rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9a46c2fb2545e21181445515960006e85d22025bd2fe6db23e76daec6eb689fe", size = 558781 }, ] [[package]] name = "rsa" -version = "4.9" +version = "4.9.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyasn1" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/aa/65/7d973b89c4d2351d7fb232c2e452547ddfa243e93131e7cfa766da627b52/rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21", size = 29711 } +sdist = { url = "https://files.pythonhosted.org/packages/da/8a/22b7beea3ee0d44b1916c0c1cb0ee3af23b700b6da9f04991899d0c555d4/rsa-4.9.1.tar.gz", hash = "sha256:e7bdbfdb5497da4c07dfd35530e1a902659db6ff241e39d9953cad06ebd0ae75", size = 29034 } wheels = [ - { url = "https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7", size = 34315 }, + { url = "https://files.pythonhosted.org/packages/64/8d/0133e4eb4beed9e425d9a98ed6e081a55d195481b7632472be1af08d2f6b/rsa-4.9.1-py3-none-any.whl", hash = "sha256:68635866661c6836b8d39430f97a996acbd61bfa49406748ea243539fe239762", size = 34696 }, ] [[package]] name = "ruamel-yaml" -version = "0.18.10" +version = "0.18.11" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "ruamel-yaml-clib", marker = "python_full_version < '3.13' and platform_python_implementation == 'CPython'" }, + { name = "ruamel-yaml-clib", marker = "platform_python_implementation == 'CPython'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ea/46/f44d8be06b85bc7c4d8c95d658be2b68f27711f279bf9dd0612a5e4794f5/ruamel.yaml-0.18.10.tar.gz", hash = "sha256:20c86ab29ac2153f80a428e1254a8adf686d3383df04490514ca3b79a362db58", size = 143447 } +sdist = { url = "https://files.pythonhosted.org/packages/9d/8f/dfbab2d5ec83da0605ab935fb43ffa8ab5828455e2c910b7314fdd18e0b8/ruamel.yaml-0.18.11.tar.gz", hash = "sha256:b586a3416676566ed45bf679a0909719f7ea7b58c03a9b6e03f905a1e2cd5076", size = 144299 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/36/dfc1ebc0081e6d39924a2cc53654497f967a084a436bb64402dfce4254d9/ruamel.yaml-0.18.10-py3-none-any.whl", hash = "sha256:30f22513ab2301b3d2b577adc121c6471f28734d3d9728581245f1e76468b4f1", size = 117729 }, + { url = "https://files.pythonhosted.org/packages/2e/62/615a16ebbca43fd4434843e9d346d795a134d0a1ff46101c858d93c9778d/ruamel.yaml-0.18.11-py3-none-any.whl", hash = "sha256:eca06c9fce6ee3220845c4c54e58376586e041a6127e4d1958e12a3142084897", size = 118313 }, ] [[package]] @@ -2983,27 +3058,27 @@ wheels = [ [[package]] name = "ruff" -version = "0.11.8" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/52/f6/adcf73711f31c9f5393862b4281c875a462d9f639f4ccdf69dc368311c20/ruff-0.11.8.tar.gz", hash = "sha256:6d742d10626f9004b781f4558154bb226620a7242080e11caeffab1a40e99df8", size = 4086399 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9f/60/c6aa9062fa518a9f86cb0b85248245cddcd892a125ca00441df77d79ef88/ruff-0.11.8-py3-none-linux_armv6l.whl", hash = "sha256:896a37516c594805e34020c4a7546c8f8a234b679a7716a3f08197f38913e1a3", size = 10272473 }, - { url = "https://files.pythonhosted.org/packages/a0/e4/0325e50d106dc87c00695f7bcd5044c6d252ed5120ebf423773e00270f50/ruff-0.11.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ab86d22d3d721a40dd3ecbb5e86ab03b2e053bc93c700dc68d1c3346b36ce835", size = 11040862 }, - { url = "https://files.pythonhosted.org/packages/e6/27/b87ea1a7be37fef0adbc7fd987abbf90b6607d96aa3fc67e2c5b858e1e53/ruff-0.11.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:258f3585057508d317610e8a412788cf726efeefa2fec4dba4001d9e6f90d46c", size = 10385273 }, - { url = "https://files.pythonhosted.org/packages/d3/f7/3346161570d789045ed47a86110183f6ac3af0e94e7fd682772d89f7f1a1/ruff-0.11.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:727d01702f7c30baed3fc3a34901a640001a2828c793525043c29f7614994a8c", size = 10578330 }, - { url = "https://files.pythonhosted.org/packages/c6/c3/327fb950b4763c7b3784f91d3038ef10c13b2d42322d4ade5ce13a2f9edb/ruff-0.11.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3dca977cc4fc8f66e89900fa415ffe4dbc2e969da9d7a54bfca81a128c5ac219", size = 10122223 }, - { url = "https://files.pythonhosted.org/packages/de/c7/ba686bce9adfeb6c61cb1bbadc17d58110fe1d602f199d79d4c880170f19/ruff-0.11.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c657fa987d60b104d2be8b052d66da0a2a88f9bd1d66b2254333e84ea2720c7f", size = 11697353 }, - { url = "https://files.pythonhosted.org/packages/53/8e/a4fb4a1ddde3c59e73996bb3ac51844ff93384d533629434b1def7a336b0/ruff-0.11.8-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:f2e74b021d0de5eceb8bd32919f6ff8a9b40ee62ed97becd44993ae5b9949474", size = 12375936 }, - { url = "https://files.pythonhosted.org/packages/ad/a1/9529cb1e2936e2479a51aeb011307e7229225df9ac64ae064d91ead54571/ruff-0.11.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9b5ef39820abc0f2c62111f7045009e46b275f5b99d5e59dda113c39b7f4f38", size = 11850083 }, - { url = "https://files.pythonhosted.org/packages/3e/94/8f7eac4c612673ae15a4ad2bc0ee62e03c68a2d4f458daae3de0e47c67ba/ruff-0.11.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c1dba3135ca503727aa4648152c0fa67c3b1385d3dc81c75cd8a229c4b2a1458", size = 14005834 }, - { url = "https://files.pythonhosted.org/packages/1e/7c/6f63b46b2be870cbf3f54c9c4154d13fac4b8827f22fa05ac835c10835b2/ruff-0.11.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f024d32e62faad0f76b2d6afd141b8c171515e4fb91ce9fd6464335c81244e5", size = 11503713 }, - { url = "https://files.pythonhosted.org/packages/3a/91/57de411b544b5fe072779678986a021d87c3ee5b89551f2ca41200c5d643/ruff-0.11.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d365618d3ad747432e1ae50d61775b78c055fee5936d77fb4d92c6f559741948", size = 10457182 }, - { url = "https://files.pythonhosted.org/packages/01/49/cfe73e0ce5ecdd3e6f1137bf1f1be03dcc819d1bfe5cff33deb40c5926db/ruff-0.11.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:4d9aaa91035bdf612c8ee7266153bcf16005c7c7e2f5878406911c92a31633cb", size = 10101027 }, - { url = "https://files.pythonhosted.org/packages/56/21/a5cfe47c62b3531675795f38a0ef1c52ff8de62eaddf370d46634391a3fb/ruff-0.11.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:0eba551324733efc76116d9f3a0d52946bc2751f0cd30661564117d6fd60897c", size = 11111298 }, - { url = "https://files.pythonhosted.org/packages/36/98/f76225f87e88f7cb669ae92c062b11c0a1e91f32705f829bd426f8e48b7b/ruff-0.11.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:161eb4cff5cfefdb6c9b8b3671d09f7def2f960cee33481dd898caf2bcd02304", size = 11566884 }, - { url = "https://files.pythonhosted.org/packages/de/7e/fff70b02e57852fda17bd43f99dda37b9bcf3e1af3d97c5834ff48d04715/ruff-0.11.8-py3-none-win32.whl", hash = "sha256:5b18caa297a786465cc511d7f8be19226acf9c0a1127e06e736cd4e1878c3ea2", size = 10451102 }, - { url = "https://files.pythonhosted.org/packages/7b/a9/eaa571eb70648c9bde3120a1d5892597de57766e376b831b06e7c1e43945/ruff-0.11.8-py3-none-win_amd64.whl", hash = "sha256:6e70d11043bef637c5617297bdedec9632af15d53ac1e1ba29c448da9341b0c4", size = 11597410 }, - { url = "https://files.pythonhosted.org/packages/cd/be/f6b790d6ae98f1f32c645f8540d5c96248b72343b0a56fab3a07f2941897/ruff-0.11.8-py3-none-win_arm64.whl", hash = "sha256:304432e4c4a792e3da85b7699feb3426a0908ab98bf29df22a31b0cdd098fac2", size = 10713129 }, +version = "0.11.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/53/ae4857030d59286924a8bdb30d213d6ff22d8f0957e738d0289990091dd8/ruff-0.11.11.tar.gz", hash = "sha256:7774173cc7c1980e6bf67569ebb7085989a78a103922fb83ef3dfe230cd0687d", size = 4186707 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/14/f2326676197bab099e2a24473158c21656fbf6a207c65f596ae15acb32b9/ruff-0.11.11-py3-none-linux_armv6l.whl", hash = "sha256:9924e5ae54125ed8958a4f7de320dab7380f6e9fa3195e3dc3b137c6842a0092", size = 10229049 }, + { url = "https://files.pythonhosted.org/packages/9a/f3/bff7c92dd66c959e711688b2e0768e486bbca46b2f35ac319bb6cce04447/ruff-0.11.11-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:c8a93276393d91e952f790148eb226658dd275cddfde96c6ca304873f11d2ae4", size = 11053601 }, + { url = "https://files.pythonhosted.org/packages/e2/38/8e1a3efd0ef9d8259346f986b77de0f62c7a5ff4a76563b6b39b68f793b9/ruff-0.11.11-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d6e333dbe2e6ae84cdedefa943dfd6434753ad321764fd937eef9d6b62022bcd", size = 10367421 }, + { url = "https://files.pythonhosted.org/packages/b4/50/557ad9dd4fb9d0bf524ec83a090a3932d284d1a8b48b5906b13b72800e5f/ruff-0.11.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7885d9a5e4c77b24e8c88aba8c80be9255fa22ab326019dac2356cff42089fc6", size = 10581980 }, + { url = "https://files.pythonhosted.org/packages/c4/b2/e2ed82d6e2739ece94f1bdbbd1d81b712d3cdaf69f0a1d1f1a116b33f9ad/ruff-0.11.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b5ab797fcc09121ed82e9b12b6f27e34859e4227080a42d090881be888755d4", size = 10089241 }, + { url = "https://files.pythonhosted.org/packages/3d/9f/b4539f037a5302c450d7c695c82f80e98e48d0d667ecc250e6bdeb49b5c3/ruff-0.11.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e231ff3132c1119ece836487a02785f099a43992b95c2f62847d29bace3c75ac", size = 11699398 }, + { url = "https://files.pythonhosted.org/packages/61/fb/32e029d2c0b17df65e6eaa5ce7aea5fbeaed22dddd9fcfbbf5fe37c6e44e/ruff-0.11.11-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:a97c9babe1d4081037a90289986925726b802d180cca784ac8da2bbbc335f709", size = 12427955 }, + { url = "https://files.pythonhosted.org/packages/6e/e3/160488dbb11f18c8121cfd588e38095ba779ae208292765972f7732bfd95/ruff-0.11.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d8c4ddcbe8a19f59f57fd814b8b117d4fcea9bee7c0492e6cf5fdc22cfa563c8", size = 12069803 }, + { url = "https://files.pythonhosted.org/packages/ff/16/3b006a875f84b3d0bff24bef26b8b3591454903f6f754b3f0a318589dcc3/ruff-0.11.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6224076c344a7694c6fbbb70d4f2a7b730f6d47d2a9dc1e7f9d9bb583faf390b", size = 11242630 }, + { url = "https://files.pythonhosted.org/packages/65/0d/0338bb8ac0b97175c2d533e9c8cdc127166de7eb16d028a43c5ab9e75abd/ruff-0.11.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:882821fcdf7ae8db7a951df1903d9cb032bbe838852e5fc3c2b6c3ab54e39875", size = 11507310 }, + { url = "https://files.pythonhosted.org/packages/6f/bf/d7130eb26174ce9b02348b9f86d5874eafbf9f68e5152e15e8e0a392e4a3/ruff-0.11.11-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:dcec2d50756463d9df075a26a85a6affbc1b0148873da3997286caf1ce03cae1", size = 10441144 }, + { url = "https://files.pythonhosted.org/packages/b3/f3/4be2453b258c092ff7b1761987cf0749e70ca1340cd1bfb4def08a70e8d8/ruff-0.11.11-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:99c28505ecbaeb6594701a74e395b187ee083ee26478c1a795d35084d53ebd81", size = 10081987 }, + { url = "https://files.pythonhosted.org/packages/6c/6e/dfa4d2030c5b5c13db158219f2ec67bf333e8a7748dccf34cfa2a6ab9ebc/ruff-0.11.11-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9263f9e5aa4ff1dec765e99810f1cc53f0c868c5329b69f13845f699fe74f639", size = 11073922 }, + { url = "https://files.pythonhosted.org/packages/ff/f4/f7b0b0c3d32b593a20ed8010fa2c1a01f2ce91e79dda6119fcc51d26c67b/ruff-0.11.11-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:64ac6f885e3ecb2fdbb71de2701d4e34526651f1e8503af8fb30d4915a3fe345", size = 11568537 }, + { url = "https://files.pythonhosted.org/packages/d2/46/0e892064d0adc18bcc81deed9aaa9942a27fd2cd9b1b7791111ce468c25f/ruff-0.11.11-py3-none-win32.whl", hash = "sha256:1adcb9a18802268aaa891ffb67b1c94cd70578f126637118e8099b8e4adcf112", size = 10536492 }, + { url = "https://files.pythonhosted.org/packages/1b/d9/232e79459850b9f327e9f1dc9c047a2a38a6f9689e1ec30024841fc4416c/ruff-0.11.11-py3-none-win_amd64.whl", hash = "sha256:748b4bb245f11e91a04a4ff0f96e386711df0a30412b9fe0c74d5bdc0e4a531f", size = 11612562 }, + { url = "https://files.pythonhosted.org/packages/ce/eb/09c132cff3cc30b2e7244191dcce69437352d6d6709c0adf374f3e6f476e/ruff-0.11.11-py3-none-win_arm64.whl", hash = "sha256:6c51f136c0364ab1b774767aa8b86331bd8e9d414e2d107db7a2189f35ea1f7b", size = 10735951 }, ] [[package]] @@ -3022,13 +3097,14 @@ wheels = [ [[package]] name = "safety" -version = "3.3.1" +version = "3.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "authlib" }, { name = "click" }, { name = "dparse" }, { name = "filelock" }, + { name = "httpx" }, { name = "jinja2" }, { name = "marshmallow" }, { name = "nltk" }, @@ -3039,17 +3115,19 @@ dependencies = [ { name = "ruamel-yaml" }, { name = "safety-schemas" }, { name = "setuptools" }, + { name = "tenacity" }, + { name = "tomlkit" }, { name = "typer" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/dc/55/873096606ff9cfad99cb3de8377461fb05217f65ad0690b9fe6a6e3afe95/safety-3.3.1.tar.gz", hash = "sha256:679834432d0ad64c54e0b864ac6715d4743a65f8db67512380ee7ee2011c206a", size = 219199 } +sdist = { url = "https://files.pythonhosted.org/packages/c2/31/e4875edebb8fd5885ff8e52d0522c44a4d9bc2abe26f11225b8e64b31868/safety-3.5.0.tar.gz", hash = "sha256:7223af388bde5323867eca5495f9817746289be9fd5b1896f168dc7082ea8ff1", size = 272371 } wheels = [ - { url = "https://files.pythonhosted.org/packages/81/cc/9b0f8c95457aa1207c35eb5e8cf283c53ef115dc9cbf132475754ce31e4e/safety-3.3.1-py3-none-any.whl", hash = "sha256:243355a961403b873c1504e3e6f79ce36b86881d559722595632d788aa92b7ea", size = 206229 }, + { url = "https://files.pythonhosted.org/packages/b5/02/e7ef5f2d3a206771e885c25376d4515da8d4adfdd59ed526e847ddeee245/safety-3.5.0-py3-none-any.whl", hash = "sha256:b002e863e6e6bf111a1aafdf60e3a0378f8bc66221a3628c2230c7f2617c522e", size = 270668 }, ] [[package]] name = "safety-schemas" -version = "0.0.11" +version = "0.0.14" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "dparse" }, @@ -3058,14 +3136,14 @@ dependencies = [ { name = "ruamel-yaml" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/91/a2/e75f7de6a0872ed80b4b09221a9640d5856a8c3730ba59534d3007c9ae3a/safety_schemas-0.0.11.tar.gz", hash = "sha256:10804372e077ca5a95e740cc507e73d9173663284006fcaaf5756179ba13ac9d", size = 43640 } +sdist = { url = "https://files.pythonhosted.org/packages/04/40/e5107b3e456ca4b78d1c0d5bd07be3377e673cc54949b18e5f3aed345067/safety_schemas-0.0.14.tar.gz", hash = "sha256:49953f7a59e919572be25595a8946f9cbbcd2066fe3e160c9467d9d1d6d7af6a", size = 53216 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1d/d5/4dc73cac358d75fbc0af4a5a2579393a4d0a65d51e93d234d7813b0216d9/safety_schemas-0.0.11-py3-none-any.whl", hash = "sha256:2af940c1c992d6891a6b84403a7c12fd445e20651752b1818b86c205690b3e03", size = 29114 }, + { url = "https://files.pythonhosted.org/packages/1f/7f/f3d1ac7eb0a6546eda3e82c0487233cea0774e511239769945dbd1dd01de/safety_schemas-0.0.14-py3-none-any.whl", hash = "sha256:0bf6fc4aa5e474651b714cc9e427c862792946bf052b61d5c7bec4eac4c0f254", size = 39268 }, ] [[package]] name = "segy" -version = "0.4.0" +version = "0.4.1.post2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "fsspec" }, @@ -3077,18 +3155,18 @@ dependencies = [ { name = "rapidfuzz" }, { name = "typer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/89/da/3bc5baf7f6fc10472a8833e8d9977094b9c8bd3f0f9306f22002ca7a0fda/segy-0.4.0.tar.gz", hash = "sha256:bf2d17dbf32e5cc86c443cf28b19ed90c67edad8ea6c69da39d0167f31d30daf", size = 43803 } +sdist = { url = "https://files.pythonhosted.org/packages/c7/99/b9a14e89212fac2895b1066fe4aae693e347c19497d229c477f9a37500a6/segy-0.4.1.post2.tar.gz", hash = "sha256:e45ab7d6008bd75e490638143329992a61af57916e064086ce559e77e62500e3", size = 60184 } wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/dc/11b184b4d75e56a3f671a93108dc49a775fc680280a5a06cc69d006eba62/segy-0.4.0-py3-none-any.whl", hash = "sha256:e6bb1419a6d916f5c5edd68b2a6162dcd3f7ee0ffa7f66342b950cecbc0dcf20", size = 53891 }, + { url = "https://files.pythonhosted.org/packages/90/b2/de392b38bc828b7fed331b329b41282a114eb55d8a54136726afe904effe/segy-0.4.1.post2-py3-none-any.whl", hash = "sha256:2269799ddfa57eb4adef278f0e14b7828c1fd8b192ee9ad4e355ec6fdbe6dd12", size = 54514 }, ] [[package]] name = "setuptools" -version = "78.1.0" +version = "80.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a9/5a/0db4da3bc908df06e5efae42b44e75c81dd52716e10192ff36d0c1c8e379/setuptools-78.1.0.tar.gz", hash = "sha256:18fd474d4a82a5f83dac888df697af65afa82dec7323d09c3e37d1f14288da54", size = 1367827 } +sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958 } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/21/f43f0a1fa8b06b32812e0975981f4677d28e0f3271601dc88ac5a5b83220/setuptools-78.1.0-py3-none-any.whl", hash = "sha256:3e386e96793c8702ae83d17b853fb93d3e09ef82ec62722e61da5cd22376dcd8", size = 1256108 }, + { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486 }, ] [[package]] @@ -3120,11 +3198,11 @@ wheels = [ [[package]] name = "snowballstemmer" -version = "2.2.0" +version = "3.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/44/7b/af302bebf22c749c56c9c3e8ae13190b5b5db37a33d9068652e8f73b7089/snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1", size = 86699 } +sdist = { url = "https://files.pythonhosted.org/packages/75/a7/9810d872919697c9d01295633f5d574fb416d47e535f258272ca1f01f447/snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895", size = 105575 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/dc/c02e01294f7265e63a7315fe086dd1df7dacb9f840a804da846b96d01b96/snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a", size = 93002 }, + { url = "https://files.pythonhosted.org/packages/c8/78/3565d011c61f5a43488987ee32b6f3f656e7f107ac2782dd57bdd7d91d9a/snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064", size = 103274 }, ] [[package]] @@ -3138,11 +3216,11 @@ wheels = [ [[package]] name = "soupsieve" -version = "2.6" +version = "2.7" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/ce/fbaeed4f9fb8b2daa961f90591662df6a86c1abf25c548329a86920aedfb/soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", size = 101569 } +sdist = { url = "https://files.pythonhosted.org/packages/3f/f4/4a80cd6ef364b2e8b65b15816a843c0980f7a5a2b4dc701fc574952aa19f/soupsieve-2.7.tar.gz", hash = "sha256:ad282f9b6926286d2ead4750552c8a6142bc4c783fd66b0293547c8fe6ae126a", size = 103418 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9", size = 36186 }, + { url = "https://files.pythonhosted.org/packages/e7/9c/0e6afc12c269578be5c0c1c9f4b49a8d32770a080260c333ac04cc1c832d/soupsieve-2.7-py3-none-any.whl", hash = "sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4", size = 36677 }, ] [[package]] @@ -3296,39 +3374,39 @@ wheels = [ [[package]] name = "sqlalchemy" -version = "2.0.40" +version = "2.0.41" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64'" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/68/c3/3f2bfa5e4dcd9938405fe2fab5b6ab94a9248a4f9536ea2fd497da20525f/sqlalchemy-2.0.40.tar.gz", hash = "sha256:d827099289c64589418ebbcaead0145cd19f4e3e8a93919a0100247af245fa00", size = 9664299 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/77/7e/55044a9ec48c3249bb38d5faae93f09579c35e862bb318ebd1ed7a1994a5/sqlalchemy-2.0.40-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f6bacab7514de6146a1976bc56e1545bee247242fab030b89e5f70336fc0003e", size = 2114025 }, - { url = "https://files.pythonhosted.org/packages/77/0f/dcf7bba95f847aec72f638750747b12d37914f71c8cc7c133cf326ab945c/sqlalchemy-2.0.40-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5654d1ac34e922b6c5711631f2da497d3a7bffd6f9f87ac23b35feea56098011", size = 2104419 }, - { url = "https://files.pythonhosted.org/packages/75/70/c86a5c20715e4fe903dde4c2fd44fc7e7a0d5fb52c1b954d98526f65a3ea/sqlalchemy-2.0.40-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35904d63412db21088739510216e9349e335f142ce4a04b69e2528020ee19ed4", size = 3222720 }, - { url = "https://files.pythonhosted.org/packages/12/cf/b891a8c1d0c27ce9163361664c2128c7a57de3f35000ea5202eb3a2917b7/sqlalchemy-2.0.40-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c7a80ed86d6aaacb8160a1caef6680d4ddd03c944d985aecee940d168c411d1", size = 3222682 }, - { url = "https://files.pythonhosted.org/packages/15/3f/7709d8c8266953d945435a96b7f425ae4172a336963756b58e996fbef7f3/sqlalchemy-2.0.40-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:519624685a51525ddaa7d8ba8265a1540442a2ec71476f0e75241eb8263d6f51", size = 3159542 }, - { url = "https://files.pythonhosted.org/packages/85/7e/717eaabaf0f80a0132dc2032ea8f745b7a0914451c984821a7c8737fb75a/sqlalchemy-2.0.40-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2ee5f9999a5b0e9689bed96e60ee53c3384f1a05c2dd8068cc2e8361b0df5b7a", size = 3179864 }, - { url = "https://files.pythonhosted.org/packages/e4/cc/03eb5dfcdb575cbecd2bd82487b9848f250a4b6ecfb4707e834b4ce4ec07/sqlalchemy-2.0.40-cp311-cp311-win32.whl", hash = "sha256:c0cae71e20e3c02c52f6b9e9722bca70e4a90a466d59477822739dc31ac18b4b", size = 2084675 }, - { url = "https://files.pythonhosted.org/packages/9a/48/440946bf9dc4dc231f4f31ef0d316f7135bf41d4b86aaba0c0655150d370/sqlalchemy-2.0.40-cp311-cp311-win_amd64.whl", hash = "sha256:574aea2c54d8f1dd1699449f332c7d9b71c339e04ae50163a3eb5ce4c4325ee4", size = 2110099 }, - { url = "https://files.pythonhosted.org/packages/92/06/552c1f92e880b57d8b92ce6619bd569b25cead492389b1d84904b55989d8/sqlalchemy-2.0.40-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9d3b31d0a1c44b74d3ae27a3de422dfccd2b8f0b75e51ecb2faa2bf65ab1ba0d", size = 2112620 }, - { url = "https://files.pythonhosted.org/packages/01/72/a5bc6e76c34cebc071f758161dbe1453de8815ae6e662393910d3be6d70d/sqlalchemy-2.0.40-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:37f7a0f506cf78c80450ed1e816978643d3969f99c4ac6b01104a6fe95c5490a", size = 2103004 }, - { url = "https://files.pythonhosted.org/packages/bf/fd/0e96c8e6767618ed1a06e4d7a167fe13734c2f8113c4cb704443e6783038/sqlalchemy-2.0.40-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bb933a650323e476a2e4fbef8997a10d0003d4da996aad3fd7873e962fdde4d", size = 3252440 }, - { url = "https://files.pythonhosted.org/packages/cd/6a/eb82e45b15a64266a2917a6833b51a334ea3c1991728fd905bfccbf5cf63/sqlalchemy-2.0.40-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6959738971b4745eea16f818a2cd086fb35081383b078272c35ece2b07012716", size = 3263277 }, - { url = "https://files.pythonhosted.org/packages/45/97/ebe41ab4530f50af99e3995ebd4e0204bf1b0dc0930f32250dde19c389fe/sqlalchemy-2.0.40-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:110179728e442dae85dd39591beb74072ae4ad55a44eda2acc6ec98ead80d5f2", size = 3198591 }, - { url = "https://files.pythonhosted.org/packages/e6/1c/a569c1b2b2f5ac20ba6846a1321a2bf52e9a4061001f282bf1c5528dcd69/sqlalchemy-2.0.40-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8040680eaacdce4d635f12c55c714f3d4c7f57da2bc47a01229d115bd319191", size = 3225199 }, - { url = "https://files.pythonhosted.org/packages/8f/91/87cc71a6b10065ca0209d19a4bb575378abda6085e72fa0b61ffb2201b84/sqlalchemy-2.0.40-cp312-cp312-win32.whl", hash = "sha256:650490653b110905c10adac69408380688cefc1f536a137d0d69aca1069dc1d1", size = 2082959 }, - { url = "https://files.pythonhosted.org/packages/2a/9f/14c511cda174aa1ad9b0e42b64ff5a71db35d08b0d80dc044dae958921e5/sqlalchemy-2.0.40-cp312-cp312-win_amd64.whl", hash = "sha256:2be94d75ee06548d2fc591a3513422b873490efb124048f50556369a834853b0", size = 2108526 }, - { url = "https://files.pythonhosted.org/packages/8c/18/4e3a86cc0232377bc48c373a9ba6a1b3fb79ba32dbb4eda0b357f5a2c59d/sqlalchemy-2.0.40-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:915866fd50dd868fdcc18d61d8258db1bf9ed7fbd6dfec960ba43365952f3b01", size = 2107887 }, - { url = "https://files.pythonhosted.org/packages/cb/60/9fa692b1d2ffc4cbd5f47753731fd332afed30137115d862d6e9a1e962c7/sqlalchemy-2.0.40-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a4c5a2905a9ccdc67a8963e24abd2f7afcd4348829412483695c59e0af9a705", size = 2098367 }, - { url = "https://files.pythonhosted.org/packages/4c/9f/84b78357ca641714a439eb3fbbddb17297dacfa05d951dbf24f28d7b5c08/sqlalchemy-2.0.40-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55028d7a3ebdf7ace492fab9895cbc5270153f75442a0472d8516e03159ab364", size = 3184806 }, - { url = "https://files.pythonhosted.org/packages/4b/7d/e06164161b6bfce04c01bfa01518a20cccbd4100d5c951e5a7422189191a/sqlalchemy-2.0.40-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6cfedff6878b0e0d1d0a50666a817ecd85051d12d56b43d9d425455e608b5ba0", size = 3198131 }, - { url = "https://files.pythonhosted.org/packages/6d/51/354af20da42d7ec7b5c9de99edafbb7663a1d75686d1999ceb2c15811302/sqlalchemy-2.0.40-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bb19e30fdae77d357ce92192a3504579abe48a66877f476880238a962e5b96db", size = 3131364 }, - { url = "https://files.pythonhosted.org/packages/7a/2f/48a41ff4e6e10549d83fcc551ab85c268bde7c03cf77afb36303c6594d11/sqlalchemy-2.0.40-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:16d325ea898f74b26ffcd1cf8c593b0beed8714f0317df2bed0d8d1de05a8f26", size = 3159482 }, - { url = "https://files.pythonhosted.org/packages/33/ac/e5e0a807163652a35be878c0ad5cfd8b1d29605edcadfb5df3c512cdf9f3/sqlalchemy-2.0.40-cp313-cp313-win32.whl", hash = "sha256:a669cbe5be3c63f75bcbee0b266779706f1a54bcb1000f302685b87d1b8c1500", size = 2080704 }, - { url = "https://files.pythonhosted.org/packages/1c/cb/f38c61f7f2fd4d10494c1c135ff6a6ddb63508d0b47bccccd93670637309/sqlalchemy-2.0.40-cp313-cp313-win_amd64.whl", hash = "sha256:641ee2e0834812d657862f3a7de95e0048bdcb6c55496f39c6fa3d435f6ac6ad", size = 2104564 }, - { url = "https://files.pythonhosted.org/packages/d1/7c/5fc8e802e7506fe8b55a03a2e1dab156eae205c91bee46305755e086d2e2/sqlalchemy-2.0.40-py3-none-any.whl", hash = "sha256:32587e2e1e359276957e6fe5dad089758bc042a971a8a09ae8ecf7a8fe23d07a", size = 1903894 }, +sdist = { url = "https://files.pythonhosted.org/packages/63/66/45b165c595ec89aa7dcc2c1cd222ab269bc753f1fc7a1e68f8481bd957bf/sqlalchemy-2.0.41.tar.gz", hash = "sha256:edba70118c4be3c2b1f90754d308d0b79c6fe2c0fdc52d8ddf603916f83f4db9", size = 9689424 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/4e/b00e3ffae32b74b5180e15d2ab4040531ee1bef4c19755fe7926622dc958/sqlalchemy-2.0.41-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6375cd674fe82d7aa9816d1cb96ec592bac1726c11e0cafbf40eeee9a4516b5f", size = 2121232 }, + { url = "https://files.pythonhosted.org/packages/ef/30/6547ebb10875302074a37e1970a5dce7985240665778cfdee2323709f749/sqlalchemy-2.0.41-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9f8c9fdd15a55d9465e590a402f42082705d66b05afc3ffd2d2eb3c6ba919560", size = 2110897 }, + { url = "https://files.pythonhosted.org/packages/9e/21/59df2b41b0f6c62da55cd64798232d7349a9378befa7f1bb18cf1dfd510a/sqlalchemy-2.0.41-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32f9dc8c44acdee06c8fc6440db9eae8b4af8b01e4b1aee7bdd7241c22edff4f", size = 3273313 }, + { url = "https://files.pythonhosted.org/packages/62/e4/b9a7a0e5c6f79d49bcd6efb6e90d7536dc604dab64582a9dec220dab54b6/sqlalchemy-2.0.41-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90c11ceb9a1f482c752a71f203a81858625d8df5746d787a4786bca4ffdf71c6", size = 3273807 }, + { url = "https://files.pythonhosted.org/packages/39/d8/79f2427251b44ddee18676c04eab038d043cff0e764d2d8bb08261d6135d/sqlalchemy-2.0.41-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:911cc493ebd60de5f285bcae0491a60b4f2a9f0f5c270edd1c4dbaef7a38fc04", size = 3209632 }, + { url = "https://files.pythonhosted.org/packages/d4/16/730a82dda30765f63e0454918c982fb7193f6b398b31d63c7c3bd3652ae5/sqlalchemy-2.0.41-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03968a349db483936c249f4d9cd14ff2c296adfa1290b660ba6516f973139582", size = 3233642 }, + { url = "https://files.pythonhosted.org/packages/04/61/c0d4607f7799efa8b8ea3c49b4621e861c8f5c41fd4b5b636c534fcb7d73/sqlalchemy-2.0.41-cp311-cp311-win32.whl", hash = "sha256:293cd444d82b18da48c9f71cd7005844dbbd06ca19be1ccf6779154439eec0b8", size = 2086475 }, + { url = "https://files.pythonhosted.org/packages/9d/8e/8344f8ae1cb6a479d0741c02cd4f666925b2bf02e2468ddaf5ce44111f30/sqlalchemy-2.0.41-cp311-cp311-win_amd64.whl", hash = "sha256:3d3549fc3e40667ec7199033a4e40a2f669898a00a7b18a931d3efb4c7900504", size = 2110903 }, + { url = "https://files.pythonhosted.org/packages/3e/2a/f1f4e068b371154740dd10fb81afb5240d5af4aa0087b88d8b308b5429c2/sqlalchemy-2.0.41-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:81f413674d85cfd0dfcd6512e10e0f33c19c21860342a4890c3a2b59479929f9", size = 2119645 }, + { url = "https://files.pythonhosted.org/packages/9b/e8/c664a7e73d36fbfc4730f8cf2bf930444ea87270f2825efbe17bf808b998/sqlalchemy-2.0.41-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:598d9ebc1e796431bbd068e41e4de4dc34312b7aa3292571bb3674a0cb415dd1", size = 2107399 }, + { url = "https://files.pythonhosted.org/packages/5c/78/8a9cf6c5e7135540cb682128d091d6afa1b9e48bd049b0d691bf54114f70/sqlalchemy-2.0.41-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a104c5694dfd2d864a6f91b0956eb5d5883234119cb40010115fd45a16da5e70", size = 3293269 }, + { url = "https://files.pythonhosted.org/packages/3c/35/f74add3978c20de6323fb11cb5162702670cc7a9420033befb43d8d5b7a4/sqlalchemy-2.0.41-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6145afea51ff0af7f2564a05fa95eb46f542919e6523729663a5d285ecb3cf5e", size = 3303364 }, + { url = "https://files.pythonhosted.org/packages/6a/d4/c990f37f52c3f7748ebe98883e2a0f7d038108c2c5a82468d1ff3eec50b7/sqlalchemy-2.0.41-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b46fa6eae1cd1c20e6e6f44e19984d438b6b2d8616d21d783d150df714f44078", size = 3229072 }, + { url = "https://files.pythonhosted.org/packages/15/69/cab11fecc7eb64bc561011be2bd03d065b762d87add52a4ca0aca2e12904/sqlalchemy-2.0.41-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41836fe661cc98abfae476e14ba1906220f92c4e528771a8a3ae6a151242d2ae", size = 3268074 }, + { url = "https://files.pythonhosted.org/packages/5c/ca/0c19ec16858585d37767b167fc9602593f98998a68a798450558239fb04a/sqlalchemy-2.0.41-cp312-cp312-win32.whl", hash = "sha256:a8808d5cf866c781150d36a3c8eb3adccfa41a8105d031bf27e92c251e3969d6", size = 2084514 }, + { url = "https://files.pythonhosted.org/packages/7f/23/4c2833d78ff3010a4e17f984c734f52b531a8c9060a50429c9d4b0211be6/sqlalchemy-2.0.41-cp312-cp312-win_amd64.whl", hash = "sha256:5b14e97886199c1f52c14629c11d90c11fbb09e9334fa7bb5f6d068d9ced0ce0", size = 2111557 }, + { url = "https://files.pythonhosted.org/packages/d3/ad/2e1c6d4f235a97eeef52d0200d8ddda16f6c4dd70ae5ad88c46963440480/sqlalchemy-2.0.41-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4eeb195cdedaf17aab6b247894ff2734dcead6c08f748e617bfe05bd5a218443", size = 2115491 }, + { url = "https://files.pythonhosted.org/packages/cf/8d/be490e5db8400dacc89056f78a52d44b04fbf75e8439569d5b879623a53b/sqlalchemy-2.0.41-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d4ae769b9c1c7757e4ccce94b0641bc203bbdf43ba7a2413ab2523d8d047d8dc", size = 2102827 }, + { url = "https://files.pythonhosted.org/packages/a0/72/c97ad430f0b0e78efaf2791342e13ffeafcbb3c06242f01a3bb8fe44f65d/sqlalchemy-2.0.41-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a62448526dd9ed3e3beedc93df9bb6b55a436ed1474db31a2af13b313a70a7e1", size = 3225224 }, + { url = "https://files.pythonhosted.org/packages/5e/51/5ba9ea3246ea068630acf35a6ba0d181e99f1af1afd17e159eac7e8bc2b8/sqlalchemy-2.0.41-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc56c9788617b8964ad02e8fcfeed4001c1f8ba91a9e1f31483c0dffb207002a", size = 3230045 }, + { url = "https://files.pythonhosted.org/packages/78/2f/8c14443b2acea700c62f9b4a8bad9e49fc1b65cfb260edead71fd38e9f19/sqlalchemy-2.0.41-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c153265408d18de4cc5ded1941dcd8315894572cddd3c58df5d5b5705b3fa28d", size = 3159357 }, + { url = "https://files.pythonhosted.org/packages/fc/b2/43eacbf6ccc5276d76cea18cb7c3d73e294d6fb21f9ff8b4eef9b42bbfd5/sqlalchemy-2.0.41-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f67766965996e63bb46cfbf2ce5355fc32d9dd3b8ad7e536a920ff9ee422e23", size = 3197511 }, + { url = "https://files.pythonhosted.org/packages/fa/2e/677c17c5d6a004c3c45334ab1dbe7b7deb834430b282b8a0f75ae220c8eb/sqlalchemy-2.0.41-cp313-cp313-win32.whl", hash = "sha256:bfc9064f6658a3d1cadeaa0ba07570b83ce6801a1314985bf98ec9b95d74e15f", size = 2082420 }, + { url = "https://files.pythonhosted.org/packages/e9/61/e8c1b9b6307c57157d328dd8b8348ddc4c47ffdf1279365a13b2b98b8049/sqlalchemy-2.0.41-cp313-cp313-win_amd64.whl", hash = "sha256:82ca366a844eb551daff9d2e6e7a9e5e76d2612c8564f58db6c19a726869c1df", size = 2108329 }, + { url = "https://files.pythonhosted.org/packages/1c/fc/9ba22f01b5cdacc8f5ed0d22304718d2c758fce3fd49a5372b886a86f37c/sqlalchemy-2.0.41-py3-none-any.whl", hash = "sha256:57df5dc6fdb5ed1a88a1ed2195fd31927e705cad62dedd86b46972752a80f576", size = 1911224 }, ] [[package]] @@ -3347,14 +3425,14 @@ wheels = [ [[package]] name = "starlette" -version = "0.46.1" +version = "0.46.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/1b/52b27f2e13ceedc79a908e29eac426a63465a1a01248e5f24aa36a62aeb3/starlette-0.46.1.tar.gz", hash = "sha256:3c88d58ee4bd1bb807c0d1acb381838afc7752f9ddaec81bbe4383611d833230", size = 2580102 } +sdist = { url = "https://files.pythonhosted.org/packages/ce/20/08dfcd9c983f6a6f4a1000d934b9e6d626cff8d2eeb77a89a68eef20a2b7/starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5", size = 2580846 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/4b/528ccf7a982216885a1ff4908e886b8fb5f19862d1962f56a3fce2435a70/starlette-0.46.1-py3-none-any.whl", hash = "sha256:77c74ed9d2720138b25875133f3a2dae6d854af2ec37dceb56aef370c1d8a227", size = 71995 }, + { url = "https://files.pythonhosted.org/packages/8b/0c/9d30a4ebeb6db2b25a841afbb80f6ef9a854fc3b41be131d249a977b4959/starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35", size = 72037 }, ] [[package]] @@ -3375,6 +3453,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/27/44/aa5c8b10b2cce7a053018e0d132bd58e27527a0243c4985383d5b6fd93e9/tblib-3.1.0-py3-none-any.whl", hash = "sha256:670bb4582578134b3d81a84afa1b016128b429f3d48e6cbbaecc9d15675e984e", size = 12552 }, ] +[[package]] +name = "tenacity" +version = "9.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/d4/2b0cd0fe285e14b36db076e78c93766ff1d529d70408bd1d2a5a84f1d929/tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb", size = 48036 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248 }, +] + [[package]] name = "tomli" version = "2.2.1" @@ -3414,6 +3501,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 }, ] +[[package]] +name = "tomlkit" +version = "0.13.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b1/09/a439bec5888f00a54b8b9f05fa94d7f901d6735ef4e55dcec9bc37b5d8fa/tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79", size = 192885 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/b6/a447b5e4ec71e13871be01ba81f5dfc9d0af7e473da256ff46bc0e24026f/tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde", size = 37955 }, +] + [[package]] name = "toolz" version = "1.0.0" @@ -3425,20 +3521,21 @@ wheels = [ [[package]] name = "tornado" -version = "6.4.2" +version = "6.5.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/59/45/a0daf161f7d6f36c3ea5fc0c2de619746cc3dd4c76402e9db545bd920f63/tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b", size = 501135 } +sdist = { url = "https://files.pythonhosted.org/packages/51/89/c72771c81d25d53fe33e3dca61c233b665b2780f21820ba6fd2c6793c12b/tornado-6.5.1.tar.gz", hash = "sha256:84ceece391e8eb9b2b95578db65e920d2a61070260594819589609ba9bc6308c", size = 509934 } wheels = [ - { url = "https://files.pythonhosted.org/packages/26/7e/71f604d8cea1b58f82ba3590290b66da1e72d840aeb37e0d5f7291bd30db/tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1", size = 436299 }, - { url = "https://files.pythonhosted.org/packages/96/44/87543a3b99016d0bf54fdaab30d24bf0af2e848f1d13d34a3a5380aabe16/tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803", size = 434253 }, - { url = "https://files.pythonhosted.org/packages/cb/fb/fdf679b4ce51bcb7210801ef4f11fdac96e9885daa402861751353beea6e/tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec", size = 437602 }, - { url = "https://files.pythonhosted.org/packages/4f/3b/e31aeffffc22b475a64dbeb273026a21b5b566f74dee48742817626c47dc/tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946", size = 436972 }, - { url = "https://files.pythonhosted.org/packages/22/55/b78a464de78051a30599ceb6983b01d8f732e6f69bf37b4ed07f642ac0fc/tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf", size = 437173 }, - { url = "https://files.pythonhosted.org/packages/79/5e/be4fb0d1684eb822c9a62fb18a3e44a06188f78aa466b2ad991d2ee31104/tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634", size = 437892 }, - { url = "https://files.pythonhosted.org/packages/f5/33/4f91fdd94ea36e1d796147003b490fe60a0215ac5737b6f9c65e160d4fe0/tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73", size = 437334 }, - { url = "https://files.pythonhosted.org/packages/2b/ae/c1b22d4524b0e10da2f29a176fb2890386f7bd1f63aacf186444873a88a0/tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c", size = 437261 }, - { url = "https://files.pythonhosted.org/packages/b5/25/36dbd49ab6d179bcfc4c6c093a51795a4f3bed380543a8242ac3517a1751/tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482", size = 438463 }, - { url = "https://files.pythonhosted.org/packages/61/cc/58b1adeb1bb46228442081e746fcdbc4540905c87e8add7c277540934edb/tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38", size = 438907 }, + { url = "https://files.pythonhosted.org/packages/77/89/f4532dee6843c9e0ebc4e28d4be04c67f54f60813e4bf73d595fe7567452/tornado-6.5.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d50065ba7fd11d3bd41bcad0825227cc9a95154bad83239357094c36708001f7", size = 441948 }, + { url = "https://files.pythonhosted.org/packages/15/9a/557406b62cffa395d18772e0cdcf03bed2fff03b374677348eef9f6a3792/tornado-6.5.1-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9e9ca370f717997cb85606d074b0e5b247282cf5e2e1611568b8821afe0342d6", size = 440112 }, + { url = "https://files.pythonhosted.org/packages/55/82/7721b7319013a3cf881f4dffa4f60ceff07b31b394e459984e7a36dc99ec/tornado-6.5.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b77e9dfa7ed69754a54c89d82ef746398be82f749df69c4d3abe75c4d1ff4888", size = 443672 }, + { url = "https://files.pythonhosted.org/packages/7d/42/d11c4376e7d101171b94e03cef0cbce43e823ed6567ceda571f54cf6e3ce/tornado-6.5.1-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:253b76040ee3bab8bcf7ba9feb136436a3787208717a1fb9f2c16b744fba7331", size = 443019 }, + { url = "https://files.pythonhosted.org/packages/7d/f7/0c48ba992d875521ac761e6e04b0a1750f8150ae42ea26df1852d6a98942/tornado-6.5.1-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:308473f4cc5a76227157cdf904de33ac268af770b2c5f05ca6c1161d82fdd95e", size = 443252 }, + { url = "https://files.pythonhosted.org/packages/89/46/d8d7413d11987e316df4ad42e16023cd62666a3c0dfa1518ffa30b8df06c/tornado-6.5.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:caec6314ce8a81cf69bd89909f4b633b9f523834dc1a352021775d45e51d9401", size = 443930 }, + { url = "https://files.pythonhosted.org/packages/78/b2/f8049221c96a06df89bed68260e8ca94beca5ea532ffc63b1175ad31f9cc/tornado-6.5.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:13ce6e3396c24e2808774741331638ee6c2f50b114b97a55c5b442df65fd9692", size = 443351 }, + { url = "https://files.pythonhosted.org/packages/76/ff/6a0079e65b326cc222a54720a748e04a4db246870c4da54ece4577bfa702/tornado-6.5.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5cae6145f4cdf5ab24744526cc0f55a17d76f02c98f4cff9daa08ae9a217448a", size = 443328 }, + { url = "https://files.pythonhosted.org/packages/49/18/e3f902a1d21f14035b5bc6246a8c0f51e0eef562ace3a2cea403c1fb7021/tornado-6.5.1-cp39-abi3-win32.whl", hash = "sha256:e0a36e1bc684dca10b1aa75a31df8bdfed656831489bc1e6a6ebed05dc1ec365", size = 444396 }, + { url = "https://files.pythonhosted.org/packages/7b/09/6526e32bf1049ee7de3bebba81572673b19a2a8541f795d887e92af1a8bc/tornado-6.5.1-cp39-abi3-win_amd64.whl", hash = "sha256:908e7d64567cecd4c2b458075589a775063453aeb1d2a1853eedb806922f568b", size = 444840 }, + { url = "https://files.pythonhosted.org/packages/55/a7/535c44c7bea4578e48281d83c615219f3ab19e6abc67625ef637c73987be/tornado-6.5.1-cp39-abi3-win_arm64.whl", hash = "sha256:02420a0eb7bf617257b9935e2b754d1b63897525d8a289c9d65690d580b4dcf7", size = 443596 }, ] [[package]] @@ -3491,11 +3588,23 @@ wheels = [ [[package]] name = "typing-extensions" -version = "4.13.0" +version = "4.13.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0e/3e/b00a62db91a83fff600de219b6ea9908e6918664899a2d85db222f4fbf19/typing_extensions-4.13.0.tar.gz", hash = "sha256:0a4ac55a5820789d87e297727d229866c9650f6521b64206413c4fbada24d95b", size = 106520 } +sdist = { url = "https://files.pythonhosted.org/packages/f6/37/23083fcd6e35492953e8d2aaaa68b860eb422b34627b13f2ce3eb6106061/typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef", size = 106967 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/86/39b65d676ec5732de17b7e3c476e45bb80ec64eb50737a8dce1a4178aba1/typing_extensions-4.13.0-py3-none-any.whl", hash = "sha256:c8dd92cc0d6425a97c18fbb9d1954e5ff92c1ca881a309c45f06ebc0b79058e5", size = 45683 }, + { url = "https://files.pythonhosted.org/packages/8b/54/b1ae86c0973cc6f0210b53d508ca3641fb6d0c56823f288d108bc7ab3cc8/typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c", size = 45806 }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28", size = 75726 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", size = 14552 }, ] [[package]] @@ -3518,24 +3627,24 @@ wheels = [ [[package]] name = "urllib3" -version = "2.3.0" +version = "2.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d", size = 307268 } +sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", size = 128369 }, + { url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680 }, ] [[package]] name = "uvicorn" -version = "0.34.0" +version = "0.34.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4b/4d/938bd85e5bf2edeec766267a5015ad969730bb91e31b44021dfe8b22df6c/uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9", size = 76568 } +sdist = { url = "https://files.pythonhosted.org/packages/a6/ae/9bbb19b9e1c450cf9ecaef06463e40234d98d95bf572fab11b4f19ae5ded/uvicorn-0.34.2.tar.gz", hash = "sha256:0e929828f6186353a80b58ea719861d2629d766293b6d19baf086ba31d4f3328", size = 76815 } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4", size = 62315 }, + { url = "https://files.pythonhosted.org/packages/b1/4b/4cef6ce21a2aaca9d852a6e84ef4f135d99fcd74fa75105e2fc0c8308acd/uvicorn-0.34.2-py3-none-any.whl", hash = "sha256:deb49af569084536d269fe0a6d67e3754f104cf03aba7c11c40f01aadf33c403", size = 62483 }, ] [[package]] @@ -3549,65 +3658,65 @@ wheels = [ [[package]] name = "virtualenv" -version = "20.30.0" +version = "20.31.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "distlib" }, { name = "filelock" }, { name = "platformdirs" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/38/e0/633e369b91bbc664df47dcb5454b6c7cf441e8f5b9d0c250ce9f0546401e/virtualenv-20.30.0.tar.gz", hash = "sha256:800863162bcaa5450a6e4d721049730e7f2dae07720e0902b0e4040bd6f9ada8", size = 4346945 } +sdist = { url = "https://files.pythonhosted.org/packages/56/2c/444f465fb2c65f40c3a104fd0c495184c4f2336d65baf398e3c75d72ea94/virtualenv-20.31.2.tar.gz", hash = "sha256:e10c0a9d02835e592521be48b332b6caee6887f332c111aa79a09b9e79efc2af", size = 6076316 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4c/ed/3cfeb48175f0671ec430ede81f628f9fb2b1084c9064ca67ebe8c0ed6a05/virtualenv-20.30.0-py3-none-any.whl", hash = "sha256:e34302959180fca3af42d1800df014b35019490b119eba981af27f2fa486e5d6", size = 4329461 }, + { url = "https://files.pythonhosted.org/packages/f3/40/b1c265d4b2b62b58576588510fc4d1fe60a86319c8de99fd8e9fec617d2c/virtualenv-20.31.2-py3-none-any.whl", hash = "sha256:36efd0d9650ee985f0cad72065001e66d49a6f24eb44d98980f630686243cf11", size = 6057982 }, ] [[package]] name = "watchfiles" -version = "1.0.4" +version = "1.0.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f5/26/c705fc77d0a9ecdb9b66f1e2976d95b81df3cae518967431e7dbf9b5e219/watchfiles-1.0.4.tar.gz", hash = "sha256:6ba473efd11062d73e4f00c2b730255f9c1bdd73cd5f9fe5b5da8dbd4a717205", size = 94625 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0f/bb/8461adc4b1fed009546fb797fc0d5698dcfe5e289cb37e1b8f16a93cdc30/watchfiles-1.0.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2a9f93f8439639dc244c4d2902abe35b0279102bca7bbcf119af964f51d53c19", size = 394869 }, - { url = "https://files.pythonhosted.org/packages/55/88/9ebf36b3547176d1709c320de78c1fa3263a46be31b5b1267571d9102686/watchfiles-1.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9eea33ad8c418847dd296e61eb683cae1c63329b6d854aefcd412e12d94ee235", size = 384905 }, - { url = "https://files.pythonhosted.org/packages/03/8a/04335ce23ef78d8c69f0913e8b20cf7d9233e3986543aeef95ef2d6e43d2/watchfiles-1.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31f1a379c9dcbb3f09cf6be1b7e83b67c0e9faabed0471556d9438a4a4e14202", size = 449944 }, - { url = "https://files.pythonhosted.org/packages/17/4e/c8d5dcd14fe637f4633616dabea8a4af0a10142dccf3b43e0f081ba81ab4/watchfiles-1.0.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab594e75644421ae0a2484554832ca5895f8cab5ab62de30a1a57db460ce06c6", size = 456020 }, - { url = "https://files.pythonhosted.org/packages/5e/74/3e91e09e1861dd7fbb1190ce7bd786700dc0fbc2ccd33bb9fff5de039229/watchfiles-1.0.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc2eb5d14a8e0d5df7b36288979176fbb39672d45184fc4b1c004d7c3ce29317", size = 482983 }, - { url = "https://files.pythonhosted.org/packages/a1/3d/e64de2d1ce4eb6a574fd78ce3a28c279da263be9ef3cfcab6f708df192f2/watchfiles-1.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f68d8e9d5a321163ddacebe97091000955a1b74cd43724e346056030b0bacee", size = 520320 }, - { url = "https://files.pythonhosted.org/packages/2c/bd/52235f7063b57240c66a991696ed27e2a18bd6fcec8a1ea5a040b70d0611/watchfiles-1.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9ce064e81fe79faa925ff03b9f4c1a98b0bbb4a1b8c1b015afa93030cb21a49", size = 500988 }, - { url = "https://files.pythonhosted.org/packages/3a/b0/ff04194141a5fe650c150400dd9e42667916bc0f52426e2e174d779b8a74/watchfiles-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b77d5622ac5cc91d21ae9c2b284b5d5c51085a0bdb7b518dba263d0af006132c", size = 452573 }, - { url = "https://files.pythonhosted.org/packages/3d/9d/966164332c5a178444ae6d165082d4f351bd56afd9c3ec828eecbf190e6a/watchfiles-1.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1941b4e39de9b38b868a69b911df5e89dc43767feeda667b40ae032522b9b5f1", size = 615114 }, - { url = "https://files.pythonhosted.org/packages/94/df/f569ae4c1877f96ad4086c153a8eee5a19a3b519487bf5c9454a3438c341/watchfiles-1.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4f8c4998506241dedf59613082d1c18b836e26ef2a4caecad0ec41e2a15e4226", size = 613076 }, - { url = "https://files.pythonhosted.org/packages/15/ae/8ce5f29e65d5fa5790e3c80c289819c55e12be2e1b9f5b6a0e55e169b97d/watchfiles-1.0.4-cp311-cp311-win32.whl", hash = "sha256:4ebbeca9360c830766b9f0df3640b791be569d988f4be6c06d6fae41f187f105", size = 271013 }, - { url = "https://files.pythonhosted.org/packages/a4/c6/79dc4a7c598a978e5fafa135090aaf7bbb03b8dec7bada437dfbe578e7ed/watchfiles-1.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:05d341c71f3d7098920f8551d4df47f7b57ac5b8dad56558064c3431bdfc0b74", size = 284229 }, - { url = "https://files.pythonhosted.org/packages/37/3d/928633723211753f3500bfb138434f080363b87a1b08ca188b1ce54d1e05/watchfiles-1.0.4-cp311-cp311-win_arm64.whl", hash = "sha256:32b026a6ab64245b584acf4931fe21842374da82372d5c039cba6bf99ef722f3", size = 276824 }, - { url = "https://files.pythonhosted.org/packages/5b/1a/8f4d9a1461709756ace48c98f07772bc6d4519b1e48b5fa24a4061216256/watchfiles-1.0.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:229e6ec880eca20e0ba2f7e2249c85bae1999d330161f45c78d160832e026ee2", size = 391345 }, - { url = "https://files.pythonhosted.org/packages/bc/d2/6750b7b3527b1cdaa33731438432e7238a6c6c40a9924049e4cebfa40805/watchfiles-1.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5717021b199e8353782dce03bd8a8f64438832b84e2885c4a645f9723bf656d9", size = 381515 }, - { url = "https://files.pythonhosted.org/packages/4e/17/80500e42363deef1e4b4818729ed939aaddc56f82f4e72b2508729dd3c6b/watchfiles-1.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0799ae68dfa95136dde7c472525700bd48777875a4abb2ee454e3ab18e9fc712", size = 449767 }, - { url = "https://files.pythonhosted.org/packages/10/37/1427fa4cfa09adbe04b1e97bced19a29a3462cc64c78630787b613a23f18/watchfiles-1.0.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43b168bba889886b62edb0397cab5b6490ffb656ee2fcb22dec8bfeb371a9e12", size = 455677 }, - { url = "https://files.pythonhosted.org/packages/c5/7a/39e9397f3a19cb549a7d380412fd9e507d4854eddc0700bfad10ef6d4dba/watchfiles-1.0.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb2c46e275fbb9f0c92e7654b231543c7bbfa1df07cdc4b99fa73bedfde5c844", size = 482219 }, - { url = "https://files.pythonhosted.org/packages/45/2d/7113931a77e2ea4436cad0c1690c09a40a7f31d366f79c6f0a5bc7a4f6d5/watchfiles-1.0.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:857f5fc3aa027ff5e57047da93f96e908a35fe602d24f5e5d8ce64bf1f2fc733", size = 518830 }, - { url = "https://files.pythonhosted.org/packages/f9/1b/50733b1980fa81ef3c70388a546481ae5fa4c2080040100cd7bf3bf7b321/watchfiles-1.0.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55ccfd27c497b228581e2838d4386301227fc0cb47f5a12923ec2fe4f97b95af", size = 497997 }, - { url = "https://files.pythonhosted.org/packages/2b/b4/9396cc61b948ef18943e7c85ecfa64cf940c88977d882da57147f62b34b1/watchfiles-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c11ea22304d17d4385067588123658e9f23159225a27b983f343fcffc3e796a", size = 452249 }, - { url = "https://files.pythonhosted.org/packages/fb/69/0c65a5a29e057ad0dc691c2fa6c23b2983c7dabaa190ba553b29ac84c3cc/watchfiles-1.0.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:74cb3ca19a740be4caa18f238298b9d472c850f7b2ed89f396c00a4c97e2d9ff", size = 614412 }, - { url = "https://files.pythonhosted.org/packages/7f/b9/319fcba6eba5fad34327d7ce16a6b163b39741016b1996f4a3c96b8dd0e1/watchfiles-1.0.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7cce76c138a91e720d1df54014a047e680b652336e1b73b8e3ff3158e05061e", size = 611982 }, - { url = "https://files.pythonhosted.org/packages/f1/47/143c92418e30cb9348a4387bfa149c8e0e404a7c5b0585d46d2f7031b4b9/watchfiles-1.0.4-cp312-cp312-win32.whl", hash = "sha256:b045c800d55bc7e2cadd47f45a97c7b29f70f08a7c2fa13241905010a5493f94", size = 271822 }, - { url = "https://files.pythonhosted.org/packages/ea/94/b0165481bff99a64b29e46e07ac2e0df9f7a957ef13bec4ceab8515f44e3/watchfiles-1.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:c2acfa49dd0ad0bf2a9c0bb9a985af02e89345a7189be1efc6baa085e0f72d7c", size = 285441 }, - { url = "https://files.pythonhosted.org/packages/11/de/09fe56317d582742d7ca8c2ca7b52a85927ebb50678d9b0fa8194658f536/watchfiles-1.0.4-cp312-cp312-win_arm64.whl", hash = "sha256:22bb55a7c9e564e763ea06c7acea24fc5d2ee5dfc5dafc5cfbedfe58505e9f90", size = 277141 }, - { url = "https://files.pythonhosted.org/packages/08/98/f03efabec64b5b1fa58c0daab25c68ef815b0f320e54adcacd0d6847c339/watchfiles-1.0.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:8012bd820c380c3d3db8435e8cf7592260257b378b649154a7948a663b5f84e9", size = 390954 }, - { url = "https://files.pythonhosted.org/packages/16/09/4dd49ba0a32a45813debe5fb3897955541351ee8142f586303b271a02b40/watchfiles-1.0.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa216f87594f951c17511efe5912808dfcc4befa464ab17c98d387830ce07b60", size = 381133 }, - { url = "https://files.pythonhosted.org/packages/76/59/5aa6fc93553cd8d8ee75c6247763d77c02631aed21551a97d94998bf1dae/watchfiles-1.0.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c9953cf85529c05b24705639ffa390f78c26449e15ec34d5339e8108c7c407", size = 449516 }, - { url = "https://files.pythonhosted.org/packages/4c/aa/df4b6fe14b6317290b91335b23c96b488d365d65549587434817e06895ea/watchfiles-1.0.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7cf684aa9bba4cd95ecb62c822a56de54e3ae0598c1a7f2065d51e24637a3c5d", size = 454820 }, - { url = "https://files.pythonhosted.org/packages/5e/71/185f8672f1094ce48af33252c73e39b48be93b761273872d9312087245f6/watchfiles-1.0.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f44a39aee3cbb9b825285ff979ab887a25c5d336e5ec3574f1506a4671556a8d", size = 481550 }, - { url = "https://files.pythonhosted.org/packages/85/d7/50ebba2c426ef1a5cb17f02158222911a2e005d401caf5d911bfca58f4c4/watchfiles-1.0.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38320582736922be8c865d46520c043bff350956dfc9fbaee3b2df4e1740a4b", size = 518647 }, - { url = "https://files.pythonhosted.org/packages/f0/7a/4c009342e393c545d68987e8010b937f72f47937731225b2b29b7231428f/watchfiles-1.0.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39f4914548b818540ef21fd22447a63e7be6e24b43a70f7642d21f1e73371590", size = 497547 }, - { url = "https://files.pythonhosted.org/packages/0f/7c/1cf50b35412d5c72d63b2bf9a4fffee2e1549a245924960dd087eb6a6de4/watchfiles-1.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f12969a3765909cf5dc1e50b2436eb2c0e676a3c75773ab8cc3aa6175c16e902", size = 452179 }, - { url = "https://files.pythonhosted.org/packages/d6/a9/3db1410e1c1413735a9a472380e4f431ad9a9e81711cda2aaf02b7f62693/watchfiles-1.0.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0986902677a1a5e6212d0c49b319aad9cc48da4bd967f86a11bde96ad9676ca1", size = 614125 }, - { url = "https://files.pythonhosted.org/packages/f2/e1/0025d365cf6248c4d1ee4c3d2e3d373bdd3f6aff78ba4298f97b4fad2740/watchfiles-1.0.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:308ac265c56f936636e3b0e3f59e059a40003c655228c131e1ad439957592303", size = 611911 }, - { url = "https://files.pythonhosted.org/packages/55/55/035838277d8c98fc8c917ac9beeb0cd6c59d675dc2421df5f9fcf44a0070/watchfiles-1.0.4-cp313-cp313-win32.whl", hash = "sha256:aee397456a29b492c20fda2d8961e1ffb266223625346ace14e4b6d861ba9c80", size = 271152 }, - { url = "https://files.pythonhosted.org/packages/f0/e5/96b8e55271685ddbadc50ce8bc53aa2dff278fb7ac4c2e473df890def2dc/watchfiles-1.0.4-cp313-cp313-win_amd64.whl", hash = "sha256:d6097538b0ae5c1b88c3b55afa245a66793a8fec7ada6755322e465fb1a0e8cc", size = 285216 }, +sdist = { url = "https://files.pythonhosted.org/packages/03/e2/8ed598c42057de7aa5d97c472254af4906ff0a59a66699d426fc9ef795d7/watchfiles-1.0.5.tar.gz", hash = "sha256:b7529b5dcc114679d43827d8c35a07c493ad6f083633d573d81c660abc5979e9", size = 94537 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/f4/41b591f59021786ef517e1cdc3b510383551846703e03f204827854a96f8/watchfiles-1.0.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:237f9be419e977a0f8f6b2e7b0475ababe78ff1ab06822df95d914a945eac827", size = 405336 }, + { url = "https://files.pythonhosted.org/packages/ae/06/93789c135be4d6d0e4f63e96eea56dc54050b243eacc28439a26482b5235/watchfiles-1.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0da39ff917af8b27a4bdc5a97ac577552a38aac0d260a859c1517ea3dc1a7c4", size = 395977 }, + { url = "https://files.pythonhosted.org/packages/d2/db/1cd89bd83728ca37054512d4d35ab69b5f12b8aa2ac9be3b0276b3bf06cc/watchfiles-1.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cfcb3952350e95603f232a7a15f6c5f86c5375e46f0bd4ae70d43e3e063c13d", size = 455232 }, + { url = "https://files.pythonhosted.org/packages/40/90/d8a4d44ffe960517e487c9c04f77b06b8abf05eb680bed71c82b5f2cad62/watchfiles-1.0.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:68b2dddba7a4e6151384e252a5632efcaa9bc5d1c4b567f3cb621306b2ca9f63", size = 459151 }, + { url = "https://files.pythonhosted.org/packages/6c/da/267a1546f26465dead1719caaba3ce660657f83c9d9c052ba98fb8856e13/watchfiles-1.0.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:95cf944fcfc394c5f9de794ce581914900f82ff1f855326f25ebcf24d5397418", size = 489054 }, + { url = "https://files.pythonhosted.org/packages/b1/31/33850dfd5c6efb6f27d2465cc4c6b27c5a6f5ed53c6fa63b7263cf5f60f6/watchfiles-1.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecf6cd9f83d7c023b1aba15d13f705ca7b7d38675c121f3cc4a6e25bd0857ee9", size = 523955 }, + { url = "https://files.pythonhosted.org/packages/09/84/b7d7b67856efb183a421f1416b44ca975cb2ea6c4544827955dfb01f7dc2/watchfiles-1.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:852de68acd6212cd6d33edf21e6f9e56e5d98c6add46f48244bd479d97c967c6", size = 502234 }, + { url = "https://files.pythonhosted.org/packages/71/87/6dc5ec6882a2254cfdd8b0718b684504e737273903b65d7338efaba08b52/watchfiles-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5730f3aa35e646103b53389d5bc77edfbf578ab6dab2e005142b5b80a35ef25", size = 454750 }, + { url = "https://files.pythonhosted.org/packages/3d/6c/3786c50213451a0ad15170d091570d4a6554976cf0df19878002fc96075a/watchfiles-1.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:18b3bd29954bc4abeeb4e9d9cf0b30227f0f206c86657674f544cb032296acd5", size = 631591 }, + { url = "https://files.pythonhosted.org/packages/1b/b3/1427425ade4e359a0deacce01a47a26024b2ccdb53098f9d64d497f6684c/watchfiles-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ba5552a1b07c8edbf197055bc9d518b8f0d98a1c6a73a293bc0726dce068ed01", size = 625370 }, + { url = "https://files.pythonhosted.org/packages/15/ba/f60e053b0b5b8145d682672024aa91370a29c5c921a88977eb565de34086/watchfiles-1.0.5-cp311-cp311-win32.whl", hash = "sha256:2f1fefb2e90e89959447bc0420fddd1e76f625784340d64a2f7d5983ef9ad246", size = 277791 }, + { url = "https://files.pythonhosted.org/packages/50/ed/7603c4e164225c12c0d4e8700b64bb00e01a6c4eeea372292a3856be33a4/watchfiles-1.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:b6e76ceb1dd18c8e29c73f47d41866972e891fc4cc7ba014f487def72c1cf096", size = 291622 }, + { url = "https://files.pythonhosted.org/packages/a2/c2/99bb7c96b4450e36877fde33690ded286ff555b5a5c1d925855d556968a1/watchfiles-1.0.5-cp311-cp311-win_arm64.whl", hash = "sha256:266710eb6fddc1f5e51843c70e3bebfb0f5e77cf4f27129278c70554104d19ed", size = 283699 }, + { url = "https://files.pythonhosted.org/packages/2a/8c/4f0b9bdb75a1bfbd9c78fad7d8854369283f74fe7cf03eb16be77054536d/watchfiles-1.0.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b5eb568c2aa6018e26da9e6c86f3ec3fd958cee7f0311b35c2630fa4217d17f2", size = 401511 }, + { url = "https://files.pythonhosted.org/packages/dc/4e/7e15825def77f8bd359b6d3f379f0c9dac4eb09dd4ddd58fd7d14127179c/watchfiles-1.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0a04059f4923ce4e856b4b4e5e783a70f49d9663d22a4c3b3298165996d1377f", size = 392715 }, + { url = "https://files.pythonhosted.org/packages/58/65/b72fb817518728e08de5840d5d38571466c1b4a3f724d190cec909ee6f3f/watchfiles-1.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e380c89983ce6e6fe2dd1e1921b9952fb4e6da882931abd1824c092ed495dec", size = 454138 }, + { url = "https://files.pythonhosted.org/packages/3e/a4/86833fd2ea2e50ae28989f5950b5c3f91022d67092bfec08f8300d8b347b/watchfiles-1.0.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fe43139b2c0fdc4a14d4f8d5b5d967f7a2777fd3d38ecf5b1ec669b0d7e43c21", size = 458592 }, + { url = "https://files.pythonhosted.org/packages/38/7e/42cb8df8be9a37e50dd3a818816501cf7a20d635d76d6bd65aae3dbbff68/watchfiles-1.0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee0822ce1b8a14fe5a066f93edd20aada932acfe348bede8aa2149f1a4489512", size = 487532 }, + { url = "https://files.pythonhosted.org/packages/fc/fd/13d26721c85d7f3df6169d8b495fcac8ab0dc8f0945ebea8845de4681dab/watchfiles-1.0.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a0dbcb1c2d8f2ab6e0a81c6699b236932bd264d4cef1ac475858d16c403de74d", size = 522865 }, + { url = "https://files.pythonhosted.org/packages/a1/0d/7f9ae243c04e96c5455d111e21b09087d0eeaf9a1369e13a01c7d3d82478/watchfiles-1.0.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a2014a2b18ad3ca53b1f6c23f8cd94a18ce930c1837bd891262c182640eb40a6", size = 499887 }, + { url = "https://files.pythonhosted.org/packages/8e/0f/a257766998e26aca4b3acf2ae97dff04b57071e991a510857d3799247c67/watchfiles-1.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10f6ae86d5cb647bf58f9f655fcf577f713915a5d69057a0371bc257e2553234", size = 454498 }, + { url = "https://files.pythonhosted.org/packages/81/79/8bf142575a03e0af9c3d5f8bcae911ee6683ae93a625d349d4ecf4c8f7df/watchfiles-1.0.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1a7bac2bde1d661fb31f4d4e8e539e178774b76db3c2c17c4bb3e960a5de07a2", size = 630663 }, + { url = "https://files.pythonhosted.org/packages/f1/80/abe2e79f610e45c63a70d271caea90c49bbf93eb00fa947fa9b803a1d51f/watchfiles-1.0.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ab626da2fc1ac277bbf752446470b367f84b50295264d2d313e28dc4405d663", size = 625410 }, + { url = "https://files.pythonhosted.org/packages/91/6f/bc7fbecb84a41a9069c2c6eb6319f7f7df113adf113e358c57fc1aff7ff5/watchfiles-1.0.5-cp312-cp312-win32.whl", hash = "sha256:9f4571a783914feda92018ef3901dab8caf5b029325b5fe4558c074582815249", size = 277965 }, + { url = "https://files.pythonhosted.org/packages/99/a5/bf1c297ea6649ec59e935ab311f63d8af5faa8f0b86993e3282b984263e3/watchfiles-1.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:360a398c3a19672cf93527f7e8d8b60d8275119c5d900f2e184d32483117a705", size = 291693 }, + { url = "https://files.pythonhosted.org/packages/7f/7b/fd01087cc21db5c47e5beae507b87965db341cce8a86f9eb12bf5219d4e0/watchfiles-1.0.5-cp312-cp312-win_arm64.whl", hash = "sha256:1a2902ede862969077b97523987c38db28abbe09fb19866e711485d9fbf0d417", size = 283287 }, + { url = "https://files.pythonhosted.org/packages/c7/62/435766874b704f39b2fecd8395a29042db2b5ec4005bd34523415e9bd2e0/watchfiles-1.0.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0b289572c33a0deae62daa57e44a25b99b783e5f7aed81b314232b3d3c81a11d", size = 401531 }, + { url = "https://files.pythonhosted.org/packages/6e/a6/e52a02c05411b9cb02823e6797ef9bbba0bfaf1bb627da1634d44d8af833/watchfiles-1.0.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a056c2f692d65bf1e99c41045e3bdcaea3cb9e6b5a53dcaf60a5f3bd95fc9763", size = 392417 }, + { url = "https://files.pythonhosted.org/packages/3f/53/c4af6819770455932144e0109d4854437769672d7ad897e76e8e1673435d/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9dca99744991fc9850d18015c4f0438865414e50069670f5f7eee08340d8b40", size = 453423 }, + { url = "https://files.pythonhosted.org/packages/cb/d1/8e88df58bbbf819b8bc5cfbacd3c79e01b40261cad0fc84d1e1ebd778a07/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:894342d61d355446d02cd3988a7326af344143eb33a2fd5d38482a92072d9563", size = 458185 }, + { url = "https://files.pythonhosted.org/packages/ff/70/fffaa11962dd5429e47e478a18736d4e42bec42404f5ee3b92ef1b87ad60/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab44e1580924d1ffd7b3938e02716d5ad190441965138b4aa1d1f31ea0877f04", size = 486696 }, + { url = "https://files.pythonhosted.org/packages/39/db/723c0328e8b3692d53eb273797d9a08be6ffb1d16f1c0ba2bdbdc2a3852c/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6f9367b132078b2ceb8d066ff6c93a970a18c3029cea37bfd7b2d3dd2e5db8f", size = 522327 }, + { url = "https://files.pythonhosted.org/packages/cd/05/9fccc43c50c39a76b68343484b9da7b12d42d0859c37c61aec018c967a32/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2e55a9b162e06e3f862fb61e399fe9f05d908d019d87bf5b496a04ef18a970a", size = 499741 }, + { url = "https://files.pythonhosted.org/packages/23/14/499e90c37fa518976782b10a18b18db9f55ea73ca14641615056f8194bb3/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0125f91f70e0732a9f8ee01e49515c35d38ba48db507a50c5bdcad9503af5827", size = 453995 }, + { url = "https://files.pythonhosted.org/packages/61/d9/f75d6840059320df5adecd2c687fbc18960a7f97b55c300d20f207d48aef/watchfiles-1.0.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:13bb21f8ba3248386337c9fa51c528868e6c34a707f729ab041c846d52a0c69a", size = 629693 }, + { url = "https://files.pythonhosted.org/packages/fc/17/180ca383f5061b61406477218c55d66ec118e6c0c51f02d8142895fcf0a9/watchfiles-1.0.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:839ebd0df4a18c5b3c1b890145b5a3f5f64063c2a0d02b13c76d78fe5de34936", size = 624677 }, + { url = "https://files.pythonhosted.org/packages/bf/15/714d6ef307f803f236d69ee9d421763707899d6298d9f3183e55e366d9af/watchfiles-1.0.5-cp313-cp313-win32.whl", hash = "sha256:4a8ec1e4e16e2d5bafc9ba82f7aaecfeec990ca7cd27e84fb6f191804ed2fcfc", size = 277804 }, + { url = "https://files.pythonhosted.org/packages/a8/b4/c57b99518fadf431f3ef47a610839e46e5f8abf9814f969859d1c65c02c7/watchfiles-1.0.5-cp313-cp313-win_amd64.whl", hash = "sha256:f436601594f15bf406518af922a89dcaab416568edb6f65c4e5bbbad1ea45c11", size = 291087 }, ] [[package]] @@ -3716,16 +3825,16 @@ wheels = [ [[package]] name = "xarray" -version = "2025.3.1" +version = "2025.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, { name = "packaging" }, { name = "pandas" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7c/c4/6931c37cd418658d596e78794bdd1bcb67efec0aac3cdb720e37e03c1ea1/xarray-2025.3.1.tar.gz", hash = "sha256:0252c96a73528b29d1ed7f0ab28d928d2ec00ad809e47369803b184dece1e447", size = 3300778 } +sdist = { url = "https://files.pythonhosted.org/packages/9b/29/37761364e137db13898cf5a790574dd7883f7355d5dfb42b66ee7a9a6318/xarray-2025.4.0.tar.gz", hash = "sha256:2a89cd6a1dfd589aa90ac45f4e483246f31fc641836db45dd2790bb78bd333dc", size = 2974151 } wheels = [ - { url = "https://files.pythonhosted.org/packages/91/fd/973deafd9f87085136a58573600646b408ae7af47859f35151f0d83d5090/xarray-2025.3.1-py3-none-any.whl", hash = "sha256:3404e313930c226db70a945377441ea3c957225d8ba2d429e764c099bb91a546", size = 1279327 }, + { url = "https://files.pythonhosted.org/packages/a4/1e/96fd96419fec1a37da998a1ca3d558f2cae2f6f3cd5015170371b05a2b6b/xarray-2025.4.0-py3-none-any.whl", hash = "sha256:b27defd082c5cb85d32c695708de6bb05c2838fb7caaf3f952982e602a35b9b8", size = 1290171 }, ] [[package]] @@ -3745,78 +3854,98 @@ colors = [ [[package]] name = "xyzservices" -version = "2025.1.0" +version = "2025.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/47/11/3ae1c07b3446b643bec33822efeb0452e885a294172c4fe9551968211749/xyzservices-2025.1.0.tar.gz", hash = "sha256:5cdbb0907c20be1be066c6e2dc69c645842d1113a4e83e642065604a21f254ba", size = 1133574 } +sdist = { url = "https://files.pythonhosted.org/packages/00/af/c0f7f97bb320d14c089476f487b81f733238cc5603e0914f2e409f49d589/xyzservices-2025.4.0.tar.gz", hash = "sha256:6fe764713648fac53450fbc61a3c366cb6ae5335a1b2ae0c3796b495de3709d8", size = 1134722 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/6e/49408735dae940a0c1c225c6b908fd83bd6e3f5fae120f865754e72f78cb/xyzservices-2025.1.0-py3-none-any.whl", hash = "sha256:fa599956c5ab32dad1689960b3bb08fdcdbe0252cc82d84fc60ae415dc648907", size = 88368 }, + { url = "https://files.pythonhosted.org/packages/d6/7d/b77455d7c7c51255b2992b429107fab811b2e36ceaf76da1e55a045dc568/xyzservices-2025.4.0-py3-none-any.whl", hash = "sha256:8d4db9a59213ccb4ce1cf70210584f30b10795bff47627cdfb862b39ff6e10c9", size = 90391 }, ] [[package]] name = "yarl" -version = "1.18.3" +version = "1.20.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "idna" }, { name = "multidict" }, { name = "propcache" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b7/9d/4b94a8e6d2b51b599516a5cb88e5bc99b4d8d4583e468057eaa29d5f0918/yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1", size = 181062 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/40/93/282b5f4898d8e8efaf0790ba6d10e2245d2c9f30e199d1a85cae9356098c/yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069", size = 141555 }, - { url = "https://files.pythonhosted.org/packages/6d/9c/0a49af78df099c283ca3444560f10718fadb8a18dc8b3edf8c7bd9fd7d89/yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193", size = 94351 }, - { url = "https://files.pythonhosted.org/packages/5a/a1/205ab51e148fdcedad189ca8dd587794c6f119882437d04c33c01a75dece/yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889", size = 92286 }, - { url = "https://files.pythonhosted.org/packages/ed/fe/88b690b30f3f59275fb674f5f93ddd4a3ae796c2b62e5bb9ece8a4914b83/yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8", size = 340649 }, - { url = "https://files.pythonhosted.org/packages/07/eb/3b65499b568e01f36e847cebdc8d7ccb51fff716dbda1ae83c3cbb8ca1c9/yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca", size = 356623 }, - { url = "https://files.pythonhosted.org/packages/33/46/f559dc184280b745fc76ec6b1954de2c55595f0ec0a7614238b9ebf69618/yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8", size = 354007 }, - { url = "https://files.pythonhosted.org/packages/af/ba/1865d85212351ad160f19fb99808acf23aab9a0f8ff31c8c9f1b4d671fc9/yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae", size = 344145 }, - { url = "https://files.pythonhosted.org/packages/94/cb/5c3e975d77755d7b3d5193e92056b19d83752ea2da7ab394e22260a7b824/yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3", size = 336133 }, - { url = "https://files.pythonhosted.org/packages/19/89/b77d3fd249ab52a5c40859815765d35c91425b6bb82e7427ab2f78f5ff55/yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb", size = 347967 }, - { url = "https://files.pythonhosted.org/packages/35/bd/f6b7630ba2cc06c319c3235634c582a6ab014d52311e7d7c22f9518189b5/yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e", size = 346397 }, - { url = "https://files.pythonhosted.org/packages/18/1a/0b4e367d5a72d1f095318344848e93ea70da728118221f84f1bf6c1e39e7/yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59", size = 350206 }, - { url = "https://files.pythonhosted.org/packages/b5/cf/320fff4367341fb77809a2d8d7fe75b5d323a8e1b35710aafe41fdbf327b/yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d", size = 362089 }, - { url = "https://files.pythonhosted.org/packages/57/cf/aadba261d8b920253204085268bad5e8cdd86b50162fcb1b10c10834885a/yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e", size = 366267 }, - { url = "https://files.pythonhosted.org/packages/54/58/fb4cadd81acdee6dafe14abeb258f876e4dd410518099ae9a35c88d8097c/yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a", size = 359141 }, - { url = "https://files.pythonhosted.org/packages/9a/7a/4c571597589da4cd5c14ed2a0b17ac56ec9ee7ee615013f74653169e702d/yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1", size = 84402 }, - { url = "https://files.pythonhosted.org/packages/ae/7b/8600250b3d89b625f1121d897062f629883c2f45339623b69b1747ec65fa/yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5", size = 91030 }, - { url = "https://files.pythonhosted.org/packages/33/85/bd2e2729752ff4c77338e0102914897512e92496375e079ce0150a6dc306/yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50", size = 142644 }, - { url = "https://files.pythonhosted.org/packages/ff/74/1178322cc0f10288d7eefa6e4a85d8d2e28187ccab13d5b844e8b5d7c88d/yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576", size = 94962 }, - { url = "https://files.pythonhosted.org/packages/be/75/79c6acc0261e2c2ae8a1c41cf12265e91628c8c58ae91f5ff59e29c0787f/yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640", size = 92795 }, - { url = "https://files.pythonhosted.org/packages/6b/32/927b2d67a412c31199e83fefdce6e645247b4fb164aa1ecb35a0f9eb2058/yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2", size = 332368 }, - { url = "https://files.pythonhosted.org/packages/19/e5/859fca07169d6eceeaa4fde1997c91d8abde4e9a7c018e371640c2da2b71/yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75", size = 342314 }, - { url = "https://files.pythonhosted.org/packages/08/75/76b63ccd91c9e03ab213ef27ae6add2e3400e77e5cdddf8ed2dbc36e3f21/yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512", size = 341987 }, - { url = "https://files.pythonhosted.org/packages/1a/e1/a097d5755d3ea8479a42856f51d97eeff7a3a7160593332d98f2709b3580/yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba", size = 336914 }, - { url = "https://files.pythonhosted.org/packages/0b/42/e1b4d0e396b7987feceebe565286c27bc085bf07d61a59508cdaf2d45e63/yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb", size = 325765 }, - { url = "https://files.pythonhosted.org/packages/7e/18/03a5834ccc9177f97ca1bbb245b93c13e58e8225276f01eedc4cc98ab820/yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272", size = 344444 }, - { url = "https://files.pythonhosted.org/packages/c8/03/a713633bdde0640b0472aa197b5b86e90fbc4c5bc05b727b714cd8a40e6d/yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6", size = 340760 }, - { url = "https://files.pythonhosted.org/packages/eb/99/f6567e3f3bbad8fd101886ea0276c68ecb86a2b58be0f64077396cd4b95e/yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e", size = 346484 }, - { url = "https://files.pythonhosted.org/packages/8e/a9/84717c896b2fc6cb15bd4eecd64e34a2f0a9fd6669e69170c73a8b46795a/yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb", size = 359864 }, - { url = "https://files.pythonhosted.org/packages/1e/2e/d0f5f1bef7ee93ed17e739ec8dbcb47794af891f7d165fa6014517b48169/yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393", size = 364537 }, - { url = "https://files.pythonhosted.org/packages/97/8a/568d07c5d4964da5b02621a517532adb8ec5ba181ad1687191fffeda0ab6/yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285", size = 357861 }, - { url = "https://files.pythonhosted.org/packages/7d/e3/924c3f64b6b3077889df9a1ece1ed8947e7b61b0a933f2ec93041990a677/yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2", size = 84097 }, - { url = "https://files.pythonhosted.org/packages/34/45/0e055320daaabfc169b21ff6174567b2c910c45617b0d79c68d7ab349b02/yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477", size = 90399 }, - { url = "https://files.pythonhosted.org/packages/30/c7/c790513d5328a8390be8f47be5d52e141f78b66c6c48f48d241ca6bd5265/yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb", size = 140789 }, - { url = "https://files.pythonhosted.org/packages/30/aa/a2f84e93554a578463e2edaaf2300faa61c8701f0898725842c704ba5444/yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa", size = 94144 }, - { url = "https://files.pythonhosted.org/packages/c6/fc/d68d8f83714b221a85ce7866832cba36d7c04a68fa6a960b908c2c84f325/yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782", size = 91974 }, - { url = "https://files.pythonhosted.org/packages/56/4e/d2563d8323a7e9a414b5b25341b3942af5902a2263d36d20fb17c40411e2/yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0", size = 333587 }, - { url = "https://files.pythonhosted.org/packages/25/c9/cfec0bc0cac8d054be223e9f2c7909d3e8442a856af9dbce7e3442a8ec8d/yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482", size = 344386 }, - { url = "https://files.pythonhosted.org/packages/ab/5d/4c532190113b25f1364d25f4c319322e86232d69175b91f27e3ebc2caf9a/yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186", size = 345421 }, - { url = "https://files.pythonhosted.org/packages/23/d1/6cdd1632da013aa6ba18cee4d750d953104a5e7aac44e249d9410a972bf5/yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58", size = 339384 }, - { url = "https://files.pythonhosted.org/packages/9a/c4/6b3c39bec352e441bd30f432cda6ba51681ab19bb8abe023f0d19777aad1/yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53", size = 326689 }, - { url = "https://files.pythonhosted.org/packages/23/30/07fb088f2eefdc0aa4fc1af4e3ca4eb1a3aadd1ce7d866d74c0f124e6a85/yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2", size = 345453 }, - { url = "https://files.pythonhosted.org/packages/63/09/d54befb48f9cd8eec43797f624ec37783a0266855f4930a91e3d5c7717f8/yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8", size = 341872 }, - { url = "https://files.pythonhosted.org/packages/91/26/fd0ef9bf29dd906a84b59f0cd1281e65b0c3e08c6aa94b57f7d11f593518/yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1", size = 347497 }, - { url = "https://files.pythonhosted.org/packages/d9/b5/14ac7a256d0511b2ac168d50d4b7d744aea1c1aa20c79f620d1059aab8b2/yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a", size = 359981 }, - { url = "https://files.pythonhosted.org/packages/ca/b3/d493221ad5cbd18bc07e642894030437e405e1413c4236dd5db6e46bcec9/yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10", size = 366229 }, - { url = "https://files.pythonhosted.org/packages/04/56/6a3e2a5d9152c56c346df9b8fb8edd2c8888b1e03f96324d457e5cf06d34/yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8", size = 360383 }, - { url = "https://files.pythonhosted.org/packages/fd/b7/4b3c7c7913a278d445cc6284e59b2e62fa25e72758f888b7a7a39eb8423f/yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d", size = 310152 }, - { url = "https://files.pythonhosted.org/packages/f5/d5/688db678e987c3e0fb17867970700b92603cadf36c56e5fb08f23e822a0c/yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c", size = 315723 }, - { url = "https://files.pythonhosted.org/packages/f5/4b/a06e0ec3d155924f77835ed2d167ebd3b211a7b0853da1cf8d8414d784ef/yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b", size = 45109 }, +sdist = { url = "https://files.pythonhosted.org/packages/62/51/c0edba5219027f6eab262e139f73e2417b0f4efffa23bf562f6e18f76ca5/yarl-1.20.0.tar.gz", hash = "sha256:686d51e51ee5dfe62dec86e4866ee0e9ed66df700d55c828a615640adc885307", size = 185258 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/82/a59d8e21b20ffc836775fa7daedac51d16bb8f3010c4fcb495c4496aa922/yarl-1.20.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fdb5204d17cb32b2de2d1e21c7461cabfacf17f3645e4b9039f210c5d3378bf3", size = 145178 }, + { url = "https://files.pythonhosted.org/packages/ba/81/315a3f6f95947cfbf37c92d6fbce42a1a6207b6c38e8c2b452499ec7d449/yarl-1.20.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:eaddd7804d8e77d67c28d154ae5fab203163bd0998769569861258e525039d2a", size = 96859 }, + { url = "https://files.pythonhosted.org/packages/ad/17/9b64e575583158551b72272a1023cdbd65af54fe13421d856b2850a6ddb7/yarl-1.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:634b7ba6b4a85cf67e9df7c13a7fb2e44fa37b5d34501038d174a63eaac25ee2", size = 94647 }, + { url = "https://files.pythonhosted.org/packages/2c/29/8f291e7922a58a21349683f6120a85701aeefaa02e9f7c8a2dc24fe3f431/yarl-1.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d409e321e4addf7d97ee84162538c7258e53792eb7c6defd0c33647d754172e", size = 355788 }, + { url = "https://files.pythonhosted.org/packages/26/6d/b4892c80b805c42c228c6d11e03cafabf81662d371b0853e7f0f513837d5/yarl-1.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ea52f7328a36960ba3231c6677380fa67811b414798a6e071c7085c57b6d20a9", size = 344613 }, + { url = "https://files.pythonhosted.org/packages/d7/0e/517aa28d3f848589bae9593717b063a544b86ba0a807d943c70f48fcf3bb/yarl-1.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c8703517b924463994c344dcdf99a2d5ce9eca2b6882bb640aa555fb5efc706a", size = 370953 }, + { url = "https://files.pythonhosted.org/packages/5f/9b/5bd09d2f1ad6e6f7c2beae9e50db78edd2cca4d194d227b958955573e240/yarl-1.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:077989b09ffd2f48fb2d8f6a86c5fef02f63ffe6b1dd4824c76de7bb01e4f2e2", size = 369204 }, + { url = "https://files.pythonhosted.org/packages/9c/85/d793a703cf4bd0d4cd04e4b13cc3d44149470f790230430331a0c1f52df5/yarl-1.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0acfaf1da020253f3533526e8b7dd212838fdc4109959a2c53cafc6db611bff2", size = 358108 }, + { url = "https://files.pythonhosted.org/packages/6f/54/b6c71e13549c1f6048fbc14ce8d930ac5fb8bafe4f1a252e621a24f3f1f9/yarl-1.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b4230ac0b97ec5eeb91d96b324d66060a43fd0d2a9b603e3327ed65f084e41f8", size = 346610 }, + { url = "https://files.pythonhosted.org/packages/a0/1a/d6087d58bdd0d8a2a37bbcdffac9d9721af6ebe50d85304d9f9b57dfd862/yarl-1.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a6a1e6ae21cdd84011c24c78d7a126425148b24d437b5702328e4ba640a8902", size = 365378 }, + { url = "https://files.pythonhosted.org/packages/02/84/e25ddff4cbc001dbc4af76f8d41a3e23818212dd1f0a52044cbc60568872/yarl-1.20.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:86de313371ec04dd2531f30bc41a5a1a96f25a02823558ee0f2af0beaa7ca791", size = 356919 }, + { url = "https://files.pythonhosted.org/packages/04/76/898ae362353bf8f64636495d222c8014c8e5267df39b1a9fe1e1572fb7d0/yarl-1.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:dd59c9dd58ae16eaa0f48c3d0cbe6be8ab4dc7247c3ff7db678edecbaf59327f", size = 364248 }, + { url = "https://files.pythonhosted.org/packages/1b/b0/9d9198d83a622f1c40fdbf7bd13b224a6979f2e1fc2cf50bfb1d8773c495/yarl-1.20.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a0bc5e05f457b7c1994cc29e83b58f540b76234ba6b9648a4971ddc7f6aa52da", size = 378418 }, + { url = "https://files.pythonhosted.org/packages/c7/ce/1f50c1cc594cf5d3f5bf4a9b616fca68680deaec8ad349d928445ac52eb8/yarl-1.20.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c9471ca18e6aeb0e03276b5e9b27b14a54c052d370a9c0c04a68cefbd1455eb4", size = 383850 }, + { url = "https://files.pythonhosted.org/packages/89/1e/a59253a87b35bfec1a25bb5801fb69943330b67cfd266278eb07e0609012/yarl-1.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:40ed574b4df723583a26c04b298b283ff171bcc387bc34c2683235e2487a65a5", size = 381218 }, + { url = "https://files.pythonhosted.org/packages/85/b0/26f87df2b3044b0ef1a7cf66d321102bdca091db64c5ae853fcb2171c031/yarl-1.20.0-cp311-cp311-win32.whl", hash = "sha256:db243357c6c2bf3cd7e17080034ade668d54ce304d820c2a58514a4e51d0cfd6", size = 86606 }, + { url = "https://files.pythonhosted.org/packages/33/46/ca335c2e1f90446a77640a45eeb1cd8f6934f2c6e4df7db0f0f36ef9f025/yarl-1.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:8c12cd754d9dbd14204c328915e23b0c361b88f3cffd124129955e60a4fbfcfb", size = 93374 }, + { url = "https://files.pythonhosted.org/packages/c3/e8/3efdcb83073df978bb5b1a9cc0360ce596680e6c3fac01f2a994ccbb8939/yarl-1.20.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e06b9f6cdd772f9b665e5ba8161968e11e403774114420737f7884b5bd7bdf6f", size = 147089 }, + { url = "https://files.pythonhosted.org/packages/60/c3/9e776e98ea350f76f94dd80b408eaa54e5092643dbf65fd9babcffb60509/yarl-1.20.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b9ae2fbe54d859b3ade40290f60fe40e7f969d83d482e84d2c31b9bff03e359e", size = 97706 }, + { url = "https://files.pythonhosted.org/packages/0c/5b/45cdfb64a3b855ce074ae607b9fc40bc82e7613b94e7612b030255c93a09/yarl-1.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d12b8945250d80c67688602c891237994d203d42427cb14e36d1a732eda480e", size = 95719 }, + { url = "https://files.pythonhosted.org/packages/2d/4e/929633b249611eeed04e2f861a14ed001acca3ef9ec2a984a757b1515889/yarl-1.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:087e9731884621b162a3e06dc0d2d626e1542a617f65ba7cc7aeab279d55ad33", size = 343972 }, + { url = "https://files.pythonhosted.org/packages/49/fd/047535d326c913f1a90407a3baf7ff535b10098611eaef2c527e32e81ca1/yarl-1.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:69df35468b66c1a6e6556248e6443ef0ec5f11a7a4428cf1f6281f1879220f58", size = 339639 }, + { url = "https://files.pythonhosted.org/packages/48/2f/11566f1176a78f4bafb0937c0072410b1b0d3640b297944a6a7a556e1d0b/yarl-1.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b2992fe29002fd0d4cbaea9428b09af9b8686a9024c840b8a2b8f4ea4abc16f", size = 353745 }, + { url = "https://files.pythonhosted.org/packages/26/17/07dfcf034d6ae8837b33988be66045dd52f878dfb1c4e8f80a7343f677be/yarl-1.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c903e0b42aab48abfbac668b5a9d7b6938e721a6341751331bcd7553de2dcae", size = 354178 }, + { url = "https://files.pythonhosted.org/packages/15/45/212604d3142d84b4065d5f8cab6582ed3d78e4cc250568ef2a36fe1cf0a5/yarl-1.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf099e2432131093cc611623e0b0bcc399b8cddd9a91eded8bfb50402ec35018", size = 349219 }, + { url = "https://files.pythonhosted.org/packages/e6/e0/a10b30f294111c5f1c682461e9459935c17d467a760c21e1f7db400ff499/yarl-1.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a7f62f5dc70a6c763bec9ebf922be52aa22863d9496a9a30124d65b489ea672", size = 337266 }, + { url = "https://files.pythonhosted.org/packages/33/a6/6efa1d85a675d25a46a167f9f3e80104cde317dfdf7f53f112ae6b16a60a/yarl-1.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:54ac15a8b60382b2bcefd9a289ee26dc0920cf59b05368c9b2b72450751c6eb8", size = 360873 }, + { url = "https://files.pythonhosted.org/packages/77/67/c8ab718cb98dfa2ae9ba0f97bf3cbb7d45d37f13fe1fbad25ac92940954e/yarl-1.20.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:25b3bc0763a7aca16a0f1b5e8ef0f23829df11fb539a1b70476dcab28bd83da7", size = 360524 }, + { url = "https://files.pythonhosted.org/packages/bd/e8/c3f18660cea1bc73d9f8a2b3ef423def8dadbbae6c4afabdb920b73e0ead/yarl-1.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b2586e36dc070fc8fad6270f93242124df68b379c3a251af534030a4a33ef594", size = 365370 }, + { url = "https://files.pythonhosted.org/packages/c9/99/33f3b97b065e62ff2d52817155a89cfa030a1a9b43fee7843ef560ad9603/yarl-1.20.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:866349da9d8c5290cfefb7fcc47721e94de3f315433613e01b435473be63daa6", size = 373297 }, + { url = "https://files.pythonhosted.org/packages/3d/89/7519e79e264a5f08653d2446b26d4724b01198a93a74d2e259291d538ab1/yarl-1.20.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:33bb660b390a0554d41f8ebec5cd4475502d84104b27e9b42f5321c5192bfcd1", size = 378771 }, + { url = "https://files.pythonhosted.org/packages/3a/58/6c460bbb884abd2917c3eef6f663a4a873f8dc6f498561fc0ad92231c113/yarl-1.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:737e9f171e5a07031cbee5e9180f6ce21a6c599b9d4b2c24d35df20a52fabf4b", size = 375000 }, + { url = "https://files.pythonhosted.org/packages/3b/2a/dd7ed1aa23fea996834278d7ff178f215b24324ee527df53d45e34d21d28/yarl-1.20.0-cp312-cp312-win32.whl", hash = "sha256:839de4c574169b6598d47ad61534e6981979ca2c820ccb77bf70f4311dd2cc64", size = 86355 }, + { url = "https://files.pythonhosted.org/packages/ca/c6/333fe0338305c0ac1c16d5aa7cc4841208d3252bbe62172e0051006b5445/yarl-1.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:3d7dbbe44b443b0c4aa0971cb07dcb2c2060e4a9bf8d1301140a33a93c98e18c", size = 92904 }, + { url = "https://files.pythonhosted.org/packages/0f/6f/514c9bff2900c22a4f10e06297714dbaf98707143b37ff0bcba65a956221/yarl-1.20.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2137810a20b933b1b1b7e5cf06a64c3ed3b4747b0e5d79c9447c00db0e2f752f", size = 145030 }, + { url = "https://files.pythonhosted.org/packages/4e/9d/f88da3fa319b8c9c813389bfb3463e8d777c62654c7168e580a13fadff05/yarl-1.20.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:447c5eadd750db8389804030d15f43d30435ed47af1313303ed82a62388176d3", size = 96894 }, + { url = "https://files.pythonhosted.org/packages/cd/57/92e83538580a6968b2451d6c89c5579938a7309d4785748e8ad42ddafdce/yarl-1.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:42fbe577272c203528d402eec8bf4b2d14fd49ecfec92272334270b850e9cd7d", size = 94457 }, + { url = "https://files.pythonhosted.org/packages/e9/ee/7ee43bd4cf82dddd5da97fcaddb6fa541ab81f3ed564c42f146c83ae17ce/yarl-1.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18e321617de4ab170226cd15006a565d0fa0d908f11f724a2c9142d6b2812ab0", size = 343070 }, + { url = "https://files.pythonhosted.org/packages/4a/12/b5eccd1109e2097bcc494ba7dc5de156e41cf8309fab437ebb7c2b296ce3/yarl-1.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4345f58719825bba29895011e8e3b545e6e00257abb984f9f27fe923afca2501", size = 337739 }, + { url = "https://files.pythonhosted.org/packages/7d/6b/0eade8e49af9fc2585552f63c76fa59ef469c724cc05b29519b19aa3a6d5/yarl-1.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d9b980d7234614bc4674468ab173ed77d678349c860c3af83b1fffb6a837ddc", size = 351338 }, + { url = "https://files.pythonhosted.org/packages/45/cb/aaaa75d30087b5183c7b8a07b4fb16ae0682dd149a1719b3a28f54061754/yarl-1.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af4baa8a445977831cbaa91a9a84cc09debb10bc8391f128da2f7bd070fc351d", size = 353636 }, + { url = "https://files.pythonhosted.org/packages/98/9d/d9cb39ec68a91ba6e66fa86d97003f58570327d6713833edf7ad6ce9dde5/yarl-1.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:123393db7420e71d6ce40d24885a9e65eb1edefc7a5228db2d62bcab3386a5c0", size = 348061 }, + { url = "https://files.pythonhosted.org/packages/72/6b/103940aae893d0cc770b4c36ce80e2ed86fcb863d48ea80a752b8bda9303/yarl-1.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab47acc9332f3de1b39e9b702d9c916af7f02656b2a86a474d9db4e53ef8fd7a", size = 334150 }, + { url = "https://files.pythonhosted.org/packages/ef/b2/986bd82aa222c3e6b211a69c9081ba46484cffa9fab2a5235e8d18ca7a27/yarl-1.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4a34c52ed158f89876cba9c600b2c964dfc1ca52ba7b3ab6deb722d1d8be6df2", size = 362207 }, + { url = "https://files.pythonhosted.org/packages/14/7c/63f5922437b873795d9422cbe7eb2509d4b540c37ae5548a4bb68fd2c546/yarl-1.20.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:04d8cfb12714158abf2618f792c77bc5c3d8c5f37353e79509608be4f18705c9", size = 361277 }, + { url = "https://files.pythonhosted.org/packages/81/83/450938cccf732466953406570bdb42c62b5ffb0ac7ac75a1f267773ab5c8/yarl-1.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7dc63ad0d541c38b6ae2255aaa794434293964677d5c1ec5d0116b0e308031f5", size = 364990 }, + { url = "https://files.pythonhosted.org/packages/b4/de/af47d3a47e4a833693b9ec8e87debb20f09d9fdc9139b207b09a3e6cbd5a/yarl-1.20.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d02b591a64e4e6ca18c5e3d925f11b559c763b950184a64cf47d74d7e41877", size = 374684 }, + { url = "https://files.pythonhosted.org/packages/62/0b/078bcc2d539f1faffdc7d32cb29a2d7caa65f1a6f7e40795d8485db21851/yarl-1.20.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:95fc9876f917cac7f757df80a5dda9de59d423568460fe75d128c813b9af558e", size = 382599 }, + { url = "https://files.pythonhosted.org/packages/74/a9/4fdb1a7899f1fb47fd1371e7ba9e94bff73439ce87099d5dd26d285fffe0/yarl-1.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bb769ae5760cd1c6a712135ee7915f9d43f11d9ef769cb3f75a23e398a92d384", size = 378573 }, + { url = "https://files.pythonhosted.org/packages/fd/be/29f5156b7a319e4d2e5b51ce622b4dfb3aa8d8204cd2a8a339340fbfad40/yarl-1.20.0-cp313-cp313-win32.whl", hash = "sha256:70e0c580a0292c7414a1cead1e076c9786f685c1fc4757573d2967689b370e62", size = 86051 }, + { url = "https://files.pythonhosted.org/packages/52/56/05fa52c32c301da77ec0b5f63d2d9605946fe29defacb2a7ebd473c23b81/yarl-1.20.0-cp313-cp313-win_amd64.whl", hash = "sha256:4c43030e4b0af775a85be1fa0433119b1565673266a70bf87ef68a9d5ba3174c", size = 92742 }, + { url = "https://files.pythonhosted.org/packages/d4/2f/422546794196519152fc2e2f475f0e1d4d094a11995c81a465faf5673ffd/yarl-1.20.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b6c4c3d0d6a0ae9b281e492b1465c72de433b782e6b5001c8e7249e085b69051", size = 163575 }, + { url = "https://files.pythonhosted.org/packages/90/fc/67c64ddab6c0b4a169d03c637fb2d2a212b536e1989dec8e7e2c92211b7f/yarl-1.20.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8681700f4e4df891eafa4f69a439a6e7d480d64e52bf460918f58e443bd3da7d", size = 106121 }, + { url = "https://files.pythonhosted.org/packages/6d/00/29366b9eba7b6f6baed7d749f12add209b987c4cfbfa418404dbadc0f97c/yarl-1.20.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:84aeb556cb06c00652dbf87c17838eb6d92cfd317799a8092cee0e570ee11229", size = 103815 }, + { url = "https://files.pythonhosted.org/packages/28/f4/a2a4c967c8323c03689383dff73396281ced3b35d0ed140580825c826af7/yarl-1.20.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f166eafa78810ddb383e930d62e623d288fb04ec566d1b4790099ae0f31485f1", size = 408231 }, + { url = "https://files.pythonhosted.org/packages/0f/a1/66f7ffc0915877d726b70cc7a896ac30b6ac5d1d2760613603b022173635/yarl-1.20.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5d3d6d14754aefc7a458261027a562f024d4f6b8a798adb472277f675857b1eb", size = 390221 }, + { url = "https://files.pythonhosted.org/packages/41/15/cc248f0504610283271615e85bf38bc014224122498c2016d13a3a1b8426/yarl-1.20.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a8f64df8ed5d04c51260dbae3cc82e5649834eebea9eadfd829837b8093eb00", size = 411400 }, + { url = "https://files.pythonhosted.org/packages/5c/af/f0823d7e092bfb97d24fce6c7269d67fcd1aefade97d0a8189c4452e4d5e/yarl-1.20.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4d9949eaf05b4d30e93e4034a7790634bbb41b8be2d07edd26754f2e38e491de", size = 411714 }, + { url = "https://files.pythonhosted.org/packages/83/70/be418329eae64b9f1b20ecdaac75d53aef098797d4c2299d82ae6f8e4663/yarl-1.20.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c366b254082d21cc4f08f522ac201d0d83a8b8447ab562732931d31d80eb2a5", size = 404279 }, + { url = "https://files.pythonhosted.org/packages/19/f5/52e02f0075f65b4914eb890eea1ba97e6fd91dd821cc33a623aa707b2f67/yarl-1.20.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91bc450c80a2e9685b10e34e41aef3d44ddf99b3a498717938926d05ca493f6a", size = 384044 }, + { url = "https://files.pythonhosted.org/packages/6a/36/b0fa25226b03d3f769c68d46170b3e92b00ab3853d73127273ba22474697/yarl-1.20.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c2aa4387de4bc3a5fe158080757748d16567119bef215bec643716b4fbf53f9", size = 416236 }, + { url = "https://files.pythonhosted.org/packages/cb/3a/54c828dd35f6831dfdd5a79e6c6b4302ae2c5feca24232a83cb75132b205/yarl-1.20.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d2cbca6760a541189cf87ee54ff891e1d9ea6406079c66341008f7ef6ab61145", size = 402034 }, + { url = "https://files.pythonhosted.org/packages/10/97/c7bf5fba488f7e049f9ad69c1b8fdfe3daa2e8916b3d321aa049e361a55a/yarl-1.20.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:798a5074e656f06b9fad1a162be5a32da45237ce19d07884d0b67a0aa9d5fdda", size = 407943 }, + { url = "https://files.pythonhosted.org/packages/fd/a4/022d2555c1e8fcff08ad7f0f43e4df3aba34f135bff04dd35d5526ce54ab/yarl-1.20.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f106e75c454288472dbe615accef8248c686958c2e7dd3b8d8ee2669770d020f", size = 423058 }, + { url = "https://files.pythonhosted.org/packages/4c/f6/0873a05563e5df29ccf35345a6ae0ac9e66588b41fdb7043a65848f03139/yarl-1.20.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:3b60a86551669c23dc5445010534d2c5d8a4e012163218fc9114e857c0586fdd", size = 423792 }, + { url = "https://files.pythonhosted.org/packages/9e/35/43fbbd082708fa42e923f314c24f8277a28483d219e049552e5007a9aaca/yarl-1.20.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3e429857e341d5e8e15806118e0294f8073ba9c4580637e59ab7b238afca836f", size = 422242 }, + { url = "https://files.pythonhosted.org/packages/ed/f7/f0f2500cf0c469beb2050b522c7815c575811627e6d3eb9ec7550ddd0bfe/yarl-1.20.0-cp313-cp313t-win32.whl", hash = "sha256:65a4053580fe88a63e8e4056b427224cd01edfb5f951498bfefca4052f0ce0ac", size = 93816 }, + { url = "https://files.pythonhosted.org/packages/3f/93/f73b61353b2a699d489e782c3f5998b59f974ec3156a2050a52dfd7e8946/yarl-1.20.0-cp313-cp313t-win_amd64.whl", hash = "sha256:53b2da3a6ca0a541c1ae799c349788d480e5144cac47dba0266c7cb6c76151fe", size = 101093 }, + { url = "https://files.pythonhosted.org/packages/ea/1f/70c57b3d7278e94ed22d85e09685d3f0a38ebdd8c5c73b65ba4c0d0fe002/yarl-1.20.0-py3-none-any.whl", hash = "sha256:5d0fe6af927a47a230f31e6004621fd0959eaa915fc62acfafa67ff7229a3124", size = 46124 }, ] [[package]] name = "zarr" -version = "3.0.6" +version = "3.0.8" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "donfig" }, @@ -3825,9 +3954,9 @@ dependencies = [ { name = "packaging" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6f/bf/2820e8ad5f086ea5cd4c4d65eb5e0113f98145ddf5810cec1c75fb10fb98/zarr-3.0.6.tar.gz", hash = "sha256:6ef23c740e34917a2a1099471361537732942e49f0cabe95c9b7124cd0d6d84f", size = 240812 } +sdist = { url = "https://files.pythonhosted.org/packages/52/60/9652fd0536fbaca8d08cbc1a5572c52e0ce01773297df75da8bb47e45907/zarr-3.0.8.tar.gz", hash = "sha256:88505d095af899a88ae8ac4db02f4650ef0801d2ff6f65b6d1f0a45dcf760a6d", size = 256825 } wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/38/56a1c129577d20dc975a934ccc3f7f16276eab04ff0ffbe02ea348407a37/zarr-3.0.6-py3-none-any.whl", hash = "sha256:dba078726b6e4defb0ae6a852b7e7035ce163d89d485961681ece49191dcce82", size = 196357 }, + { url = "https://files.pythonhosted.org/packages/00/3b/e20bdf84088c11f2c396d034506cbffadd53e024111c1aa4585c2aba1523/zarr-3.0.8-py3-none-any.whl", hash = "sha256:7f81e7aec086437d98882aa432209107114bd7f3a9f4958b2af9c6b5928a70a7", size = 205364 }, ] [[package]] @@ -3863,9 +3992,9 @@ wheels = [ [[package]] name = "zipp" -version = "3.21.0" +version = "3.22.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3f/50/bad581df71744867e9468ebd0bcd6505de3b275e06f202c2cb016e3ff56f/zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4", size = 24545 } +sdist = { url = "https://files.pythonhosted.org/packages/12/b6/7b3d16792fdf94f146bed92be90b4eb4563569eca91513c8609aebf0c167/zipp-3.22.0.tar.gz", hash = "sha256:dd2f28c3ce4bc67507bfd3781d21b7bb2be31103b51a4553ad7d90b84e57ace5", size = 25257 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/1a/7e4798e9339adc931158c9d69ecc34f5e6791489d469f5e50ec15e35f458/zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931", size = 9630 }, + { url = "https://files.pythonhosted.org/packages/ad/da/f64669af4cae46f17b90798a827519ce3737d31dbafad65d391e49643dc4/zipp-3.22.0-py3-none-any.whl", hash = "sha256:fe208f65f2aca48b81f9e6fd8cf7b8b32c26375266b009b413d45306b6148343", size = 9796 }, ] From 5816f8367cd5d6b07ee4b9074bacb131ed00aa35 Mon Sep 17 00:00:00 2001 From: Brian Michell Date: Thu, 26 Jun 2025 08:54:16 -0500 Subject: [PATCH 16/19] V1 schema review (#553) * Update from list to discrete values for coordinate metadata * Add docs to help users understand difference * Update docs and fix case sensitivity. * Linting * Add CoordianteMetadata to docs --- docs/data_models/version_1.md | 3 +++ src/mdio/schemas/v1/variable.py | 26 ++++++++++++++++++-------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/docs/data_models/version_1.md b/docs/data_models/version_1.md index caf0ed5c..2fd39753 100644 --- a/docs/data_models/version_1.md +++ b/docs/data_models/version_1.md @@ -45,6 +45,9 @@ .. autopydantic_model:: mdio.schemas.v1.variable.Coordinate :inherited-members: BaseModel +.. autopydantic_model:: mdio.schemas.v1.variable.CoordinateMetadata + :inherited-members: BaseModel + .. automodule:: mdio.schemas.metadata :members: UserAttributes diff --git a/src/mdio/schemas/v1/variable.py b/src/mdio/schemas/v1/variable.py index 519a89f4..93b59117 100644 --- a/src/mdio/schemas/v1/variable.py +++ b/src/mdio/schemas/v1/variable.py @@ -23,14 +23,23 @@ from mdio.schemas.v1.stats import StatisticsMetadata from mdio.schemas.v1.units import AllUnits +CoordinateMetadata = create_model( + "CoordinateMetadata", + **model_fields(AllUnits), + **model_fields(UserAttributes), + __base__=CamelCaseStrictModel, + __doc__="Reduced Metadata, perfect for simple Coordinates.", +) + class Coordinate(NamedArray): - """An MDIO coordinate array with metadata.""" + """A simple MDIO Coordinate array with metadata. - data_type: ScalarType = Field(..., description="Data type of coordinate.") - metadata: list[AllUnits | UserAttributes] | None = Field( - default=None, description="Coordinate metadata." - ) + For large or complex Coordinates, define a Variable instead. + """ + + data_type: ScalarType = Field(..., description="Data type of Coordinate.") + metadata: CoordinateMetadata | None = Field(default=None, description="Coordinate Metadata.") VariableMetadata = create_model( @@ -40,14 +49,15 @@ class Coordinate(NamedArray): **model_fields(StatisticsMetadata), **model_fields(UserAttributes), __base__=CamelCaseStrictModel, + __doc__="Complete Metadata for Variables and complex or large Coordinates.", ) class Variable(NamedArray): - """An MDIO variable that has coordinates and metadata.""" + """An MDIO Variable that has coordinates and metadata.""" coordinates: list[Coordinate] | list[str] | None = Field( default=None, - description="Coordinates of the MDIO variable dimensions.", + description="Coordinates of the MDIO Variable dimensions.", ) - metadata: VariableMetadata | None = Field(default=None, description="Variable metadata.") + metadata: VariableMetadata | None = Field(default=None, description="Variable Metadata.") From fe4af2bdab5219e2949d1cc28bec62091a226e24 Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Wed, 2 Jul 2025 10:16:01 -0500 Subject: [PATCH 17/19] [v1] Update dependencies to latest (#567) * Update dependencies to latest versions * Update linter type-checking code to 'TC' in pyproject.toml https://astral.sh/blog/ruff-v0.8.0#new-error-codes-for-flake8-type-checking-rules * Refactor: Move Zarr codec imports to top-level * disable safety in CI (temporary) * Refactor: Replace Zarr codec imports with numcodecs equivalents * Refactor: Remove unused numcodecs imports and related methods * pin zarr due to zarr 3.0.9 bug --- .github/workflows/tests.yml | 2 +- pyproject.toml | 52 +- src/mdio/schemas/compressors.py | 22 - uv.lock | 1985 ++++++++++++++----------------- 4 files changed, 928 insertions(+), 1133 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8d7c81fa..71ad8630 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,7 +13,7 @@ jobs: matrix: include: - { python: "3.13", os: "ubuntu-latest", session: "pre-commit" } - - { python: "3.13", os: "ubuntu-latest", session: "safety" } + # - { python: "3.13", os: "ubuntu-latest", session: "safety" } # - { python: "3.13", os: "ubuntu-latest", session: "mypy" } # - { python: "3.12", os: "ubuntu-latest", session: "mypy" } # - { python: "3.11", os: "ubuntu-latest", session: "mypy" } diff --git a/pyproject.toml b/pyproject.toml index 7e01894e..a9e14605 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,30 +23,30 @@ classifiers = [ ] dependencies = [ - "click (>=8.1.7,<9.0.0)", + "click (>=8.2.1,<9.0.0)", "click-params (>=0.5.0,<0.6.0)", - "dask (>=2024.12.0)", - "fsspec (>=2024.10.0)", - "pint>=0.24.3,<0.25", - "psutil (>=6.1.0,<7.0.0)", - "pydantic (>=2.8.2,<3.0.0)", - "pydantic-settings (>=2.4.0,<3.0.0)", - "rich (>=13.9.4,<14.0.0)", - "segy (>=0.4.0,<0.5.0)", - "tqdm (>=4.67.0,<5.0.0)", - "xarray>=2025.3.1", - "zarr (>=3.0.8,<4.0.0)", + "dask (>=2025.5.1)", + "fsspec (>=2025.5.1)", + "pint>=0.24.4,<0.25", + "psutil (>=7.0.0,<8.0.0)", + "pydantic (>=2.11.7,<3.0.0)", + "pydantic-settings (>=2.10.1,<3.0.0)", + "rich (>=14.0.0,<15.0.0)", + "segy (>=0.4.1.post2,<0.5.0)", + "tqdm (>=4.67.1,<5.0.0)", + "xarray>=2025.6.1", + "zarr (>=3.0.8,<3.0.9)", ] [project.optional-dependencies] cloud = [ - "s3fs == 2024.12.0", - "gcsfs (>=2024.10.0)", - "adlfs (>=2024.7.0)", + "s3fs == 2025.5.1", + "gcsfs (>=2025.5.1)", + "adlfs (>=2024.12.0)", ] distributed = [ - "distributed (>=2024.12.0)", - "bokeh (>=3.4.2,<4.0.0)", + "distributed (>=2025.5.1)", + "bokeh (>=3.7.3,<4.0.0)", ] lossy = ["zfpy (>=1.0.1,<2.0.0)"] @@ -60,17 +60,17 @@ mdio = "mdio.__main__:main" [dependency-groups] dev = [ - "ruff (>=0.11.8)", - "coverage[toml] (>=7.6.7,<8)", - "mypy (>=1.13.0,<2)", - "pre-commit (>=4.0.1,<5)", + "ruff (>=0.12.1)", + "coverage[toml] (>=7.9.1,<8)", + "mypy (>=1.16.1,<2)", + "pre-commit (>=4.2.0,<5)", "pre-commit-hooks (>=5.0.0,<6)", - "pytest (>=8.3.3,<9)", + "pytest (>=8.4.1,<9)", "pytest-dependency (>=0.6.0,<0.7)", - "safety (>=3.2.3,<4)", - "typeguard (>=4.4.1,<5)", +# "safety (>=3.5.2,<4)", # too tight pydantic and psutil dependency + "typeguard (>=4.4.4,<5)", "xdoctest[colors] (>=1.2.0,<2)", - "Pygments (>=2.18.0,<3)", + "Pygments (>=2.19.2,<3)", ] docs = [ @@ -116,7 +116,7 @@ select = [ "RET", # return "SIM", # simplify "TID", # tidy-imports - "TCH", # type-checking + "TC", # type-checking "ARG", # unused-arguments "PTH", # use-pathlib "TD", # todos diff --git a/src/mdio/schemas/compressors.py b/src/mdio/schemas/compressors.py index e17948da..2eb87f7a 100644 --- a/src/mdio/schemas/compressors.py +++ b/src/mdio/schemas/compressors.py @@ -53,17 +53,6 @@ class Blosc(CamelCaseStrictModel): description="The size of the block to be used for compression.", ) - def make_instance(self): # noqa: ANN201 - """Translate parameters to compressor kwargs..""" - from zarr.codecs import Blosc as _Blosc - - return _Blosc( - cname=self.algorithm, - clevel=self.level, - shuffle=self.shuffle, - blocksize=self.blocksize, - ) - zfp_mode_map = { "fixed_rate": 2, @@ -139,17 +128,6 @@ def check_requirements(self) -> ZFP: return self - def make_instance(self): # noqa: ANN201 - """Translate parameters to compressor kwargs..""" - from zarr.codecs import ZFPY as _ZFPY - - return _ZFPY( - mode=self.mode.int_code, - tolerance=self.tolerance, - rate=self.rate, - precision=self.precision, - ) - class CompressorModel(CamelCaseStrictModel): """Model representing compressor configuration.""" diff --git a/uv.lock b/uv.lock index de95c4e6..964a1c2d 100644 --- a/uv.lock +++ b/uv.lock @@ -26,7 +26,7 @@ wheels = [ [[package]] name = "aiobotocore" -version = "2.22.0" +version = "2.23.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, @@ -37,9 +37,9 @@ dependencies = [ { name = "python-dateutil" }, { name = "wrapt" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9c/4c/113c4f5611103bba8e5252805fbee7944f5d9541addba9a96b091c0c4308/aiobotocore-2.22.0.tar.gz", hash = "sha256:11091477266b75c2b5d28421c1f2bc9a87d175d0b8619cb830805e7a113a170b", size = 110322 } +sdist = { url = "https://files.pythonhosted.org/packages/9d/25/4b06ea1214ddf020a28df27dc7136ac9dfaf87929d51e6f6044dd350ed67/aiobotocore-2.23.0.tar.gz", hash = "sha256:0333931365a6c7053aee292fe6ef50c74690c4ae06bb019afdf706cb6f2f5e32", size = 115825 } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/8e/ffa5840cb7de19ada85bda1fae1ae22671a18992e9373f2e2df9db5389b5/aiobotocore-2.22.0-py3-none-any.whl", hash = "sha256:b4e6306f79df9d81daff1f9d63189a2dbee4b77ce3ab937304834e35eaaeeccf", size = 78930 }, + { url = "https://files.pythonhosted.org/packages/ea/43/ccf9b29669cdb09fd4bfc0a8effeb2973b22a0f3c3be4142d0b485975d11/aiobotocore-2.23.0-py3-none-any.whl", hash = "sha256:8202cebbf147804a083a02bc282fbfda873bfdd0065fd34b64784acb7757b66e", size = 84161 }, ] [[package]] @@ -53,7 +53,7 @@ wheels = [ [[package]] name = "aiohttp" -version = "3.12.2" +version = "3.12.13" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohappyeyeballs" }, @@ -64,59 +64,59 @@ dependencies = [ { name = "propcache" }, { name = "yarl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/a2/a946c4f5c54233c97788c2278ea50beaadf45211f452f932b36ce322f660/aiohttp-3.12.2.tar.gz", hash = "sha256:0018956472ee535d2cad761a5bb88eb4ad80f94cd86472cee26a244799f7c79f", size = 7780423 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/39/9866f5996a7db870464e1f153b9f6a3412167ee79293f138bad09de783cd/aiohttp-3.12.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:536a37af26ed50bd4f3cf7d989955e5a987e9343f1a55f5393e7950a6ac93fce", size = 701750 }, - { url = "https://files.pythonhosted.org/packages/81/eb/187fba5f1c210bed03c4e4fe50b6cc64d18c6776e6d17887b527ee2fb806/aiohttp-3.12.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6f8fbb48953238e7ba8ab9dee6757a4f6b72cd6242eb7fe1cb004b24f91effee", size = 474015 }, - { url = "https://files.pythonhosted.org/packages/c5/e5/8f203120a8a932739face58614f8c93912ccd26c0b18da3f476b7372158b/aiohttp-3.12.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74190229bd54bc3df7090f634b0b7fe53c45fb41aae5fbfae462093ced35c950", size = 462282 }, - { url = "https://files.pythonhosted.org/packages/7d/0f/9c33853f4f1c6c75a0f1b3e7b6d955f5883bd14a189232115e2e0c8633f2/aiohttp-3.12.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7af4737ab145fb1ac6e2db24ee206ee9e9f3abb1f7c6b74bd75c9ce0d36fe286", size = 1732474 }, - { url = "https://files.pythonhosted.org/packages/e6/72/2dee9dd29a6ce5abbfa5ee7b75db00ce9c213aaea588476464285a3aee57/aiohttp-3.12.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2711392a2afe1dcf4a93b05a94ee25efa966971fa0bf3944f2ce101da182ce91", size = 1681143 }, - { url = "https://files.pythonhosted.org/packages/fc/2d/4eb92b7e42f7efb8ab22d0eca89e73b96653d6fbfb9847435ad29dee385d/aiohttp-3.12.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5169898d17a2ac30e31ea814832ad4cf6bb652459a031af40ed56c9d05894c80", size = 1779934 }, - { url = "https://files.pythonhosted.org/packages/41/df/c9dc8dd89e40e469386cfb0adbdf63be04e52a85562bae271c1a863de5b0/aiohttp-3.12.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3a590566c5c139edfbeeb69de62c6868e6ef667322b0080489607acc39e92add", size = 1818982 }, - { url = "https://files.pythonhosted.org/packages/6f/b6/84fd20aca84651e373fd90187abe1daf7596ab5e79b6045b294496b73bea/aiohttp-3.12.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad4be1c1adb604591a607abb9c4474eedc6add6739656ee91a9daddf35f7f9fa", size = 1721441 }, - { url = "https://files.pythonhosted.org/packages/86/9c/412603ca6e3be2656bc3b662828087f8b3a21f82fe20f94219ba7769a6dd/aiohttp-3.12.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cf15667ecf20bfe545adb02882d895e10c8d5c821e46b1a62f22d5170c4803e", size = 1658517 }, - { url = "https://files.pythonhosted.org/packages/c1/70/d1735c170aebdc4eda456768bb8714529a90743fd1de1bff075e33292ee9/aiohttp-3.12.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:875df9e4ed4f24af643f4e35bf267be3cb25b9461d25da4a0d181877a2b401e4", size = 1706789 }, - { url = "https://files.pythonhosted.org/packages/61/80/c0f85511b8f315cab5a86615d155d9584cd5d6f1d48c94f92dc3dffd4a7f/aiohttp-3.12.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:722fe14a899ee049562417449a449dfc7c616fdb5409f8a0a2c459815473767f", size = 1701950 }, - { url = "https://files.pythonhosted.org/packages/5e/f5/95a835814bd34378ad18d05e3351e6bd1035263ec20480f69f3688fa04ec/aiohttp-3.12.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:59668d843c91bd22abc1f70674270ce38e1dad3020284cccecc60f492d6f88ae", size = 1682137 }, - { url = "https://files.pythonhosted.org/packages/89/35/ccf684cd9d343b1401be07f0c43793d8475fed2b2418e01f885bcdcd972b/aiohttp-3.12.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:64e48ed61d5c74b5a4a68fdb3fde664034e59788625ebf3fcae87fb5a2dbde7b", size = 1775737 }, - { url = "https://files.pythonhosted.org/packages/22/a8/0075064d24f4d4987ba8e73a67fc8c0c0075134abb087000316147d2bc77/aiohttp-3.12.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:7061bce1accdfce6e02c80ac10efcdfcae95718f97f77fc5fbe3273b16b8d4bf", size = 1796197 }, - { url = "https://files.pythonhosted.org/packages/4b/bc/de6c5969285b309a11582d0009cea97384f2cac9b2c88e3a35b642cd6d17/aiohttp-3.12.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ef392a613f53fc4c3e6ebba2c3b90729266139a3f534e7eba9bf04e2eac40287", size = 1709254 }, - { url = "https://files.pythonhosted.org/packages/c1/12/bf9ce81a2954b421cd6acb90a41777075baec3a3a21fb0dd10b483ed3652/aiohttp-3.12.2-cp311-cp311-win32.whl", hash = "sha256:e405ccdd3cada578e5bc4000b7d35b80a345c832089d23b04be30c0e7606fb80", size = 419267 }, - { url = "https://files.pythonhosted.org/packages/97/6c/db68994b49a2c50a4a8943ba3696f66906ab09d206243f91ea8ede7b7d87/aiohttp-3.12.2-cp311-cp311-win_amd64.whl", hash = "sha256:a84cf5db31efc14e811ef830288614bf40093befd445efe743dc015d01e6e92c", size = 443663 }, - { url = "https://files.pythonhosted.org/packages/84/25/17af725b3855ad54eb1cb8e45962b05856a7e4986b64fbc6158331d7b64e/aiohttp-3.12.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7679b2af5a1d43d8470672079baedc1a843e4f27a47b630fbe092833f9bc4e73", size = 692835 }, - { url = "https://files.pythonhosted.org/packages/cc/5d/770e9f17f0efeb1c40109535561ea7b0a3e9b654bd7853c27f3d62763086/aiohttp-3.12.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4d6941dd4d8f6dfd9292f391bc2e321c9583a9532b4e9b571b84f163bb3f8135", size = 467456 }, - { url = "https://files.pythonhosted.org/packages/d8/ef/48eda5cd949b8af818d892b5ddf07cb15f0cf133e14c4ac9734ff32ba0a6/aiohttp-3.12.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8345cea33295cc28945c8365ac44ba383ebb757a599b384d752347f40671e984", size = 460294 }, - { url = "https://files.pythonhosted.org/packages/94/1e/9724a45cb932b0c01c558493fac5f706a1a53740a77efc22c2f6764ce611/aiohttp-3.12.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8259a311666becf7049ae43c984208ac20eda5ea16aa5f26ea5d24b863f9afcd", size = 1707089 }, - { url = "https://files.pythonhosted.org/packages/8a/a1/3b267d691a79472e6a0d9909363c2dc6cad44e60deb99385ce41e7926b40/aiohttp-3.12.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7a6f09589cb5928ee793210806d35d69fffc78d46eca9acaa2d38cc30b3f194e", size = 1689737 }, - { url = "https://files.pythonhosted.org/packages/d9/71/f04d5c86cfa5227ec2a54dd72b8de5b1930eb5c9ea75bd1c987b463cbb36/aiohttp-3.12.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0c32972b485828f2b9326a95851520e9a92cdd97efe0a04ae62c7315e8d1098", size = 1744835 }, - { url = "https://files.pythonhosted.org/packages/eb/88/deab2324c7468d6405cf9bae287276edef14a00fd00d084b3010e194e8d9/aiohttp-3.12.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:851d226ecaf30ec7f12d9e9793081ecd0e66fea7f6345bcb5283b39e9ea79c71", size = 1790987 }, - { url = "https://files.pythonhosted.org/packages/17/49/0b7c3fb319c4a9c75c41ec066e578bfd3ee847a550ef579d9fb6d65af3fa/aiohttp-3.12.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7127241e62621eabe437cce249a4858e79896abcdafed4c6f7a90d14d449066", size = 1710431 }, - { url = "https://files.pythonhosted.org/packages/eb/23/3c366db7343384cd81b0ec9609019dc34e14d25b7099d9390cfa561bb49f/aiohttp-3.12.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bca43af1c77f83e88641e74d1bd24b6089bb518fa0e6be97805a048bdac6bbc3", size = 1626229 }, - { url = "https://files.pythonhosted.org/packages/99/3e/a6b7b55a38a6372b7e00f751778fc653cdd14770f1c20c5ed309f1b87768/aiohttp-3.12.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d913623c7e3be188fe5c718bce186e0bbc5977e74c12e4832d540c3637b9f47", size = 1687290 }, - { url = "https://files.pythonhosted.org/packages/3c/69/0542c4c125e40c47e26bab47d8aff50f831c5626a4d4ab9da7018ee2d15c/aiohttp-3.12.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b4924ca6bc74cb630e47edaf111f1d05e13dfe3c1e580c35277dc998965913d3", size = 1708743 }, - { url = "https://files.pythonhosted.org/packages/1d/0e/73a16e4008f78fa3538a1e564d0ecf026c7fd422f522e87af48337942f48/aiohttp-3.12.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a38e144942d4f0740dcb5be2ceb932cc45fc29e404fe64ffd5eef5bc62eafe39", size = 1649396 }, - { url = "https://files.pythonhosted.org/packages/98/23/0a9b1547260d554f2c484c2f5e9d3800eca31a387146e5e0a0cfb6bfe17e/aiohttp-3.12.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6c31782dae093a507b94792d9f32978bf154d051d5237fdedbb9e74d9464d5dd", size = 1728959 }, - { url = "https://files.pythonhosted.org/packages/31/d0/39b2b1111b81952015e7390ea07b404f417577e6ed4df1a683dc3d1a0a2f/aiohttp-3.12.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7f10d664b638f85acdeb7622f7b16773aaf7d67214a7c3b6075735f171d2f021", size = 1756933 }, - { url = "https://files.pythonhosted.org/packages/28/77/faf662e3b87e3d5a1ca3092c5cbeaa4349abdff3388bdc3c3c057302b380/aiohttp-3.12.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7181b4ebd70ad9731f4f7af03e3ed0ff003e49cefbf0b6846b5decb32abc30b7", size = 1716543 }, - { url = "https://files.pythonhosted.org/packages/d3/1a/c79bae467e39439d5ef044f121b280aa0398cb23ecd77ee49f8a1759dde7/aiohttp-3.12.2-cp312-cp312-win32.whl", hash = "sha256:d602fc26cb307993965e5f5dacb2aaa7fea4f01c6658250658bef51e48dd454e", size = 414002 }, - { url = "https://files.pythonhosted.org/packages/e2/dd/0d5f6aef062433cf88ea08ab2c8c3c1466e812311c9e0657370835ed27c9/aiohttp-3.12.2-cp312-cp312-win_amd64.whl", hash = "sha256:35df44dde19fcd146ed13e8847c70f8e138e91138f7615df2bd68b478ac04f99", size = 440104 }, - { url = "https://files.pythonhosted.org/packages/f9/ed/a341ddf8402cc4a177eb63a63d2aee2f177a94b1f2d53ef192e43e82760f/aiohttp-3.12.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e6dd24e72e7425b4eee49eeaa1a08742774f5a0c84041e80625aeba45812f92e", size = 687252 }, - { url = "https://files.pythonhosted.org/packages/e8/93/00e623a2c984d95a52e7f9e92d178828beb4a5d31b9231b0fda77fc13e98/aiohttp-3.12.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5293245b743d3e41fd4de631aed6018e0016488686ee70d3dbd9ac61cc040429", size = 464914 }, - { url = "https://files.pythonhosted.org/packages/5e/ad/4fea70b2d1994edf3c34220a41f0ac1263ee4b704343248f7d15fa8e3b8e/aiohttp-3.12.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b2c7bc896696ada3df4ffd787b80d08af53eb16658fd19623f469f89c5f95846", size = 457217 }, - { url = "https://files.pythonhosted.org/packages/fb/f1/f20c87b0baf096f2d36897fe4a9a0e703f32dbf7b3fcaae0a5a196f779dc/aiohttp-3.12.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e4991a7dcdd577a749429248321196dba6ade4315c6262e9b2ba9a3bb80e9cb", size = 1696029 }, - { url = "https://files.pythonhosted.org/packages/d9/4a/1b0507cfd73c1736e5cd607c7f16790747112c86e0c17860b1b635ad7d52/aiohttp-3.12.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:88f8d247c4b6cc75eb5ef1724998b3076f5f2f6b7d357560caa5b5da08228cb4", size = 1677295 }, - { url = "https://files.pythonhosted.org/packages/7d/ca/ffb5d548d6aa195797bebd5e3688821c40c2a6503363e5849d7114678a59/aiohttp-3.12.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e1f3968162f274ed8e97aad591da178fb04725a386a4852b1c0285f3a51390af", size = 1729363 }, - { url = "https://files.pythonhosted.org/packages/98/3e/e6cb54d8329b7c60b6678631c228339730632ea7c18dd6279e64ad134d52/aiohttp-3.12.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4de7a3a7e482f5832838047c1612c0c3d1f4309e3e2d4ea80cb1b7f5ab0c6bbe", size = 1778736 }, - { url = "https://files.pythonhosted.org/packages/2d/be/76db303c98159b6c0494fe4f14a6c57a28c81db9010d2d5d764219339f0a/aiohttp-3.12.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86ca0aa49854b195e314171756d06f81c1286541425a929950f7316d617cc3b1", size = 1701064 }, - { url = "https://files.pythonhosted.org/packages/c3/c1/d6d4abdeffaa9dee12b27c80919a1bda50aea22d5a1dc03c001a005b16ea/aiohttp-3.12.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bff129c6674f3a14c68a0f49337ebd8637440201cbd8af05df52cb2d7db0902", size = 1614772 }, - { url = "https://files.pythonhosted.org/packages/8c/69/da43fe30ef3323add2ac03b11cef91c50b648d544953732aeff9a47cdb5e/aiohttp-3.12.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:62179517ef8d0abc950ab7e6545e97142bef3f58007da12b9cff5260e8084fd1", size = 1667793 }, - { url = "https://files.pythonhosted.org/packages/8c/03/367badf467bd9708b2eaa5fc36689b9b2e43489b63d8508fddc508ceaace/aiohttp-3.12.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:48d743fbc8a88dffb2d2e96f17f9e2310aaa672bd2103b198d7613361affd1a3", size = 1699458 }, - { url = "https://files.pythonhosted.org/packages/d2/12/c7443b288263b4ab3d8c6329de0be8df2967445aa9731b738da7b34f04ca/aiohttp-3.12.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:385f01fe9be53a0466fb66504b00ab00ca7faa0a285186327509cbbe1386363f", size = 1642052 }, - { url = "https://files.pythonhosted.org/packages/4e/76/2be34ed27931ab1a4cdd40eba3ef2d71bf0eff9d6c0ac8793e92f20f3ac1/aiohttp-3.12.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:631f4da6b1d503f9df883ba86846fa0ff455eae60497fab5f1d21683b2a2784e", size = 1718187 }, - { url = "https://files.pythonhosted.org/packages/43/39/84d014db48122973171c3cfcf23a2c3ba765163ef8169d6b959d9440152b/aiohttp-3.12.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7e071f1371f38c15dad609bb57d698fe4614b1817e7808966c643336f5615655", size = 1751656 }, - { url = "https://files.pythonhosted.org/packages/27/b6/7b13d143352494e943ae3f89b5286dc4ed85f8d5487a09f3dd86efb16eb3/aiohttp-3.12.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:166d8ba47fca7667dd3169be8bd0fb9ffd0f19fd80f0d5291b1e36ab0f77d02c", size = 1700547 }, - { url = "https://files.pythonhosted.org/packages/42/19/1b42589a0f80f14b1bc81ccc5fb0f8c4398fbd03b5886d1307c7aadd8279/aiohttp-3.12.2-cp313-cp313-win32.whl", hash = "sha256:01ac3cc4a0c81f87ed72c614066bfdee15358c5c2cdf30048dd8823826cbc61e", size = 413024 }, - { url = "https://files.pythonhosted.org/packages/d0/d7/00abc34b16f1ea9dc8cedffe45c0f454157472480e5b44b6c15f175aa9c6/aiohttp-3.12.2-cp313-cp313-win_amd64.whl", hash = "sha256:cbf833ca90fda31ec505e80f58f8011c64030fb8e368bce0d60f1f9aae162389", size = 438964 }, +sdist = { url = "https://files.pythonhosted.org/packages/42/6e/ab88e7cb2a4058bed2f7870276454f85a7c56cd6da79349eb314fc7bbcaa/aiohttp-3.12.13.tar.gz", hash = "sha256:47e2da578528264a12e4e3dd8dd72a7289e5f812758fe086473fab037a10fcce", size = 7819160 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/65/5566b49553bf20ffed6041c665a5504fb047cefdef1b701407b8ce1a47c4/aiohttp-3.12.13-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7c229b1437aa2576b99384e4be668af1db84b31a45305d02f61f5497cfa6f60c", size = 709401 }, + { url = "https://files.pythonhosted.org/packages/14/b5/48e4cc61b54850bdfafa8fe0b641ab35ad53d8e5a65ab22b310e0902fa42/aiohttp-3.12.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:04076d8c63471e51e3689c93940775dc3d12d855c0c80d18ac5a1c68f0904358", size = 481669 }, + { url = "https://files.pythonhosted.org/packages/04/4f/e3f95c8b2a20a0437d51d41d5ccc4a02970d8ad59352efb43ea2841bd08e/aiohttp-3.12.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:55683615813ce3601640cfaa1041174dc956d28ba0511c8cbd75273eb0587014", size = 469933 }, + { url = "https://files.pythonhosted.org/packages/41/c9/c5269f3b6453b1cfbd2cfbb6a777d718c5f086a3727f576c51a468b03ae2/aiohttp-3.12.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:921bc91e602d7506d37643e77819cb0b840d4ebb5f8d6408423af3d3bf79a7b7", size = 1740128 }, + { url = "https://files.pythonhosted.org/packages/6f/49/a3f76caa62773d33d0cfaa842bdf5789a78749dbfe697df38ab1badff369/aiohttp-3.12.13-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e72d17fe0974ddeae8ed86db297e23dba39c7ac36d84acdbb53df2e18505a013", size = 1688796 }, + { url = "https://files.pythonhosted.org/packages/ad/e4/556fccc4576dc22bf18554b64cc873b1a3e5429a5bdb7bbef7f5d0bc7664/aiohttp-3.12.13-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0653d15587909a52e024a261943cf1c5bdc69acb71f411b0dd5966d065a51a47", size = 1787589 }, + { url = "https://files.pythonhosted.org/packages/b9/3d/d81b13ed48e1a46734f848e26d55a7391708421a80336e341d2aef3b6db2/aiohttp-3.12.13-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a77b48997c66722c65e157c06c74332cdf9c7ad00494b85ec43f324e5c5a9b9a", size = 1826635 }, + { url = "https://files.pythonhosted.org/packages/75/a5/472e25f347da88459188cdaadd1f108f6292f8a25e62d226e63f860486d1/aiohttp-3.12.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6946bae55fd36cfb8e4092c921075cde029c71c7cb571d72f1079d1e4e013bc", size = 1729095 }, + { url = "https://files.pythonhosted.org/packages/b9/fe/322a78b9ac1725bfc59dfc301a5342e73d817592828e4445bd8f4ff83489/aiohttp-3.12.13-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f95db8c8b219bcf294a53742c7bda49b80ceb9d577c8e7aa075612b7f39ffb7", size = 1666170 }, + { url = "https://files.pythonhosted.org/packages/7a/77/ec80912270e231d5e3839dbd6c065472b9920a159ec8a1895cf868c2708e/aiohttp-3.12.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:03d5eb3cfb4949ab4c74822fb3326cd9655c2b9fe22e4257e2100d44215b2e2b", size = 1714444 }, + { url = "https://files.pythonhosted.org/packages/21/b2/fb5aedbcb2b58d4180e58500e7c23ff8593258c27c089abfbcc7db65bd40/aiohttp-3.12.13-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6383dd0ffa15515283c26cbf41ac8e6705aab54b4cbb77bdb8935a713a89bee9", size = 1709604 }, + { url = "https://files.pythonhosted.org/packages/e3/15/a94c05f7c4dc8904f80b6001ad6e07e035c58a8ebfcc15e6b5d58500c858/aiohttp-3.12.13-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6548a411bc8219b45ba2577716493aa63b12803d1e5dc70508c539d0db8dbf5a", size = 1689786 }, + { url = "https://files.pythonhosted.org/packages/1d/fd/0d2e618388f7a7a4441eed578b626bda9ec6b5361cd2954cfc5ab39aa170/aiohttp-3.12.13-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:81b0fcbfe59a4ca41dc8f635c2a4a71e63f75168cc91026c61be665945739e2d", size = 1783389 }, + { url = "https://files.pythonhosted.org/packages/a6/6b/6986d0c75996ef7e64ff7619b9b7449b1d1cbbe05c6755e65d92f1784fe9/aiohttp-3.12.13-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:6a83797a0174e7995e5edce9dcecc517c642eb43bc3cba296d4512edf346eee2", size = 1803853 }, + { url = "https://files.pythonhosted.org/packages/21/65/cd37b38f6655d95dd07d496b6d2f3924f579c43fd64b0e32b547b9c24df5/aiohttp-3.12.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a5734d8469a5633a4e9ffdf9983ff7cdb512524645c7a3d4bc8a3de45b935ac3", size = 1716909 }, + { url = "https://files.pythonhosted.org/packages/fd/20/2de7012427dc116714c38ca564467f6143aec3d5eca3768848d62aa43e62/aiohttp-3.12.13-cp311-cp311-win32.whl", hash = "sha256:fef8d50dfa482925bb6b4c208b40d8e9fa54cecba923dc65b825a72eed9a5dbd", size = 427036 }, + { url = "https://files.pythonhosted.org/packages/f8/b6/98518bcc615ef998a64bef371178b9afc98ee25895b4f476c428fade2220/aiohttp-3.12.13-cp311-cp311-win_amd64.whl", hash = "sha256:9a27da9c3b5ed9d04c36ad2df65b38a96a37e9cfba6f1381b842d05d98e6afe9", size = 451427 }, + { url = "https://files.pythonhosted.org/packages/b4/6a/ce40e329788013cd190b1d62bbabb2b6a9673ecb6d836298635b939562ef/aiohttp-3.12.13-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0aa580cf80558557285b49452151b9c69f2fa3ad94c5c9e76e684719a8791b73", size = 700491 }, + { url = "https://files.pythonhosted.org/packages/28/d9/7150d5cf9163e05081f1c5c64a0cdf3c32d2f56e2ac95db2a28fe90eca69/aiohttp-3.12.13-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b103a7e414b57e6939cc4dece8e282cfb22043efd0c7298044f6594cf83ab347", size = 475104 }, + { url = "https://files.pythonhosted.org/packages/f8/91/d42ba4aed039ce6e449b3e2db694328756c152a79804e64e3da5bc19dffc/aiohttp-3.12.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78f64e748e9e741d2eccff9597d09fb3cd962210e5b5716047cbb646dc8fe06f", size = 467948 }, + { url = "https://files.pythonhosted.org/packages/99/3b/06f0a632775946981d7c4e5a865cddb6e8dfdbaed2f56f9ade7bb4a1039b/aiohttp-3.12.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c955989bf4c696d2ededc6b0ccb85a73623ae6e112439398935362bacfaaf6", size = 1714742 }, + { url = "https://files.pythonhosted.org/packages/92/a6/2552eebad9ec5e3581a89256276009e6a974dc0793632796af144df8b740/aiohttp-3.12.13-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d640191016763fab76072c87d8854a19e8e65d7a6fcfcbf017926bdbbb30a7e5", size = 1697393 }, + { url = "https://files.pythonhosted.org/packages/d8/9f/bd08fdde114b3fec7a021381b537b21920cdd2aa29ad48c5dffd8ee314f1/aiohttp-3.12.13-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4dc507481266b410dede95dd9f26c8d6f5a14315372cc48a6e43eac652237d9b", size = 1752486 }, + { url = "https://files.pythonhosted.org/packages/f7/e1/affdea8723aec5bd0959171b5490dccd9a91fcc505c8c26c9f1dca73474d/aiohttp-3.12.13-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8a94daa873465d518db073bd95d75f14302e0208a08e8c942b2f3f1c07288a75", size = 1798643 }, + { url = "https://files.pythonhosted.org/packages/f3/9d/666d856cc3af3a62ae86393baa3074cc1d591a47d89dc3bf16f6eb2c8d32/aiohttp-3.12.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f52420cde4ce0bb9425a375d95577fe082cb5721ecb61da3049b55189e4e6", size = 1718082 }, + { url = "https://files.pythonhosted.org/packages/f3/ce/3c185293843d17be063dada45efd2712bb6bf6370b37104b4eda908ffdbd/aiohttp-3.12.13-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f7df1f620ec40f1a7fbcb99ea17d7326ea6996715e78f71a1c9a021e31b96b8", size = 1633884 }, + { url = "https://files.pythonhosted.org/packages/3a/5b/f3413f4b238113be35dfd6794e65029250d4b93caa0974ca572217745bdb/aiohttp-3.12.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3062d4ad53b36e17796dce1c0d6da0ad27a015c321e663657ba1cc7659cfc710", size = 1694943 }, + { url = "https://files.pythonhosted.org/packages/82/c8/0e56e8bf12081faca85d14a6929ad5c1263c146149cd66caa7bc12255b6d/aiohttp-3.12.13-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:8605e22d2a86b8e51ffb5253d9045ea73683d92d47c0b1438e11a359bdb94462", size = 1716398 }, + { url = "https://files.pythonhosted.org/packages/ea/f3/33192b4761f7f9b2f7f4281365d925d663629cfaea093a64b658b94fc8e1/aiohttp-3.12.13-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:54fbbe6beafc2820de71ece2198458a711e224e116efefa01b7969f3e2b3ddae", size = 1657051 }, + { url = "https://files.pythonhosted.org/packages/5e/0b/26ddd91ca8f84c48452431cb4c5dd9523b13bc0c9766bda468e072ac9e29/aiohttp-3.12.13-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:050bd277dfc3768b606fd4eae79dd58ceda67d8b0b3c565656a89ae34525d15e", size = 1736611 }, + { url = "https://files.pythonhosted.org/packages/c3/8d/e04569aae853302648e2c138a680a6a2f02e374c5b6711732b29f1e129cc/aiohttp-3.12.13-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2637a60910b58f50f22379b6797466c3aa6ae28a6ab6404e09175ce4955b4e6a", size = 1764586 }, + { url = "https://files.pythonhosted.org/packages/ac/98/c193c1d1198571d988454e4ed75adc21c55af247a9fda08236602921c8c8/aiohttp-3.12.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e986067357550d1aaa21cfe9897fa19e680110551518a5a7cf44e6c5638cb8b5", size = 1724197 }, + { url = "https://files.pythonhosted.org/packages/e7/9e/07bb8aa11eec762c6b1ff61575eeeb2657df11ab3d3abfa528d95f3e9337/aiohttp-3.12.13-cp312-cp312-win32.whl", hash = "sha256:ac941a80aeea2aaae2875c9500861a3ba356f9ff17b9cb2dbfb5cbf91baaf5bf", size = 421771 }, + { url = "https://files.pythonhosted.org/packages/52/66/3ce877e56ec0813069cdc9607cd979575859c597b6fb9b4182c6d5f31886/aiohttp-3.12.13-cp312-cp312-win_amd64.whl", hash = "sha256:671f41e6146a749b6c81cb7fd07f5a8356d46febdaaaf07b0e774ff04830461e", size = 447869 }, + { url = "https://files.pythonhosted.org/packages/11/0f/db19abdf2d86aa1deec3c1e0e5ea46a587b97c07a16516b6438428b3a3f8/aiohttp-3.12.13-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d4a18e61f271127465bdb0e8ff36e8f02ac4a32a80d8927aa52371e93cd87938", size = 694910 }, + { url = "https://files.pythonhosted.org/packages/d5/81/0ab551e1b5d7f1339e2d6eb482456ccbe9025605b28eed2b1c0203aaaade/aiohttp-3.12.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:532542cb48691179455fab429cdb0d558b5e5290b033b87478f2aa6af5d20ace", size = 472566 }, + { url = "https://files.pythonhosted.org/packages/34/3f/6b7d336663337672d29b1f82d1f252ec1a040fe2d548f709d3f90fa2218a/aiohttp-3.12.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d7eea18b52f23c050ae9db5d01f3d264ab08f09e7356d6f68e3f3ac2de9dfabb", size = 464856 }, + { url = "https://files.pythonhosted.org/packages/26/7f/32ca0f170496aa2ab9b812630fac0c2372c531b797e1deb3deb4cea904bd/aiohttp-3.12.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad7c8e5c25f2a26842a7c239de3f7b6bfb92304593ef997c04ac49fb703ff4d7", size = 1703683 }, + { url = "https://files.pythonhosted.org/packages/ec/53/d5513624b33a811c0abea8461e30a732294112318276ce3dbf047dbd9d8b/aiohttp-3.12.13-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6af355b483e3fe9d7336d84539fef460120c2f6e50e06c658fe2907c69262d6b", size = 1684946 }, + { url = "https://files.pythonhosted.org/packages/37/72/4c237dd127827b0247dc138d3ebd49c2ded6114c6991bbe969058575f25f/aiohttp-3.12.13-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a95cf9f097498f35c88e3609f55bb47b28a5ef67f6888f4390b3d73e2bac6177", size = 1737017 }, + { url = "https://files.pythonhosted.org/packages/0d/67/8a7eb3afa01e9d0acc26e1ef847c1a9111f8b42b82955fcd9faeb84edeb4/aiohttp-3.12.13-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8ed8c38a1c584fe99a475a8f60eefc0b682ea413a84c6ce769bb19a7ff1c5ef", size = 1786390 }, + { url = "https://files.pythonhosted.org/packages/48/19/0377df97dd0176ad23cd8cad4fd4232cfeadcec6c1b7f036315305c98e3f/aiohttp-3.12.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0b9170d5d800126b5bc89d3053a2363406d6e327afb6afaeda2d19ee8bb103", size = 1708719 }, + { url = "https://files.pythonhosted.org/packages/61/97/ade1982a5c642b45f3622255173e40c3eed289c169f89d00eeac29a89906/aiohttp-3.12.13-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:372feeace612ef8eb41f05ae014a92121a512bd5067db8f25101dd88a8db11da", size = 1622424 }, + { url = "https://files.pythonhosted.org/packages/99/ab/00ad3eea004e1d07ccc406e44cfe2b8da5acb72f8c66aeeb11a096798868/aiohttp-3.12.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a946d3702f7965d81f7af7ea8fb03bb33fe53d311df48a46eeca17e9e0beed2d", size = 1675447 }, + { url = "https://files.pythonhosted.org/packages/3f/fe/74e5ce8b2ccaba445fe0087abc201bfd7259431d92ae608f684fcac5d143/aiohttp-3.12.13-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a0c4725fae86555bbb1d4082129e21de7264f4ab14baf735278c974785cd2041", size = 1707110 }, + { url = "https://files.pythonhosted.org/packages/ef/c4/39af17807f694f7a267bd8ab1fbacf16ad66740862192a6c8abac2bff813/aiohttp-3.12.13-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9b28ea2f708234f0a5c44eb6c7d9eb63a148ce3252ba0140d050b091b6e842d1", size = 1649706 }, + { url = "https://files.pythonhosted.org/packages/38/e8/f5a0a5f44f19f171d8477059aa5f28a158d7d57fe1a46c553e231f698435/aiohttp-3.12.13-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d4f5becd2a5791829f79608c6f3dc745388162376f310eb9c142c985f9441cc1", size = 1725839 }, + { url = "https://files.pythonhosted.org/packages/fd/ac/81acc594c7f529ef4419d3866913f628cd4fa9cab17f7bf410a5c3c04c53/aiohttp-3.12.13-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:60f2ce6b944e97649051d5f5cc0f439360690b73909230e107fd45a359d3e911", size = 1759311 }, + { url = "https://files.pythonhosted.org/packages/38/0d/aabe636bd25c6ab7b18825e5a97d40024da75152bec39aa6ac8b7a677630/aiohttp-3.12.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:69fc1909857401b67bf599c793f2183fbc4804717388b0b888f27f9929aa41f3", size = 1708202 }, + { url = "https://files.pythonhosted.org/packages/1f/ab/561ef2d8a223261683fb95a6283ad0d36cb66c87503f3a7dde7afe208bb2/aiohttp-3.12.13-cp313-cp313-win32.whl", hash = "sha256:7d7e68787a2046b0e44ba5587aa723ce05d711e3a3665b6b7545328ac8e3c0dd", size = 420794 }, + { url = "https://files.pythonhosted.org/packages/9d/47/b11d0089875a23bff0abd3edb5516bcd454db3fefab8604f5e4b07bd6210/aiohttp-3.12.13-cp313-cp313-win_amd64.whl", hash = "sha256:5a178390ca90419bfd41419a809688c368e63c86bd725e1186dd97f6b89c2706", size = 446735 }, ] [[package]] @@ -199,18 +199,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815 }, ] -[[package]] -name = "authlib" -version = "1.6.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cryptography" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a2/9d/b1e08d36899c12c8b894a44a5583ee157789f26fc4b176f8e4b6217b56e1/authlib-1.6.0.tar.gz", hash = "sha256:4367d32031b7af175ad3a323d571dc7257b7099d55978087ceae4a0d88cd3210", size = 158371 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/84/29/587c189bbab1ccc8c86a03a5d0e13873df916380ef1be461ebe6acebf48d/authlib-1.6.0-py2.py3-none-any.whl", hash = "sha256:91685589498f79e8655e8a8947431ad6288831d643f11c55c2143ffcc738048d", size = 239981 }, -] - [[package]] name = "azure-core" version = "1.34.0" @@ -315,16 +303,16 @@ wheels = [ [[package]] name = "botocore" -version = "1.37.3" +version = "1.38.27" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jmespath" }, { name = "python-dateutil" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/74/fb/b243ab806d2e1e6b8a475b731cc59a1f1e4709eded4884b988a27bbc996b/botocore-1.37.3.tar.gz", hash = "sha256:fe8403eb55a88faf9b0f9da6615e5bee7be056d75e17af66c3c8f0a3b0648da4", size = 13574648 } +sdist = { url = "https://files.pythonhosted.org/packages/36/5e/67899214ad57f7f26af5bd776ac5eb583dc4ecf5c1e52e2cbfdc200e487a/botocore-1.38.27.tar.gz", hash = "sha256:9788f7efe974328a38cbade64cc0b1e67d27944b899f88cb786ae362973133b6", size = 13919963 } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/54/772118f15b5990173aa5264946cc8c9ff70c8f02d72ee6d63167a985188c/botocore-1.37.3-py3-none-any.whl", hash = "sha256:d01bd3bf4c80e61fa88d636ad9f5c9f60a551d71549b481386c6b4efe0bb2b2e", size = 13342066 }, + { url = "https://files.pythonhosted.org/packages/7e/83/a753562020b69fa90cebc39e8af2c753b24dcdc74bee8355ee3f6cefdf34/botocore-1.38.27-py3-none-any.whl", hash = "sha256:a785d5e9a5eda88ad6ab9ed8b87d1f2ac409d0226bba6ff801c55359e94d91a8", size = 13580545 }, ] [[package]] @@ -338,11 +326,11 @@ wheels = [ [[package]] name = "certifi" -version = "2025.4.26" +version = "2025.6.15" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705 } +sdist = { url = "https://files.pythonhosted.org/packages/73/f7/f14b46d4bcd21092d7d3ccef689615220d8a08fb25e564b65d20738e672e/certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b", size = 158753 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618 }, + { url = "https://files.pythonhosted.org/packages/84/ae/320161bd181fc06471eed047ecce67b693fd7515b16d495d8932db763426/certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057", size = 157650 }, ] [[package]] @@ -559,56 +547,56 @@ wheels = [ [[package]] name = "coverage" -version = "7.8.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ba/07/998afa4a0ecdf9b1981ae05415dad2d4e7716e1b1f00abbd91691ac09ac9/coverage-7.8.2.tar.gz", hash = "sha256:a886d531373a1f6ff9fad2a2ba4a045b68467b779ae729ee0b3b10ac20033b27", size = 812759 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/4d/1ff618ee9f134d0de5cc1661582c21a65e06823f41caf801aadf18811a8e/coverage-7.8.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b99058eef42e6a8dcd135afb068b3d53aff3921ce699e127602efff9956457a9", size = 211692 }, - { url = "https://files.pythonhosted.org/packages/96/fa/c3c1b476de96f2bc7a8ca01a9f1fcb51c01c6b60a9d2c3e66194b2bdb4af/coverage-7.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5feb7f2c3e6ea94d3b877def0270dff0947b8d8c04cfa34a17be0a4dc1836879", size = 212115 }, - { url = "https://files.pythonhosted.org/packages/f7/c2/5414c5a1b286c0f3881ae5adb49be1854ac5b7e99011501f81c8c1453065/coverage-7.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:670a13249b957bb9050fab12d86acef7bf8f6a879b9d1a883799276e0d4c674a", size = 244740 }, - { url = "https://files.pythonhosted.org/packages/cd/46/1ae01912dfb06a642ef3dd9cf38ed4996fda8fe884dab8952da616f81a2b/coverage-7.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0bdc8bf760459a4a4187b452213e04d039990211f98644c7292adf1e471162b5", size = 242429 }, - { url = "https://files.pythonhosted.org/packages/06/58/38c676aec594bfe2a87c7683942e5a30224791d8df99bcc8439fde140377/coverage-7.8.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07a989c867986c2a75f158f03fdb413128aad29aca9d4dbce5fc755672d96f11", size = 244218 }, - { url = "https://files.pythonhosted.org/packages/80/0c/95b1023e881ce45006d9abc250f76c6cdab7134a1c182d9713878dfefcb2/coverage-7.8.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2db10dedeb619a771ef0e2949ccba7b75e33905de959c2643a4607bef2f3fb3a", size = 243865 }, - { url = "https://files.pythonhosted.org/packages/57/37/0ae95989285a39e0839c959fe854a3ae46c06610439350d1ab860bf020ac/coverage-7.8.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e6ea7dba4e92926b7b5f0990634b78ea02f208d04af520c73a7c876d5a8d36cb", size = 242038 }, - { url = "https://files.pythonhosted.org/packages/4d/82/40e55f7c0eb5e97cc62cbd9d0746fd24e8caf57be5a408b87529416e0c70/coverage-7.8.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ef2f22795a7aca99fc3c84393a55a53dd18ab8c93fb431004e4d8f0774150f54", size = 242567 }, - { url = "https://files.pythonhosted.org/packages/f9/35/66a51adc273433a253989f0d9cc7aa6bcdb4855382cf0858200afe578861/coverage-7.8.2-cp311-cp311-win32.whl", hash = "sha256:641988828bc18a6368fe72355df5f1703e44411adbe49bba5644b941ce6f2e3a", size = 214194 }, - { url = "https://files.pythonhosted.org/packages/f6/8f/a543121f9f5f150eae092b08428cb4e6b6d2d134152c3357b77659d2a605/coverage-7.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:8ab4a51cb39dc1933ba627e0875046d150e88478dbe22ce145a68393e9652975", size = 215109 }, - { url = "https://files.pythonhosted.org/packages/77/65/6cc84b68d4f35186463cd7ab1da1169e9abb59870c0f6a57ea6aba95f861/coverage-7.8.2-cp311-cp311-win_arm64.whl", hash = "sha256:8966a821e2083c74d88cca5b7dcccc0a3a888a596a04c0b9668a891de3a0cc53", size = 213521 }, - { url = "https://files.pythonhosted.org/packages/8d/2a/1da1ada2e3044fcd4a3254fb3576e160b8fe5b36d705c8a31f793423f763/coverage-7.8.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e2f6fe3654468d061942591aef56686131335b7a8325684eda85dacdf311356c", size = 211876 }, - { url = "https://files.pythonhosted.org/packages/70/e9/3d715ffd5b6b17a8be80cd14a8917a002530a99943cc1939ad5bb2aa74b9/coverage-7.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76090fab50610798cc05241bf83b603477c40ee87acd358b66196ab0ca44ffa1", size = 212130 }, - { url = "https://files.pythonhosted.org/packages/a0/02/fdce62bb3c21649abfd91fbdcf041fb99be0d728ff00f3f9d54d97ed683e/coverage-7.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bd0a0a5054be160777a7920b731a0570284db5142abaaf81bcbb282b8d99279", size = 246176 }, - { url = "https://files.pythonhosted.org/packages/a7/52/decbbed61e03b6ffe85cd0fea360a5e04a5a98a7423f292aae62423b8557/coverage-7.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da23ce9a3d356d0affe9c7036030b5c8f14556bd970c9b224f9c8205505e3b99", size = 243068 }, - { url = "https://files.pythonhosted.org/packages/38/6c/d0e9c0cce18faef79a52778219a3c6ee8e336437da8eddd4ab3dbd8fadff/coverage-7.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9392773cffeb8d7e042a7b15b82a414011e9d2b5fdbbd3f7e6a6b17d5e21b20", size = 245328 }, - { url = "https://files.pythonhosted.org/packages/f0/70/f703b553a2f6b6c70568c7e398ed0789d47f953d67fbba36a327714a7bca/coverage-7.8.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:876cbfd0b09ce09d81585d266c07a32657beb3eaec896f39484b631555be0fe2", size = 245099 }, - { url = "https://files.pythonhosted.org/packages/ec/fb/4cbb370dedae78460c3aacbdad9d249e853f3bc4ce5ff0e02b1983d03044/coverage-7.8.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3da9b771c98977a13fbc3830f6caa85cae6c9c83911d24cb2d218e9394259c57", size = 243314 }, - { url = "https://files.pythonhosted.org/packages/39/9f/1afbb2cb9c8699b8bc38afdce00a3b4644904e6a38c7bf9005386c9305ec/coverage-7.8.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a990f6510b3292686713bfef26d0049cd63b9c7bb17e0864f133cbfd2e6167f", size = 244489 }, - { url = "https://files.pythonhosted.org/packages/79/fa/f3e7ec7d220bff14aba7a4786ae47043770cbdceeea1803083059c878837/coverage-7.8.2-cp312-cp312-win32.whl", hash = "sha256:bf8111cddd0f2b54d34e96613e7fbdd59a673f0cf5574b61134ae75b6f5a33b8", size = 214366 }, - { url = "https://files.pythonhosted.org/packages/54/aa/9cbeade19b7e8e853e7ffc261df885d66bf3a782c71cba06c17df271f9e6/coverage-7.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:86a323a275e9e44cdf228af9b71c5030861d4d2610886ab920d9945672a81223", size = 215165 }, - { url = "https://files.pythonhosted.org/packages/c4/73/e2528bf1237d2448f882bbebaec5c3500ef07301816c5c63464b9da4d88a/coverage-7.8.2-cp312-cp312-win_arm64.whl", hash = "sha256:820157de3a589e992689ffcda8639fbabb313b323d26388d02e154164c57b07f", size = 213548 }, - { url = "https://files.pythonhosted.org/packages/1a/93/eb6400a745ad3b265bac36e8077fdffcf0268bdbbb6c02b7220b624c9b31/coverage-7.8.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ea561010914ec1c26ab4188aef8b1567272ef6de096312716f90e5baa79ef8ca", size = 211898 }, - { url = "https://files.pythonhosted.org/packages/1b/7c/bdbf113f92683024406a1cd226a199e4200a2001fc85d6a6e7e299e60253/coverage-7.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cb86337a4fcdd0e598ff2caeb513ac604d2f3da6d53df2c8e368e07ee38e277d", size = 212171 }, - { url = "https://files.pythonhosted.org/packages/91/22/594513f9541a6b88eb0dba4d5da7d71596dadef6b17a12dc2c0e859818a9/coverage-7.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26a4636ddb666971345541b59899e969f3b301143dd86b0ddbb570bd591f1e85", size = 245564 }, - { url = "https://files.pythonhosted.org/packages/1f/f4/2860fd6abeebd9f2efcfe0fd376226938f22afc80c1943f363cd3c28421f/coverage-7.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5040536cf9b13fb033f76bcb5e1e5cb3b57c4807fef37db9e0ed129c6a094257", size = 242719 }, - { url = "https://files.pythonhosted.org/packages/89/60/f5f50f61b6332451520e6cdc2401700c48310c64bc2dd34027a47d6ab4ca/coverage-7.8.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc67994df9bcd7e0150a47ef41278b9e0a0ea187caba72414b71dc590b99a108", size = 244634 }, - { url = "https://files.pythonhosted.org/packages/3b/70/7f4e919039ab7d944276c446b603eea84da29ebcf20984fb1fdf6e602028/coverage-7.8.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e6c86888fd076d9e0fe848af0a2142bf606044dc5ceee0aa9eddb56e26895a0", size = 244824 }, - { url = "https://files.pythonhosted.org/packages/26/45/36297a4c0cea4de2b2c442fe32f60c3991056c59cdc3cdd5346fbb995c97/coverage-7.8.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:684ca9f58119b8e26bef860db33524ae0365601492e86ba0b71d513f525e7050", size = 242872 }, - { url = "https://files.pythonhosted.org/packages/a4/71/e041f1b9420f7b786b1367fa2a375703889ef376e0d48de9f5723fb35f11/coverage-7.8.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8165584ddedb49204c4e18da083913bdf6a982bfb558632a79bdaadcdafd0d48", size = 244179 }, - { url = "https://files.pythonhosted.org/packages/bd/db/3c2bf49bdc9de76acf2491fc03130c4ffc51469ce2f6889d2640eb563d77/coverage-7.8.2-cp313-cp313-win32.whl", hash = "sha256:34759ee2c65362163699cc917bdb2a54114dd06d19bab860725f94ef45a3d9b7", size = 214393 }, - { url = "https://files.pythonhosted.org/packages/c6/dc/947e75d47ebbb4b02d8babb1fad4ad381410d5bc9da7cfca80b7565ef401/coverage-7.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:2f9bc608fbafaee40eb60a9a53dbfb90f53cc66d3d32c2849dc27cf5638a21e3", size = 215194 }, - { url = "https://files.pythonhosted.org/packages/90/31/a980f7df8a37eaf0dc60f932507fda9656b3a03f0abf188474a0ea188d6d/coverage-7.8.2-cp313-cp313-win_arm64.whl", hash = "sha256:9fe449ee461a3b0c7105690419d0b0aba1232f4ff6d120a9e241e58a556733f7", size = 213580 }, - { url = "https://files.pythonhosted.org/packages/8a/6a/25a37dd90f6c95f59355629417ebcb74e1c34e38bb1eddf6ca9b38b0fc53/coverage-7.8.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8369a7c8ef66bded2b6484053749ff220dbf83cba84f3398c84c51a6f748a008", size = 212734 }, - { url = "https://files.pythonhosted.org/packages/36/8b/3a728b3118988725f40950931abb09cd7f43b3c740f4640a59f1db60e372/coverage-7.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:159b81df53a5fcbc7d45dae3adad554fdbde9829a994e15227b3f9d816d00b36", size = 212959 }, - { url = "https://files.pythonhosted.org/packages/53/3c/212d94e6add3a3c3f412d664aee452045ca17a066def8b9421673e9482c4/coverage-7.8.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6fcbbd35a96192d042c691c9e0c49ef54bd7ed865846a3c9d624c30bb67ce46", size = 257024 }, - { url = "https://files.pythonhosted.org/packages/a4/40/afc03f0883b1e51bbe804707aae62e29c4e8c8bbc365c75e3e4ddeee9ead/coverage-7.8.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05364b9cc82f138cc86128dc4e2e1251c2981a2218bfcd556fe6b0fbaa3501be", size = 252867 }, - { url = "https://files.pythonhosted.org/packages/18/a2/3699190e927b9439c6ded4998941a3c1d6fa99e14cb28d8536729537e307/coverage-7.8.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46d532db4e5ff3979ce47d18e2fe8ecad283eeb7367726da0e5ef88e4fe64740", size = 255096 }, - { url = "https://files.pythonhosted.org/packages/b4/06/16e3598b9466456b718eb3e789457d1a5b8bfb22e23b6e8bbc307df5daf0/coverage-7.8.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4000a31c34932e7e4fa0381a3d6deb43dc0c8f458e3e7ea6502e6238e10be625", size = 256276 }, - { url = "https://files.pythonhosted.org/packages/a7/d5/4b5a120d5d0223050a53d2783c049c311eea1709fa9de12d1c358e18b707/coverage-7.8.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:43ff5033d657cd51f83015c3b7a443287250dc14e69910577c3e03bd2e06f27b", size = 254478 }, - { url = "https://files.pythonhosted.org/packages/ba/85/f9ecdb910ecdb282b121bfcaa32fa8ee8cbd7699f83330ee13ff9bbf1a85/coverage-7.8.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94316e13f0981cbbba132c1f9f365cac1d26716aaac130866ca812006f662199", size = 255255 }, - { url = "https://files.pythonhosted.org/packages/50/63/2d624ac7d7ccd4ebbd3c6a9eba9d7fc4491a1226071360d59dd84928ccb2/coverage-7.8.2-cp313-cp313t-win32.whl", hash = "sha256:3f5673888d3676d0a745c3d0e16da338c5eea300cb1f4ada9c872981265e76d8", size = 215109 }, - { url = "https://files.pythonhosted.org/packages/22/5e/7053b71462e970e869111c1853afd642212568a350eba796deefdfbd0770/coverage-7.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:2c08b05ee8d7861e45dc5a2cc4195c8c66dca5ac613144eb6ebeaff2d502e73d", size = 216268 }, - { url = "https://files.pythonhosted.org/packages/07/69/afa41aa34147655543dbe96994f8a246daf94b361ccf5edfd5df62ce066a/coverage-7.8.2-cp313-cp313t-win_arm64.whl", hash = "sha256:1e1448bb72b387755e1ff3ef1268a06617afd94188164960dba8d0245a46004b", size = 214071 }, - { url = "https://files.pythonhosted.org/packages/69/2f/572b29496d8234e4a7773200dd835a0d32d9e171f2d974f3fe04a9dbc271/coverage-7.8.2-pp39.pp310.pp311-none-any.whl", hash = "sha256:ec455eedf3ba0bbdf8f5a570012617eb305c63cb9f03428d39bf544cb2b94837", size = 203636 }, - { url = "https://files.pythonhosted.org/packages/a0/1a/0b9c32220ad694d66062f571cc5cedfa9997b64a591e8a500bb63de1bd40/coverage-7.8.2-py3-none-any.whl", hash = "sha256:726f32ee3713f7359696331a18daf0c3b3a70bb0ae71141b9d3c52be7c595e32", size = 203623 }, +version = "7.9.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/e0/98670a80884f64578f0c22cd70c5e81a6e07b08167721c7487b4d70a7ca0/coverage-7.9.1.tar.gz", hash = "sha256:6cf43c78c4282708a28e466316935ec7489a9c487518a77fa68f716c67909cec", size = 813650 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/34/fa69372a07d0903a78ac103422ad34db72281c9fc625eba94ac1185da66f/coverage-7.9.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:95c765060e65c692da2d2f51a9499c5e9f5cf5453aeaf1420e3fc847cc060582", size = 212146 }, + { url = "https://files.pythonhosted.org/packages/27/f0/da1894915d2767f093f081c42afeba18e760f12fdd7a2f4acbe00564d767/coverage-7.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ba383dc6afd5ec5b7a0d0c23d38895db0e15bcba7fb0fa8901f245267ac30d86", size = 212536 }, + { url = "https://files.pythonhosted.org/packages/10/d5/3fc33b06e41e390f88eef111226a24e4504d216ab8e5d1a7089aa5a3c87a/coverage-7.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37ae0383f13cbdcf1e5e7014489b0d71cc0106458878ccde52e8a12ced4298ed", size = 245092 }, + { url = "https://files.pythonhosted.org/packages/0a/39/7aa901c14977aba637b78e95800edf77f29f5a380d29768c5b66f258305b/coverage-7.9.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69aa417a030bf11ec46149636314c24c8d60fadb12fc0ee8f10fda0d918c879d", size = 242806 }, + { url = "https://files.pythonhosted.org/packages/43/fc/30e5cfeaf560b1fc1989227adedc11019ce4bb7cce59d65db34fe0c2d963/coverage-7.9.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a4be2a28656afe279b34d4f91c3e26eccf2f85500d4a4ff0b1f8b54bf807338", size = 244610 }, + { url = "https://files.pythonhosted.org/packages/bf/15/cca62b13f39650bc87b2b92bb03bce7f0e79dd0bf2c7529e9fc7393e4d60/coverage-7.9.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:382e7ddd5289f140259b610e5f5c58f713d025cb2f66d0eb17e68d0a94278875", size = 244257 }, + { url = "https://files.pythonhosted.org/packages/cd/1a/c0f2abe92c29e1464dbd0ff9d56cb6c88ae2b9e21becdb38bea31fcb2f6c/coverage-7.9.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e5532482344186c543c37bfad0ee6069e8ae4fc38d073b8bc836fc8f03c9e250", size = 242309 }, + { url = "https://files.pythonhosted.org/packages/57/8d/c6fd70848bd9bf88fa90df2af5636589a8126d2170f3aade21ed53f2b67a/coverage-7.9.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a39d18b3f50cc121d0ce3838d32d58bd1d15dab89c910358ebefc3665712256c", size = 242898 }, + { url = "https://files.pythonhosted.org/packages/c2/9e/6ca46c7bff4675f09a66fe2797cd1ad6a24f14c9c7c3b3ebe0470a6e30b8/coverage-7.9.1-cp311-cp311-win32.whl", hash = "sha256:dd24bd8d77c98557880def750782df77ab2b6885a18483dc8588792247174b32", size = 214561 }, + { url = "https://files.pythonhosted.org/packages/a1/30/166978c6302010742dabcdc425fa0f938fa5a800908e39aff37a7a876a13/coverage-7.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:6b55ad10a35a21b8015eabddc9ba31eb590f54adc9cd39bcf09ff5349fd52125", size = 215493 }, + { url = "https://files.pythonhosted.org/packages/60/07/a6d2342cd80a5be9f0eeab115bc5ebb3917b4a64c2953534273cf9bc7ae6/coverage-7.9.1-cp311-cp311-win_arm64.whl", hash = "sha256:6ad935f0016be24c0e97fc8c40c465f9c4b85cbbe6eac48934c0dc4d2568321e", size = 213869 }, + { url = "https://files.pythonhosted.org/packages/68/d9/7f66eb0a8f2fce222de7bdc2046ec41cb31fe33fb55a330037833fb88afc/coverage-7.9.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a8de12b4b87c20de895f10567639c0797b621b22897b0af3ce4b4e204a743626", size = 212336 }, + { url = "https://files.pythonhosted.org/packages/20/20/e07cb920ef3addf20f052ee3d54906e57407b6aeee3227a9c91eea38a665/coverage-7.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5add197315a054e92cee1b5f686a2bcba60c4c3e66ee3de77ace6c867bdee7cb", size = 212571 }, + { url = "https://files.pythonhosted.org/packages/78/f8/96f155de7e9e248ca9c8ff1a40a521d944ba48bec65352da9be2463745bf/coverage-7.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:600a1d4106fe66f41e5d0136dfbc68fe7200a5cbe85610ddf094f8f22e1b0300", size = 246377 }, + { url = "https://files.pythonhosted.org/packages/3e/cf/1d783bd05b7bca5c10ded5f946068909372e94615a4416afadfe3f63492d/coverage-7.9.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a876e4c3e5a2a1715a6608906aa5a2e0475b9c0f68343c2ada98110512ab1d8", size = 243394 }, + { url = "https://files.pythonhosted.org/packages/02/dd/e7b20afd35b0a1abea09fb3998e1abc9f9bd953bee548f235aebd2b11401/coverage-7.9.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81f34346dd63010453922c8e628a52ea2d2ccd73cb2487f7700ac531b247c8a5", size = 245586 }, + { url = "https://files.pythonhosted.org/packages/4e/38/b30b0006fea9d617d1cb8e43b1bc9a96af11eff42b87eb8c716cf4d37469/coverage-7.9.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:888f8eee13f2377ce86d44f338968eedec3291876b0b8a7289247ba52cb984cd", size = 245396 }, + { url = "https://files.pythonhosted.org/packages/31/e4/4d8ec1dc826e16791f3daf1b50943e8e7e1eb70e8efa7abb03936ff48418/coverage-7.9.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9969ef1e69b8c8e1e70d591f91bbc37fc9a3621e447525d1602801a24ceda898", size = 243577 }, + { url = "https://files.pythonhosted.org/packages/25/f4/b0e96c5c38e6e40ef465c4bc7f138863e2909c00e54a331da335faf0d81a/coverage-7.9.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:60c458224331ee3f1a5b472773e4a085cc27a86a0b48205409d364272d67140d", size = 244809 }, + { url = "https://files.pythonhosted.org/packages/8a/65/27e0a1fa5e2e5079bdca4521be2f5dabf516f94e29a0defed35ac2382eb2/coverage-7.9.1-cp312-cp312-win32.whl", hash = "sha256:5f646a99a8c2b3ff4c6a6e081f78fad0dde275cd59f8f49dc4eab2e394332e74", size = 214724 }, + { url = "https://files.pythonhosted.org/packages/9b/a8/d5b128633fd1a5e0401a4160d02fa15986209a9e47717174f99dc2f7166d/coverage-7.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:30f445f85c353090b83e552dcbbdad3ec84c7967e108c3ae54556ca69955563e", size = 215535 }, + { url = "https://files.pythonhosted.org/packages/a3/37/84bba9d2afabc3611f3e4325ee2c6a47cd449b580d4a606b240ce5a6f9bf/coverage-7.9.1-cp312-cp312-win_arm64.whl", hash = "sha256:af41da5dca398d3474129c58cb2b106a5d93bbb196be0d307ac82311ca234342", size = 213904 }, + { url = "https://files.pythonhosted.org/packages/d0/a7/a027970c991ca90f24e968999f7d509332daf6b8c3533d68633930aaebac/coverage-7.9.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:31324f18d5969feef7344a932c32428a2d1a3e50b15a6404e97cba1cc9b2c631", size = 212358 }, + { url = "https://files.pythonhosted.org/packages/f2/48/6aaed3651ae83b231556750280682528fea8ac7f1232834573472d83e459/coverage-7.9.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0c804506d624e8a20fb3108764c52e0eef664e29d21692afa375e0dd98dc384f", size = 212620 }, + { url = "https://files.pythonhosted.org/packages/6c/2a/f4b613f3b44d8b9f144847c89151992b2b6b79cbc506dee89ad0c35f209d/coverage-7.9.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef64c27bc40189f36fcc50c3fb8f16ccda73b6a0b80d9bd6e6ce4cffcd810bbd", size = 245788 }, + { url = "https://files.pythonhosted.org/packages/04/d2/de4fdc03af5e4e035ef420ed26a703c6ad3d7a07aff2e959eb84e3b19ca8/coverage-7.9.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4fe2348cc6ec372e25adec0219ee2334a68d2f5222e0cba9c0d613394e12d86", size = 243001 }, + { url = "https://files.pythonhosted.org/packages/f5/e8/eed18aa5583b0423ab7f04e34659e51101135c41cd1dcb33ac1d7013a6d6/coverage-7.9.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34ed2186fe52fcc24d4561041979a0dec69adae7bce2ae8d1c49eace13e55c43", size = 244985 }, + { url = "https://files.pythonhosted.org/packages/17/f8/ae9e5cce8885728c934eaa58ebfa8281d488ef2afa81c3dbc8ee9e6d80db/coverage-7.9.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:25308bd3d00d5eedd5ae7d4357161f4df743e3c0240fa773ee1b0f75e6c7c0f1", size = 245152 }, + { url = "https://files.pythonhosted.org/packages/5a/c8/272c01ae792bb3af9b30fac14d71d63371db227980682836ec388e2c57c0/coverage-7.9.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73e9439310f65d55a5a1e0564b48e34f5369bee943d72c88378f2d576f5a5751", size = 243123 }, + { url = "https://files.pythonhosted.org/packages/8c/d0/2819a1e3086143c094ab446e3bdf07138527a7b88cb235c488e78150ba7a/coverage-7.9.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:37ab6be0859141b53aa89412a82454b482c81cf750de4f29223d52268a86de67", size = 244506 }, + { url = "https://files.pythonhosted.org/packages/8b/4e/9f6117b89152df7b6112f65c7a4ed1f2f5ec8e60c4be8f351d91e7acc848/coverage-7.9.1-cp313-cp313-win32.whl", hash = "sha256:64bdd969456e2d02a8b08aa047a92d269c7ac1f47e0c977675d550c9a0863643", size = 214766 }, + { url = "https://files.pythonhosted.org/packages/27/0f/4b59f7c93b52c2c4ce7387c5a4e135e49891bb3b7408dcc98fe44033bbe0/coverage-7.9.1-cp313-cp313-win_amd64.whl", hash = "sha256:be9e3f68ca9edb897c2184ad0eee815c635565dbe7a0e7e814dc1f7cbab92c0a", size = 215568 }, + { url = "https://files.pythonhosted.org/packages/09/1e/9679826336f8c67b9c39a359352882b24a8a7aee48d4c9cad08d38d7510f/coverage-7.9.1-cp313-cp313-win_arm64.whl", hash = "sha256:1c503289ffef1d5105d91bbb4d62cbe4b14bec4d13ca225f9c73cde9bb46207d", size = 213939 }, + { url = "https://files.pythonhosted.org/packages/bb/5b/5c6b4e7a407359a2e3b27bf9c8a7b658127975def62077d441b93a30dbe8/coverage-7.9.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0b3496922cb5f4215bf5caaef4cf12364a26b0be82e9ed6d050f3352cf2d7ef0", size = 213079 }, + { url = "https://files.pythonhosted.org/packages/a2/22/1e2e07279fd2fd97ae26c01cc2186e2258850e9ec125ae87184225662e89/coverage-7.9.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9565c3ab1c93310569ec0d86b017f128f027cab0b622b7af288696d7ed43a16d", size = 213299 }, + { url = "https://files.pythonhosted.org/packages/14/c0/4c5125a4b69d66b8c85986d3321520f628756cf524af810baab0790c7647/coverage-7.9.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2241ad5dbf79ae1d9c08fe52b36d03ca122fb9ac6bca0f34439e99f8327ac89f", size = 256535 }, + { url = "https://files.pythonhosted.org/packages/81/8b/e36a04889dda9960be4263e95e777e7b46f1bb4fc32202612c130a20c4da/coverage-7.9.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bb5838701ca68b10ebc0937dbd0eb81974bac54447c55cd58dea5bca8451029", size = 252756 }, + { url = "https://files.pythonhosted.org/packages/98/82/be04eff8083a09a4622ecd0e1f31a2c563dbea3ed848069e7b0445043a70/coverage-7.9.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b30a25f814591a8c0c5372c11ac8967f669b97444c47fd794926e175c4047ece", size = 254912 }, + { url = "https://files.pythonhosted.org/packages/0f/25/c26610a2c7f018508a5ab958e5b3202d900422cf7cdca7670b6b8ca4e8df/coverage-7.9.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2d04b16a6062516df97969f1ae7efd0de9c31eb6ebdceaa0d213b21c0ca1a683", size = 256144 }, + { url = "https://files.pythonhosted.org/packages/c5/8b/fb9425c4684066c79e863f1e6e7ecebb49e3a64d9f7f7860ef1688c56f4a/coverage-7.9.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7931b9e249edefb07cd6ae10c702788546341d5fe44db5b6108a25da4dca513f", size = 254257 }, + { url = "https://files.pythonhosted.org/packages/93/df/27b882f54157fc1131e0e215b0da3b8d608d9b8ef79a045280118a8f98fe/coverage-7.9.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:52e92b01041151bf607ee858e5a56c62d4b70f4dac85b8c8cb7fb8a351ab2c10", size = 255094 }, + { url = "https://files.pythonhosted.org/packages/41/5f/cad1c3dbed8b3ee9e16fa832afe365b4e3eeab1fb6edb65ebbf745eabc92/coverage-7.9.1-cp313-cp313t-win32.whl", hash = "sha256:684e2110ed84fd1ca5f40e89aa44adf1729dc85444004111aa01866507adf363", size = 215437 }, + { url = "https://files.pythonhosted.org/packages/99/4d/fad293bf081c0e43331ca745ff63673badc20afea2104b431cdd8c278b4c/coverage-7.9.1-cp313-cp313t-win_amd64.whl", hash = "sha256:437c576979e4db840539674e68c84b3cda82bc824dd138d56bead1435f1cb5d7", size = 216605 }, + { url = "https://files.pythonhosted.org/packages/1f/56/4ee027d5965fc7fc126d7ec1187529cc30cc7d740846e1ecb5e92d31b224/coverage-7.9.1-cp313-cp313t-win_arm64.whl", hash = "sha256:18a0912944d70aaf5f399e350445738a1a20b50fbea788f640751c2ed9208b6c", size = 214392 }, + { url = "https://files.pythonhosted.org/packages/3e/e5/c723545c3fd3204ebde3b4cc4b927dce709d3b6dc577754bb57f63ca4a4a/coverage-7.9.1-pp39.pp310.pp311-none-any.whl", hash = "sha256:db0f04118d1db74db6c9e1cb1898532c7dcc220f1d2718f058601f7c3f499514", size = 204009 }, + { url = "https://files.pythonhosted.org/packages/08/b8/7ddd1e8ba9701dea08ce22029917140e6f66a859427406579fd8d0ca7274/coverage-7.9.1-py3-none-any.whl", hash = "sha256:66b974b145aa189516b6bf2d8423e888b742517d37872f6ee4c5be0073bd9a3c", size = 204000 }, ] [package.optional-dependencies] @@ -670,43 +658,43 @@ wheels = [ [[package]] name = "cryptography" -version = "45.0.3" +version = "45.0.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/13/1f/9fa001e74a1993a9cadd2333bb889e50c66327b8594ac538ab8a04f915b7/cryptography-45.0.3.tar.gz", hash = "sha256:ec21313dd335c51d7877baf2972569f40a4291b76a0ce51391523ae358d05899", size = 744738 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/82/b2/2345dc595998caa6f68adf84e8f8b50d18e9fc4638d32b22ea8daedd4b7a/cryptography-45.0.3-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:7573d9eebaeceeb55285205dbbb8753ac1e962af3d9640791d12b36864065e71", size = 7056239 }, - { url = "https://files.pythonhosted.org/packages/71/3d/ac361649a0bfffc105e2298b720d8b862330a767dab27c06adc2ddbef96a/cryptography-45.0.3-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d377dde61c5d67eb4311eace661c3efda46c62113ff56bf05e2d679e02aebb5b", size = 4205541 }, - { url = "https://files.pythonhosted.org/packages/70/3e/c02a043750494d5c445f769e9c9f67e550d65060e0bfce52d91c1362693d/cryptography-45.0.3-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fae1e637f527750811588e4582988932c222f8251f7b7ea93739acb624e1487f", size = 4433275 }, - { url = "https://files.pythonhosted.org/packages/40/7a/9af0bfd48784e80eef3eb6fd6fde96fe706b4fc156751ce1b2b965dada70/cryptography-45.0.3-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ca932e11218bcc9ef812aa497cdf669484870ecbcf2d99b765d6c27a86000942", size = 4209173 }, - { url = "https://files.pythonhosted.org/packages/31/5f/d6f8753c8708912df52e67969e80ef70b8e8897306cd9eb8b98201f8c184/cryptography-45.0.3-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af3f92b1dc25621f5fad065288a44ac790c5798e986a34d393ab27d2b27fcff9", size = 3898150 }, - { url = "https://files.pythonhosted.org/packages/8b/50/f256ab79c671fb066e47336706dc398c3b1e125f952e07d54ce82cf4011a/cryptography-45.0.3-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2f8f8f0b73b885ddd7f3d8c2b2234a7d3ba49002b0223f58cfde1bedd9563c56", size = 4466473 }, - { url = "https://files.pythonhosted.org/packages/62/e7/312428336bb2df0848d0768ab5a062e11a32d18139447a76dfc19ada8eed/cryptography-45.0.3-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9cc80ce69032ffa528b5e16d217fa4d8d4bb7d6ba8659c1b4d74a1b0f4235fca", size = 4211890 }, - { url = "https://files.pythonhosted.org/packages/e7/53/8a130e22c1e432b3c14896ec5eb7ac01fb53c6737e1d705df7e0efb647c6/cryptography-45.0.3-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:c824c9281cb628015bfc3c59335163d4ca0540d49de4582d6c2637312907e4b1", size = 4466300 }, - { url = "https://files.pythonhosted.org/packages/ba/75/6bb6579688ef805fd16a053005fce93944cdade465fc92ef32bbc5c40681/cryptography-45.0.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5833bb4355cb377ebd880457663a972cd044e7f49585aee39245c0d592904578", size = 4332483 }, - { url = "https://files.pythonhosted.org/packages/2f/11/2538f4e1ce05c6c4f81f43c1ef2bd6de7ae5e24ee284460ff6c77e42ca77/cryptography-45.0.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:9bb5bf55dcb69f7067d80354d0a348368da907345a2c448b0babc4215ccd3497", size = 4573714 }, - { url = "https://files.pythonhosted.org/packages/f5/bb/e86e9cf07f73a98d84a4084e8fd420b0e82330a901d9cac8149f994c3417/cryptography-45.0.3-cp311-abi3-win32.whl", hash = "sha256:3ad69eeb92a9de9421e1f6685e85a10fbcfb75c833b42cc9bc2ba9fb00da4710", size = 2934752 }, - { url = "https://files.pythonhosted.org/packages/c7/75/063bc9ddc3d1c73e959054f1fc091b79572e716ef74d6caaa56e945b4af9/cryptography-45.0.3-cp311-abi3-win_amd64.whl", hash = "sha256:97787952246a77d77934d41b62fb1b6f3581d83f71b44796a4158d93b8f5c490", size = 3412465 }, - { url = "https://files.pythonhosted.org/packages/71/9b/04ead6015229a9396890d7654ee35ef630860fb42dc9ff9ec27f72157952/cryptography-45.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:c92519d242703b675ccefd0f0562eb45e74d438e001f8ab52d628e885751fb06", size = 7031892 }, - { url = "https://files.pythonhosted.org/packages/46/c7/c7d05d0e133a09fc677b8a87953815c522697bdf025e5cac13ba419e7240/cryptography-45.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5edcb90da1843df85292ef3a313513766a78fbbb83f584a5a58fb001a5a9d57", size = 4196181 }, - { url = "https://files.pythonhosted.org/packages/08/7a/6ad3aa796b18a683657cef930a986fac0045417e2dc428fd336cfc45ba52/cryptography-45.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38deed72285c7ed699864f964a3f4cf11ab3fb38e8d39cfcd96710cd2b5bb716", size = 4423370 }, - { url = "https://files.pythonhosted.org/packages/4f/58/ec1461bfcb393525f597ac6a10a63938d18775b7803324072974b41a926b/cryptography-45.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5555365a50efe1f486eed6ac7062c33b97ccef409f5970a0b6f205a7cfab59c8", size = 4197839 }, - { url = "https://files.pythonhosted.org/packages/d4/3d/5185b117c32ad4f40846f579369a80e710d6146c2baa8ce09d01612750db/cryptography-45.0.3-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9e4253ed8f5948a3589b3caee7ad9a5bf218ffd16869c516535325fece163dcc", size = 3886324 }, - { url = "https://files.pythonhosted.org/packages/67/85/caba91a57d291a2ad46e74016d1f83ac294f08128b26e2a81e9b4f2d2555/cryptography-45.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cfd84777b4b6684955ce86156cfb5e08d75e80dc2585e10d69e47f014f0a5342", size = 4450447 }, - { url = "https://files.pythonhosted.org/packages/ae/d1/164e3c9d559133a38279215c712b8ba38e77735d3412f37711b9f8f6f7e0/cryptography-45.0.3-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:a2b56de3417fd5f48773ad8e91abaa700b678dc7fe1e0c757e1ae340779acf7b", size = 4200576 }, - { url = "https://files.pythonhosted.org/packages/71/7a/e002d5ce624ed46dfc32abe1deff32190f3ac47ede911789ee936f5a4255/cryptography-45.0.3-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:57a6500d459e8035e813bd8b51b671977fb149a8c95ed814989da682314d0782", size = 4450308 }, - { url = "https://files.pythonhosted.org/packages/87/ad/3fbff9c28cf09b0a71e98af57d74f3662dea4a174b12acc493de00ea3f28/cryptography-45.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f22af3c78abfbc7cbcdf2c55d23c3e022e1a462ee2481011d518c7fb9c9f3d65", size = 4325125 }, - { url = "https://files.pythonhosted.org/packages/f5/b4/51417d0cc01802304c1984d76e9592f15e4801abd44ef7ba657060520bf0/cryptography-45.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:232954730c362638544758a8160c4ee1b832dc011d2c41a306ad8f7cccc5bb0b", size = 4560038 }, - { url = "https://files.pythonhosted.org/packages/80/38/d572f6482d45789a7202fb87d052deb7a7b136bf17473ebff33536727a2c/cryptography-45.0.3-cp37-abi3-win32.whl", hash = "sha256:cb6ab89421bc90e0422aca911c69044c2912fc3debb19bb3c1bfe28ee3dff6ab", size = 2924070 }, - { url = "https://files.pythonhosted.org/packages/91/5a/61f39c0ff4443651cc64e626fa97ad3099249152039952be8f344d6b0c86/cryptography-45.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:d54ae41e6bd70ea23707843021c778f151ca258081586f0cfa31d936ae43d1b2", size = 3395005 }, - { url = "https://files.pythonhosted.org/packages/e7/d4/58a246342093a66af8935d6aa59f790cbb4731adae3937b538d054bdc2f9/cryptography-45.0.3-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:edd6d51869beb7f0d472e902ef231a9b7689508e83880ea16ca3311a00bf5ce7", size = 3589802 }, - { url = "https://files.pythonhosted.org/packages/96/61/751ebea58c87b5be533c429f01996050a72c7283b59eee250275746632ea/cryptography-45.0.3-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:555e5e2d3a53b4fabeca32835878b2818b3f23966a4efb0d566689777c5a12c8", size = 4146964 }, - { url = "https://files.pythonhosted.org/packages/8d/01/28c90601b199964de383da0b740b5156f5d71a1da25e7194fdf793d373ef/cryptography-45.0.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:25286aacb947286620a31f78f2ed1a32cded7be5d8b729ba3fb2c988457639e4", size = 4388103 }, - { url = "https://files.pythonhosted.org/packages/3d/ec/cd892180b9e42897446ef35c62442f5b8b039c3d63a05f618aa87ec9ebb5/cryptography-45.0.3-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:050ce5209d5072472971e6efbfc8ec5a8f9a841de5a4db0ebd9c2e392cb81972", size = 4150031 }, - { url = "https://files.pythonhosted.org/packages/db/d4/22628c2dedd99289960a682439c6d3aa248dff5215123ead94ac2d82f3f5/cryptography-45.0.3-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:dc10ec1e9f21f33420cc05214989544727e776286c1c16697178978327b95c9c", size = 4387389 }, - { url = "https://files.pythonhosted.org/packages/39/ec/ba3961abbf8ecb79a3586a4ff0ee08c9d7a9938b4312fb2ae9b63f48a8ba/cryptography-45.0.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:9eda14f049d7f09c2e8fb411dda17dd6b16a3c76a1de5e249188a32aeb92de19", size = 3337432 }, +sdist = { url = "https://files.pythonhosted.org/packages/fe/c8/a2a376a8711c1e11708b9c9972e0c3223f5fc682552c82d8db844393d6ce/cryptography-45.0.4.tar.gz", hash = "sha256:7405ade85c83c37682c8fe65554759800a4a8c54b2d96e0f8ad114d31b808d57", size = 744890 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/1c/92637793de053832523b410dbe016d3f5c11b41d0cf6eef8787aabb51d41/cryptography-45.0.4-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:425a9a6ac2823ee6e46a76a21a4e8342d8fa5c01e08b823c1f19a8b74f096069", size = 7055712 }, + { url = "https://files.pythonhosted.org/packages/ba/14/93b69f2af9ba832ad6618a03f8a034a5851dc9a3314336a3d71c252467e1/cryptography-45.0.4-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:680806cf63baa0039b920f4976f5f31b10e772de42f16310a6839d9f21a26b0d", size = 4205335 }, + { url = "https://files.pythonhosted.org/packages/67/30/fae1000228634bf0b647fca80403db5ca9e3933b91dd060570689f0bd0f7/cryptography-45.0.4-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4ca0f52170e821bc8da6fc0cc565b7bb8ff8d90d36b5e9fdd68e8a86bdf72036", size = 4431487 }, + { url = "https://files.pythonhosted.org/packages/6d/5a/7dffcf8cdf0cb3c2430de7404b327e3db64735747d641fc492539978caeb/cryptography-45.0.4-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f3fe7a5ae34d5a414957cc7f457e2b92076e72938423ac64d215722f6cf49a9e", size = 4208922 }, + { url = "https://files.pythonhosted.org/packages/c6/f3/528729726eb6c3060fa3637253430547fbaaea95ab0535ea41baa4a6fbd8/cryptography-45.0.4-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:25eb4d4d3e54595dc8adebc6bbd5623588991d86591a78c2548ffb64797341e2", size = 3900433 }, + { url = "https://files.pythonhosted.org/packages/d9/4a/67ba2e40f619e04d83c32f7e1d484c1538c0800a17c56a22ff07d092ccc1/cryptography-45.0.4-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:ce1678a2ccbe696cf3af15a75bb72ee008d7ff183c9228592ede9db467e64f1b", size = 4464163 }, + { url = "https://files.pythonhosted.org/packages/7e/9a/b4d5aa83661483ac372464809c4b49b5022dbfe36b12fe9e323ca8512420/cryptography-45.0.4-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:49fe9155ab32721b9122975e168a6760d8ce4cffe423bcd7ca269ba41b5dfac1", size = 4208687 }, + { url = "https://files.pythonhosted.org/packages/db/b7/a84bdcd19d9c02ec5807f2ec2d1456fd8451592c5ee353816c09250e3561/cryptography-45.0.4-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:2882338b2a6e0bd337052e8b9007ced85c637da19ef9ecaf437744495c8c2999", size = 4463623 }, + { url = "https://files.pythonhosted.org/packages/d8/84/69707d502d4d905021cac3fb59a316344e9f078b1da7fb43ecde5e10840a/cryptography-45.0.4-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:23b9c3ea30c3ed4db59e7b9619272e94891f8a3a5591d0b656a7582631ccf750", size = 4332447 }, + { url = "https://files.pythonhosted.org/packages/f3/ee/d4f2ab688e057e90ded24384e34838086a9b09963389a5ba6854b5876598/cryptography-45.0.4-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b0a97c927497e3bc36b33987abb99bf17a9a175a19af38a892dc4bbb844d7ee2", size = 4572830 }, + { url = "https://files.pythonhosted.org/packages/70/d4/994773a261d7ff98034f72c0e8251fe2755eac45e2265db4c866c1c6829c/cryptography-45.0.4-cp311-abi3-win32.whl", hash = "sha256:e00a6c10a5c53979d6242f123c0a97cff9f3abed7f064fc412c36dc521b5f257", size = 2932769 }, + { url = "https://files.pythonhosted.org/packages/5a/42/c80bd0b67e9b769b364963b5252b17778a397cefdd36fa9aa4a5f34c599a/cryptography-45.0.4-cp311-abi3-win_amd64.whl", hash = "sha256:817ee05c6c9f7a69a16200f0c90ab26d23a87701e2a284bd15156783e46dbcc8", size = 3410441 }, + { url = "https://files.pythonhosted.org/packages/ce/0b/2488c89f3a30bc821c9d96eeacfcab6ff3accc08a9601ba03339c0fd05e5/cryptography-45.0.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:964bcc28d867e0f5491a564b7debb3ffdd8717928d315d12e0d7defa9e43b723", size = 7031836 }, + { url = "https://files.pythonhosted.org/packages/fe/51/8c584ed426093aac257462ae62d26ad61ef1cbf5b58d8b67e6e13c39960e/cryptography-45.0.4-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6a5bf57554e80f75a7db3d4b1dacaa2764611ae166ab42ea9a72bcdb5d577637", size = 4195746 }, + { url = "https://files.pythonhosted.org/packages/5c/7d/4b0ca4d7af95a704eef2f8f80a8199ed236aaf185d55385ae1d1610c03c2/cryptography-45.0.4-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:46cf7088bf91bdc9b26f9c55636492c1cce3e7aaf8041bbf0243f5e5325cfb2d", size = 4424456 }, + { url = "https://files.pythonhosted.org/packages/1d/45/5fabacbc6e76ff056f84d9f60eeac18819badf0cefc1b6612ee03d4ab678/cryptography-45.0.4-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7bedbe4cc930fa4b100fc845ea1ea5788fcd7ae9562e669989c11618ae8d76ee", size = 4198495 }, + { url = "https://files.pythonhosted.org/packages/55/b7/ffc9945b290eb0a5d4dab9b7636706e3b5b92f14ee5d9d4449409d010d54/cryptography-45.0.4-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:eaa3e28ea2235b33220b949c5a0d6cf79baa80eab2eb5607ca8ab7525331b9ff", size = 3885540 }, + { url = "https://files.pythonhosted.org/packages/7f/e3/57b010282346980475e77d414080acdcb3dab9a0be63071efc2041a2c6bd/cryptography-45.0.4-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:7ef2dde4fa9408475038fc9aadfc1fb2676b174e68356359632e980c661ec8f6", size = 4452052 }, + { url = "https://files.pythonhosted.org/packages/37/e6/ddc4ac2558bf2ef517a358df26f45bc774a99bf4653e7ee34b5e749c03e3/cryptography-45.0.4-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:6a3511ae33f09094185d111160fd192c67aa0a2a8d19b54d36e4c78f651dc5ad", size = 4198024 }, + { url = "https://files.pythonhosted.org/packages/3a/c0/85fa358ddb063ec588aed4a6ea1df57dc3e3bc1712d87c8fa162d02a65fc/cryptography-45.0.4-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:06509dc70dd71fa56eaa138336244e2fbaf2ac164fc9b5e66828fccfd2b680d6", size = 4451442 }, + { url = "https://files.pythonhosted.org/packages/33/67/362d6ec1492596e73da24e669a7fbbaeb1c428d6bf49a29f7a12acffd5dc/cryptography-45.0.4-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5f31e6b0a5a253f6aa49be67279be4a7e5a4ef259a9f33c69f7d1b1191939872", size = 4325038 }, + { url = "https://files.pythonhosted.org/packages/53/75/82a14bf047a96a1b13ebb47fb9811c4f73096cfa2e2b17c86879687f9027/cryptography-45.0.4-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:944e9ccf67a9594137f942d5b52c8d238b1b4e46c7a0c2891b7ae6e01e7c80a4", size = 4560964 }, + { url = "https://files.pythonhosted.org/packages/cd/37/1a3cba4c5a468ebf9b95523a5ef5651244693dc712001e276682c278fc00/cryptography-45.0.4-cp37-abi3-win32.whl", hash = "sha256:c22fe01e53dc65edd1945a2e6f0015e887f84ced233acecb64b4daadb32f5c97", size = 2924557 }, + { url = "https://files.pythonhosted.org/packages/2a/4b/3256759723b7e66380397d958ca07c59cfc3fb5c794fb5516758afd05d41/cryptography-45.0.4-cp37-abi3-win_amd64.whl", hash = "sha256:627ba1bc94f6adf0b0a2e35d87020285ead22d9f648c7e75bb64f367375f3b22", size = 3395508 }, + { url = "https://files.pythonhosted.org/packages/ea/ba/cf442ae99ef363855ed84b39e0fb3c106ac66b7a7703f3c9c9cfe05412cb/cryptography-45.0.4-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4828190fb6c4bcb6ebc6331f01fe66ae838bb3bd58e753b59d4b22eb444b996c", size = 3590512 }, + { url = "https://files.pythonhosted.org/packages/28/9a/a7d5bb87d149eb99a5abdc69a41e4e47b8001d767e5f403f78bfaafc7aa7/cryptography-45.0.4-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:03dbff8411206713185b8cebe31bc5c0eb544799a50c09035733716b386e61a4", size = 4146899 }, + { url = "https://files.pythonhosted.org/packages/17/11/9361c2c71c42cc5c465cf294c8030e72fb0c87752bacbd7a3675245e3db3/cryptography-45.0.4-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51dfbd4d26172d31150d84c19bbe06c68ea4b7f11bbc7b3a5e146b367c311349", size = 4388900 }, + { url = "https://files.pythonhosted.org/packages/c0/76/f95b83359012ee0e670da3e41c164a0c256aeedd81886f878911581d852f/cryptography-45.0.4-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:0339a692de47084969500ee455e42c58e449461e0ec845a34a6a9b9bf7df7fb8", size = 4146422 }, + { url = "https://files.pythonhosted.org/packages/09/ad/5429fcc4def93e577a5407988f89cf15305e64920203d4ac14601a9dc876/cryptography-45.0.4-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:0cf13c77d710131d33e63626bd55ae7c0efb701ebdc2b3a7952b9b23a0412862", size = 4388475 }, + { url = "https://files.pythonhosted.org/packages/99/49/0ab9774f64555a1b50102757811508f5ace451cf5dc0a2d074a4b9deca6a/cryptography-45.0.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:bbc505d1dc469ac12a0a064214879eac6294038d6b24ae9f71faae1448a9608d", size = 3337594 }, ] [[package]] @@ -826,18 +814,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0c/d5/c5db1ea3394c6e1732fb3286b3bd878b59507a8f77d32a2cebda7d7b7cd4/donfig-0.8.1.post1-py3-none-any.whl", hash = "sha256:2a3175ce74a06109ff9307d90a230f81215cbac9a751f4d1c6194644b8204f9d", size = 21592 }, ] -[[package]] -name = "dparse" -version = "0.6.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "packaging" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/29/ee/96c65e17222b973f0d3d0aa9bad6a59104ca1b0eb5b659c25c2900fccd85/dparse-0.6.4.tar.gz", hash = "sha256:90b29c39e3edc36c6284c82c4132648eaf28a01863eb3c231c2512196132201a", size = 27912 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/56/26/035d1c308882514a1e6ddca27f9d3e570d67a0e293e7b4d910a70c8fe32b/dparse-0.6.4-py3-none-any.whl", hash = "sha256:fbab4d50d54d0e739fbb4dedfc3d92771003a5b9aa8545ca7a7045e3b174af57", size = 11925 }, -] - [[package]] name = "executing" version = "2.2.0" @@ -858,11 +834,11 @@ wheels = [ [[package]] name = "filelock" -version = "3.16.1" +version = "3.18.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9d/db/3ef5bb276dae18d6ec2124224403d1d67bccdbefc17af4cc8f553e341ab1/filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435", size = 18037 } +sdist = { url = "https://files.pythonhosted.org/packages/0a/10/c23352565a6544bdc5353e0b15fc1c563352101f30e24bf500207a54df9a/filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2", size = 18075 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/f8/feced7779d755758a52d1f6635d990b8d98dc0a29fa568bbe0625f18fdf3/filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0", size = 16163 }, + { url = "https://files.pythonhosted.org/packages/4d/36/2a115987e2d8c300a974597416d9de88f2444426de9571f4b59b2cca3acc/filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de", size = 16215 }, ] [[package]] @@ -891,88 +867,88 @@ wheels = [ [[package]] name = "frozenlist" -version = "1.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/f4/d744cba2da59b5c1d88823cf9e8a6c74e4659e2b27604ed973be2a0bf5ab/frozenlist-1.6.0.tar.gz", hash = "sha256:b99655c32c1c8e06d111e7f41c06c29a5318cb1835df23a45518e02a47c63b68", size = 42831 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/53/b5/bc883b5296ec902115c00be161da93bf661199c465ec4c483feec6ea4c32/frozenlist-1.6.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae8337990e7a45683548ffb2fee1af2f1ed08169284cd829cdd9a7fa7470530d", size = 160912 }, - { url = "https://files.pythonhosted.org/packages/6f/93/51b058b563d0704b39c56baa222828043aafcac17fd3734bec5dbeb619b1/frozenlist-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8c952f69dd524558694818a461855f35d36cc7f5c0adddce37e962c85d06eac0", size = 124315 }, - { url = "https://files.pythonhosted.org/packages/c9/e0/46cd35219428d350558b874d595e132d1c17a9471a1bd0d01d518a261e7c/frozenlist-1.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8f5fef13136c4e2dee91bfb9a44e236fff78fc2cd9f838eddfc470c3d7d90afe", size = 122230 }, - { url = "https://files.pythonhosted.org/packages/d1/0f/7ad2ce928ad06d6dd26a61812b959ded573d3e9d0ee6109d96c2be7172e9/frozenlist-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:716bbba09611b4663ecbb7cd022f640759af8259e12a6ca939c0a6acd49eedba", size = 314842 }, - { url = "https://files.pythonhosted.org/packages/34/76/98cbbd8a20a5c3359a2004ae5e5b216af84a150ccbad67c8f8f30fb2ea91/frozenlist-1.6.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7b8c4dc422c1a3ffc550b465090e53b0bf4839047f3e436a34172ac67c45d595", size = 304919 }, - { url = "https://files.pythonhosted.org/packages/9a/fa/258e771ce3a44348c05e6b01dffc2bc67603fba95761458c238cd09a2c77/frozenlist-1.6.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b11534872256e1666116f6587a1592ef395a98b54476addb5e8d352925cb5d4a", size = 324074 }, - { url = "https://files.pythonhosted.org/packages/d5/a4/047d861fd8c538210e12b208c0479912273f991356b6bdee7ea8356b07c9/frozenlist-1.6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c6eceb88aaf7221f75be6ab498dc622a151f5f88d536661af3ffc486245a626", size = 321292 }, - { url = "https://files.pythonhosted.org/packages/c0/25/cfec8af758b4525676cabd36efcaf7102c1348a776c0d1ad046b8a7cdc65/frozenlist-1.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62c828a5b195570eb4b37369fcbbd58e96c905768d53a44d13044355647838ff", size = 301569 }, - { url = "https://files.pythonhosted.org/packages/87/2f/0c819372fa9f0c07b153124bf58683b8d0ca7bb73ea5ccde9b9ef1745beb/frozenlist-1.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1c6bd2c6399920c9622362ce95a7d74e7f9af9bfec05fff91b8ce4b9647845a", size = 313625 }, - { url = "https://files.pythonhosted.org/packages/50/5f/f0cf8b0fdedffdb76b3745aa13d5dbe404d63493cc211ce8250f2025307f/frozenlist-1.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:49ba23817781e22fcbd45fd9ff2b9b8cdb7b16a42a4851ab8025cae7b22e96d0", size = 312523 }, - { url = "https://files.pythonhosted.org/packages/e1/6c/38c49108491272d3e84125bbabf2c2d0b304899b52f49f0539deb26ad18d/frozenlist-1.6.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:431ef6937ae0f853143e2ca67d6da76c083e8b1fe3df0e96f3802fd37626e606", size = 322657 }, - { url = "https://files.pythonhosted.org/packages/bd/4b/3bd3bad5be06a9d1b04b1c22be80b5fe65b502992d62fab4bdb25d9366ee/frozenlist-1.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9d124b38b3c299ca68433597ee26b7819209cb8a3a9ea761dfe9db3a04bba584", size = 303414 }, - { url = "https://files.pythonhosted.org/packages/5b/89/7e225a30bef6e85dbfe22622c24afe932e9444de3b40d58b1ea589a14ef8/frozenlist-1.6.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:118e97556306402e2b010da1ef21ea70cb6d6122e580da64c056b96f524fbd6a", size = 320321 }, - { url = "https://files.pythonhosted.org/packages/22/72/7e3acef4dd9e86366cb8f4d8f28e852c2b7e116927e9722b31a6f71ea4b0/frozenlist-1.6.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fb3b309f1d4086b5533cf7bbcf3f956f0ae6469664522f1bde4feed26fba60f1", size = 323975 }, - { url = "https://files.pythonhosted.org/packages/d8/85/e5da03d20507e13c66ce612c9792b76811b7a43e3320cce42d95b85ac755/frozenlist-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54dece0d21dce4fdb188a1ffc555926adf1d1c516e493c2914d7c370e454bc9e", size = 316553 }, - { url = "https://files.pythonhosted.org/packages/ac/8e/6c609cbd0580ae8a0661c408149f196aade7d325b1ae7adc930501b81acb/frozenlist-1.6.0-cp311-cp311-win32.whl", hash = "sha256:654e4ba1d0b2154ca2f096bed27461cf6160bc7f504a7f9a9ef447c293caf860", size = 115511 }, - { url = "https://files.pythonhosted.org/packages/f2/13/a84804cfde6de12d44ed48ecbf777ba62b12ff09e761f76cdd1ff9e14bb1/frozenlist-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:3e911391bffdb806001002c1f860787542f45916c3baf764264a52765d5a5603", size = 120863 }, - { url = "https://files.pythonhosted.org/packages/9c/8a/289b7d0de2fbac832ea80944d809759976f661557a38bb8e77db5d9f79b7/frozenlist-1.6.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c5b9e42ace7d95bf41e19b87cec8f262c41d3510d8ad7514ab3862ea2197bfb1", size = 160193 }, - { url = "https://files.pythonhosted.org/packages/19/80/2fd17d322aec7f430549f0669f599997174f93ee17929ea5b92781ec902c/frozenlist-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ca9973735ce9f770d24d5484dcb42f68f135351c2fc81a7a9369e48cf2998a29", size = 123831 }, - { url = "https://files.pythonhosted.org/packages/99/06/f5812da431273f78c6543e0b2f7de67dfd65eb0a433978b2c9c63d2205e4/frozenlist-1.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6ac40ec76041c67b928ca8aaffba15c2b2ee3f5ae8d0cb0617b5e63ec119ca25", size = 121862 }, - { url = "https://files.pythonhosted.org/packages/d0/31/9e61c6b5fc493cf24d54881731204d27105234d09878be1a5983182cc4a5/frozenlist-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b7a8a3180dfb280eb044fdec562f9b461614c0ef21669aea6f1d3dac6ee576", size = 316361 }, - { url = "https://files.pythonhosted.org/packages/9d/55/22ca9362d4f0222324981470fd50192be200154d51509ee6eb9baa148e96/frozenlist-1.6.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c444d824e22da6c9291886d80c7d00c444981a72686e2b59d38b285617cb52c8", size = 307115 }, - { url = "https://files.pythonhosted.org/packages/ae/39/4fff42920a57794881e7bb3898dc7f5f539261711ea411b43bba3cde8b79/frozenlist-1.6.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb52c8166499a8150bfd38478248572c924c003cbb45fe3bcd348e5ac7c000f9", size = 322505 }, - { url = "https://files.pythonhosted.org/packages/55/f2/88c41f374c1e4cf0092a5459e5f3d6a1e17ed274c98087a76487783df90c/frozenlist-1.6.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b35298b2db9c2468106278537ee529719228950a5fdda686582f68f247d1dc6e", size = 322666 }, - { url = "https://files.pythonhosted.org/packages/75/51/034eeb75afdf3fd03997856195b500722c0b1a50716664cde64e28299c4b/frozenlist-1.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d108e2d070034f9d57210f22fefd22ea0d04609fc97c5f7f5a686b3471028590", size = 302119 }, - { url = "https://files.pythonhosted.org/packages/2b/a6/564ecde55ee633270a793999ef4fd1d2c2b32b5a7eec903b1012cb7c5143/frozenlist-1.6.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e1be9111cb6756868ac242b3c2bd1f09d9aea09846e4f5c23715e7afb647103", size = 316226 }, - { url = "https://files.pythonhosted.org/packages/f1/c8/6c0682c32377f402b8a6174fb16378b683cf6379ab4d2827c580892ab3c7/frozenlist-1.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:94bb451c664415f02f07eef4ece976a2c65dcbab9c2f1705b7031a3a75349d8c", size = 312788 }, - { url = "https://files.pythonhosted.org/packages/b6/b8/10fbec38f82c5d163ca1750bfff4ede69713badf236a016781cf1f10a0f0/frozenlist-1.6.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d1a686d0b0949182b8faddea596f3fc11f44768d1f74d4cad70213b2e139d821", size = 325914 }, - { url = "https://files.pythonhosted.org/packages/62/ca/2bf4f3a1bd40cdedd301e6ecfdbb291080d5afc5f9ce350c0739f773d6b9/frozenlist-1.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ea8e59105d802c5a38bdbe7362822c522230b3faba2aa35c0fa1765239b7dd70", size = 305283 }, - { url = "https://files.pythonhosted.org/packages/09/64/20cc13ccf94abc2a1f482f74ad210703dc78a590d0b805af1c9aa67f76f9/frozenlist-1.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:abc4e880a9b920bc5020bf6a431a6bb40589d9bca3975c980495f63632e8382f", size = 319264 }, - { url = "https://files.pythonhosted.org/packages/20/ff/86c6a2bbe98cfc231519f5e6d712a0898488ceac804a917ce014f32e68f6/frozenlist-1.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9a79713adfe28830f27a3c62f6b5406c37376c892b05ae070906f07ae4487046", size = 326482 }, - { url = "https://files.pythonhosted.org/packages/2f/da/8e381f66367d79adca245d1d71527aac774e30e291d41ef161ce2d80c38e/frozenlist-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a0318c2068e217a8f5e3b85e35899f5a19e97141a45bb925bb357cfe1daf770", size = 318248 }, - { url = "https://files.pythonhosted.org/packages/39/24/1a1976563fb476ab6f0fa9fefaac7616a4361dbe0461324f9fd7bf425dbe/frozenlist-1.6.0-cp312-cp312-win32.whl", hash = "sha256:853ac025092a24bb3bf09ae87f9127de9fe6e0c345614ac92536577cf956dfcc", size = 115161 }, - { url = "https://files.pythonhosted.org/packages/80/2e/fb4ed62a65f8cd66044706b1013f0010930d8cbb0729a2219561ea075434/frozenlist-1.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:2bdfe2d7e6c9281c6e55523acd6c2bf77963cb422fdc7d142fb0cb6621b66878", size = 120548 }, - { url = "https://files.pythonhosted.org/packages/6f/e5/04c7090c514d96ca00887932417f04343ab94904a56ab7f57861bf63652d/frozenlist-1.6.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1d7fb014fe0fbfee3efd6a94fc635aeaa68e5e1720fe9e57357f2e2c6e1a647e", size = 158182 }, - { url = "https://files.pythonhosted.org/packages/e9/8f/60d0555c61eec855783a6356268314d204137f5e0c53b59ae2fc28938c99/frozenlist-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01bcaa305a0fdad12745502bfd16a1c75b14558dabae226852f9159364573117", size = 122838 }, - { url = "https://files.pythonhosted.org/packages/5a/a7/d0ec890e3665b4b3b7c05dc80e477ed8dc2e2e77719368e78e2cd9fec9c8/frozenlist-1.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8b314faa3051a6d45da196a2c495e922f987dc848e967d8cfeaee8a0328b1cd4", size = 120980 }, - { url = "https://files.pythonhosted.org/packages/cc/19/9b355a5e7a8eba903a008579964192c3e427444752f20b2144b10bb336df/frozenlist-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da62fecac21a3ee10463d153549d8db87549a5e77eefb8c91ac84bb42bb1e4e3", size = 305463 }, - { url = "https://files.pythonhosted.org/packages/9c/8d/5b4c758c2550131d66935ef2fa700ada2461c08866aef4229ae1554b93ca/frozenlist-1.6.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1eb89bf3454e2132e046f9599fbcf0a4483ed43b40f545551a39316d0201cd1", size = 297985 }, - { url = "https://files.pythonhosted.org/packages/48/2c/537ec09e032b5865715726b2d1d9813e6589b571d34d01550c7aeaad7e53/frozenlist-1.6.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18689b40cb3936acd971f663ccb8e2589c45db5e2c5f07e0ec6207664029a9c", size = 311188 }, - { url = "https://files.pythonhosted.org/packages/31/2f/1aa74b33f74d54817055de9a4961eff798f066cdc6f67591905d4fc82a84/frozenlist-1.6.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e67ddb0749ed066b1a03fba812e2dcae791dd50e5da03be50b6a14d0c1a9ee45", size = 311874 }, - { url = "https://files.pythonhosted.org/packages/bf/f0/cfec18838f13ebf4b37cfebc8649db5ea71a1b25dacd691444a10729776c/frozenlist-1.6.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc5e64626e6682638d6e44398c9baf1d6ce6bc236d40b4b57255c9d3f9761f1f", size = 291897 }, - { url = "https://files.pythonhosted.org/packages/ea/a5/deb39325cbbea6cd0a46db8ccd76150ae2fcbe60d63243d9df4a0b8c3205/frozenlist-1.6.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:437cfd39564744ae32ad5929e55b18ebd88817f9180e4cc05e7d53b75f79ce85", size = 305799 }, - { url = "https://files.pythonhosted.org/packages/78/22/6ddec55c5243a59f605e4280f10cee8c95a449f81e40117163383829c241/frozenlist-1.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:62dd7df78e74d924952e2feb7357d826af8d2f307557a779d14ddf94d7311be8", size = 302804 }, - { url = "https://files.pythonhosted.org/packages/5d/b7/d9ca9bab87f28855063c4d202936800219e39db9e46f9fb004d521152623/frozenlist-1.6.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a66781d7e4cddcbbcfd64de3d41a61d6bdde370fc2e38623f30b2bd539e84a9f", size = 316404 }, - { url = "https://files.pythonhosted.org/packages/a6/3a/1255305db7874d0b9eddb4fe4a27469e1fb63720f1fc6d325a5118492d18/frozenlist-1.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:482fe06e9a3fffbcd41950f9d890034b4a54395c60b5e61fae875d37a699813f", size = 295572 }, - { url = "https://files.pythonhosted.org/packages/2a/f2/8d38eeee39a0e3a91b75867cc102159ecccf441deb6ddf67be96d3410b84/frozenlist-1.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e4f9373c500dfc02feea39f7a56e4f543e670212102cc2eeb51d3a99c7ffbde6", size = 307601 }, - { url = "https://files.pythonhosted.org/packages/38/04/80ec8e6b92f61ef085422d7b196822820404f940950dde5b2e367bede8bc/frozenlist-1.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e69bb81de06827147b7bfbaeb284d85219fa92d9f097e32cc73675f279d70188", size = 314232 }, - { url = "https://files.pythonhosted.org/packages/3a/58/93b41fb23e75f38f453ae92a2f987274c64637c450285577bd81c599b715/frozenlist-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7613d9977d2ab4a9141dde4a149f4357e4065949674c5649f920fec86ecb393e", size = 308187 }, - { url = "https://files.pythonhosted.org/packages/6a/a2/e64df5c5aa36ab3dee5a40d254f3e471bb0603c225f81664267281c46a2d/frozenlist-1.6.0-cp313-cp313-win32.whl", hash = "sha256:4def87ef6d90429f777c9d9de3961679abf938cb6b7b63d4a7eb8a268babfce4", size = 114772 }, - { url = "https://files.pythonhosted.org/packages/a0/77/fead27441e749b2d574bb73d693530d59d520d4b9e9679b8e3cb779d37f2/frozenlist-1.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:37a8a52c3dfff01515e9bbbee0e6063181362f9de3db2ccf9bc96189b557cbfd", size = 119847 }, - { url = "https://files.pythonhosted.org/packages/df/bd/cc6d934991c1e5d9cafda83dfdc52f987c7b28343686aef2e58a9cf89f20/frozenlist-1.6.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:46138f5a0773d064ff663d273b309b696293d7a7c00a0994c5c13a5078134b64", size = 174937 }, - { url = "https://files.pythonhosted.org/packages/f2/a2/daf945f335abdbfdd5993e9dc348ef4507436936ab3c26d7cfe72f4843bf/frozenlist-1.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f88bc0a2b9c2a835cb888b32246c27cdab5740059fb3688852bf91e915399b91", size = 136029 }, - { url = "https://files.pythonhosted.org/packages/51/65/4c3145f237a31247c3429e1c94c384d053f69b52110a0d04bfc8afc55fb2/frozenlist-1.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:777704c1d7655b802c7850255639672e90e81ad6fa42b99ce5ed3fbf45e338dd", size = 134831 }, - { url = "https://files.pythonhosted.org/packages/77/38/03d316507d8dea84dfb99bdd515ea245628af964b2bf57759e3c9205cc5e/frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85ef8d41764c7de0dcdaf64f733a27352248493a85a80661f3c678acd27e31f2", size = 392981 }, - { url = "https://files.pythonhosted.org/packages/37/02/46285ef9828f318ba400a51d5bb616ded38db8466836a9cfa39f3903260b/frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:da5cb36623f2b846fb25009d9d9215322318ff1c63403075f812b3b2876c8506", size = 371999 }, - { url = "https://files.pythonhosted.org/packages/0d/64/1212fea37a112c3c5c05bfb5f0a81af4836ce349e69be75af93f99644da9/frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbb56587a16cf0fb8acd19e90ff9924979ac1431baea8681712716a8337577b0", size = 392200 }, - { url = "https://files.pythonhosted.org/packages/81/ce/9a6ea1763e3366e44a5208f76bf37c76c5da570772375e4d0be85180e588/frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6154c3ba59cda3f954c6333025369e42c3acd0c6e8b6ce31eb5c5b8116c07e0", size = 390134 }, - { url = "https://files.pythonhosted.org/packages/bc/36/939738b0b495b2c6d0c39ba51563e453232813042a8d908b8f9544296c29/frozenlist-1.6.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e8246877afa3f1ae5c979fe85f567d220f86a50dc6c493b9b7d8191181ae01e", size = 365208 }, - { url = "https://files.pythonhosted.org/packages/b4/8b/939e62e93c63409949c25220d1ba8e88e3960f8ef6a8d9ede8f94b459d27/frozenlist-1.6.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b0f6cce16306d2e117cf9db71ab3a9e8878a28176aeaf0dbe35248d97b28d0c", size = 385548 }, - { url = "https://files.pythonhosted.org/packages/62/38/22d2873c90102e06a7c5a3a5b82ca47e393c6079413e8a75c72bff067fa8/frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:1b8e8cd8032ba266f91136d7105706ad57770f3522eac4a111d77ac126a25a9b", size = 391123 }, - { url = "https://files.pythonhosted.org/packages/44/78/63aaaf533ee0701549500f6d819be092c6065cb5c577edb70c09df74d5d0/frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:e2ada1d8515d3ea5378c018a5f6d14b4994d4036591a52ceaf1a1549dec8e1ad", size = 394199 }, - { url = "https://files.pythonhosted.org/packages/54/45/71a6b48981d429e8fbcc08454dc99c4c2639865a646d549812883e9c9dd3/frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:cdb2c7f071e4026c19a3e32b93a09e59b12000751fc9b0b7758da899e657d215", size = 373854 }, - { url = "https://files.pythonhosted.org/packages/3f/f3/dbf2a5e11736ea81a66e37288bf9f881143a7822b288a992579ba1b4204d/frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:03572933a1969a6d6ab509d509e5af82ef80d4a5d4e1e9f2e1cdd22c77a3f4d2", size = 395412 }, - { url = "https://files.pythonhosted.org/packages/b3/f1/c63166806b331f05104d8ea385c4acd511598568b1f3e4e8297ca54f2676/frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:77effc978947548b676c54bbd6a08992759ea6f410d4987d69feea9cd0919911", size = 394936 }, - { url = "https://files.pythonhosted.org/packages/ef/ea/4f3e69e179a430473eaa1a75ff986526571215fefc6b9281cdc1f09a4eb8/frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a2bda8be77660ad4089caf2223fdbd6db1858462c4b85b67fbfa22102021e497", size = 391459 }, - { url = "https://files.pythonhosted.org/packages/d3/c3/0fc2c97dea550df9afd072a37c1e95421652e3206bbeaa02378b24c2b480/frozenlist-1.6.0-cp313-cp313t-win32.whl", hash = "sha256:a4d96dc5bcdbd834ec6b0f91027817214216b5b30316494d2b1aebffb87c534f", size = 128797 }, - { url = "https://files.pythonhosted.org/packages/ae/f5/79c9320c5656b1965634fe4be9c82b12a3305bdbc58ad9cb941131107b20/frozenlist-1.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:e18036cb4caa17ea151fd5f3d70be9d354c99eb8cf817a3ccde8a7873b074348", size = 134709 }, - { url = "https://files.pythonhosted.org/packages/71/3e/b04a0adda73bd52b390d730071c0d577073d3d26740ee1bad25c3ad0f37b/frozenlist-1.6.0-py3-none-any.whl", hash = "sha256:535eec9987adb04701266b92745d6cdcef2e77669299359c3009c3404dd5d191", size = 12404 }, +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/b1/b64018016eeb087db503b038296fd782586432b9c077fc5c7839e9cb6ef6/frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f", size = 45078 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/7e/803dde33760128acd393a27eb002f2020ddb8d99d30a44bfbaab31c5f08a/frozenlist-1.7.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:aa51e147a66b2d74de1e6e2cf5921890de6b0f4820b257465101d7f37b49fb5a", size = 82251 }, + { url = "https://files.pythonhosted.org/packages/75/a9/9c2c5760b6ba45eae11334db454c189d43d34a4c0b489feb2175e5e64277/frozenlist-1.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9b35db7ce1cd71d36ba24f80f0c9e7cff73a28d7a74e91fe83e23d27c7828750", size = 48183 }, + { url = "https://files.pythonhosted.org/packages/47/be/4038e2d869f8a2da165f35a6befb9158c259819be22eeaf9c9a8f6a87771/frozenlist-1.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:34a69a85e34ff37791e94542065c8416c1afbf820b68f720452f636d5fb990cd", size = 47107 }, + { url = "https://files.pythonhosted.org/packages/79/26/85314b8a83187c76a37183ceed886381a5f992975786f883472fcb6dc5f2/frozenlist-1.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a646531fa8d82c87fe4bb2e596f23173caec9185bfbca5d583b4ccfb95183e2", size = 237333 }, + { url = "https://files.pythonhosted.org/packages/1f/fd/e5b64f7d2c92a41639ffb2ad44a6a82f347787abc0c7df5f49057cf11770/frozenlist-1.7.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:79b2ffbba483f4ed36a0f236ccb85fbb16e670c9238313709638167670ba235f", size = 231724 }, + { url = "https://files.pythonhosted.org/packages/20/fb/03395c0a43a5976af4bf7534759d214405fbbb4c114683f434dfdd3128ef/frozenlist-1.7.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a26f205c9ca5829cbf82bb2a84b5c36f7184c4316617d7ef1b271a56720d6b30", size = 245842 }, + { url = "https://files.pythonhosted.org/packages/d0/15/c01c8e1dffdac5d9803507d824f27aed2ba76b6ed0026fab4d9866e82f1f/frozenlist-1.7.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bcacfad3185a623fa11ea0e0634aac7b691aa925d50a440f39b458e41c561d98", size = 239767 }, + { url = "https://files.pythonhosted.org/packages/14/99/3f4c6fe882c1f5514b6848aa0a69b20cb5e5d8e8f51a339d48c0e9305ed0/frozenlist-1.7.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72c1b0fe8fe451b34f12dce46445ddf14bd2a5bcad7e324987194dc8e3a74c86", size = 224130 }, + { url = "https://files.pythonhosted.org/packages/4d/83/220a374bd7b2aeba9d0725130665afe11de347d95c3620b9b82cc2fcab97/frozenlist-1.7.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61d1a5baeaac6c0798ff6edfaeaa00e0e412d49946c53fae8d4b8e8b3566c4ae", size = 235301 }, + { url = "https://files.pythonhosted.org/packages/03/3c/3e3390d75334a063181625343e8daab61b77e1b8214802cc4e8a1bb678fc/frozenlist-1.7.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7edf5c043c062462f09b6820de9854bf28cc6cc5b6714b383149745e287181a8", size = 234606 }, + { url = "https://files.pythonhosted.org/packages/23/1e/58232c19608b7a549d72d9903005e2d82488f12554a32de2d5fb59b9b1ba/frozenlist-1.7.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:d50ac7627b3a1bd2dcef6f9da89a772694ec04d9a61b66cf87f7d9446b4a0c31", size = 248372 }, + { url = "https://files.pythonhosted.org/packages/c0/a4/e4a567e01702a88a74ce8a324691e62a629bf47d4f8607f24bf1c7216e7f/frozenlist-1.7.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ce48b2fece5aeb45265bb7a58259f45027db0abff478e3077e12b05b17fb9da7", size = 229860 }, + { url = "https://files.pythonhosted.org/packages/73/a6/63b3374f7d22268b41a9db73d68a8233afa30ed164c46107b33c4d18ecdd/frozenlist-1.7.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:fe2365ae915a1fafd982c146754e1de6ab3478def8a59c86e1f7242d794f97d5", size = 245893 }, + { url = "https://files.pythonhosted.org/packages/6d/eb/d18b3f6e64799a79673c4ba0b45e4cfbe49c240edfd03a68be20002eaeaa/frozenlist-1.7.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:45a6f2fdbd10e074e8814eb98b05292f27bad7d1883afbe009d96abdcf3bc898", size = 246323 }, + { url = "https://files.pythonhosted.org/packages/5a/f5/720f3812e3d06cd89a1d5db9ff6450088b8f5c449dae8ffb2971a44da506/frozenlist-1.7.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:21884e23cffabb157a9dd7e353779077bf5b8f9a58e9b262c6caad2ef5f80a56", size = 233149 }, + { url = "https://files.pythonhosted.org/packages/69/68/03efbf545e217d5db8446acfd4c447c15b7c8cf4dbd4a58403111df9322d/frozenlist-1.7.0-cp311-cp311-win32.whl", hash = "sha256:284d233a8953d7b24f9159b8a3496fc1ddc00f4db99c324bd5fb5f22d8698ea7", size = 39565 }, + { url = "https://files.pythonhosted.org/packages/58/17/fe61124c5c333ae87f09bb67186d65038834a47d974fc10a5fadb4cc5ae1/frozenlist-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:387cbfdcde2f2353f19c2f66bbb52406d06ed77519ac7ee21be0232147c2592d", size = 44019 }, + { url = "https://files.pythonhosted.org/packages/ef/a2/c8131383f1e66adad5f6ecfcce383d584ca94055a34d683bbb24ac5f2f1c/frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2", size = 81424 }, + { url = "https://files.pythonhosted.org/packages/4c/9d/02754159955088cb52567337d1113f945b9e444c4960771ea90eb73de8db/frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb", size = 47952 }, + { url = "https://files.pythonhosted.org/packages/01/7a/0046ef1bd6699b40acd2067ed6d6670b4db2f425c56980fa21c982c2a9db/frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478", size = 46688 }, + { url = "https://files.pythonhosted.org/packages/d6/a2/a910bafe29c86997363fb4c02069df4ff0b5bc39d33c5198b4e9dd42d8f8/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8", size = 243084 }, + { url = "https://files.pythonhosted.org/packages/64/3e/5036af9d5031374c64c387469bfcc3af537fc0f5b1187d83a1cf6fab1639/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08", size = 233524 }, + { url = "https://files.pythonhosted.org/packages/06/39/6a17b7c107a2887e781a48ecf20ad20f1c39d94b2a548c83615b5b879f28/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4", size = 248493 }, + { url = "https://files.pythonhosted.org/packages/be/00/711d1337c7327d88c44d91dd0f556a1c47fb99afc060ae0ef66b4d24793d/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b", size = 244116 }, + { url = "https://files.pythonhosted.org/packages/24/fe/74e6ec0639c115df13d5850e75722750adabdc7de24e37e05a40527ca539/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e", size = 224557 }, + { url = "https://files.pythonhosted.org/packages/8d/db/48421f62a6f77c553575201e89048e97198046b793f4a089c79a6e3268bd/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca", size = 241820 }, + { url = "https://files.pythonhosted.org/packages/1d/fa/cb4a76bea23047c8462976ea7b7a2bf53997a0ca171302deae9d6dd12096/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df", size = 236542 }, + { url = "https://files.pythonhosted.org/packages/5d/32/476a4b5cfaa0ec94d3f808f193301debff2ea42288a099afe60757ef6282/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5", size = 249350 }, + { url = "https://files.pythonhosted.org/packages/8d/ba/9a28042f84a6bf8ea5dbc81cfff8eaef18d78b2a1ad9d51c7bc5b029ad16/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025", size = 225093 }, + { url = "https://files.pythonhosted.org/packages/bc/29/3a32959e68f9cf000b04e79ba574527c17e8842e38c91d68214a37455786/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01", size = 245482 }, + { url = "https://files.pythonhosted.org/packages/80/e8/edf2f9e00da553f07f5fa165325cfc302dead715cab6ac8336a5f3d0adc2/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08", size = 249590 }, + { url = "https://files.pythonhosted.org/packages/1c/80/9a0eb48b944050f94cc51ee1c413eb14a39543cc4f760ed12657a5a3c45a/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43", size = 237785 }, + { url = "https://files.pythonhosted.org/packages/f3/74/87601e0fb0369b7a2baf404ea921769c53b7ae00dee7dcfe5162c8c6dbf0/frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3", size = 39487 }, + { url = "https://files.pythonhosted.org/packages/0b/15/c026e9a9fc17585a9d461f65d8593d281fedf55fbf7eb53f16c6df2392f9/frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a", size = 43874 }, + { url = "https://files.pythonhosted.org/packages/24/90/6b2cebdabdbd50367273c20ff6b57a3dfa89bd0762de02c3a1eb42cb6462/frozenlist-1.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee80eeda5e2a4e660651370ebffd1286542b67e268aa1ac8d6dbe973120ef7ee", size = 79791 }, + { url = "https://files.pythonhosted.org/packages/83/2e/5b70b6a3325363293fe5fc3ae74cdcbc3e996c2a11dde2fd9f1fb0776d19/frozenlist-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d1a81c85417b914139e3a9b995d4a1c84559afc839a93cf2cb7f15e6e5f6ed2d", size = 47165 }, + { url = "https://files.pythonhosted.org/packages/f4/25/a0895c99270ca6966110f4ad98e87e5662eab416a17e7fd53c364bf8b954/frozenlist-1.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cbb65198a9132ebc334f237d7b0df163e4de83fb4f2bdfe46c1e654bdb0c5d43", size = 45881 }, + { url = "https://files.pythonhosted.org/packages/19/7c/71bb0bbe0832793c601fff68cd0cf6143753d0c667f9aec93d3c323f4b55/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dab46c723eeb2c255a64f9dc05b8dd601fde66d6b19cdb82b2e09cc6ff8d8b5d", size = 232409 }, + { url = "https://files.pythonhosted.org/packages/c0/45/ed2798718910fe6eb3ba574082aaceff4528e6323f9a8570be0f7028d8e9/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6aeac207a759d0dedd2e40745575ae32ab30926ff4fa49b1635def65806fddee", size = 225132 }, + { url = "https://files.pythonhosted.org/packages/ba/e2/8417ae0f8eacb1d071d4950f32f229aa6bf68ab69aab797b72a07ea68d4f/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd8c4e58ad14b4fa7802b8be49d47993182fdd4023393899632c88fd8cd994eb", size = 237638 }, + { url = "https://files.pythonhosted.org/packages/f8/b7/2ace5450ce85f2af05a871b8c8719b341294775a0a6c5585d5e6170f2ce7/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04fb24d104f425da3540ed83cbfc31388a586a7696142004c577fa61c6298c3f", size = 233539 }, + { url = "https://files.pythonhosted.org/packages/46/b9/6989292c5539553dba63f3c83dc4598186ab2888f67c0dc1d917e6887db6/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a5c505156368e4ea6b53b5ac23c92d7edc864537ff911d2fb24c140bb175e60", size = 215646 }, + { url = "https://files.pythonhosted.org/packages/72/31/bc8c5c99c7818293458fe745dab4fd5730ff49697ccc82b554eb69f16a24/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8bd7eb96a675f18aa5c553eb7ddc24a43c8c18f22e1f9925528128c052cdbe00", size = 232233 }, + { url = "https://files.pythonhosted.org/packages/59/52/460db4d7ba0811b9ccb85af996019f5d70831f2f5f255f7cc61f86199795/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:05579bf020096fe05a764f1f84cd104a12f78eaab68842d036772dc6d4870b4b", size = 227996 }, + { url = "https://files.pythonhosted.org/packages/ba/c9/f4b39e904c03927b7ecf891804fd3b4df3db29b9e487c6418e37988d6e9d/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:376b6222d114e97eeec13d46c486facd41d4f43bab626b7c3f6a8b4e81a5192c", size = 242280 }, + { url = "https://files.pythonhosted.org/packages/b8/33/3f8d6ced42f162d743e3517781566b8481322be321b486d9d262adf70bfb/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0aa7e176ebe115379b5b1c95b4096fb1c17cce0847402e227e712c27bdb5a949", size = 217717 }, + { url = "https://files.pythonhosted.org/packages/3e/e8/ad683e75da6ccef50d0ab0c2b2324b32f84fc88ceee778ed79b8e2d2fe2e/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3fbba20e662b9c2130dc771e332a99eff5da078b2b2648153a40669a6d0e36ca", size = 236644 }, + { url = "https://files.pythonhosted.org/packages/b2/14/8d19ccdd3799310722195a72ac94ddc677541fb4bef4091d8e7775752360/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f3f4410a0a601d349dd406b5713fec59b4cee7e71678d5b17edda7f4655a940b", size = 238879 }, + { url = "https://files.pythonhosted.org/packages/ce/13/c12bf657494c2fd1079a48b2db49fa4196325909249a52d8f09bc9123fd7/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cdfaaec6a2f9327bf43c933c0319a7c429058e8537c508964a133dffee412e", size = 232502 }, + { url = "https://files.pythonhosted.org/packages/d7/8b/e7f9dfde869825489382bc0d512c15e96d3964180c9499efcec72e85db7e/frozenlist-1.7.0-cp313-cp313-win32.whl", hash = "sha256:5fc4df05a6591c7768459caba1b342d9ec23fa16195e744939ba5914596ae3e1", size = 39169 }, + { url = "https://files.pythonhosted.org/packages/35/89/a487a98d94205d85745080a37860ff5744b9820a2c9acbcdd9440bfddf98/frozenlist-1.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:52109052b9791a3e6b5d1b65f4b909703984b770694d3eb64fad124c835d7cba", size = 43219 }, + { url = "https://files.pythonhosted.org/packages/56/d5/5c4cf2319a49eddd9dd7145e66c4866bdc6f3dbc67ca3d59685149c11e0d/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a6f86e4193bb0e235ef6ce3dde5cbabed887e0b11f516ce8a0f4d3b33078ec2d", size = 84345 }, + { url = "https://files.pythonhosted.org/packages/a4/7d/ec2c1e1dc16b85bc9d526009961953df9cec8481b6886debb36ec9107799/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:82d664628865abeb32d90ae497fb93df398a69bb3434463d172b80fc25b0dd7d", size = 48880 }, + { url = "https://files.pythonhosted.org/packages/69/86/f9596807b03de126e11e7d42ac91e3d0b19a6599c714a1989a4e85eeefc4/frozenlist-1.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:912a7e8375a1c9a68325a902f3953191b7b292aa3c3fb0d71a216221deca460b", size = 48498 }, + { url = "https://files.pythonhosted.org/packages/5e/cb/df6de220f5036001005f2d726b789b2c0b65f2363b104bbc16f5be8084f8/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9537c2777167488d539bc5de2ad262efc44388230e5118868e172dd4a552b146", size = 292296 }, + { url = "https://files.pythonhosted.org/packages/83/1f/de84c642f17c8f851a2905cee2dae401e5e0daca9b5ef121e120e19aa825/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f34560fb1b4c3e30ba35fa9a13894ba39e5acfc5f60f57d8accde65f46cc5e74", size = 273103 }, + { url = "https://files.pythonhosted.org/packages/88/3c/c840bfa474ba3fa13c772b93070893c6e9d5c0350885760376cbe3b6c1b3/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:acd03d224b0175f5a850edc104ac19040d35419eddad04e7cf2d5986d98427f1", size = 292869 }, + { url = "https://files.pythonhosted.org/packages/a6/1c/3efa6e7d5a39a1d5ef0abeb51c48fb657765794a46cf124e5aca2c7a592c/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2038310bc582f3d6a09b3816ab01737d60bf7b1ec70f5356b09e84fb7408ab1", size = 291467 }, + { url = "https://files.pythonhosted.org/packages/4f/00/d5c5e09d4922c395e2f2f6b79b9a20dab4b67daaf78ab92e7729341f61f6/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c05e4c8e5f36e5e088caa1bf78a687528f83c043706640a92cb76cd6999384", size = 266028 }, + { url = "https://files.pythonhosted.org/packages/4e/27/72765be905619dfde25a7f33813ac0341eb6b076abede17a2e3fbfade0cb/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:765bb588c86e47d0b68f23c1bee323d4b703218037765dcf3f25c838c6fecceb", size = 284294 }, + { url = "https://files.pythonhosted.org/packages/88/67/c94103a23001b17808eb7dd1200c156bb69fb68e63fcf0693dde4cd6228c/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:32dc2e08c67d86d0969714dd484fd60ff08ff81d1a1e40a77dd34a387e6ebc0c", size = 281898 }, + { url = "https://files.pythonhosted.org/packages/42/34/a3e2c00c00f9e2a9db5653bca3fec306349e71aff14ae45ecc6d0951dd24/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:c0303e597eb5a5321b4de9c68e9845ac8f290d2ab3f3e2c864437d3c5a30cd65", size = 290465 }, + { url = "https://files.pythonhosted.org/packages/bb/73/f89b7fbce8b0b0c095d82b008afd0590f71ccb3dee6eee41791cf8cd25fd/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a47f2abb4e29b3a8d0b530f7c3598badc6b134562b1a5caee867f7c62fee51e3", size = 266385 }, + { url = "https://files.pythonhosted.org/packages/cd/45/e365fdb554159462ca12df54bc59bfa7a9a273ecc21e99e72e597564d1ae/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3d688126c242a6fabbd92e02633414d40f50bb6002fa4cf995a1d18051525657", size = 288771 }, + { url = "https://files.pythonhosted.org/packages/00/11/47b6117002a0e904f004d70ec5194fe9144f117c33c851e3d51c765962d0/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:4e7e9652b3d367c7bd449a727dc79d5043f48b88d0cbfd4f9f1060cf2b414104", size = 288206 }, + { url = "https://files.pythonhosted.org/packages/40/37/5f9f3c3fd7f7746082ec67bcdc204db72dad081f4f83a503d33220a92973/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1a85e345b4c43db8b842cab1feb41be5cc0b10a1830e6295b69d7310f99becaf", size = 282620 }, + { url = "https://files.pythonhosted.org/packages/0b/31/8fbc5af2d183bff20f21aa743b4088eac4445d2bb1cdece449ae80e4e2d1/frozenlist-1.7.0-cp313-cp313t-win32.whl", hash = "sha256:3a14027124ddb70dfcee5148979998066897e79f89f64b13328595c4bdf77c81", size = 43059 }, + { url = "https://files.pythonhosted.org/packages/bb/ed/41956f52105b8dbc26e457c5705340c67c8cc2b79f394b79bffc09d0e938/frozenlist-1.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3bf8010d71d4507775f658e9823210b7427be36625b387221642725b515dcf3e", size = 47516 }, + { url = "https://files.pythonhosted.org/packages/ee/45/b82e3c16be2182bff01179db177fe144d58b5dc787a7d4492c6ed8b9317f/frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e", size = 13106 }, ] [[package]] name = "fsspec" -version = "2024.12.0" +version = "2025.5.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/11/de70dee31455c546fbc88301971ec03c328f3d1138cfba14263f651e9551/fsspec-2024.12.0.tar.gz", hash = "sha256:670700c977ed2fb51e0d9f9253177ed20cbde4a3e5c0283cc5385b5870c8533f", size = 291600 } +sdist = { url = "https://files.pythonhosted.org/packages/00/f7/27f15d41f0ed38e8fcc488584b57e902b331da7f7c6dcda53721b15838fc/fsspec-2025.5.1.tar.gz", hash = "sha256:2e55e47a540b91843b755e83ded97c6e897fa0942b11490113f09e9c443c2475", size = 303033 } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/86/5486b0188d08aa643e127774a99bac51ffa6cf343e3deb0583956dca5b22/fsspec-2024.12.0-py3-none-any.whl", hash = "sha256:b520aed47ad9804237ff878b504267a3b0b441e97508bd6d2d8774e3db85cee2", size = 183862 }, + { url = "https://files.pythonhosted.org/packages/bb/61/78c7b3851add1481b048b5fdc29067397a1784e2910592bc81bb3f608635/fsspec-2025.5.1-py3-none-any.whl", hash = "sha256:24d3a2e663d5fc735ab256263c4075f374a174c3410c0b25e5bd1970bceaa462", size = 199052 }, ] [[package]] @@ -992,7 +968,7 @@ wheels = [ [[package]] name = "gcsfs" -version = "2024.12.0" +version = "2025.5.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, @@ -1003,14 +979,14 @@ dependencies = [ { name = "google-cloud-storage" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/20/a2/310a6f1cfdb39b2385af38620f299a8acb427b5c1fc36aa1037a81eea0d8/gcsfs-2024.12.0.tar.gz", hash = "sha256:e672413922108300ebc1fe78b8f99f3c7c1b94e7e088f5a6dc88de6d5a93d156", size = 80258 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/4a/47ad326cc74ccfd97e125c0087a36d516ed74c61f53e458067737378d0f2/gcsfs-2025.5.1.tar.gz", hash = "sha256:ba945530cf4857cd9d599ccb3ae729c65c39088880b11c4df1fecac30df5f3e3", size = 82173 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/0e/fb76438001cf6910be9f47b3ee1e3e1490caf0d44e2ff34625a97e3fbf63/gcsfs-2024.12.0-py2.py3-none-any.whl", hash = "sha256:ec88e48f77e466723705458af85dda238e43aa69fac071efd98829d06e9f095a", size = 35488 }, + { url = "https://files.pythonhosted.org/packages/ff/eb/9182e875592c48d282c5eab602000f0618817b9011b2b2925165e4b4b7f3/gcsfs-2025.5.1-py2.py3-none-any.whl", hash = "sha256:48712471ff71ac83d3e2152ba4dc232874698466e344d5e700feba06b0a0de7b", size = 36581 }, ] [[package]] name = "google-api-core" -version = "2.24.2" +version = "2.25.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "google-auth" }, @@ -1019,23 +995,23 @@ dependencies = [ { name = "protobuf" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/09/5c/085bcb872556934bb119e5e09de54daa07873f6866b8f0303c49e72287f7/google_api_core-2.24.2.tar.gz", hash = "sha256:81718493daf06d96d6bc76a91c23874dbf2fac0adbbf542831b805ee6e974696", size = 163516 } +sdist = { url = "https://files.pythonhosted.org/packages/dc/21/e9d043e88222317afdbdb567165fdbc3b0aad90064c7e0c9eb0ad9955ad8/google_api_core-2.25.1.tar.gz", hash = "sha256:d2aaa0b13c78c61cb3f4282c464c046e45fbd75755683c9c525e6e8f7ed0a5e8", size = 165443 } wheels = [ - { url = "https://files.pythonhosted.org/packages/46/95/f472d85adab6e538da2025dfca9e976a0d125cc0af2301f190e77b76e51c/google_api_core-2.24.2-py3-none-any.whl", hash = "sha256:810a63ac95f3c441b7c0e43d344e372887f62ce9071ba972eacf32672e072de9", size = 160061 }, + { url = "https://files.pythonhosted.org/packages/14/4b/ead00905132820b623732b175d66354e9d3e69fcf2a5dcdab780664e7896/google_api_core-2.25.1-py3-none-any.whl", hash = "sha256:8a2a56c1fef82987a524371f99f3bd0143702fecc670c72e600c1cda6bf8dbb7", size = 160807 }, ] [[package]] name = "google-auth" -version = "2.40.2" +version = "2.40.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cachetools" }, { name = "pyasn1-modules" }, { name = "rsa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/66/84/f67f53c505a6b2c5da05c988e2a5483f5ba9eee4b1841d2e3ff22f547cd5/google_auth-2.40.2.tar.gz", hash = "sha256:a33cde547a2134273226fa4b853883559947ebe9207521f7afc707efbf690f58", size = 280990 } +sdist = { url = "https://files.pythonhosted.org/packages/9e/9b/e92ef23b84fa10a64ce4831390b7a4c2e53c0132568d99d4ae61d04c8855/google_auth-2.40.3.tar.gz", hash = "sha256:500c3a29adedeb36ea9cf24b8d10858e152f2412e3ca37829b3fa18e33d63b77", size = 281029 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/c7/e2d82e6702e2a9e2311c138f8e1100f21d08aed0231290872b229ae57a86/google_auth-2.40.2-py2.py3-none-any.whl", hash = "sha256:f7e568d42eedfded58734f6a60c58321896a621f7c116c411550a4b4a13da90b", size = 216102 }, + { url = "https://files.pythonhosted.org/packages/17/63/b19553b658a1692443c62bd07e5868adaa0ad746a0751ba62c59568cd45b/google_auth-2.40.3-py2.py3-none-any.whl", hash = "sha256:1370d4593e86213563547f97a92752fc658456fe4514c809544f330fed45a7ca", size = 216137 }, ] [[package]] @@ -1066,7 +1042,7 @@ wheels = [ [[package]] name = "google-cloud-storage" -version = "3.1.0" +version = "3.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "google-api-core" }, @@ -1076,9 +1052,9 @@ dependencies = [ { name = "google-resumable-media" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f3/08/52143124415a889bbab60a8ecede1e31ea0e8d992ca078317886f26dc3be/google_cloud_storage-3.1.0.tar.gz", hash = "sha256:944273179897c7c8a07ee15f2e6466a02da0c7c4b9ecceac2a26017cb2972049", size = 7666527 } +sdist = { url = "https://files.pythonhosted.org/packages/27/84/6afc2ffdf31f6247a6bab6ba070e073fb05e0fda56adf59ce52ac591a033/google_cloud_storage-3.1.1.tar.gz", hash = "sha256:f9c8f965cafd1d38509f8e2b070339e0e9e5bf050774653bf36213d4ea6104c0", size = 7668109 } wheels = [ - { url = "https://files.pythonhosted.org/packages/13/b8/c99c965659f45efa73080477c49ffddf7b9aecb00806be8422560bb5b824/google_cloud_storage-3.1.0-py2.py3-none-any.whl", hash = "sha256:eaf36966b68660a9633f03b067e4a10ce09f1377cae3ff9f2c699f69a81c66c6", size = 174861 }, + { url = "https://files.pythonhosted.org/packages/89/4f/b922e919f6e1ea5905f1427fadf1a3f56a85e79e2b0037fec182f6b437dd/google_cloud_storage-3.1.1-py3-none-any.whl", hash = "sha256:ba7e6ae2be5a7a08742f001e23ec6a0c17d78c620f63bf8e0e7c2cbdddb407de", size = 175464 }, ] [[package]] @@ -1134,44 +1110,37 @@ wheels = [ [[package]] name = "greenlet" -version = "3.2.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/34/c1/a82edae11d46c0d83481aacaa1e578fea21d94a1ef400afd734d47ad95ad/greenlet-3.2.2.tar.gz", hash = "sha256:ad053d34421a2debba45aa3cc39acf454acbcd025b3fc1a9f8a0dee237abd485", size = 185797 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a3/9f/a47e19261747b562ce88219e5ed8c859d42c6e01e73da6fbfa3f08a7be13/greenlet-3.2.2-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:dcb9cebbf3f62cb1e5afacae90761ccce0effb3adaa32339a0670fe7805d8068", size = 268635 }, - { url = "https://files.pythonhosted.org/packages/11/80/a0042b91b66975f82a914d515e81c1944a3023f2ce1ed7a9b22e10b46919/greenlet-3.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf3fc9145141250907730886b031681dfcc0de1c158f3cc51c092223c0f381ce", size = 628786 }, - { url = "https://files.pythonhosted.org/packages/38/a2/8336bf1e691013f72a6ebab55da04db81a11f68e82bb691f434909fa1327/greenlet-3.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:efcdfb9df109e8a3b475c016f60438fcd4be68cd13a365d42b35914cdab4bb2b", size = 640866 }, - { url = "https://files.pythonhosted.org/packages/f8/7e/f2a3a13e424670a5d08826dab7468fa5e403e0fbe0b5f951ff1bc4425b45/greenlet-3.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4bd139e4943547ce3a56ef4b8b1b9479f9e40bb47e72cc906f0f66b9d0d5cab3", size = 636752 }, - { url = "https://files.pythonhosted.org/packages/fd/5d/ce4a03a36d956dcc29b761283f084eb4a3863401c7cb505f113f73af8774/greenlet-3.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71566302219b17ca354eb274dfd29b8da3c268e41b646f330e324e3967546a74", size = 636028 }, - { url = "https://files.pythonhosted.org/packages/4b/29/b130946b57e3ceb039238413790dd3793c5e7b8e14a54968de1fe449a7cf/greenlet-3.2.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3091bc45e6b0c73f225374fefa1536cd91b1e987377b12ef5b19129b07d93ebe", size = 583869 }, - { url = "https://files.pythonhosted.org/packages/ac/30/9f538dfe7f87b90ecc75e589d20cbd71635531a617a336c386d775725a8b/greenlet-3.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:44671c29da26539a5f142257eaba5110f71887c24d40df3ac87f1117df589e0e", size = 1112886 }, - { url = "https://files.pythonhosted.org/packages/be/92/4b7deeb1a1e9c32c1b59fdca1cac3175731c23311ddca2ea28a8b6ada91c/greenlet-3.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c23ea227847c9dbe0b3910f5c0dd95658b607137614eb821e6cbaecd60d81cc6", size = 1138355 }, - { url = "https://files.pythonhosted.org/packages/c5/eb/7551c751a2ea6498907b2fcbe31d7a54b602ba5e8eb9550a9695ca25d25c/greenlet-3.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:0a16fb934fcabfdfacf21d79e6fed81809d8cd97bc1be9d9c89f0e4567143d7b", size = 295437 }, - { url = "https://files.pythonhosted.org/packages/2c/a1/88fdc6ce0df6ad361a30ed78d24c86ea32acb2b563f33e39e927b1da9ea0/greenlet-3.2.2-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:df4d1509efd4977e6a844ac96d8be0b9e5aa5d5c77aa27ca9f4d3f92d3fcf330", size = 270413 }, - { url = "https://files.pythonhosted.org/packages/a6/2e/6c1caffd65490c68cd9bcec8cb7feb8ac7b27d38ba1fea121fdc1f2331dc/greenlet-3.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da956d534a6d1b9841f95ad0f18ace637668f680b1339ca4dcfb2c1837880a0b", size = 637242 }, - { url = "https://files.pythonhosted.org/packages/98/28/088af2cedf8823b6b7ab029a5626302af4ca1037cf8b998bed3a8d3cb9e2/greenlet-3.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c7b15fb9b88d9ee07e076f5a683027bc3befd5bb5d25954bb633c385d8b737e", size = 651444 }, - { url = "https://files.pythonhosted.org/packages/4a/9f/0116ab876bb0bc7a81eadc21c3f02cd6100dcd25a1cf2a085a130a63a26a/greenlet-3.2.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:752f0e79785e11180ebd2e726c8a88109ded3e2301d40abced2543aa5d164275", size = 646067 }, - { url = "https://files.pythonhosted.org/packages/35/17/bb8f9c9580e28a94a9575da847c257953d5eb6e39ca888239183320c1c28/greenlet-3.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ae572c996ae4b5e122331e12bbb971ea49c08cc7c232d1bd43150800a2d6c65", size = 648153 }, - { url = "https://files.pythonhosted.org/packages/2c/ee/7f31b6f7021b8df6f7203b53b9cc741b939a2591dcc6d899d8042fcf66f2/greenlet-3.2.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02f5972ff02c9cf615357c17ab713737cccfd0eaf69b951084a9fd43f39833d3", size = 603865 }, - { url = "https://files.pythonhosted.org/packages/b5/2d/759fa59323b521c6f223276a4fc3d3719475dc9ae4c44c2fe7fc750f8de0/greenlet-3.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4fefc7aa68b34b9224490dfda2e70ccf2131368493add64b4ef2d372955c207e", size = 1119575 }, - { url = "https://files.pythonhosted.org/packages/30/05/356813470060bce0e81c3df63ab8cd1967c1ff6f5189760c1a4734d405ba/greenlet-3.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a31ead8411a027c2c4759113cf2bd473690517494f3d6e4bf67064589afcd3c5", size = 1147460 }, - { url = "https://files.pythonhosted.org/packages/07/f4/b2a26a309a04fb844c7406a4501331b9400e1dd7dd64d3450472fd47d2e1/greenlet-3.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:b24c7844c0a0afc3ccbeb0b807adeefb7eff2b5599229ecedddcfeb0ef333bec", size = 296239 }, - { url = "https://files.pythonhosted.org/packages/89/30/97b49779fff8601af20972a62cc4af0c497c1504dfbb3e93be218e093f21/greenlet-3.2.2-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:3ab7194ee290302ca15449f601036007873028712e92ca15fc76597a0aeb4c59", size = 269150 }, - { url = "https://files.pythonhosted.org/packages/21/30/877245def4220f684bc2e01df1c2e782c164e84b32e07373992f14a2d107/greenlet-3.2.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dc5c43bb65ec3669452af0ab10729e8fdc17f87a1f2ad7ec65d4aaaefabf6bf", size = 637381 }, - { url = "https://files.pythonhosted.org/packages/8e/16/adf937908e1f913856b5371c1d8bdaef5f58f251d714085abeea73ecc471/greenlet-3.2.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:decb0658ec19e5c1f519faa9a160c0fc85a41a7e6654b3ce1b44b939f8bf1325", size = 651427 }, - { url = "https://files.pythonhosted.org/packages/ad/49/6d79f58fa695b618654adac64e56aff2eeb13344dc28259af8f505662bb1/greenlet-3.2.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6fadd183186db360b61cb34e81117a096bff91c072929cd1b529eb20dd46e6c5", size = 645795 }, - { url = "https://files.pythonhosted.org/packages/5a/e6/28ed5cb929c6b2f001e96b1d0698c622976cd8f1e41fe7ebc047fa7c6dd4/greenlet-3.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1919cbdc1c53ef739c94cf2985056bcc0838c1f217b57647cbf4578576c63825", size = 648398 }, - { url = "https://files.pythonhosted.org/packages/9d/70/b200194e25ae86bc57077f695b6cc47ee3118becf54130c5514456cf8dac/greenlet-3.2.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3885f85b61798f4192d544aac7b25a04ece5fe2704670b4ab73c2d2c14ab740d", size = 606795 }, - { url = "https://files.pythonhosted.org/packages/f8/c8/ba1def67513a941154ed8f9477ae6e5a03f645be6b507d3930f72ed508d3/greenlet-3.2.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:85f3e248507125bf4af607a26fd6cb8578776197bd4b66e35229cdf5acf1dfbf", size = 1117976 }, - { url = "https://files.pythonhosted.org/packages/c3/30/d0e88c1cfcc1b3331d63c2b54a0a3a4a950ef202fb8b92e772ca714a9221/greenlet-3.2.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:1e76106b6fc55fa3d6fe1c527f95ee65e324a13b62e243f77b48317346559708", size = 1145509 }, - { url = "https://files.pythonhosted.org/packages/90/2e/59d6491834b6e289051b252cf4776d16da51c7c6ca6a87ff97e3a50aa0cd/greenlet-3.2.2-cp313-cp313-win_amd64.whl", hash = "sha256:fe46d4f8e94e637634d54477b0cfabcf93c53f29eedcbdeecaf2af32029b4421", size = 296023 }, - { url = "https://files.pythonhosted.org/packages/65/66/8a73aace5a5335a1cba56d0da71b7bd93e450f17d372c5b7c5fa547557e9/greenlet-3.2.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba30e88607fb6990544d84caf3c706c4b48f629e18853fc6a646f82db9629418", size = 629911 }, - { url = "https://files.pythonhosted.org/packages/48/08/c8b8ebac4e0c95dcc68ec99198842e7db53eda4ab3fb0a4e785690883991/greenlet-3.2.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:055916fafad3e3388d27dd68517478933a97edc2fc54ae79d3bec827de2c64c4", size = 635251 }, - { url = "https://files.pythonhosted.org/packages/37/26/7db30868f73e86b9125264d2959acabea132b444b88185ba5c462cb8e571/greenlet-3.2.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2593283bf81ca37d27d110956b79e8723f9aa50c4bcdc29d3c0543d4743d2763", size = 632620 }, - { url = "https://files.pythonhosted.org/packages/10/ec/718a3bd56249e729016b0b69bee4adea0dfccf6ca43d147ef3b21edbca16/greenlet-3.2.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89c69e9a10670eb7a66b8cef6354c24671ba241f46152dd3eed447f79c29fb5b", size = 628851 }, - { url = "https://files.pythonhosted.org/packages/9b/9d/d1c79286a76bc62ccdc1387291464af16a4204ea717f24e77b0acd623b99/greenlet-3.2.2-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02a98600899ca1ca5d3a2590974c9e3ec259503b2d6ba6527605fcd74e08e207", size = 593718 }, - { url = "https://files.pythonhosted.org/packages/cd/41/96ba2bf948f67b245784cd294b84e3d17933597dffd3acdb367a210d1949/greenlet-3.2.2-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:b50a8c5c162469c3209e5ec92ee4f95c8231b11db6a04db09bbe338176723bb8", size = 1105752 }, - { url = "https://files.pythonhosted.org/packages/68/3b/3b97f9d33c1f2eb081759da62bd6162159db260f602f048bc2f36b4c453e/greenlet-3.2.2-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:45f9f4853fb4cc46783085261c9ec4706628f3b57de3e68bae03e8f8b3c0de51", size = 1125170 }, +version = "3.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/92/bb85bd6e80148a4d2e0c59f7c0c2891029f8fd510183afc7d8d2feeed9b6/greenlet-3.2.3.tar.gz", hash = "sha256:8b0dd8ae4c0d6f5e54ee55ba935eeb3d735a9b58a8a1e5b5cbab64e01a39f365", size = 185752 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/2e/d4fcb2978f826358b673f779f78fa8a32ee37df11920dc2bb5589cbeecef/greenlet-3.2.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:784ae58bba89fa1fa5733d170d42486580cab9decda3484779f4759345b29822", size = 270219 }, + { url = "https://files.pythonhosted.org/packages/16/24/929f853e0202130e4fe163bc1d05a671ce8dcd604f790e14896adac43a52/greenlet-3.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0921ac4ea42a5315d3446120ad48f90c3a6b9bb93dd9b3cf4e4d84a66e42de83", size = 630383 }, + { url = "https://files.pythonhosted.org/packages/d1/b2/0320715eb61ae70c25ceca2f1d5ae620477d246692d9cc284c13242ec31c/greenlet-3.2.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:d2971d93bb99e05f8c2c0c2f4aa9484a18d98c4c3bd3c62b65b7e6ae33dfcfaf", size = 642422 }, + { url = "https://files.pythonhosted.org/packages/bd/49/445fd1a210f4747fedf77615d941444349c6a3a4a1135bba9701337cd966/greenlet-3.2.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c667c0bf9d406b77a15c924ef3285e1e05250948001220368e039b6aa5b5034b", size = 638375 }, + { url = "https://files.pythonhosted.org/packages/7e/c8/ca19760cf6eae75fa8dc32b487e963d863b3ee04a7637da77b616703bc37/greenlet-3.2.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:592c12fb1165be74592f5de0d70f82bc5ba552ac44800d632214b76089945147", size = 637627 }, + { url = "https://files.pythonhosted.org/packages/65/89/77acf9e3da38e9bcfca881e43b02ed467c1dedc387021fc4d9bd9928afb8/greenlet-3.2.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:29e184536ba333003540790ba29829ac14bb645514fbd7e32af331e8202a62a5", size = 585502 }, + { url = "https://files.pythonhosted.org/packages/97/c6/ae244d7c95b23b7130136e07a9cc5aadd60d59b5951180dc7dc7e8edaba7/greenlet-3.2.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:93c0bb79844a367782ec4f429d07589417052e621aa39a5ac1fb99c5aa308edc", size = 1114498 }, + { url = "https://files.pythonhosted.org/packages/89/5f/b16dec0cbfd3070658e0d744487919740c6d45eb90946f6787689a7efbce/greenlet-3.2.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:751261fc5ad7b6705f5f76726567375bb2104a059454e0226e1eef6c756748ba", size = 1139977 }, + { url = "https://files.pythonhosted.org/packages/66/77/d48fb441b5a71125bcac042fc5b1494c806ccb9a1432ecaa421e72157f77/greenlet-3.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:83a8761c75312361aa2b5b903b79da97f13f556164a7dd2d5448655425bd4c34", size = 297017 }, + { url = "https://files.pythonhosted.org/packages/f3/94/ad0d435f7c48debe960c53b8f60fb41c2026b1d0fa4a99a1cb17c3461e09/greenlet-3.2.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:25ad29caed5783d4bd7a85c9251c651696164622494c00802a139c00d639242d", size = 271992 }, + { url = "https://files.pythonhosted.org/packages/93/5d/7c27cf4d003d6e77749d299c7c8f5fd50b4f251647b5c2e97e1f20da0ab5/greenlet-3.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88cd97bf37fe24a6710ec6a3a7799f3f81d9cd33317dcf565ff9950c83f55e0b", size = 638820 }, + { url = "https://files.pythonhosted.org/packages/c6/7e/807e1e9be07a125bb4c169144937910bf59b9d2f6d931578e57f0bce0ae2/greenlet-3.2.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:baeedccca94880d2f5666b4fa16fc20ef50ba1ee353ee2d7092b383a243b0b0d", size = 653046 }, + { url = "https://files.pythonhosted.org/packages/9d/ab/158c1a4ea1068bdbc78dba5a3de57e4c7aeb4e7fa034320ea94c688bfb61/greenlet-3.2.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:be52af4b6292baecfa0f397f3edb3c6092ce071b499dd6fe292c9ac9f2c8f264", size = 647701 }, + { url = "https://files.pythonhosted.org/packages/cc/0d/93729068259b550d6a0288da4ff72b86ed05626eaf1eb7c0d3466a2571de/greenlet-3.2.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0cc73378150b8b78b0c9fe2ce56e166695e67478550769536a6742dca3651688", size = 649747 }, + { url = "https://files.pythonhosted.org/packages/f6/f6/c82ac1851c60851302d8581680573245c8fc300253fc1ff741ae74a6c24d/greenlet-3.2.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:706d016a03e78df129f68c4c9b4c4f963f7d73534e48a24f5f5a7101ed13dbbb", size = 605461 }, + { url = "https://files.pythonhosted.org/packages/98/82/d022cf25ca39cf1200650fc58c52af32c90f80479c25d1cbf57980ec3065/greenlet-3.2.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:419e60f80709510c343c57b4bb5a339d8767bf9aef9b8ce43f4f143240f88b7c", size = 1121190 }, + { url = "https://files.pythonhosted.org/packages/f5/e1/25297f70717abe8104c20ecf7af0a5b82d2f5a980eb1ac79f65654799f9f/greenlet-3.2.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:93d48533fade144203816783373f27a97e4193177ebaaf0fc396db19e5d61163", size = 1149055 }, + { url = "https://files.pythonhosted.org/packages/1f/8f/8f9e56c5e82eb2c26e8cde787962e66494312dc8cb261c460e1f3a9c88bc/greenlet-3.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:7454d37c740bb27bdeddfc3f358f26956a07d5220818ceb467a483197d84f849", size = 297817 }, + { url = "https://files.pythonhosted.org/packages/b1/cf/f5c0b23309070ae93de75c90d29300751a5aacefc0a3ed1b1d8edb28f08b/greenlet-3.2.3-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:500b8689aa9dd1ab26872a34084503aeddefcb438e2e7317b89b11eaea1901ad", size = 270732 }, + { url = "https://files.pythonhosted.org/packages/48/ae/91a957ba60482d3fecf9be49bc3948f341d706b52ddb9d83a70d42abd498/greenlet-3.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a07d3472c2a93117af3b0136f246b2833fdc0b542d4a9799ae5f41c28323faef", size = 639033 }, + { url = "https://files.pythonhosted.org/packages/6f/df/20ffa66dd5a7a7beffa6451bdb7400d66251374ab40b99981478c69a67a8/greenlet-3.2.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:8704b3768d2f51150626962f4b9a9e4a17d2e37c8a8d9867bbd9fa4eb938d3b3", size = 652999 }, + { url = "https://files.pythonhosted.org/packages/51/b4/ebb2c8cb41e521f1d72bf0465f2f9a2fd803f674a88db228887e6847077e/greenlet-3.2.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5035d77a27b7c62db6cf41cf786cfe2242644a7a337a0e155c80960598baab95", size = 647368 }, + { url = "https://files.pythonhosted.org/packages/8e/6a/1e1b5aa10dced4ae876a322155705257748108b7fd2e4fae3f2a091fe81a/greenlet-3.2.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2d8aa5423cd4a396792f6d4580f88bdc6efcb9205891c9d40d20f6e670992efb", size = 650037 }, + { url = "https://files.pythonhosted.org/packages/26/f2/ad51331a157c7015c675702e2d5230c243695c788f8f75feba1af32b3617/greenlet-3.2.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2c724620a101f8170065d7dded3f962a2aea7a7dae133a009cada42847e04a7b", size = 608402 }, + { url = "https://files.pythonhosted.org/packages/26/bc/862bd2083e6b3aff23300900a956f4ea9a4059de337f5c8734346b9b34fc/greenlet-3.2.3-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:873abe55f134c48e1f2a6f53f7d1419192a3d1a4e873bace00499a4e45ea6af0", size = 1119577 }, + { url = "https://files.pythonhosted.org/packages/86/94/1fc0cc068cfde885170e01de40a619b00eaa8f2916bf3541744730ffb4c3/greenlet-3.2.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:024571bbce5f2c1cfff08bf3fbaa43bbc7444f580ae13b0099e95d0e6e67ed36", size = 1147121 }, + { url = "https://files.pythonhosted.org/packages/27/1a/199f9587e8cb08a0658f9c30f3799244307614148ffe8b1e3aa22f324dea/greenlet-3.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:5195fb1e75e592dd04ce79881c8a22becdfa3e6f500e7feb059b1e6fdd54d3e3", size = 297603 }, ] [[package]] @@ -1183,34 +1152,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515 }, ] -[[package]] -name = "httpcore" -version = "1.0.9" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "h11" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784 }, -] - -[[package]] -name = "httpx" -version = "0.28.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "certifi" }, - { name = "httpcore" }, - { name = "idna" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 }, -] - [[package]] name = "identify" version = "2.6.12" @@ -1285,7 +1226,7 @@ wheels = [ [[package]] name = "ipython" -version = "9.2.0" +version = "9.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -1300,9 +1241,9 @@ dependencies = [ { name = "traitlets" }, { name = "typing-extensions", marker = "python_full_version < '3.12'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9d/02/63a84444a7409b3c0acd1de9ffe524660e0e5d82ee473e78b45e5bfb64a4/ipython-9.2.0.tar.gz", hash = "sha256:62a9373dbc12f28f9feaf4700d052195bf89806279fc8ca11f3f54017d04751b", size = 4424394 } +sdist = { url = "https://files.pythonhosted.org/packages/54/80/406f9e3bde1c1fd9bf5a0be9d090f8ae623e401b7670d8f6fdf2ab679891/ipython-9.4.0.tar.gz", hash = "sha256:c033c6d4e7914c3d9768aabe76bbe87ba1dc66a92a05db6bfa1125d81f2ee270", size = 4385338 } wheels = [ - { url = "https://files.pythonhosted.org/packages/78/ce/5e897ee51b7d26ab4e47e5105e7368d40ce6cfae2367acdf3165396d50be/ipython-9.2.0-py3-none-any.whl", hash = "sha256:fef5e33c4a1ae0759e0bba5917c9db4eb8c53fee917b6a526bd973e1ca5159f6", size = 604277 }, + { url = "https://files.pythonhosted.org/packages/63/f8/0031ee2b906a15a33d6bfc12dd09c3dfa966b3cb5b284ecfb7549e6ac3c4/ipython-9.4.0-py3-none-any.whl", hash = "sha256:25850f025a446d9b359e8d296ba175a36aedd32e83ca9b5060430fe16801f066", size = 611021 }, ] [[package]] @@ -1359,15 +1300,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", size = 20256 }, ] -[[package]] -name = "joblib" -version = "1.5.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/dc/fe/0f5a938c54105553436dbff7a61dc4fed4b1b2c98852f8833beaf4d5968f/joblib-1.5.1.tar.gz", hash = "sha256:f4f86e351f39fe3d0d32a9f2c3d8af1ee4cec285aafcb27003dda5205576b444", size = 330475 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7d/4f/1195bbac8e0c2acc5f740661631d8d750dc38d4a32b23ee5df3cde6f4e0d/joblib-1.5.1-py3-none-any.whl", hash = "sha256:4719a31f054c7d766948dcd83e9613686b27114f190f717cec7eaa2084f8a74a", size = 307746 }, -] - [[package]] name = "jsonschema" version = "4.24.0" @@ -1548,15 +1480,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, ] -[[package]] -name = "marshmallow" -version = "4.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/ff/26df5a9f5ac57ccf693a5854916ab47243039d2aa9e0fe5f5a0331e7b74b/marshmallow-4.0.0.tar.gz", hash = "sha256:3b6e80aac299a7935cfb97ed01d1854fb90b5079430969af92118ea1b12a8d55", size = 220507 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d6/26/6cc45d156f44dbe1d5696d9e54042e4dcaf7b946c0b86df6a97d29706f32/marshmallow-4.0.0-py3-none-any.whl", hash = "sha256:e7b0528337e9990fd64950f8a6b3a1baabed09ad17a0dfb844d701151f92d203", size = 48420 }, -] - [[package]] name = "matplotlib-inline" version = "0.1.7" @@ -1618,120 +1541,121 @@ wheels = [ [[package]] name = "msgpack" -version = "1.1.0" +version = "1.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cb/d0/7555686ae7ff5731205df1012ede15dd9d927f6227ea151e901c7406af4f/msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e", size = 167260 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/5e/a4c7154ba65d93be91f2f1e55f90e76c5f91ccadc7efc4341e6f04c8647f/msgpack-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7", size = 150803 }, - { url = "https://files.pythonhosted.org/packages/60/c2/687684164698f1d51c41778c838d854965dd284a4b9d3a44beba9265c931/msgpack-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa", size = 84343 }, - { url = "https://files.pythonhosted.org/packages/42/ae/d3adea9bb4a1342763556078b5765e666f8fdf242e00f3f6657380920972/msgpack-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701", size = 81408 }, - { url = "https://files.pythonhosted.org/packages/dc/17/6313325a6ff40ce9c3207293aee3ba50104aed6c2c1559d20d09e5c1ff54/msgpack-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6", size = 396096 }, - { url = "https://files.pythonhosted.org/packages/a8/a1/ad7b84b91ab5a324e707f4c9761633e357820b011a01e34ce658c1dda7cc/msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59", size = 403671 }, - { url = "https://files.pythonhosted.org/packages/bb/0b/fd5b7c0b308bbf1831df0ca04ec76fe2f5bf6319833646b0a4bd5e9dc76d/msgpack-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0", size = 387414 }, - { url = "https://files.pythonhosted.org/packages/f0/03/ff8233b7c6e9929a1f5da3c7860eccd847e2523ca2de0d8ef4878d354cfa/msgpack-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e", size = 383759 }, - { url = "https://files.pythonhosted.org/packages/1f/1b/eb82e1fed5a16dddd9bc75f0854b6e2fe86c0259c4353666d7fab37d39f4/msgpack-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6", size = 394405 }, - { url = "https://files.pythonhosted.org/packages/90/2e/962c6004e373d54ecf33d695fb1402f99b51832631e37c49273cc564ffc5/msgpack-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5", size = 396041 }, - { url = "https://files.pythonhosted.org/packages/f8/20/6e03342f629474414860c48aeffcc2f7f50ddaf351d95f20c3f1c67399a8/msgpack-1.1.0-cp311-cp311-win32.whl", hash = "sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88", size = 68538 }, - { url = "https://files.pythonhosted.org/packages/aa/c4/5a582fc9a87991a3e6f6800e9bb2f3c82972912235eb9539954f3e9997c7/msgpack-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788", size = 74871 }, - { url = "https://files.pythonhosted.org/packages/e1/d6/716b7ca1dbde63290d2973d22bbef1b5032ca634c3ff4384a958ec3f093a/msgpack-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d", size = 152421 }, - { url = "https://files.pythonhosted.org/packages/70/da/5312b067f6773429cec2f8f08b021c06af416bba340c912c2ec778539ed6/msgpack-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2", size = 85277 }, - { url = "https://files.pythonhosted.org/packages/28/51/da7f3ae4462e8bb98af0d5bdf2707f1b8c65a0d4f496e46b6afb06cbc286/msgpack-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420", size = 82222 }, - { url = "https://files.pythonhosted.org/packages/33/af/dc95c4b2a49cff17ce47611ca9ba218198806cad7796c0b01d1e332c86bb/msgpack-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2", size = 392971 }, - { url = "https://files.pythonhosted.org/packages/f1/54/65af8de681fa8255402c80eda2a501ba467921d5a7a028c9c22a2c2eedb5/msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39", size = 401403 }, - { url = "https://files.pythonhosted.org/packages/97/8c/e333690777bd33919ab7024269dc3c41c76ef5137b211d776fbb404bfead/msgpack-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f", size = 385356 }, - { url = "https://files.pythonhosted.org/packages/57/52/406795ba478dc1c890559dd4e89280fa86506608a28ccf3a72fbf45df9f5/msgpack-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247", size = 383028 }, - { url = "https://files.pythonhosted.org/packages/e7/69/053b6549bf90a3acadcd8232eae03e2fefc87f066a5b9fbb37e2e608859f/msgpack-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c", size = 391100 }, - { url = "https://files.pythonhosted.org/packages/23/f0/d4101d4da054f04274995ddc4086c2715d9b93111eb9ed49686c0f7ccc8a/msgpack-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b", size = 394254 }, - { url = "https://files.pythonhosted.org/packages/1c/12/cf07458f35d0d775ff3a2dc5559fa2e1fcd06c46f1ef510e594ebefdca01/msgpack-1.1.0-cp312-cp312-win32.whl", hash = "sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b", size = 69085 }, - { url = "https://files.pythonhosted.org/packages/73/80/2708a4641f7d553a63bc934a3eb7214806b5b39d200133ca7f7afb0a53e8/msgpack-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f", size = 75347 }, - { url = "https://files.pythonhosted.org/packages/c8/b0/380f5f639543a4ac413e969109978feb1f3c66e931068f91ab6ab0f8be00/msgpack-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf", size = 151142 }, - { url = "https://files.pythonhosted.org/packages/c8/ee/be57e9702400a6cb2606883d55b05784fada898dfc7fd12608ab1fdb054e/msgpack-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330", size = 84523 }, - { url = "https://files.pythonhosted.org/packages/7e/3a/2919f63acca3c119565449681ad08a2f84b2171ddfcff1dba6959db2cceb/msgpack-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734", size = 81556 }, - { url = "https://files.pythonhosted.org/packages/7c/43/a11113d9e5c1498c145a8925768ea2d5fce7cbab15c99cda655aa09947ed/msgpack-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e", size = 392105 }, - { url = "https://files.pythonhosted.org/packages/2d/7b/2c1d74ca6c94f70a1add74a8393a0138172207dc5de6fc6269483519d048/msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca", size = 399979 }, - { url = "https://files.pythonhosted.org/packages/82/8c/cf64ae518c7b8efc763ca1f1348a96f0e37150061e777a8ea5430b413a74/msgpack-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915", size = 383816 }, - { url = "https://files.pythonhosted.org/packages/69/86/a847ef7a0f5ef3fa94ae20f52a4cacf596a4e4a010197fbcc27744eb9a83/msgpack-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d", size = 380973 }, - { url = "https://files.pythonhosted.org/packages/aa/90/c74cf6e1126faa93185d3b830ee97246ecc4fe12cf9d2d31318ee4246994/msgpack-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434", size = 387435 }, - { url = "https://files.pythonhosted.org/packages/7a/40/631c238f1f338eb09f4acb0f34ab5862c4e9d7eda11c1b685471a4c5ea37/msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c", size = 399082 }, - { url = "https://files.pythonhosted.org/packages/e9/1b/fa8a952be252a1555ed39f97c06778e3aeb9123aa4cccc0fd2acd0b4e315/msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc", size = 69037 }, - { url = "https://files.pythonhosted.org/packages/b6/bc/8bd826dd03e022153bfa1766dcdec4976d6c818865ed54223d71f07862b3/msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f", size = 75140 }, +sdist = { url = "https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz", hash = "sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd", size = 173555 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/83/97f24bf9848af23fe2ba04380388216defc49a8af6da0c28cc636d722502/msgpack-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:71ef05c1726884e44f8b1d1773604ab5d4d17729d8491403a705e649116c9558", size = 82728 }, + { url = "https://files.pythonhosted.org/packages/aa/7f/2eaa388267a78401f6e182662b08a588ef4f3de6f0eab1ec09736a7aaa2b/msgpack-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:36043272c6aede309d29d56851f8841ba907a1a3d04435e43e8a19928e243c1d", size = 79279 }, + { url = "https://files.pythonhosted.org/packages/f8/46/31eb60f4452c96161e4dfd26dbca562b4ec68c72e4ad07d9566d7ea35e8a/msgpack-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a32747b1b39c3ac27d0670122b57e6e57f28eefb725e0b625618d1b59bf9d1e0", size = 423859 }, + { url = "https://files.pythonhosted.org/packages/45/16/a20fa8c32825cc7ae8457fab45670c7a8996d7746ce80ce41cc51e3b2bd7/msgpack-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a8b10fdb84a43e50d38057b06901ec9da52baac6983d3f709d8507f3889d43f", size = 429975 }, + { url = "https://files.pythonhosted.org/packages/86/ea/6c958e07692367feeb1a1594d35e22b62f7f476f3c568b002a5ea09d443d/msgpack-1.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba0c325c3f485dc54ec298d8b024e134acf07c10d494ffa24373bea729acf704", size = 413528 }, + { url = "https://files.pythonhosted.org/packages/75/05/ac84063c5dae79722bda9f68b878dc31fc3059adb8633c79f1e82c2cd946/msgpack-1.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:88daaf7d146e48ec71212ce21109b66e06a98e5e44dca47d853cbfe171d6c8d2", size = 413338 }, + { url = "https://files.pythonhosted.org/packages/69/e8/fe86b082c781d3e1c09ca0f4dacd457ede60a13119b6ce939efe2ea77b76/msgpack-1.1.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8b55ea20dc59b181d3f47103f113e6f28a5e1c89fd5b67b9140edb442ab67f2", size = 422658 }, + { url = "https://files.pythonhosted.org/packages/3b/2b/bafc9924df52d8f3bb7c00d24e57be477f4d0f967c0a31ef5e2225e035c7/msgpack-1.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4a28e8072ae9779f20427af07f53bbb8b4aa81151054e882aee333b158da8752", size = 427124 }, + { url = "https://files.pythonhosted.org/packages/a2/3b/1f717e17e53e0ed0b68fa59e9188f3f610c79d7151f0e52ff3cd8eb6b2dc/msgpack-1.1.1-cp311-cp311-win32.whl", hash = "sha256:7da8831f9a0fdb526621ba09a281fadc58ea12701bc709e7b8cbc362feabc295", size = 65016 }, + { url = "https://files.pythonhosted.org/packages/48/45/9d1780768d3b249accecc5a38c725eb1e203d44a191f7b7ff1941f7df60c/msgpack-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:5fd1b58e1431008a57247d6e7cc4faa41c3607e8e7d4aaf81f7c29ea013cb458", size = 72267 }, + { url = "https://files.pythonhosted.org/packages/e3/26/389b9c593eda2b8551b2e7126ad3a06af6f9b44274eb3a4f054d48ff7e47/msgpack-1.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae497b11f4c21558d95de9f64fff7053544f4d1a17731c866143ed6bb4591238", size = 82359 }, + { url = "https://files.pythonhosted.org/packages/ab/65/7d1de38c8a22cf8b1551469159d4b6cf49be2126adc2482de50976084d78/msgpack-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157", size = 79172 }, + { url = "https://files.pythonhosted.org/packages/0f/bd/cacf208b64d9577a62c74b677e1ada005caa9b69a05a599889d6fc2ab20a/msgpack-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f64ae8fe7ffba251fecb8408540c34ee9df1c26674c50c4544d72dbf792e5ce", size = 425013 }, + { url = "https://files.pythonhosted.org/packages/4d/ec/fd869e2567cc9c01278a736cfd1697941ba0d4b81a43e0aa2e8d71dab208/msgpack-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a494554874691720ba5891c9b0b39474ba43ffb1aaf32a5dac874effb1619e1a", size = 426905 }, + { url = "https://files.pythonhosted.org/packages/55/2a/35860f33229075bce803a5593d046d8b489d7ba2fc85701e714fc1aaf898/msgpack-1.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb643284ab0ed26f6957d969fe0dd8bb17beb567beb8998140b5e38a90974f6c", size = 407336 }, + { url = "https://files.pythonhosted.org/packages/8c/16/69ed8f3ada150bf92745fb4921bd621fd2cdf5a42e25eb50bcc57a5328f0/msgpack-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d275a9e3c81b1093c060c3837e580c37f47c51eca031f7b5fb76f7b8470f5f9b", size = 409485 }, + { url = "https://files.pythonhosted.org/packages/c6/b6/0c398039e4c6d0b2e37c61d7e0e9d13439f91f780686deb8ee64ecf1ae71/msgpack-1.1.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fd6b577e4541676e0cc9ddc1709d25014d3ad9a66caa19962c4f5de30fc09ef", size = 412182 }, + { url = "https://files.pythonhosted.org/packages/b8/d0/0cf4a6ecb9bc960d624c93effaeaae75cbf00b3bc4a54f35c8507273cda1/msgpack-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb29aaa613c0a1c40d1af111abf025f1732cab333f96f285d6a93b934738a68a", size = 419883 }, + { url = "https://files.pythonhosted.org/packages/62/83/9697c211720fa71a2dfb632cad6196a8af3abea56eece220fde4674dc44b/msgpack-1.1.1-cp312-cp312-win32.whl", hash = "sha256:870b9a626280c86cff9c576ec0d9cbcc54a1e5ebda9cd26dab12baf41fee218c", size = 65406 }, + { url = "https://files.pythonhosted.org/packages/c0/23/0abb886e80eab08f5e8c485d6f13924028602829f63b8f5fa25a06636628/msgpack-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:5692095123007180dca3e788bb4c399cc26626da51629a31d40207cb262e67f4", size = 72558 }, + { url = "https://files.pythonhosted.org/packages/a1/38/561f01cf3577430b59b340b51329803d3a5bf6a45864a55f4ef308ac11e3/msgpack-1.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3765afa6bd4832fc11c3749be4ba4b69a0e8d7b728f78e68120a157a4c5d41f0", size = 81677 }, + { url = "https://files.pythonhosted.org/packages/09/48/54a89579ea36b6ae0ee001cba8c61f776451fad3c9306cd80f5b5c55be87/msgpack-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8ddb2bcfd1a8b9e431c8d6f4f7db0773084e107730ecf3472f1dfe9ad583f3d9", size = 78603 }, + { url = "https://files.pythonhosted.org/packages/a0/60/daba2699b308e95ae792cdc2ef092a38eb5ee422f9d2fbd4101526d8a210/msgpack-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:196a736f0526a03653d829d7d4c5500a97eea3648aebfd4b6743875f28aa2af8", size = 420504 }, + { url = "https://files.pythonhosted.org/packages/20/22/2ebae7ae43cd8f2debc35c631172ddf14e2a87ffcc04cf43ff9df9fff0d3/msgpack-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d592d06e3cc2f537ceeeb23d38799c6ad83255289bb84c2e5792e5a8dea268a", size = 423749 }, + { url = "https://files.pythonhosted.org/packages/40/1b/54c08dd5452427e1179a40b4b607e37e2664bca1c790c60c442c8e972e47/msgpack-1.1.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4df2311b0ce24f06ba253fda361f938dfecd7b961576f9be3f3fbd60e87130ac", size = 404458 }, + { url = "https://files.pythonhosted.org/packages/2e/60/6bb17e9ffb080616a51f09928fdd5cac1353c9becc6c4a8abd4e57269a16/msgpack-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e4141c5a32b5e37905b5940aacbc59739f036930367d7acce7a64e4dec1f5e0b", size = 405976 }, + { url = "https://files.pythonhosted.org/packages/ee/97/88983e266572e8707c1f4b99c8fd04f9eb97b43f2db40e3172d87d8642db/msgpack-1.1.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b1ce7f41670c5a69e1389420436f41385b1aa2504c3b0c30620764b15dded2e7", size = 408607 }, + { url = "https://files.pythonhosted.org/packages/bc/66/36c78af2efaffcc15a5a61ae0df53a1d025f2680122e2a9eb8442fed3ae4/msgpack-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4147151acabb9caed4e474c3344181e91ff7a388b888f1e19ea04f7e73dc7ad5", size = 424172 }, + { url = "https://files.pythonhosted.org/packages/8c/87/a75eb622b555708fe0427fab96056d39d4c9892b0c784b3a721088c7ee37/msgpack-1.1.1-cp313-cp313-win32.whl", hash = "sha256:500e85823a27d6d9bba1d057c871b4210c1dd6fb01fbb764e37e4e8847376323", size = 65347 }, + { url = "https://files.pythonhosted.org/packages/ca/91/7dc28d5e2a11a5ad804cf2b7f7a5fcb1eb5a4966d66a5d2b41aee6376543/msgpack-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:6d489fba546295983abd142812bda76b57e33d0b9f5d5b71c09a583285506f69", size = 72341 }, ] [[package]] name = "multidict" -version = "6.4.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/91/2f/a3470242707058fe856fe59241eee5635d79087100b7042a867368863a27/multidict-6.4.4.tar.gz", hash = "sha256:69ee9e6ba214b5245031b76233dd95408a0fd57fdb019ddcc1ead4790932a8e8", size = 90183 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/19/1b/4c6e638195851524a63972c5773c7737bea7e47b1ba402186a37773acee2/multidict-6.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4f5f29794ac0e73d2a06ac03fd18870adc0135a9d384f4a306a951188ed02f95", size = 65515 }, - { url = "https://files.pythonhosted.org/packages/25/d5/10e6bca9a44b8af3c7f920743e5fc0c2bcf8c11bf7a295d4cfe00b08fb46/multidict-6.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c04157266344158ebd57b7120d9b0b35812285d26d0e78193e17ef57bfe2979a", size = 38609 }, - { url = "https://files.pythonhosted.org/packages/26/b4/91fead447ccff56247edc7f0535fbf140733ae25187a33621771ee598a18/multidict-6.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bb61ffd3ab8310d93427e460f565322c44ef12769f51f77277b4abad7b6f7223", size = 37871 }, - { url = "https://files.pythonhosted.org/packages/3b/37/cbc977cae59277e99d15bbda84cc53b5e0c4929ffd91d958347200a42ad0/multidict-6.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e0ba18a9afd495f17c351d08ebbc4284e9c9f7971d715f196b79636a4d0de44", size = 226661 }, - { url = "https://files.pythonhosted.org/packages/15/cd/7e0b57fbd4dc2fc105169c4ecce5be1a63970f23bb4ec8c721b67e11953d/multidict-6.4.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9faf1b1dcaadf9f900d23a0e6d6c8eadd6a95795a0e57fcca73acce0eb912065", size = 223422 }, - { url = "https://files.pythonhosted.org/packages/f1/01/1de268da121bac9f93242e30cd3286f6a819e5f0b8896511162d6ed4bf8d/multidict-6.4.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a4d1cb1327c6082c4fce4e2a438483390964c02213bc6b8d782cf782c9b1471f", size = 235447 }, - { url = "https://files.pythonhosted.org/packages/d2/8c/8b9a5e4aaaf4f2de14e86181a3a3d7b105077f668b6a06f043ec794f684c/multidict-6.4.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:941f1bec2f5dbd51feeb40aea654c2747f811ab01bdd3422a48a4e4576b7d76a", size = 231455 }, - { url = "https://files.pythonhosted.org/packages/35/db/e1817dcbaa10b319c412769cf999b1016890849245d38905b73e9c286862/multidict-6.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5f8a146184da7ea12910a4cec51ef85e44f6268467fb489c3caf0cd512f29c2", size = 223666 }, - { url = "https://files.pythonhosted.org/packages/4a/e1/66e8579290ade8a00e0126b3d9a93029033ffd84f0e697d457ed1814d0fc/multidict-6.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:232b7237e57ec3c09be97206bfb83a0aa1c5d7d377faa019c68a210fa35831f1", size = 217392 }, - { url = "https://files.pythonhosted.org/packages/7b/6f/f8639326069c24a48c7747c2a5485d37847e142a3f741ff3340c88060a9a/multidict-6.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:55ae0721c1513e5e3210bca4fc98456b980b0c2c016679d3d723119b6b202c42", size = 228969 }, - { url = "https://files.pythonhosted.org/packages/d2/c3/3d58182f76b960eeade51c89fcdce450f93379340457a328e132e2f8f9ed/multidict-6.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:51d662c072579f63137919d7bb8fc250655ce79f00c82ecf11cab678f335062e", size = 217433 }, - { url = "https://files.pythonhosted.org/packages/e1/4b/f31a562906f3bd375f3d0e83ce314e4a660c01b16c2923e8229b53fba5d7/multidict-6.4.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0e05c39962baa0bb19a6b210e9b1422c35c093b651d64246b6c2e1a7e242d9fd", size = 225418 }, - { url = "https://files.pythonhosted.org/packages/99/89/78bb95c89c496d64b5798434a3deee21996114d4d2c28dd65850bf3a691e/multidict-6.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5b1cc3ab8c31d9ebf0faa6e3540fb91257590da330ffe6d2393d4208e638925", size = 235042 }, - { url = "https://files.pythonhosted.org/packages/74/91/8780a6e5885a8770442a8f80db86a0887c4becca0e5a2282ba2cae702bc4/multidict-6.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:93ec84488a384cd7b8a29c2c7f467137d8a73f6fe38bb810ecf29d1ade011a7c", size = 230280 }, - { url = "https://files.pythonhosted.org/packages/68/c1/fcf69cabd542eb6f4b892469e033567ee6991d361d77abdc55e3a0f48349/multidict-6.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b308402608493638763abc95f9dc0030bbd6ac6aff784512e8ac3da73a88af08", size = 223322 }, - { url = "https://files.pythonhosted.org/packages/b8/85/5b80bf4b83d8141bd763e1d99142a9cdfd0db83f0739b4797172a4508014/multidict-6.4.4-cp311-cp311-win32.whl", hash = "sha256:343892a27d1a04d6ae455ecece12904d242d299ada01633d94c4f431d68a8c49", size = 35070 }, - { url = "https://files.pythonhosted.org/packages/09/66/0bed198ffd590ab86e001f7fa46b740d58cf8ff98c2f254e4a36bf8861ad/multidict-6.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:73484a94f55359780c0f458bbd3c39cb9cf9c182552177d2136e828269dee529", size = 38667 }, - { url = "https://files.pythonhosted.org/packages/d2/b5/5675377da23d60875fe7dae6be841787755878e315e2f517235f22f59e18/multidict-6.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dc388f75a1c00000824bf28b7633e40854f4127ede80512b44c3cfeeea1839a2", size = 64293 }, - { url = "https://files.pythonhosted.org/packages/34/a7/be384a482754bb8c95d2bbe91717bf7ccce6dc38c18569997a11f95aa554/multidict-6.4.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:98af87593a666f739d9dba5d0ae86e01b0e1a9cfcd2e30d2d361fbbbd1a9162d", size = 38096 }, - { url = "https://files.pythonhosted.org/packages/66/6d/d59854bb4352306145bdfd1704d210731c1bb2c890bfee31fb7bbc1c4c7f/multidict-6.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aff4cafea2d120327d55eadd6b7f1136a8e5a0ecf6fb3b6863e8aca32cd8e50a", size = 37214 }, - { url = "https://files.pythonhosted.org/packages/99/e0/c29d9d462d7cfc5fc8f9bf24f9c6843b40e953c0b55e04eba2ad2cf54fba/multidict-6.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:169c4ba7858176b797fe551d6e99040c531c775d2d57b31bcf4de6d7a669847f", size = 224686 }, - { url = "https://files.pythonhosted.org/packages/dc/4a/da99398d7fd8210d9de068f9a1b5f96dfaf67d51e3f2521f17cba4ee1012/multidict-6.4.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b9eb4c59c54421a32b3273d4239865cb14ead53a606db066d7130ac80cc8ec93", size = 231061 }, - { url = "https://files.pythonhosted.org/packages/21/f5/ac11add39a0f447ac89353e6ca46666847051103649831c08a2800a14455/multidict-6.4.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7cf3bd54c56aa16fdb40028d545eaa8d051402b61533c21e84046e05513d5780", size = 232412 }, - { url = "https://files.pythonhosted.org/packages/d9/11/4b551e2110cded705a3c13a1d4b6a11f73891eb5a1c449f1b2b6259e58a6/multidict-6.4.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f682c42003c7264134bfe886376299db4cc0c6cd06a3295b41b347044bcb5482", size = 231563 }, - { url = "https://files.pythonhosted.org/packages/4c/02/751530c19e78fe73b24c3da66618eda0aa0d7f6e7aa512e46483de6be210/multidict-6.4.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a920f9cf2abdf6e493c519492d892c362007f113c94da4c239ae88429835bad1", size = 223811 }, - { url = "https://files.pythonhosted.org/packages/c7/cb/2be8a214643056289e51ca356026c7b2ce7225373e7a1f8c8715efee8988/multidict-6.4.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:530d86827a2df6504526106b4c104ba19044594f8722d3e87714e847c74a0275", size = 216524 }, - { url = "https://files.pythonhosted.org/packages/19/f3/6d5011ec375c09081f5250af58de85f172bfcaafebff286d8089243c4bd4/multidict-6.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ecde56ea2439b96ed8a8d826b50c57364612ddac0438c39e473fafad7ae1c23b", size = 229012 }, - { url = "https://files.pythonhosted.org/packages/67/9c/ca510785df5cf0eaf5b2a8132d7d04c1ce058dcf2c16233e596ce37a7f8e/multidict-6.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:dc8c9736d8574b560634775ac0def6bdc1661fc63fa27ffdfc7264c565bcb4f2", size = 226765 }, - { url = "https://files.pythonhosted.org/packages/36/c8/ca86019994e92a0f11e642bda31265854e6ea7b235642f0477e8c2e25c1f/multidict-6.4.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7f3d3b3c34867579ea47cbd6c1f2ce23fbfd20a273b6f9e3177e256584f1eacc", size = 222888 }, - { url = "https://files.pythonhosted.org/packages/c6/67/bc25a8e8bd522935379066950ec4e2277f9b236162a73548a2576d4b9587/multidict-6.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:87a728af265e08f96b6318ebe3c0f68b9335131f461efab2fc64cc84a44aa6ed", size = 234041 }, - { url = "https://files.pythonhosted.org/packages/f1/a0/70c4c2d12857fccbe607b334b7ee28b6b5326c322ca8f73ee54e70d76484/multidict-6.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9f193eeda1857f8e8d3079a4abd258f42ef4a4bc87388452ed1e1c4d2b0c8740", size = 231046 }, - { url = "https://files.pythonhosted.org/packages/c1/0f/52954601d02d39742aab01d6b92f53c1dd38b2392248154c50797b4df7f1/multidict-6.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be06e73c06415199200e9a2324a11252a3d62030319919cde5e6950ffeccf72e", size = 227106 }, - { url = "https://files.pythonhosted.org/packages/af/24/679d83ec4379402d28721790dce818e5d6b9f94ce1323a556fb17fa9996c/multidict-6.4.4-cp312-cp312-win32.whl", hash = "sha256:622f26ea6a7e19b7c48dd9228071f571b2fbbd57a8cd71c061e848f281550e6b", size = 35351 }, - { url = "https://files.pythonhosted.org/packages/52/ef/40d98bc5f986f61565f9b345f102409534e29da86a6454eb6b7c00225a13/multidict-6.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:5e2bcda30d5009996ff439e02a9f2b5c3d64a20151d34898c000a6281faa3781", size = 38791 }, - { url = "https://files.pythonhosted.org/packages/df/2a/e166d2ffbf4b10131b2d5b0e458f7cee7d986661caceae0de8753042d4b2/multidict-6.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:82ffabefc8d84c2742ad19c37f02cde5ec2a1ee172d19944d380f920a340e4b9", size = 64123 }, - { url = "https://files.pythonhosted.org/packages/8c/96/e200e379ae5b6f95cbae472e0199ea98913f03d8c9a709f42612a432932c/multidict-6.4.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6a2f58a66fe2c22615ad26156354005391e26a2f3721c3621504cd87c1ea87bf", size = 38049 }, - { url = "https://files.pythonhosted.org/packages/75/fb/47afd17b83f6a8c7fa863c6d23ac5ba6a0e6145ed8a6bcc8da20b2b2c1d2/multidict-6.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5883d6ee0fd9d8a48e9174df47540b7545909841ac82354c7ae4cbe9952603bd", size = 37078 }, - { url = "https://files.pythonhosted.org/packages/fa/70/1af3143000eddfb19fd5ca5e78393985ed988ac493bb859800fe0914041f/multidict-6.4.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9abcf56a9511653fa1d052bfc55fbe53dbee8f34e68bd6a5a038731b0ca42d15", size = 224097 }, - { url = "https://files.pythonhosted.org/packages/b1/39/d570c62b53d4fba844e0378ffbcd02ac25ca423d3235047013ba2f6f60f8/multidict-6.4.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6ed5ae5605d4ad5a049fad2a28bb7193400700ce2f4ae484ab702d1e3749c3f9", size = 230768 }, - { url = "https://files.pythonhosted.org/packages/fd/f8/ed88f2c4d06f752b015933055eb291d9bc184936903752c66f68fb3c95a7/multidict-6.4.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbfcb60396f9bcfa63e017a180c3105b8c123a63e9d1428a36544e7d37ca9e20", size = 231331 }, - { url = "https://files.pythonhosted.org/packages/9c/6f/8e07cffa32f483ab887b0d56bbd8747ac2c1acd00dc0af6fcf265f4a121e/multidict-6.4.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0f1987787f5f1e2076b59692352ab29a955b09ccc433c1f6b8e8e18666f608b", size = 230169 }, - { url = "https://files.pythonhosted.org/packages/e6/2b/5dcf173be15e42f330110875a2668ddfc208afc4229097312212dc9c1236/multidict-6.4.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d0121ccce8c812047d8d43d691a1ad7641f72c4f730474878a5aeae1b8ead8c", size = 222947 }, - { url = "https://files.pythonhosted.org/packages/39/75/4ddcbcebe5ebcd6faa770b629260d15840a5fc07ce8ad295a32e14993726/multidict-6.4.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83ec4967114295b8afd120a8eec579920c882831a3e4c3331d591a8e5bfbbc0f", size = 215761 }, - { url = "https://files.pythonhosted.org/packages/6a/c9/55e998ae45ff15c5608e384206aa71a11e1b7f48b64d166db400b14a3433/multidict-6.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:995f985e2e268deaf17867801b859a282e0448633f1310e3704b30616d269d69", size = 227605 }, - { url = "https://files.pythonhosted.org/packages/04/49/c2404eac74497503c77071bd2e6f88c7e94092b8a07601536b8dbe99be50/multidict-6.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:d832c608f94b9f92a0ec8b7e949be7792a642b6e535fcf32f3e28fab69eeb046", size = 226144 }, - { url = "https://files.pythonhosted.org/packages/62/c5/0cd0c3c6f18864c40846aa2252cd69d308699cb163e1c0d989ca301684da/multidict-6.4.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d21c1212171cf7da703c5b0b7a0e85be23b720818aef502ad187d627316d5645", size = 221100 }, - { url = "https://files.pythonhosted.org/packages/71/7b/f2f3887bea71739a046d601ef10e689528d4f911d84da873b6be9194ffea/multidict-6.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:cbebaa076aaecad3d4bb4c008ecc73b09274c952cf6a1b78ccfd689e51f5a5b0", size = 232731 }, - { url = "https://files.pythonhosted.org/packages/e5/b3/d9de808349df97fa75ec1372758701b5800ebad3c46ae377ad63058fbcc6/multidict-6.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:c93a6fb06cc8e5d3628b2b5fda215a5db01e8f08fc15fadd65662d9b857acbe4", size = 229637 }, - { url = "https://files.pythonhosted.org/packages/5e/57/13207c16b615eb4f1745b44806a96026ef8e1b694008a58226c2d8f5f0a5/multidict-6.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8cd8f81f1310182362fb0c7898145ea9c9b08a71081c5963b40ee3e3cac589b1", size = 225594 }, - { url = "https://files.pythonhosted.org/packages/3a/e4/d23bec2f70221604f5565000632c305fc8f25ba953e8ce2d8a18842b9841/multidict-6.4.4-cp313-cp313-win32.whl", hash = "sha256:3e9f1cd61a0ab857154205fb0b1f3d3ace88d27ebd1409ab7af5096e409614cd", size = 35359 }, - { url = "https://files.pythonhosted.org/packages/a7/7a/cfe1a47632be861b627f46f642c1d031704cc1c0f5c0efbde2ad44aa34bd/multidict-6.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:8ffb40b74400e4455785c2fa37eba434269149ec525fc8329858c862e4b35373", size = 38903 }, - { url = "https://files.pythonhosted.org/packages/68/7b/15c259b0ab49938a0a1c8f3188572802704a779ddb294edc1b2a72252e7c/multidict-6.4.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6a602151dbf177be2450ef38966f4be3467d41a86c6a845070d12e17c858a156", size = 68895 }, - { url = "https://files.pythonhosted.org/packages/f1/7d/168b5b822bccd88142e0a3ce985858fea612404edd228698f5af691020c9/multidict-6.4.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0d2b9712211b860d123815a80b859075d86a4d54787e247d7fbee9db6832cf1c", size = 40183 }, - { url = "https://files.pythonhosted.org/packages/e0/b7/d4b8d98eb850ef28a4922ba508c31d90715fd9b9da3801a30cea2967130b/multidict-6.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d2fa86af59f8fc1972e121ade052145f6da22758f6996a197d69bb52f8204e7e", size = 39592 }, - { url = "https://files.pythonhosted.org/packages/18/28/a554678898a19583548e742080cf55d169733baf57efc48c2f0273a08583/multidict-6.4.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50855d03e9e4d66eab6947ba688ffb714616f985838077bc4b490e769e48da51", size = 226071 }, - { url = "https://files.pythonhosted.org/packages/ee/dc/7ba6c789d05c310e294f85329efac1bf5b450338d2542498db1491a264df/multidict-6.4.4-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5bce06b83be23225be1905dcdb6b789064fae92499fbc458f59a8c0e68718601", size = 222597 }, - { url = "https://files.pythonhosted.org/packages/24/4f/34eadbbf401b03768dba439be0fb94b0d187facae9142821a3d5599ccb3b/multidict-6.4.4-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66ed0731f8e5dfd8369a883b6e564aca085fb9289aacabd9decd70568b9a30de", size = 228253 }, - { url = "https://files.pythonhosted.org/packages/c0/e6/493225a3cdb0d8d80d43a94503fc313536a07dae54a3f030d279e629a2bc/multidict-6.4.4-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:329ae97fc2f56f44d91bc47fe0972b1f52d21c4b7a2ac97040da02577e2daca2", size = 226146 }, - { url = "https://files.pythonhosted.org/packages/2f/70/e411a7254dc3bff6f7e6e004303b1b0591358e9f0b7c08639941e0de8bd6/multidict-6.4.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c27e5dcf520923d6474d98b96749e6805f7677e93aaaf62656005b8643f907ab", size = 220585 }, - { url = "https://files.pythonhosted.org/packages/08/8f/beb3ae7406a619100d2b1fb0022c3bb55a8225ab53c5663648ba50dfcd56/multidict-6.4.4-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:058cc59b9e9b143cc56715e59e22941a5d868c322242278d28123a5d09cdf6b0", size = 212080 }, - { url = "https://files.pythonhosted.org/packages/9c/ec/355124e9d3d01cf8edb072fd14947220f357e1c5bc79c88dff89297e9342/multidict-6.4.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:69133376bc9a03f8c47343d33f91f74a99c339e8b58cea90433d8e24bb298031", size = 226558 }, - { url = "https://files.pythonhosted.org/packages/fd/22/d2b95cbebbc2ada3be3812ea9287dcc9712d7f1a012fad041770afddb2ad/multidict-6.4.4-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d6b15c55721b1b115c5ba178c77104123745b1417527ad9641a4c5e2047450f0", size = 212168 }, - { url = "https://files.pythonhosted.org/packages/4d/c5/62bfc0b2f9ce88326dbe7179f9824a939c6c7775b23b95de777267b9725c/multidict-6.4.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a887b77f51d3d41e6e1a63cf3bc7ddf24de5939d9ff69441387dfefa58ac2e26", size = 217970 }, - { url = "https://files.pythonhosted.org/packages/79/74/977cea1aadc43ff1c75d23bd5bc4768a8fac98c14e5878d6ee8d6bab743c/multidict-6.4.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:632a3bf8f1787f7ef7d3c2f68a7bde5be2f702906f8b5842ad6da9d974d0aab3", size = 226980 }, - { url = "https://files.pythonhosted.org/packages/48/fc/cc4a1a2049df2eb84006607dc428ff237af38e0fcecfdb8a29ca47b1566c/multidict-6.4.4-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:a145c550900deb7540973c5cdb183b0d24bed6b80bf7bddf33ed8f569082535e", size = 220641 }, - { url = "https://files.pythonhosted.org/packages/3b/6a/a7444d113ab918701988d4abdde373dbdfd2def7bd647207e2bf645c7eac/multidict-6.4.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cc5d83c6619ca5c9672cb78b39ed8542f1975a803dee2cda114ff73cbb076edd", size = 221728 }, - { url = "https://files.pythonhosted.org/packages/2b/b0/fdf4c73ad1c55e0f4dbbf2aa59dd37037334091f9a4961646d2b7ac91a86/multidict-6.4.4-cp313-cp313t-win32.whl", hash = "sha256:3312f63261b9df49be9d57aaa6abf53a6ad96d93b24f9cc16cf979956355ce6e", size = 41913 }, - { url = "https://files.pythonhosted.org/packages/8e/92/27989ecca97e542c0d01d05a98a5ae12198a243a9ee12563a0313291511f/multidict-6.4.4-cp313-cp313t-win_amd64.whl", hash = "sha256:ba852168d814b2c73333073e1c7116d9395bea69575a01b0b3c89d2d5a87c8fb", size = 46112 }, - { url = "https://files.pythonhosted.org/packages/84/5d/e17845bb0fa76334477d5de38654d27946d5b5d3695443987a094a71b440/multidict-6.4.4-py3-none-any.whl", hash = "sha256:bd4557071b561a8b3b6075c3ce93cf9bfb6182cb241805c3d66ced3b75eff4ac", size = 10481 }, +version = "6.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3d/2c/5dad12e82fbdf7470f29bff2171484bf07cb3b16ada60a6589af8f376440/multidict-6.6.3.tar.gz", hash = "sha256:798a9eb12dab0a6c2e29c1de6f3468af5cb2da6053a20dfa3344907eed0937cc", size = 101006 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/08/f0/1a39863ced51f639c81a5463fbfa9eb4df59c20d1a8769ab9ef4ca57ae04/multidict-6.6.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:18f4eba0cbac3546b8ae31e0bbc55b02c801ae3cbaf80c247fcdd89b456ff58c", size = 76445 }, + { url = "https://files.pythonhosted.org/packages/c9/0e/a7cfa451c7b0365cd844e90b41e21fab32edaa1e42fc0c9f68461ce44ed7/multidict-6.6.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef43b5dd842382329e4797c46f10748d8c2b6e0614f46b4afe4aee9ac33159df", size = 44610 }, + { url = "https://files.pythonhosted.org/packages/c6/bb/a14a4efc5ee748cc1904b0748be278c31b9295ce5f4d2ef66526f410b94d/multidict-6.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf9bd1fd5eec01494e0f2e8e446a74a85d5e49afb63d75a9934e4a5423dba21d", size = 44267 }, + { url = "https://files.pythonhosted.org/packages/c2/f8/410677d563c2d55e063ef74fe578f9d53fe6b0a51649597a5861f83ffa15/multidict-6.6.3-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:5bd8d6f793a787153956cd35e24f60485bf0651c238e207b9a54f7458b16d539", size = 230004 }, + { url = "https://files.pythonhosted.org/packages/fd/df/2b787f80059314a98e1ec6a4cc7576244986df3e56b3c755e6fc7c99e038/multidict-6.6.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1bf99b4daf908c73856bd87ee0a2499c3c9a3d19bb04b9c6025e66af3fd07462", size = 247196 }, + { url = "https://files.pythonhosted.org/packages/05/f2/f9117089151b9a8ab39f9019620d10d9718eec2ac89e7ca9d30f3ec78e96/multidict-6.6.3-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b9e59946b49dafaf990fd9c17ceafa62976e8471a14952163d10a7a630413a9", size = 225337 }, + { url = "https://files.pythonhosted.org/packages/93/2d/7115300ec5b699faa152c56799b089a53ed69e399c3c2d528251f0aeda1a/multidict-6.6.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e2db616467070d0533832d204c54eea6836a5e628f2cb1e6dfd8cd6ba7277cb7", size = 257079 }, + { url = "https://files.pythonhosted.org/packages/15/ea/ff4bab367623e39c20d3b07637225c7688d79e4f3cc1f3b9f89867677f9a/multidict-6.6.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7394888236621f61dcdd25189b2768ae5cc280f041029a5bcf1122ac63df79f9", size = 255461 }, + { url = "https://files.pythonhosted.org/packages/74/07/2c9246cda322dfe08be85f1b8739646f2c4c5113a1422d7a407763422ec4/multidict-6.6.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f114d8478733ca7388e7c7e0ab34b72547476b97009d643644ac33d4d3fe1821", size = 246611 }, + { url = "https://files.pythonhosted.org/packages/a8/62/279c13d584207d5697a752a66ffc9bb19355a95f7659140cb1b3cf82180e/multidict-6.6.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cdf22e4db76d323bcdc733514bf732e9fb349707c98d341d40ebcc6e9318ef3d", size = 243102 }, + { url = "https://files.pythonhosted.org/packages/69/cc/e06636f48c6d51e724a8bc8d9e1db5f136fe1df066d7cafe37ef4000f86a/multidict-6.6.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:e995a34c3d44ab511bfc11aa26869b9d66c2d8c799fa0e74b28a473a692532d6", size = 238693 }, + { url = "https://files.pythonhosted.org/packages/89/a4/66c9d8fb9acf3b226cdd468ed009537ac65b520aebdc1703dd6908b19d33/multidict-6.6.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:766a4a5996f54361d8d5a9050140aa5362fe48ce51c755a50c0bc3706460c430", size = 246582 }, + { url = "https://files.pythonhosted.org/packages/cf/01/c69e0317be556e46257826d5449feb4e6aa0d18573e567a48a2c14156f1f/multidict-6.6.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3893a0d7d28a7fe6ca7a1f760593bc13038d1d35daf52199d431b61d2660602b", size = 253355 }, + { url = "https://files.pythonhosted.org/packages/c0/da/9cc1da0299762d20e626fe0042e71b5694f9f72d7d3f9678397cbaa71b2b/multidict-6.6.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:934796c81ea996e61914ba58064920d6cad5d99140ac3167901eb932150e2e56", size = 247774 }, + { url = "https://files.pythonhosted.org/packages/e6/91/b22756afec99cc31105ddd4a52f95ab32b1a4a58f4d417979c570c4a922e/multidict-6.6.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9ed948328aec2072bc00f05d961ceadfd3e9bfc2966c1319aeaf7b7c21219183", size = 242275 }, + { url = "https://files.pythonhosted.org/packages/be/f1/adcc185b878036a20399d5be5228f3cbe7f823d78985d101d425af35c800/multidict-6.6.3-cp311-cp311-win32.whl", hash = "sha256:9f5b28c074c76afc3e4c610c488e3493976fe0e596dd3db6c8ddfbb0134dcac5", size = 41290 }, + { url = "https://files.pythonhosted.org/packages/e0/d4/27652c1c6526ea6b4f5ddd397e93f4232ff5de42bea71d339bc6a6cc497f/multidict-6.6.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc7f6fbc61b1c16050a389c630da0b32fc6d4a3d191394ab78972bf5edc568c2", size = 45942 }, + { url = "https://files.pythonhosted.org/packages/16/18/23f4932019804e56d3c2413e237f866444b774b0263bcb81df2fdecaf593/multidict-6.6.3-cp311-cp311-win_arm64.whl", hash = "sha256:d4e47d8faffaae822fb5cba20937c048d4f734f43572e7079298a6c39fb172cb", size = 42880 }, + { url = "https://files.pythonhosted.org/packages/0e/a0/6b57988ea102da0623ea814160ed78d45a2645e4bbb499c2896d12833a70/multidict-6.6.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:056bebbeda16b2e38642d75e9e5310c484b7c24e3841dc0fb943206a72ec89d6", size = 76514 }, + { url = "https://files.pythonhosted.org/packages/07/7a/d1e92665b0850c6c0508f101f9cf0410c1afa24973e1115fe9c6a185ebf7/multidict-6.6.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e5f481cccb3c5c5e5de5d00b5141dc589c1047e60d07e85bbd7dea3d4580d63f", size = 45394 }, + { url = "https://files.pythonhosted.org/packages/52/6f/dd104490e01be6ef8bf9573705d8572f8c2d2c561f06e3826b081d9e6591/multidict-6.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:10bea2ee839a759ee368b5a6e47787f399b41e70cf0c20d90dfaf4158dfb4e55", size = 43590 }, + { url = "https://files.pythonhosted.org/packages/44/fe/06e0e01b1b0611e6581b7fd5a85b43dacc08b6cea3034f902f383b0873e5/multidict-6.6.3-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:2334cfb0fa9549d6ce2c21af2bfbcd3ac4ec3646b1b1581c88e3e2b1779ec92b", size = 237292 }, + { url = "https://files.pythonhosted.org/packages/ce/71/4f0e558fb77696b89c233c1ee2d92f3e1d5459070a0e89153c9e9e804186/multidict-6.6.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8fee016722550a2276ca2cb5bb624480e0ed2bd49125b2b73b7010b9090e888", size = 258385 }, + { url = "https://files.pythonhosted.org/packages/e3/25/cca0e68228addad24903801ed1ab42e21307a1b4b6dd2cf63da5d3ae082a/multidict-6.6.3-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5511cb35f5c50a2db21047c875eb42f308c5583edf96bd8ebf7d770a9d68f6d", size = 242328 }, + { url = "https://files.pythonhosted.org/packages/6e/a3/46f2d420d86bbcb8fe660b26a10a219871a0fbf4d43cb846a4031533f3e0/multidict-6.6.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:712b348f7f449948e0a6c4564a21c7db965af900973a67db432d724619b3c680", size = 268057 }, + { url = "https://files.pythonhosted.org/packages/9e/73/1c743542fe00794a2ec7466abd3f312ccb8fad8dff9f36d42e18fb1ec33e/multidict-6.6.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e4e15d2138ee2694e038e33b7c3da70e6b0ad8868b9f8094a72e1414aeda9c1a", size = 269341 }, + { url = "https://files.pythonhosted.org/packages/a4/11/6ec9dcbe2264b92778eeb85407d1df18812248bf3506a5a1754bc035db0c/multidict-6.6.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8df25594989aebff8a130f7899fa03cbfcc5d2b5f4a461cf2518236fe6f15961", size = 256081 }, + { url = "https://files.pythonhosted.org/packages/9b/2b/631b1e2afeb5f1696846d747d36cda075bfdc0bc7245d6ba5c319278d6c4/multidict-6.6.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:159ca68bfd284a8860f8d8112cf0521113bffd9c17568579e4d13d1f1dc76b65", size = 253581 }, + { url = "https://files.pythonhosted.org/packages/bf/0e/7e3b93f79efeb6111d3bf9a1a69e555ba1d07ad1c11bceb56b7310d0d7ee/multidict-6.6.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e098c17856a8c9ade81b4810888c5ad1914099657226283cab3062c0540b0643", size = 250750 }, + { url = "https://files.pythonhosted.org/packages/ad/9e/086846c1d6601948e7de556ee464a2d4c85e33883e749f46b9547d7b0704/multidict-6.6.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:67c92ed673049dec52d7ed39f8cf9ebbadf5032c774058b4406d18c8f8fe7063", size = 251548 }, + { url = "https://files.pythonhosted.org/packages/8c/7b/86ec260118e522f1a31550e87b23542294880c97cfbf6fb18cc67b044c66/multidict-6.6.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:bd0578596e3a835ef451784053cfd327d607fc39ea1a14812139339a18a0dbc3", size = 262718 }, + { url = "https://files.pythonhosted.org/packages/8c/bd/22ce8f47abb0be04692c9fc4638508b8340987b18691aa7775d927b73f72/multidict-6.6.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:346055630a2df2115cd23ae271910b4cae40f4e336773550dca4889b12916e75", size = 259603 }, + { url = "https://files.pythonhosted.org/packages/07/9c/91b7ac1691be95cd1f4a26e36a74b97cda6aa9820632d31aab4410f46ebd/multidict-6.6.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:555ff55a359302b79de97e0468e9ee80637b0de1fce77721639f7cd9440b3a10", size = 251351 }, + { url = "https://files.pythonhosted.org/packages/6f/5c/4d7adc739884f7a9fbe00d1eac8c034023ef8bad71f2ebe12823ca2e3649/multidict-6.6.3-cp312-cp312-win32.whl", hash = "sha256:73ab034fb8d58ff85c2bcbadc470efc3fafeea8affcf8722855fb94557f14cc5", size = 41860 }, + { url = "https://files.pythonhosted.org/packages/6a/a3/0fbc7afdf7cb1aa12a086b02959307848eb6bcc8f66fcb66c0cb57e2a2c1/multidict-6.6.3-cp312-cp312-win_amd64.whl", hash = "sha256:04cbcce84f63b9af41bad04a54d4cc4e60e90c35b9e6ccb130be2d75b71f8c17", size = 45982 }, + { url = "https://files.pythonhosted.org/packages/b8/95/8c825bd70ff9b02462dc18d1295dd08d3e9e4eb66856d292ffa62cfe1920/multidict-6.6.3-cp312-cp312-win_arm64.whl", hash = "sha256:0f1130b896ecb52d2a1e615260f3ea2af55fa7dc3d7c3003ba0c3121a759b18b", size = 43210 }, + { url = "https://files.pythonhosted.org/packages/52/1d/0bebcbbb4f000751fbd09957257903d6e002943fc668d841a4cf2fb7f872/multidict-6.6.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:540d3c06d48507357a7d57721e5094b4f7093399a0106c211f33540fdc374d55", size = 75843 }, + { url = "https://files.pythonhosted.org/packages/07/8f/cbe241b0434cfe257f65c2b1bcf9e8d5fb52bc708c5061fb29b0fed22bdf/multidict-6.6.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9c19cea2a690f04247d43f366d03e4eb110a0dc4cd1bbeee4d445435428ed35b", size = 45053 }, + { url = "https://files.pythonhosted.org/packages/32/d2/0b3b23f9dbad5b270b22a3ac3ea73ed0a50ef2d9a390447061178ed6bdb8/multidict-6.6.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7af039820cfd00effec86bda5d8debef711a3e86a1d3772e85bea0f243a4bd65", size = 43273 }, + { url = "https://files.pythonhosted.org/packages/fd/fe/6eb68927e823999e3683bc49678eb20374ba9615097d085298fd5b386564/multidict-6.6.3-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:500b84f51654fdc3944e936f2922114349bf8fdcac77c3092b03449f0e5bc2b3", size = 237124 }, + { url = "https://files.pythonhosted.org/packages/e7/ab/320d8507e7726c460cb77117848b3834ea0d59e769f36fdae495f7669929/multidict-6.6.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3fc723ab8a5c5ed6c50418e9bfcd8e6dceba6c271cee6728a10a4ed8561520c", size = 256892 }, + { url = "https://files.pythonhosted.org/packages/76/60/38ee422db515ac69834e60142a1a69111ac96026e76e8e9aa347fd2e4591/multidict-6.6.3-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:94c47ea3ade005b5976789baaed66d4de4480d0a0bf31cef6edaa41c1e7b56a6", size = 240547 }, + { url = "https://files.pythonhosted.org/packages/27/fb/905224fde2dff042b030c27ad95a7ae744325cf54b890b443d30a789b80e/multidict-6.6.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dbc7cf464cc6d67e83e136c9f55726da3a30176f020a36ead246eceed87f1cd8", size = 266223 }, + { url = "https://files.pythonhosted.org/packages/76/35/dc38ab361051beae08d1a53965e3e1a418752fc5be4d3fb983c5582d8784/multidict-6.6.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:900eb9f9da25ada070f8ee4a23f884e0ee66fe4e1a38c3af644256a508ad81ca", size = 267262 }, + { url = "https://files.pythonhosted.org/packages/1f/a3/0a485b7f36e422421b17e2bbb5a81c1af10eac1d4476f2ff92927c730479/multidict-6.6.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7c6df517cf177da5d47ab15407143a89cd1a23f8b335f3a28d57e8b0a3dbb884", size = 254345 }, + { url = "https://files.pythonhosted.org/packages/b4/59/bcdd52c1dab7c0e0d75ff19cac751fbd5f850d1fc39172ce809a74aa9ea4/multidict-6.6.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4ef421045f13879e21c994b36e728d8e7d126c91a64b9185810ab51d474f27e7", size = 252248 }, + { url = "https://files.pythonhosted.org/packages/bb/a4/2d96aaa6eae8067ce108d4acee6f45ced5728beda55c0f02ae1072c730d1/multidict-6.6.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:6c1e61bb4f80895c081790b6b09fa49e13566df8fbff817da3f85b3a8192e36b", size = 250115 }, + { url = "https://files.pythonhosted.org/packages/25/d2/ed9f847fa5c7d0677d4f02ea2c163d5e48573de3f57bacf5670e43a5ffaa/multidict-6.6.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e5e8523bb12d7623cd8300dbd91b9e439a46a028cd078ca695eb66ba31adee3c", size = 249649 }, + { url = "https://files.pythonhosted.org/packages/1f/af/9155850372563fc550803d3f25373308aa70f59b52cff25854086ecb4a79/multidict-6.6.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ef58340cc896219e4e653dade08fea5c55c6df41bcc68122e3be3e9d873d9a7b", size = 261203 }, + { url = "https://files.pythonhosted.org/packages/36/2f/c6a728f699896252cf309769089568a33c6439626648843f78743660709d/multidict-6.6.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc9dc435ec8699e7b602b94fe0cd4703e69273a01cbc34409af29e7820f777f1", size = 258051 }, + { url = "https://files.pythonhosted.org/packages/d0/60/689880776d6b18fa2b70f6cc74ff87dd6c6b9b47bd9cf74c16fecfaa6ad9/multidict-6.6.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9e864486ef4ab07db5e9cb997bad2b681514158d6954dd1958dfb163b83d53e6", size = 249601 }, + { url = "https://files.pythonhosted.org/packages/75/5e/325b11f2222a549019cf2ef879c1f81f94a0d40ace3ef55cf529915ba6cc/multidict-6.6.3-cp313-cp313-win32.whl", hash = "sha256:5633a82fba8e841bc5c5c06b16e21529573cd654f67fd833650a215520a6210e", size = 41683 }, + { url = "https://files.pythonhosted.org/packages/b1/ad/cf46e73f5d6e3c775cabd2a05976547f3f18b39bee06260369a42501f053/multidict-6.6.3-cp313-cp313-win_amd64.whl", hash = "sha256:e93089c1570a4ad54c3714a12c2cef549dc9d58e97bcded193d928649cab78e9", size = 45811 }, + { url = "https://files.pythonhosted.org/packages/c5/c9/2e3fe950db28fb7c62e1a5f46e1e38759b072e2089209bc033c2798bb5ec/multidict-6.6.3-cp313-cp313-win_arm64.whl", hash = "sha256:c60b401f192e79caec61f166da9c924e9f8bc65548d4246842df91651e83d600", size = 43056 }, + { url = "https://files.pythonhosted.org/packages/3a/58/aaf8114cf34966e084a8cc9517771288adb53465188843d5a19862cb6dc3/multidict-6.6.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:02fd8f32d403a6ff13864b0851f1f523d4c988051eea0471d4f1fd8010f11134", size = 82811 }, + { url = "https://files.pythonhosted.org/packages/71/af/5402e7b58a1f5b987a07ad98f2501fdba2a4f4b4c30cf114e3ce8db64c87/multidict-6.6.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f3aa090106b1543f3f87b2041eef3c156c8da2aed90c63a2fbed62d875c49c37", size = 48304 }, + { url = "https://files.pythonhosted.org/packages/39/65/ab3c8cafe21adb45b24a50266fd747147dec7847425bc2a0f6934b3ae9ce/multidict-6.6.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e924fb978615a5e33ff644cc42e6aa241effcf4f3322c09d4f8cebde95aff5f8", size = 46775 }, + { url = "https://files.pythonhosted.org/packages/49/ba/9fcc1b332f67cc0c0c8079e263bfab6660f87fe4e28a35921771ff3eea0d/multidict-6.6.3-cp313-cp313t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:b9fe5a0e57c6dbd0e2ce81ca66272282c32cd11d31658ee9553849d91289e1c1", size = 229773 }, + { url = "https://files.pythonhosted.org/packages/a4/14/0145a251f555f7c754ce2dcbcd012939bbd1f34f066fa5d28a50e722a054/multidict-6.6.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b24576f208793ebae00280c59927c3b7c2a3b1655e443a25f753c4611bc1c373", size = 250083 }, + { url = "https://files.pythonhosted.org/packages/9e/d4/d5c0bd2bbb173b586c249a151a26d2fb3ec7d53c96e42091c9fef4e1f10c/multidict-6.6.3-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:135631cb6c58eac37d7ac0df380294fecdc026b28837fa07c02e459c7fb9c54e", size = 228980 }, + { url = "https://files.pythonhosted.org/packages/21/32/c9a2d8444a50ec48c4733ccc67254100c10e1c8ae8e40c7a2d2183b59b97/multidict-6.6.3-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:274d416b0df887aef98f19f21578653982cfb8a05b4e187d4a17103322eeaf8f", size = 257776 }, + { url = "https://files.pythonhosted.org/packages/68/d0/14fa1699f4ef629eae08ad6201c6b476098f5efb051b296f4c26be7a9fdf/multidict-6.6.3-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e252017a817fad7ce05cafbe5711ed40faeb580e63b16755a3a24e66fa1d87c0", size = 256882 }, + { url = "https://files.pythonhosted.org/packages/da/88/84a27570fbe303c65607d517a5f147cd2fc046c2d1da02b84b17b9bdc2aa/multidict-6.6.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e4cc8d848cd4fe1cdee28c13ea79ab0ed37fc2e89dd77bac86a2e7959a8c3bc", size = 247816 }, + { url = "https://files.pythonhosted.org/packages/1c/60/dca352a0c999ce96a5d8b8ee0b2b9f729dcad2e0b0c195f8286269a2074c/multidict-6.6.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9e236a7094b9c4c1b7585f6b9cca34b9d833cf079f7e4c49e6a4a6ec9bfdc68f", size = 245341 }, + { url = "https://files.pythonhosted.org/packages/50/ef/433fa3ed06028f03946f3993223dada70fb700f763f70c00079533c34578/multidict-6.6.3-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:e0cb0ab69915c55627c933f0b555a943d98ba71b4d1c57bc0d0a66e2567c7471", size = 235854 }, + { url = "https://files.pythonhosted.org/packages/1b/1f/487612ab56fbe35715320905215a57fede20de7db40a261759690dc80471/multidict-6.6.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:81ef2f64593aba09c5212a3d0f8c906a0d38d710a011f2f42759704d4557d3f2", size = 243432 }, + { url = "https://files.pythonhosted.org/packages/da/6f/ce8b79de16cd885c6f9052c96a3671373d00c59b3ee635ea93e6e81b8ccf/multidict-6.6.3-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:b9cbc60010de3562545fa198bfc6d3825df430ea96d2cc509c39bd71e2e7d648", size = 252731 }, + { url = "https://files.pythonhosted.org/packages/bb/fe/a2514a6aba78e5abefa1624ca85ae18f542d95ac5cde2e3815a9fbf369aa/multidict-6.6.3-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:70d974eaaa37211390cd02ef93b7e938de564bbffa866f0b08d07e5e65da783d", size = 247086 }, + { url = "https://files.pythonhosted.org/packages/8c/22/b788718d63bb3cce752d107a57c85fcd1a212c6c778628567c9713f9345a/multidict-6.6.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3713303e4a6663c6d01d648a68f2848701001f3390a030edaaf3fc949c90bf7c", size = 243338 }, + { url = "https://files.pythonhosted.org/packages/22/d6/fdb3d0670819f2228f3f7d9af613d5e652c15d170c83e5f1c94fbc55a25b/multidict-6.6.3-cp313-cp313t-win32.whl", hash = "sha256:639ecc9fe7cd73f2495f62c213e964843826f44505a3e5d82805aa85cac6f89e", size = 47812 }, + { url = "https://files.pythonhosted.org/packages/b6/d6/a9d2c808f2c489ad199723197419207ecbfbc1776f6e155e1ecea9c883aa/multidict-6.6.3-cp313-cp313t-win_amd64.whl", hash = "sha256:9f97e181f344a0ef3881b573d31de8542cc0dbc559ec68c8f8b5ce2c2e91646d", size = 53011 }, + { url = "https://files.pythonhosted.org/packages/f2/40/b68001cba8188dd267590a111f9661b6256debc327137667e832bf5d66e8/multidict-6.6.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ce8b7693da41a3c4fde5871c738a81490cea5496c671d74374c8ab889e1834fb", size = 45254 }, + { url = "https://files.pythonhosted.org/packages/d8/30/9aec301e9772b098c1f5c0ca0279237c9766d94b97802e9888010c64b0ed/multidict-6.6.3-py3-none-any.whl", hash = "sha256:8db10f29c7541fc5da4defd8cd697e1ca429db743fa716325f236079b96f775a", size = 12313 }, ] [[package]] @@ -1778,7 +1702,6 @@ dev = [ { name = "pytest" }, { name = "pytest-dependency" }, { name = "ruff" }, - { name = "safety" }, { name = "typeguard" }, { name = "xdoctest", extra = ["colors"] }, ] @@ -1795,40 +1718,39 @@ docs = [ [package.metadata] requires-dist = [ - { name = "adlfs", marker = "extra == 'cloud'", specifier = ">=2024.7.0" }, - { name = "bokeh", marker = "extra == 'distributed'", specifier = ">=3.4.2,<4.0.0" }, - { name = "click", specifier = ">=8.1.7,<9.0.0" }, + { name = "adlfs", marker = "extra == 'cloud'", specifier = ">=2024.12.0" }, + { name = "bokeh", marker = "extra == 'distributed'", specifier = ">=3.7.3,<4.0.0" }, + { name = "click", specifier = ">=8.2.1,<9.0.0" }, { name = "click-params", specifier = ">=0.5.0,<0.6.0" }, - { name = "dask", specifier = ">=2024.12.0" }, - { name = "distributed", marker = "extra == 'distributed'", specifier = ">=2024.12.0" }, - { name = "fsspec", specifier = ">=2024.10.0" }, - { name = "gcsfs", marker = "extra == 'cloud'", specifier = ">=2024.10.0" }, - { name = "pint", specifier = ">=0.24.3,<0.25" }, - { name = "psutil", specifier = ">=6.1.0,<7.0.0" }, - { name = "pydantic", specifier = ">=2.8.2,<3.0.0" }, - { name = "pydantic-settings", specifier = ">=2.4.0,<3.0.0" }, - { name = "rich", specifier = ">=13.9.4,<14.0.0" }, - { name = "s3fs", marker = "extra == 'cloud'", specifier = "==2024.12.0" }, - { name = "segy", specifier = ">=0.4.0,<0.5.0" }, - { name = "tqdm", specifier = ">=4.67.0,<5.0.0" }, - { name = "xarray", specifier = ">=2025.3.1" }, - { name = "zarr", specifier = ">=3.0.8,<4.0.0" }, + { name = "dask", specifier = ">=2025.5.1" }, + { name = "distributed", marker = "extra == 'distributed'", specifier = ">=2025.5.1" }, + { name = "fsspec", specifier = ">=2025.5.1" }, + { name = "gcsfs", marker = "extra == 'cloud'", specifier = ">=2025.5.1" }, + { name = "pint", specifier = ">=0.24.4,<0.25" }, + { name = "psutil", specifier = ">=7.0.0,<8.0.0" }, + { name = "pydantic", specifier = ">=2.11.7,<3.0.0" }, + { name = "pydantic-settings", specifier = ">=2.10.1,<3.0.0" }, + { name = "rich", specifier = ">=14.0.0,<15.0.0" }, + { name = "s3fs", marker = "extra == 'cloud'", specifier = "==2025.5.1" }, + { name = "segy", specifier = ">=0.4.1.post2,<0.5.0" }, + { name = "tqdm", specifier = ">=4.67.1,<5.0.0" }, + { name = "xarray", specifier = ">=2025.6.1" }, + { name = "zarr", specifier = ">=3.0.8,<3.0.9" }, { name = "zfpy", marker = "extra == 'lossy'", specifier = ">=1.0.1,<2.0.0" }, ] provides-extras = ["cloud", "distributed", "lossy"] [package.metadata.requires-dev] dev = [ - { name = "coverage", extras = ["toml"], specifier = ">=7.6.7,<8" }, - { name = "mypy", specifier = ">=1.13.0,<2" }, - { name = "pre-commit", specifier = ">=4.0.1,<5" }, + { name = "coverage", extras = ["toml"], specifier = ">=7.9.1,<8" }, + { name = "mypy", specifier = ">=1.16.1,<2" }, + { name = "pre-commit", specifier = ">=4.2.0,<5" }, { name = "pre-commit-hooks", specifier = ">=5.0.0,<6" }, - { name = "pygments", specifier = ">=2.18.0,<3" }, - { name = "pytest", specifier = ">=8.3.3,<9" }, + { name = "pygments", specifier = ">=2.19.2,<3" }, + { name = "pytest", specifier = ">=8.4.1,<9" }, { name = "pytest-dependency", specifier = ">=0.6.0,<0.7" }, - { name = "ruff", specifier = ">=0.11.8" }, - { name = "safety", specifier = ">=3.2.3,<4" }, - { name = "typeguard", specifier = ">=4.4.1,<5" }, + { name = "ruff", specifier = ">=0.12.1" }, + { name = "typeguard", specifier = ">=4.4.4,<5" }, { name = "xdoctest", extras = ["colors"], specifier = ">=1.2.0,<2" }, ] docs = [ @@ -1844,33 +1766,34 @@ docs = [ [[package]] name = "mypy" -version = "1.15.0" +version = "1.16.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mypy-extensions" }, + { name = "pathspec" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ce/43/d5e49a86afa64bd3839ea0d5b9c7103487007d728e1293f52525d6d5486a/mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43", size = 3239717 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/03/bc/f6339726c627bd7ca1ce0fa56c9ae2d0144604a319e0e339bdadafbbb599/mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f", size = 10662338 }, - { url = "https://files.pythonhosted.org/packages/e2/90/8dcf506ca1a09b0d17555cc00cd69aee402c203911410136cd716559efe7/mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5", size = 9787540 }, - { url = "https://files.pythonhosted.org/packages/05/05/a10f9479681e5da09ef2f9426f650d7b550d4bafbef683b69aad1ba87457/mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e", size = 11538051 }, - { url = "https://files.pythonhosted.org/packages/e9/9a/1f7d18b30edd57441a6411fcbc0c6869448d1a4bacbaee60656ac0fc29c8/mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c", size = 12286751 }, - { url = "https://files.pythonhosted.org/packages/72/af/19ff499b6f1dafcaf56f9881f7a965ac2f474f69f6f618b5175b044299f5/mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f", size = 12421783 }, - { url = "https://files.pythonhosted.org/packages/96/39/11b57431a1f686c1aed54bf794870efe0f6aeca11aca281a0bd87a5ad42c/mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f", size = 9265618 }, - { url = "https://files.pythonhosted.org/packages/98/3a/03c74331c5eb8bd025734e04c9840532226775c47a2c39b56a0c8d4f128d/mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd", size = 10793981 }, - { url = "https://files.pythonhosted.org/packages/f0/1a/41759b18f2cfd568848a37c89030aeb03534411eef981df621d8fad08a1d/mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f", size = 9749175 }, - { url = "https://files.pythonhosted.org/packages/12/7e/873481abf1ef112c582db832740f4c11b2bfa510e829d6da29b0ab8c3f9c/mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464", size = 11455675 }, - { url = "https://files.pythonhosted.org/packages/b3/d0/92ae4cde706923a2d3f2d6c39629134063ff64b9dedca9c1388363da072d/mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee", size = 12410020 }, - { url = "https://files.pythonhosted.org/packages/46/8b/df49974b337cce35f828ba6fda228152d6db45fed4c86ba56ffe442434fd/mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e", size = 12498582 }, - { url = "https://files.pythonhosted.org/packages/13/50/da5203fcf6c53044a0b699939f31075c45ae8a4cadf538a9069b165c1050/mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22", size = 9366614 }, - { url = "https://files.pythonhosted.org/packages/6a/9b/fd2e05d6ffff24d912f150b87db9e364fa8282045c875654ce7e32fffa66/mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445", size = 10788592 }, - { url = "https://files.pythonhosted.org/packages/74/37/b246d711c28a03ead1fd906bbc7106659aed7c089d55fe40dd58db812628/mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d", size = 9753611 }, - { url = "https://files.pythonhosted.org/packages/a6/ac/395808a92e10cfdac8003c3de9a2ab6dc7cde6c0d2a4df3df1b815ffd067/mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5", size = 11438443 }, - { url = "https://files.pythonhosted.org/packages/d2/8b/801aa06445d2de3895f59e476f38f3f8d610ef5d6908245f07d002676cbf/mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036", size = 12402541 }, - { url = "https://files.pythonhosted.org/packages/c7/67/5a4268782eb77344cc613a4cf23540928e41f018a9a1ec4c6882baf20ab8/mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357", size = 12494348 }, - { url = "https://files.pythonhosted.org/packages/83/3e/57bb447f7bbbfaabf1712d96f9df142624a386d98fb026a761532526057e/mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf", size = 9373648 }, - { url = "https://files.pythonhosted.org/packages/09/4e/a7d65c7322c510de2c409ff3828b03354a7c43f5a8ed458a7a131b41c7b9/mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e", size = 2221777 }, +sdist = { url = "https://files.pythonhosted.org/packages/81/69/92c7fa98112e4d9eb075a239caa4ef4649ad7d441545ccffbd5e34607cbb/mypy-1.16.1.tar.gz", hash = "sha256:6bd00a0a2094841c5e47e7374bb42b83d64c527a502e3334e1173a0c24437bab", size = 3324747 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/61/ec1245aa1c325cb7a6c0f8570a2eee3bfc40fa90d19b1267f8e50b5c8645/mypy-1.16.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:472e4e4c100062488ec643f6162dd0d5208e33e2f34544e1fc931372e806c0cc", size = 10890557 }, + { url = "https://files.pythonhosted.org/packages/6b/bb/6eccc0ba0aa0c7a87df24e73f0ad34170514abd8162eb0c75fd7128171fb/mypy-1.16.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea16e2a7d2714277e349e24d19a782a663a34ed60864006e8585db08f8ad1782", size = 10012921 }, + { url = "https://files.pythonhosted.org/packages/5f/80/b337a12e2006715f99f529e732c5f6a8c143bb58c92bb142d5ab380963a5/mypy-1.16.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:08e850ea22adc4d8a4014651575567b0318ede51e8e9fe7a68f25391af699507", size = 11802887 }, + { url = "https://files.pythonhosted.org/packages/d9/59/f7af072d09793d581a745a25737c7c0a945760036b16aeb620f658a017af/mypy-1.16.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22d76a63a42619bfb90122889b903519149879ddbf2ba4251834727944c8baca", size = 12531658 }, + { url = "https://files.pythonhosted.org/packages/82/c4/607672f2d6c0254b94a646cfc45ad589dd71b04aa1f3d642b840f7cce06c/mypy-1.16.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2c7ce0662b6b9dc8f4ed86eb7a5d505ee3298c04b40ec13b30e572c0e5ae17c4", size = 12732486 }, + { url = "https://files.pythonhosted.org/packages/b6/5e/136555ec1d80df877a707cebf9081bd3a9f397dedc1ab9750518d87489ec/mypy-1.16.1-cp311-cp311-win_amd64.whl", hash = "sha256:211287e98e05352a2e1d4e8759c5490925a7c784ddc84207f4714822f8cf99b6", size = 9479482 }, + { url = "https://files.pythonhosted.org/packages/b4/d6/39482e5fcc724c15bf6280ff5806548c7185e0c090712a3736ed4d07e8b7/mypy-1.16.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:af4792433f09575d9eeca5c63d7d90ca4aeceda9d8355e136f80f8967639183d", size = 11066493 }, + { url = "https://files.pythonhosted.org/packages/e6/e5/26c347890efc6b757f4d5bb83f4a0cf5958b8cf49c938ac99b8b72b420a6/mypy-1.16.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:66df38405fd8466ce3517eda1f6640611a0b8e70895e2a9462d1d4323c5eb4b9", size = 10081687 }, + { url = "https://files.pythonhosted.org/packages/44/c7/b5cb264c97b86914487d6a24bd8688c0172e37ec0f43e93b9691cae9468b/mypy-1.16.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44e7acddb3c48bd2713994d098729494117803616e116032af192871aed80b79", size = 11839723 }, + { url = "https://files.pythonhosted.org/packages/15/f8/491997a9b8a554204f834ed4816bda813aefda31cf873bb099deee3c9a99/mypy-1.16.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ab5eca37b50188163fa7c1b73c685ac66c4e9bdee4a85c9adac0e91d8895e15", size = 12722980 }, + { url = "https://files.pythonhosted.org/packages/df/f0/2bd41e174b5fd93bc9de9a28e4fb673113633b8a7f3a607fa4a73595e468/mypy-1.16.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb6229b2c9086247e21a83c309754b9058b438704ad2f6807f0d8227f6ebdd", size = 12903328 }, + { url = "https://files.pythonhosted.org/packages/61/81/5572108a7bec2c46b8aff7e9b524f371fe6ab5efb534d38d6b37b5490da8/mypy-1.16.1-cp312-cp312-win_amd64.whl", hash = "sha256:1f0435cf920e287ff68af3d10a118a73f212deb2ce087619eb4e648116d1fe9b", size = 9562321 }, + { url = "https://files.pythonhosted.org/packages/28/e3/96964af4a75a949e67df4b95318fe2b7427ac8189bbc3ef28f92a1c5bc56/mypy-1.16.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ddc91eb318c8751c69ddb200a5937f1232ee8efb4e64e9f4bc475a33719de438", size = 11063480 }, + { url = "https://files.pythonhosted.org/packages/f5/4d/cd1a42b8e5be278fab7010fb289d9307a63e07153f0ae1510a3d7b703193/mypy-1.16.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:87ff2c13d58bdc4bbe7dc0dedfe622c0f04e2cb2a492269f3b418df2de05c536", size = 10090538 }, + { url = "https://files.pythonhosted.org/packages/c9/4f/c3c6b4b66374b5f68bab07c8cabd63a049ff69796b844bc759a0ca99bb2a/mypy-1.16.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a7cfb0fe29fe5a9841b7c8ee6dffb52382c45acdf68f032145b75620acfbd6f", size = 11836839 }, + { url = "https://files.pythonhosted.org/packages/b4/7e/81ca3b074021ad9775e5cb97ebe0089c0f13684b066a750b7dc208438403/mypy-1.16.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:051e1677689c9d9578b9c7f4d206d763f9bbd95723cd1416fad50db49d52f359", size = 12715634 }, + { url = "https://files.pythonhosted.org/packages/e9/95/bdd40c8be346fa4c70edb4081d727a54d0a05382d84966869738cfa8a497/mypy-1.16.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d5d2309511cc56c021b4b4e462907c2b12f669b2dbeb68300110ec27723971be", size = 12895584 }, + { url = "https://files.pythonhosted.org/packages/5a/fd/d486a0827a1c597b3b48b1bdef47228a6e9ee8102ab8c28f944cb83b65dc/mypy-1.16.1-cp313-cp313-win_amd64.whl", hash = "sha256:4f58ac32771341e38a853c5d0ec0dfe27e18e27da9cdb8bbc882d2249c71a3ee", size = 9573886 }, + { url = "https://files.pythonhosted.org/packages/cf/d3/53e684e78e07c1a2bf7105715e5edd09ce951fc3f47cf9ed095ec1b7a037/mypy-1.16.1-py3-none-any.whl", hash = "sha256:5fc2ac4027d0ef28d6ba69a0343737a23c4d1b83672bf38d1fe237bdc0643b37", size = 2265923 }, ] [[package]] @@ -1922,11 +1845,11 @@ wheels = [ [[package]] name = "narwhals" -version = "1.41.0" +version = "1.45.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/32/fc/7b9a3689911662be59889b1b0b40e17d5dba6f98080994d86ca1f3154d41/narwhals-1.41.0.tar.gz", hash = "sha256:0ab2e5a1757a19b071e37ca74b53b0b5426789321d68939738337dfddea629b5", size = 488446 } +sdist = { url = "https://files.pythonhosted.org/packages/4c/9f/284886c5cea849b4ed1c55babcb48cb1084886139e8ac31e9849112ce6d0/narwhals-1.45.0.tar.gz", hash = "sha256:f9ecefb9d09cda6fefa8ead10dc37a79129b6c78b0ac7117d21b4d4486bdd0d1", size = 508812 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/e0/ade8619846645461c012498f02b93a659e50f07d9d9a6ffefdf5ea2c02a0/narwhals-1.41.0-py3-none-any.whl", hash = "sha256:d958336b40952e4c4b7aeef259a7074851da0800cf902186a58f2faeff97be02", size = 357968 }, + { url = "https://files.pythonhosted.org/packages/fe/a4/337a229d184b23ee63e6b730ac1588d77067af77c550dbf69cf1d74c3298/narwhals-1.45.0-py3-none-any.whl", hash = "sha256:0585612aa7ec89f9d061e78410b6fb8772794389d1a29d5799572d6b81999497", size = 371633 }, ] [[package]] @@ -1968,21 +1891,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195 }, ] -[[package]] -name = "nltk" -version = "3.9.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "click" }, - { name = "joblib" }, - { name = "regex" }, - { name = "tqdm" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3c/87/db8be88ad32c2d042420b6fd9ffd4a149f9a0d7f0e86b3f543be2eeeedd2/nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868", size = 2904691 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/66/7d9e26593edda06e8cb531874633f7c2372279c3b0f46235539fe546df8b/nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1", size = 1505442 }, -] - [[package]] name = "nodeenv" version = "1.9.1" @@ -2101,11 +2009,11 @@ wheels = [ [[package]] name = "oauthlib" -version = "3.2.2" +version = "3.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6d/fa/fbf4001037904031639e6bfbfc02badfc7e12f137a8afa254df6c4c8a670/oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918", size = 177352 } +sdist = { url = "https://files.pythonhosted.org/packages/0b/5f/19930f824ffeb0ad4372da4812c50edbd1434f678c90c2733e1188edfc63/oauthlib-3.3.1.tar.gz", hash = "sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9", size = 185918 } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", size = 151688 }, + { url = "https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl", hash = "sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1", size = 160065 }, ] [[package]] @@ -2119,7 +2027,7 @@ wheels = [ [[package]] name = "pandas" -version = "2.2.3" +version = "2.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, @@ -2127,35 +2035,35 @@ dependencies = [ { name = "pytz" }, { name = "tzdata" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9c/d6/9f8431bacc2e19dca897724cd097b1bb224a6ad5433784a44b587c7c13af/pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667", size = 4399213 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/44/d9502bf0ed197ba9bf1103c9867d5904ddcaf869e52329787fc54ed70cc8/pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039", size = 12602222 }, - { url = "https://files.pythonhosted.org/packages/52/11/9eac327a38834f162b8250aab32a6781339c69afe7574368fffe46387edf/pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd", size = 11321274 }, - { url = "https://files.pythonhosted.org/packages/45/fb/c4beeb084718598ba19aa9f5abbc8aed8b42f90930da861fcb1acdb54c3a/pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698", size = 15579836 }, - { url = "https://files.pythonhosted.org/packages/cd/5f/4dba1d39bb9c38d574a9a22548c540177f78ea47b32f99c0ff2ec499fac5/pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc", size = 13058505 }, - { url = "https://files.pythonhosted.org/packages/b9/57/708135b90391995361636634df1f1130d03ba456e95bcf576fada459115a/pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3", size = 16744420 }, - { url = "https://files.pythonhosted.org/packages/86/4a/03ed6b7ee323cf30404265c284cee9c65c56a212e0a08d9ee06984ba2240/pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32", size = 14440457 }, - { url = "https://files.pythonhosted.org/packages/ed/8c/87ddf1fcb55d11f9f847e3c69bb1c6f8e46e2f40ab1a2d2abadb2401b007/pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5", size = 11617166 }, - { url = "https://files.pythonhosted.org/packages/17/a3/fb2734118db0af37ea7433f57f722c0a56687e14b14690edff0cdb4b7e58/pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9", size = 12529893 }, - { url = "https://files.pythonhosted.org/packages/e1/0c/ad295fd74bfac85358fd579e271cded3ac969de81f62dd0142c426b9da91/pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4", size = 11363475 }, - { url = "https://files.pythonhosted.org/packages/c6/2a/4bba3f03f7d07207481fed47f5b35f556c7441acddc368ec43d6643c5777/pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3", size = 15188645 }, - { url = "https://files.pythonhosted.org/packages/38/f8/d8fddee9ed0d0c0f4a2132c1dfcf0e3e53265055da8df952a53e7eaf178c/pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319", size = 12739445 }, - { url = "https://files.pythonhosted.org/packages/20/e8/45a05d9c39d2cea61ab175dbe6a2de1d05b679e8de2011da4ee190d7e748/pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8", size = 16359235 }, - { url = "https://files.pythonhosted.org/packages/1d/99/617d07a6a5e429ff90c90da64d428516605a1ec7d7bea494235e1c3882de/pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a", size = 14056756 }, - { url = "https://files.pythonhosted.org/packages/29/d4/1244ab8edf173a10fd601f7e13b9566c1b525c4f365d6bee918e68381889/pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13", size = 11504248 }, - { url = "https://files.pythonhosted.org/packages/64/22/3b8f4e0ed70644e85cfdcd57454686b9057c6c38d2f74fe4b8bc2527214a/pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015", size = 12477643 }, - { url = "https://files.pythonhosted.org/packages/e4/93/b3f5d1838500e22c8d793625da672f3eec046b1a99257666c94446969282/pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28", size = 11281573 }, - { url = "https://files.pythonhosted.org/packages/f5/94/6c79b07f0e5aab1dcfa35a75f4817f5c4f677931d4234afcd75f0e6a66ca/pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0", size = 15196085 }, - { url = "https://files.pythonhosted.org/packages/e8/31/aa8da88ca0eadbabd0a639788a6da13bb2ff6edbbb9f29aa786450a30a91/pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24", size = 12711809 }, - { url = "https://files.pythonhosted.org/packages/ee/7c/c6dbdb0cb2a4344cacfb8de1c5808ca885b2e4dcfde8008266608f9372af/pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659", size = 16356316 }, - { url = "https://files.pythonhosted.org/packages/57/b7/8b757e7d92023b832869fa8881a992696a0bfe2e26f72c9ae9f255988d42/pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb", size = 14022055 }, - { url = "https://files.pythonhosted.org/packages/3b/bc/4b18e2b8c002572c5a441a64826252ce5da2aa738855747247a971988043/pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d", size = 11481175 }, - { url = "https://files.pythonhosted.org/packages/76/a3/a5d88146815e972d40d19247b2c162e88213ef51c7c25993942c39dbf41d/pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468", size = 12615650 }, - { url = "https://files.pythonhosted.org/packages/9c/8c/f0fd18f6140ddafc0c24122c8a964e48294acc579d47def376fef12bcb4a/pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18", size = 11290177 }, - { url = "https://files.pythonhosted.org/packages/ed/f9/e995754eab9c0f14c6777401f7eece0943840b7a9fc932221c19d1abee9f/pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2", size = 14651526 }, - { url = "https://files.pythonhosted.org/packages/25/b0/98d6ae2e1abac4f35230aa756005e8654649d305df9a28b16b9ae4353bff/pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4", size = 11871013 }, - { url = "https://files.pythonhosted.org/packages/cc/57/0f72a10f9db6a4628744c8e8f0df4e6e21de01212c7c981d31e50ffc8328/pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d", size = 15711620 }, - { url = "https://files.pythonhosted.org/packages/ab/5f/b38085618b950b79d2d9164a711c52b10aefc0ae6833b96f626b7021b2ed/pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a", size = 13098436 }, +sdist = { url = "https://files.pythonhosted.org/packages/72/51/48f713c4c728d7c55ef7444ba5ea027c26998d96d1a40953b346438602fc/pandas-2.3.0.tar.gz", hash = "sha256:34600ab34ebf1131a7613a260a61dbe8b62c188ec0ea4c296da7c9a06b004133", size = 4484490 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/1e/ba313812a699fe37bf62e6194265a4621be11833f5fce46d9eae22acb5d7/pandas-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8adff9f138fc614347ff33812046787f7d43b3cef7c0f0171b3340cae333f6ca", size = 11551836 }, + { url = "https://files.pythonhosted.org/packages/1b/cc/0af9c07f8d714ea563b12383a7e5bde9479cf32413ee2f346a9c5a801f22/pandas-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e5f08eb9a445d07720776df6e641975665c9ea12c9d8a331e0f6890f2dcd76ef", size = 10807977 }, + { url = "https://files.pythonhosted.org/packages/ee/3e/8c0fb7e2cf4a55198466ced1ca6a9054ae3b7e7630df7757031df10001fd/pandas-2.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa35c266c8cd1a67d75971a1912b185b492d257092bdd2709bbdebe574ed228d", size = 11788230 }, + { url = "https://files.pythonhosted.org/packages/14/22/b493ec614582307faf3f94989be0f7f0a71932ed6f56c9a80c0bb4a3b51e/pandas-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a0cc77b0f089d2d2ffe3007db58f170dae9b9f54e569b299db871a3ab5bf46", size = 12370423 }, + { url = "https://files.pythonhosted.org/packages/9f/74/b012addb34cda5ce855218a37b258c4e056a0b9b334d116e518d72638737/pandas-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c06f6f144ad0a1bf84699aeea7eff6068ca5c63ceb404798198af7eb86082e33", size = 12990594 }, + { url = "https://files.pythonhosted.org/packages/95/81/b310e60d033ab64b08e66c635b94076488f0b6ce6a674379dd5b224fc51c/pandas-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ed16339bc354a73e0a609df36d256672c7d296f3f767ac07257801aa064ff73c", size = 13745952 }, + { url = "https://files.pythonhosted.org/packages/25/ac/f6ee5250a8881b55bd3aecde9b8cfddea2f2b43e3588bca68a4e9aaf46c8/pandas-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:fa07e138b3f6c04addfeaf56cc7fdb96c3b68a3fe5e5401251f231fce40a0d7a", size = 11094534 }, + { url = "https://files.pythonhosted.org/packages/94/46/24192607058dd607dbfacdd060a2370f6afb19c2ccb617406469b9aeb8e7/pandas-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2eb4728a18dcd2908c7fccf74a982e241b467d178724545a48d0caf534b38ebf", size = 11573865 }, + { url = "https://files.pythonhosted.org/packages/9f/cc/ae8ea3b800757a70c9fdccc68b67dc0280a6e814efcf74e4211fd5dea1ca/pandas-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9d8c3187be7479ea5c3d30c32a5d73d62a621166675063b2edd21bc47614027", size = 10702154 }, + { url = "https://files.pythonhosted.org/packages/d8/ba/a7883d7aab3d24c6540a2768f679e7414582cc389876d469b40ec749d78b/pandas-2.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ff730713d4c4f2f1c860e36c005c7cefc1c7c80c21c0688fd605aa43c9fcf09", size = 11262180 }, + { url = "https://files.pythonhosted.org/packages/01/a5/931fc3ad333d9d87b10107d948d757d67ebcfc33b1988d5faccc39c6845c/pandas-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba24af48643b12ffe49b27065d3babd52702d95ab70f50e1b34f71ca703e2c0d", size = 11991493 }, + { url = "https://files.pythonhosted.org/packages/d7/bf/0213986830a92d44d55153c1d69b509431a972eb73f204242988c4e66e86/pandas-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:404d681c698e3c8a40a61d0cd9412cc7364ab9a9cc6e144ae2992e11a2e77a20", size = 12470733 }, + { url = "https://files.pythonhosted.org/packages/a4/0e/21eb48a3a34a7d4bac982afc2c4eb5ab09f2d988bdf29d92ba9ae8e90a79/pandas-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6021910b086b3ca756755e86ddc64e0ddafd5e58e076c72cb1585162e5ad259b", size = 13212406 }, + { url = "https://files.pythonhosted.org/packages/1f/d9/74017c4eec7a28892d8d6e31ae9de3baef71f5a5286e74e6b7aad7f8c837/pandas-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:094e271a15b579650ebf4c5155c05dcd2a14fd4fdd72cf4854b2f7ad31ea30be", size = 10976199 }, + { url = "https://files.pythonhosted.org/packages/d3/57/5cb75a56a4842bbd0511c3d1c79186d8315b82dac802118322b2de1194fe/pandas-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c7e2fc25f89a49a11599ec1e76821322439d90820108309bf42130d2f36c983", size = 11518913 }, + { url = "https://files.pythonhosted.org/packages/05/01/0c8785610e465e4948a01a059562176e4c8088aa257e2e074db868f86d4e/pandas-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c6da97aeb6a6d233fb6b17986234cc723b396b50a3c6804776351994f2a658fd", size = 10655249 }, + { url = "https://files.pythonhosted.org/packages/e8/6a/47fd7517cd8abe72a58706aab2b99e9438360d36dcdb052cf917b7bf3bdc/pandas-2.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb32dc743b52467d488e7a7c8039b821da2826a9ba4f85b89ea95274f863280f", size = 11328359 }, + { url = "https://files.pythonhosted.org/packages/2a/b3/463bfe819ed60fb7e7ddffb4ae2ee04b887b3444feee6c19437b8f834837/pandas-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:213cd63c43263dbb522c1f8a7c9d072e25900f6975596f883f4bebd77295d4f3", size = 12024789 }, + { url = "https://files.pythonhosted.org/packages/04/0c/e0704ccdb0ac40aeb3434d1c641c43d05f75c92e67525df39575ace35468/pandas-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1d2b33e68d0ce64e26a4acc2e72d747292084f4e8db4c847c6f5f6cbe56ed6d8", size = 12480734 }, + { url = "https://files.pythonhosted.org/packages/e9/df/815d6583967001153bb27f5cf075653d69d51ad887ebbf4cfe1173a1ac58/pandas-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:430a63bae10b5086995db1b02694996336e5a8ac9a96b4200572b413dfdfccb9", size = 13223381 }, + { url = "https://files.pythonhosted.org/packages/79/88/ca5973ed07b7f484c493e941dbff990861ca55291ff7ac67c815ce347395/pandas-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:4930255e28ff5545e2ca404637bcc56f031893142773b3468dc021c6c32a1390", size = 10970135 }, + { url = "https://files.pythonhosted.org/packages/24/fb/0994c14d1f7909ce83f0b1fb27958135513c4f3f2528bde216180aa73bfc/pandas-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f925f1ef673b4bd0271b1809b72b3270384f2b7d9d14a189b12b7fc02574d575", size = 12141356 }, + { url = "https://files.pythonhosted.org/packages/9d/a2/9b903e5962134497ac4f8a96f862ee3081cb2506f69f8e4778ce3d9c9d82/pandas-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78ad363ddb873a631e92a3c063ade1ecfb34cae71e9a2be6ad100f875ac1042", size = 11474674 }, + { url = "https://files.pythonhosted.org/packages/81/3a/3806d041bce032f8de44380f866059437fb79e36d6b22c82c187e65f765b/pandas-2.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:951805d146922aed8357e4cc5671b8b0b9be1027f0619cea132a9f3f65f2f09c", size = 11439876 }, + { url = "https://files.pythonhosted.org/packages/15/aa/3fc3181d12b95da71f5c2537c3e3b3af6ab3a8c392ab41ebb766e0929bc6/pandas-2.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a881bc1309f3fce34696d07b00f13335c41f5f5a8770a33b09ebe23261cfc67", size = 11966182 }, + { url = "https://files.pythonhosted.org/packages/37/e7/e12f2d9b0a2c4a2cc86e2aabff7ccfd24f03e597d770abfa2acd313ee46b/pandas-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e1991bbb96f4050b09b5f811253c4f3cf05ee89a589379aa36cd623f21a31d6f", size = 12547686 }, + { url = "https://files.pythonhosted.org/packages/39/c2/646d2e93e0af70f4e5359d870a63584dacbc324b54d73e6b3267920ff117/pandas-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:bb3be958022198531eb7ec2008cfc78c5b1eed51af8600c6c5d9160d89d8d249", size = 13231847 }, ] [[package]] @@ -2180,6 +2088,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl", hash = "sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f", size = 18905 }, ] +[[package]] +name = "pathspec" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191 }, +] + [[package]] name = "pexpect" version = "4.9.0" @@ -2194,61 +2111,54 @@ wheels = [ [[package]] name = "pillow" -version = "11.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/af/cb/bb5c01fcd2a69335b86c22142b2bccfc3464087efb7fd382eee5ffc7fdf7/pillow-11.2.1.tar.gz", hash = "sha256:a64dd61998416367b7ef979b73d3a85853ba9bec4c2925f74e588879a58716b6", size = 47026707 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/68/08/3fbf4b98924c73037a8e8b4c2c774784805e0fb4ebca6c5bb60795c40125/pillow-11.2.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35ca289f712ccfc699508c4658a1d14652e8033e9b69839edf83cbdd0ba39e70", size = 3198450 }, - { url = "https://files.pythonhosted.org/packages/84/92/6505b1af3d2849d5e714fc75ba9e69b7255c05ee42383a35a4d58f576b16/pillow-11.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0409af9f829f87a2dfb7e259f78f317a5351f2045158be321fd135973fff7bf", size = 3030550 }, - { url = "https://files.pythonhosted.org/packages/3c/8c/ac2f99d2a70ff966bc7eb13dacacfaab57c0549b2ffb351b6537c7840b12/pillow-11.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4e5c5edee874dce4f653dbe59db7c73a600119fbea8d31f53423586ee2aafd7", size = 4415018 }, - { url = "https://files.pythonhosted.org/packages/1f/e3/0a58b5d838687f40891fff9cbaf8669f90c96b64dc8f91f87894413856c6/pillow-11.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b93a07e76d13bff9444f1a029e0af2964e654bfc2e2c2d46bfd080df5ad5f3d8", size = 4498006 }, - { url = "https://files.pythonhosted.org/packages/21/f5/6ba14718135f08fbfa33308efe027dd02b781d3f1d5c471444a395933aac/pillow-11.2.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:e6def7eed9e7fa90fde255afaf08060dc4b343bbe524a8f69bdd2a2f0018f600", size = 4517773 }, - { url = "https://files.pythonhosted.org/packages/20/f2/805ad600fc59ebe4f1ba6129cd3a75fb0da126975c8579b8f57abeb61e80/pillow-11.2.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8f4f3724c068be008c08257207210c138d5f3731af6c155a81c2b09a9eb3a788", size = 4607069 }, - { url = "https://files.pythonhosted.org/packages/71/6b/4ef8a288b4bb2e0180cba13ca0a519fa27aa982875882392b65131401099/pillow-11.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a0a6709b47019dff32e678bc12c63008311b82b9327613f534e496dacaefb71e", size = 4583460 }, - { url = "https://files.pythonhosted.org/packages/62/ae/f29c705a09cbc9e2a456590816e5c234382ae5d32584f451c3eb41a62062/pillow-11.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f6b0c664ccb879109ee3ca702a9272d877f4fcd21e5eb63c26422fd6e415365e", size = 4661304 }, - { url = "https://files.pythonhosted.org/packages/6e/1a/c8217b6f2f73794a5e219fbad087701f412337ae6dbb956db37d69a9bc43/pillow-11.2.1-cp311-cp311-win32.whl", hash = "sha256:cc5d875d56e49f112b6def6813c4e3d3036d269c008bf8aef72cd08d20ca6df6", size = 2331809 }, - { url = "https://files.pythonhosted.org/packages/e2/72/25a8f40170dc262e86e90f37cb72cb3de5e307f75bf4b02535a61afcd519/pillow-11.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:0f5c7eda47bf8e3c8a283762cab94e496ba977a420868cb819159980b6709193", size = 2676338 }, - { url = "https://files.pythonhosted.org/packages/06/9e/76825e39efee61efea258b479391ca77d64dbd9e5804e4ad0fa453b4ba55/pillow-11.2.1-cp311-cp311-win_arm64.whl", hash = "sha256:4d375eb838755f2528ac8cbc926c3e31cc49ca4ad0cf79cff48b20e30634a4a7", size = 2414918 }, - { url = "https://files.pythonhosted.org/packages/c7/40/052610b15a1b8961f52537cc8326ca6a881408bc2bdad0d852edeb6ed33b/pillow-11.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:78afba22027b4accef10dbd5eed84425930ba41b3ea0a86fa8d20baaf19d807f", size = 3190185 }, - { url = "https://files.pythonhosted.org/packages/e5/7e/b86dbd35a5f938632093dc40d1682874c33dcfe832558fc80ca56bfcb774/pillow-11.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78092232a4ab376a35d68c4e6d5e00dfd73454bd12b230420025fbe178ee3b0b", size = 3030306 }, - { url = "https://files.pythonhosted.org/packages/a4/5c/467a161f9ed53e5eab51a42923c33051bf8d1a2af4626ac04f5166e58e0c/pillow-11.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25a5f306095c6780c52e6bbb6109624b95c5b18e40aab1c3041da3e9e0cd3e2d", size = 4416121 }, - { url = "https://files.pythonhosted.org/packages/62/73/972b7742e38ae0e2ac76ab137ca6005dcf877480da0d9d61d93b613065b4/pillow-11.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c7b29dbd4281923a2bfe562acb734cee96bbb129e96e6972d315ed9f232bef4", size = 4501707 }, - { url = "https://files.pythonhosted.org/packages/e4/3a/427e4cb0b9e177efbc1a84798ed20498c4f233abde003c06d2650a6d60cb/pillow-11.2.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3e645b020f3209a0181a418bffe7b4a93171eef6c4ef6cc20980b30bebf17b7d", size = 4522921 }, - { url = "https://files.pythonhosted.org/packages/fe/7c/d8b1330458e4d2f3f45d9508796d7caf0c0d3764c00c823d10f6f1a3b76d/pillow-11.2.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b2dbea1012ccb784a65349f57bbc93730b96e85b42e9bf7b01ef40443db720b4", size = 4612523 }, - { url = "https://files.pythonhosted.org/packages/b3/2f/65738384e0b1acf451de5a573d8153fe84103772d139e1e0bdf1596be2ea/pillow-11.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:da3104c57bbd72948d75f6a9389e6727d2ab6333c3617f0a89d72d4940aa0443", size = 4587836 }, - { url = "https://files.pythonhosted.org/packages/6a/c5/e795c9f2ddf3debb2dedd0df889f2fe4b053308bb59a3cc02a0cd144d641/pillow-11.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:598174aef4589af795f66f9caab87ba4ff860ce08cd5bb447c6fc553ffee603c", size = 4669390 }, - { url = "https://files.pythonhosted.org/packages/96/ae/ca0099a3995976a9fce2f423166f7bff9b12244afdc7520f6ed38911539a/pillow-11.2.1-cp312-cp312-win32.whl", hash = "sha256:1d535df14716e7f8776b9e7fee118576d65572b4aad3ed639be9e4fa88a1cad3", size = 2332309 }, - { url = "https://files.pythonhosted.org/packages/7c/18/24bff2ad716257fc03da964c5e8f05d9790a779a8895d6566e493ccf0189/pillow-11.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:14e33b28bf17c7a38eede290f77db7c664e4eb01f7869e37fa98a5aa95978941", size = 2676768 }, - { url = "https://files.pythonhosted.org/packages/da/bb/e8d656c9543276517ee40184aaa39dcb41e683bca121022f9323ae11b39d/pillow-11.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:21e1470ac9e5739ff880c211fc3af01e3ae505859392bf65458c224d0bf283eb", size = 2415087 }, - { url = "https://files.pythonhosted.org/packages/36/9c/447528ee3776e7ab8897fe33697a7ff3f0475bb490c5ac1456a03dc57956/pillow-11.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fdec757fea0b793056419bca3e9932eb2b0ceec90ef4813ea4c1e072c389eb28", size = 3190098 }, - { url = "https://files.pythonhosted.org/packages/b5/09/29d5cd052f7566a63e5b506fac9c60526e9ecc553825551333e1e18a4858/pillow-11.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b0e130705d568e2f43a17bcbe74d90958e8a16263868a12c3e0d9c8162690830", size = 3030166 }, - { url = "https://files.pythonhosted.org/packages/71/5d/446ee132ad35e7600652133f9c2840b4799bbd8e4adba881284860da0a36/pillow-11.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bdb5e09068332578214cadd9c05e3d64d99e0e87591be22a324bdbc18925be0", size = 4408674 }, - { url = "https://files.pythonhosted.org/packages/69/5f/cbe509c0ddf91cc3a03bbacf40e5c2339c4912d16458fcb797bb47bcb269/pillow-11.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d189ba1bebfbc0c0e529159631ec72bb9e9bc041f01ec6d3233d6d82eb823bc1", size = 4496005 }, - { url = "https://files.pythonhosted.org/packages/f9/b3/dd4338d8fb8a5f312021f2977fb8198a1184893f9b00b02b75d565c33b51/pillow-11.2.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:191955c55d8a712fab8934a42bfefbf99dd0b5875078240943f913bb66d46d9f", size = 4518707 }, - { url = "https://files.pythonhosted.org/packages/13/eb/2552ecebc0b887f539111c2cd241f538b8ff5891b8903dfe672e997529be/pillow-11.2.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:ad275964d52e2243430472fc5d2c2334b4fc3ff9c16cb0a19254e25efa03a155", size = 4610008 }, - { url = "https://files.pythonhosted.org/packages/72/d1/924ce51bea494cb6e7959522d69d7b1c7e74f6821d84c63c3dc430cbbf3b/pillow-11.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:750f96efe0597382660d8b53e90dd1dd44568a8edb51cb7f9d5d918b80d4de14", size = 4585420 }, - { url = "https://files.pythonhosted.org/packages/43/ab/8f81312d255d713b99ca37479a4cb4b0f48195e530cdc1611990eb8fd04b/pillow-11.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fe15238d3798788d00716637b3d4e7bb6bde18b26e5d08335a96e88564a36b6b", size = 4667655 }, - { url = "https://files.pythonhosted.org/packages/94/86/8f2e9d2dc3d308dfd137a07fe1cc478df0a23d42a6c4093b087e738e4827/pillow-11.2.1-cp313-cp313-win32.whl", hash = "sha256:3fe735ced9a607fee4f481423a9c36701a39719252a9bb251679635f99d0f7d2", size = 2332329 }, - { url = "https://files.pythonhosted.org/packages/6d/ec/1179083b8d6067a613e4d595359b5fdea65d0a3b7ad623fee906e1b3c4d2/pillow-11.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:74ee3d7ecb3f3c05459ba95eed5efa28d6092d751ce9bf20e3e253a4e497e691", size = 2676388 }, - { url = "https://files.pythonhosted.org/packages/23/f1/2fc1e1e294de897df39fa8622d829b8828ddad938b0eaea256d65b84dd72/pillow-11.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:5119225c622403afb4b44bad4c1ca6c1f98eed79db8d3bc6e4e160fc6339d66c", size = 2414950 }, - { url = "https://files.pythonhosted.org/packages/c4/3e/c328c48b3f0ead7bab765a84b4977acb29f101d10e4ef57a5e3400447c03/pillow-11.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8ce2e8411c7aaef53e6bb29fe98f28cd4fbd9a1d9be2eeea434331aac0536b22", size = 3192759 }, - { url = "https://files.pythonhosted.org/packages/18/0e/1c68532d833fc8b9f404d3a642991441d9058eccd5606eab31617f29b6d4/pillow-11.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9ee66787e095127116d91dea2143db65c7bb1e232f617aa5957c0d9d2a3f23a7", size = 3033284 }, - { url = "https://files.pythonhosted.org/packages/b7/cb/6faf3fb1e7705fd2db74e070f3bf6f88693601b0ed8e81049a8266de4754/pillow-11.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9622e3b6c1d8b551b6e6f21873bdcc55762b4b2126633014cea1803368a9aa16", size = 4445826 }, - { url = "https://files.pythonhosted.org/packages/07/94/8be03d50b70ca47fb434a358919d6a8d6580f282bbb7af7e4aa40103461d/pillow-11.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63b5dff3a68f371ea06025a1a6966c9a1e1ee452fc8020c2cd0ea41b83e9037b", size = 4527329 }, - { url = "https://files.pythonhosted.org/packages/fd/a4/bfe78777076dc405e3bd2080bc32da5ab3945b5a25dc5d8acaa9de64a162/pillow-11.2.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:31df6e2d3d8fc99f993fd253e97fae451a8db2e7207acf97859732273e108406", size = 4549049 }, - { url = "https://files.pythonhosted.org/packages/65/4d/eaf9068dc687c24979e977ce5677e253624bd8b616b286f543f0c1b91662/pillow-11.2.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:062b7a42d672c45a70fa1f8b43d1d38ff76b63421cbbe7f88146b39e8a558d91", size = 4635408 }, - { url = "https://files.pythonhosted.org/packages/1d/26/0fd443365d9c63bc79feb219f97d935cd4b93af28353cba78d8e77b61719/pillow-11.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4eb92eca2711ef8be42fd3f67533765d9fd043b8c80db204f16c8ea62ee1a751", size = 4614863 }, - { url = "https://files.pythonhosted.org/packages/49/65/dca4d2506be482c2c6641cacdba5c602bc76d8ceb618fd37de855653a419/pillow-11.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f91ebf30830a48c825590aede79376cb40f110b387c17ee9bd59932c961044f9", size = 4692938 }, - { url = "https://files.pythonhosted.org/packages/b3/92/1ca0c3f09233bd7decf8f7105a1c4e3162fb9142128c74adad0fb361b7eb/pillow-11.2.1-cp313-cp313t-win32.whl", hash = "sha256:e0b55f27f584ed623221cfe995c912c61606be8513bfa0e07d2c674b4516d9dd", size = 2335774 }, - { url = "https://files.pythonhosted.org/packages/a5/ac/77525347cb43b83ae905ffe257bbe2cc6fd23acb9796639a1f56aa59d191/pillow-11.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:36d6b82164c39ce5482f649b437382c0fb2395eabc1e2b1702a6deb8ad647d6e", size = 2681895 }, - { url = "https://files.pythonhosted.org/packages/67/32/32dc030cfa91ca0fc52baebbba2e009bb001122a1daa8b6a79ad830b38d3/pillow-11.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:225c832a13326e34f212d2072982bb1adb210e0cc0b153e688743018c94a2681", size = 2417234 }, - { url = "https://files.pythonhosted.org/packages/a4/ad/2613c04633c7257d9481ab21d6b5364b59fc5d75faafd7cb8693523945a3/pillow-11.2.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:80f1df8dbe9572b4b7abdfa17eb5d78dd620b1d55d9e25f834efdbee872d3aed", size = 3181734 }, - { url = "https://files.pythonhosted.org/packages/a4/fd/dcdda4471ed667de57bb5405bb42d751e6cfdd4011a12c248b455c778e03/pillow-11.2.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ea926cfbc3957090becbcbbb65ad177161a2ff2ad578b5a6ec9bb1e1cd78753c", size = 2999841 }, - { url = "https://files.pythonhosted.org/packages/ac/89/8a2536e95e77432833f0db6fd72a8d310c8e4272a04461fb833eb021bf94/pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:738db0e0941ca0376804d4de6a782c005245264edaa253ffce24e5a15cbdc7bd", size = 3437470 }, - { url = "https://files.pythonhosted.org/packages/9d/8f/abd47b73c60712f88e9eda32baced7bfc3e9bd6a7619bb64b93acff28c3e/pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db98ab6565c69082ec9b0d4e40dd9f6181dab0dd236d26f7a50b8b9bfbd5076", size = 3460013 }, - { url = "https://files.pythonhosted.org/packages/f6/20/5c0a0aa83b213b7a07ec01e71a3d6ea2cf4ad1d2c686cc0168173b6089e7/pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:036e53f4170e270ddb8797d4c590e6dd14d28e15c7da375c18978045f7e6c37b", size = 3527165 }, - { url = "https://files.pythonhosted.org/packages/58/0e/2abab98a72202d91146abc839e10c14f7cf36166f12838ea0c4db3ca6ecb/pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:14f73f7c291279bd65fda51ee87affd7c1e097709f7fdd0188957a16c264601f", size = 3571586 }, - { url = "https://files.pythonhosted.org/packages/21/2c/5e05f58658cf49b6667762cca03d6e7d85cededde2caf2ab37b81f80e574/pillow-11.2.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:208653868d5c9ecc2b327f9b9ef34e0e42a4cdd172c2988fd81d62d2bc9bc044", size = 2674751 }, +version = "11.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069 } +wheels = [ + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { url = "https://files.pythonhosted.org/packages/48/59/8cd06d7f3944cc7d892e8533c56b0acb68399f640786313275faec1e3b6f/pillow-11.3.0-cp311-cp311-win32.whl", hash = "sha256:b4b8f3efc8d530a1544e5962bd6b403d5f7fe8b9e08227c6b255f98ad82b4ba0", size = 6274768 }, + { url = "https://files.pythonhosted.org/packages/f1/cc/29c0f5d64ab8eae20f3232da8f8571660aa0ab4b8f1331da5c2f5f9a938e/pillow-11.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:1a992e86b0dd7aeb1f053cd506508c0999d710a8f07b4c791c63843fc6a807ac", size = 6986055 }, + { url = "https://files.pythonhosted.org/packages/c6/df/90bd886fabd544c25addd63e5ca6932c86f2b701d5da6c7839387a076b4a/pillow-11.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:30807c931ff7c095620fe04448e2c2fc673fcbb1ffe2a7da3fb39613489b1ddd", size = 2423079 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { url = "https://files.pythonhosted.org/packages/26/7d/73699ad77895f69edff76b0f332acc3d497f22f5d75e5360f78cbcaff248/pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149", size = 6275079 }, + { url = "https://files.pythonhosted.org/packages/8c/ce/e7dfc873bdd9828f3b6e5c2bbb74e47a98ec23cc5c74fc4e54462f0d9204/pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d", size = 6986324 }, + { url = "https://files.pythonhosted.org/packages/16/8f/b13447d1bf0b1f7467ce7d86f6e6edf66c0ad7cf44cf5c87a37f9bed9936/pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542", size = 2423067 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { url = "https://files.pythonhosted.org/packages/45/9c/9c5e2a73f125f6cbc59cc7087c8f2d649a7ae453f83bd0362ff7c9e2aee2/pillow-11.3.0-cp313-cp313-win32.whl", hash = "sha256:a4d336baed65d50d37b88ca5b60c0fa9d81e3a87d4a7930d3880d1624d5b31f3", size = 6273841 }, + { url = "https://files.pythonhosted.org/packages/23/85/397c73524e0cd212067e0c969aa245b01d50183439550d24d9f55781b776/pillow-11.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bce5c4fd0921f99d2e858dc4d4d64193407e1b99478bc5cacecba2311abde51", size = 6978450 }, + { url = "https://files.pythonhosted.org/packages/17/d2/622f4547f69cd173955194b78e4d19ca4935a1b0f03a302d655c9f6aae65/pillow-11.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:1904e1264881f682f02b7f8167935cce37bc97db457f8e7849dc3a6a52b99580", size = 2423055 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { url = "https://files.pythonhosted.org/packages/49/6b/00187a044f98255225f172de653941e61da37104a9ea60e4f6887717e2b5/pillow-11.3.0-cp313-cp313t-win32.whl", hash = "sha256:2a3117c06b8fb646639dce83694f2f9eac405472713fcb1ae887469c0d4f6788", size = 6277546 }, + { url = "https://files.pythonhosted.org/packages/e8/5c/6caaba7e261c0d75bab23be79f1d06b5ad2a2ae49f028ccec801b0e853d6/pillow-11.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:857844335c95bea93fb39e0fa2726b4d9d758850b34075a7e3ff4f4fa3aa3b31", size = 6985102 }, + { url = "https://files.pythonhosted.org/packages/f3/7e/b623008460c09a0cb38263c93b828c666493caee2eb34ff67f778b87e58c/pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e", size = 2424803 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { url = "https://files.pythonhosted.org/packages/34/e7/ae39f538fd6844e982063c3a5e4598b8ced43b9633baa3a85ef33af8c05c/pillow-11.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c84d689db21a1c397d001aa08241044aa2069e7587b398c8cc63020390b1c1b8", size = 6984598 }, ] [[package]] @@ -2326,75 +2236,75 @@ wheels = [ [[package]] name = "propcache" -version = "0.3.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/07/c8/fdc6686a986feae3541ea23dcaa661bd93972d3940460646c6bb96e21c40/propcache-0.3.1.tar.gz", hash = "sha256:40d980c33765359098837527e18eddefc9a24cea5b45e078a7f3bb5b032c6ecf", size = 43651 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/90/0f/5a5319ee83bd651f75311fcb0c492c21322a7fc8f788e4eef23f44243427/propcache-0.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7f30241577d2fef2602113b70ef7231bf4c69a97e04693bde08ddab913ba0ce5", size = 80243 }, - { url = "https://files.pythonhosted.org/packages/ce/84/3db5537e0879942783e2256616ff15d870a11d7ac26541336fe1b673c818/propcache-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:43593c6772aa12abc3af7784bff4a41ffa921608dd38b77cf1dfd7f5c4e71371", size = 46503 }, - { url = "https://files.pythonhosted.org/packages/e2/c8/b649ed972433c3f0d827d7f0cf9ea47162f4ef8f4fe98c5f3641a0bc63ff/propcache-0.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a75801768bbe65499495660b777e018cbe90c7980f07f8aa57d6be79ea6f71da", size = 45934 }, - { url = "https://files.pythonhosted.org/packages/59/f9/4c0a5cf6974c2c43b1a6810c40d889769cc8f84cea676cbe1e62766a45f8/propcache-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6f1324db48f001c2ca26a25fa25af60711e09b9aaf4b28488602776f4f9a744", size = 233633 }, - { url = "https://files.pythonhosted.org/packages/e7/64/66f2f4d1b4f0007c6e9078bd95b609b633d3957fe6dd23eac33ebde4b584/propcache-0.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cdb0f3e1eb6dfc9965d19734d8f9c481b294b5274337a8cb5cb01b462dcb7e0", size = 241124 }, - { url = "https://files.pythonhosted.org/packages/aa/bf/7b8c9fd097d511638fa9b6af3d986adbdf567598a567b46338c925144c1b/propcache-0.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1eb34d90aac9bfbced9a58b266f8946cb5935869ff01b164573a7634d39fbcb5", size = 240283 }, - { url = "https://files.pythonhosted.org/packages/fa/c9/e85aeeeaae83358e2a1ef32d6ff50a483a5d5248bc38510d030a6f4e2816/propcache-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f35c7070eeec2cdaac6fd3fe245226ed2a6292d3ee8c938e5bb645b434c5f256", size = 232498 }, - { url = "https://files.pythonhosted.org/packages/8e/66/acb88e1f30ef5536d785c283af2e62931cb934a56a3ecf39105887aa8905/propcache-0.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b23c11c2c9e6d4e7300c92e022046ad09b91fd00e36e83c44483df4afa990073", size = 221486 }, - { url = "https://files.pythonhosted.org/packages/f5/f9/233ddb05ffdcaee4448508ee1d70aa7deff21bb41469ccdfcc339f871427/propcache-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3e19ea4ea0bf46179f8a3652ac1426e6dcbaf577ce4b4f65be581e237340420d", size = 222675 }, - { url = "https://files.pythonhosted.org/packages/98/b8/eb977e28138f9e22a5a789daf608d36e05ed93093ef12a12441030da800a/propcache-0.3.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:bd39c92e4c8f6cbf5f08257d6360123af72af9f4da75a690bef50da77362d25f", size = 215727 }, - { url = "https://files.pythonhosted.org/packages/89/2d/5f52d9c579f67b8ee1edd9ec073c91b23cc5b7ff7951a1e449e04ed8fdf3/propcache-0.3.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b0313e8b923b3814d1c4a524c93dfecea5f39fa95601f6a9b1ac96cd66f89ea0", size = 217878 }, - { url = "https://files.pythonhosted.org/packages/7a/fd/5283e5ed8a82b00c7a989b99bb6ea173db1ad750bf0bf8dff08d3f4a4e28/propcache-0.3.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e861ad82892408487be144906a368ddbe2dc6297074ade2d892341b35c59844a", size = 230558 }, - { url = "https://files.pythonhosted.org/packages/90/38/ab17d75938ef7ac87332c588857422ae126b1c76253f0f5b1242032923ca/propcache-0.3.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:61014615c1274df8da5991a1e5da85a3ccb00c2d4701ac6f3383afd3ca47ab0a", size = 233754 }, - { url = "https://files.pythonhosted.org/packages/06/5d/3b921b9c60659ae464137508d3b4c2b3f52f592ceb1964aa2533b32fcf0b/propcache-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:71ebe3fe42656a2328ab08933d420df5f3ab121772eef78f2dc63624157f0ed9", size = 226088 }, - { url = "https://files.pythonhosted.org/packages/54/6e/30a11f4417d9266b5a464ac5a8c5164ddc9dd153dfa77bf57918165eb4ae/propcache-0.3.1-cp311-cp311-win32.whl", hash = "sha256:58aa11f4ca8b60113d4b8e32d37e7e78bd8af4d1a5b5cb4979ed856a45e62005", size = 40859 }, - { url = "https://files.pythonhosted.org/packages/1d/3a/8a68dd867da9ca2ee9dfd361093e9cb08cb0f37e5ddb2276f1b5177d7731/propcache-0.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:9532ea0b26a401264b1365146c440a6d78269ed41f83f23818d4b79497aeabe7", size = 45153 }, - { url = "https://files.pythonhosted.org/packages/41/aa/ca78d9be314d1e15ff517b992bebbed3bdfef5b8919e85bf4940e57b6137/propcache-0.3.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f78eb8422acc93d7b69964012ad7048764bb45a54ba7a39bb9e146c72ea29723", size = 80430 }, - { url = "https://files.pythonhosted.org/packages/1a/d8/f0c17c44d1cda0ad1979af2e593ea290defdde9eaeb89b08abbe02a5e8e1/propcache-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:89498dd49c2f9a026ee057965cdf8192e5ae070ce7d7a7bd4b66a8e257d0c976", size = 46637 }, - { url = "https://files.pythonhosted.org/packages/ae/bd/c1e37265910752e6e5e8a4c1605d0129e5b7933c3dc3cf1b9b48ed83b364/propcache-0.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:09400e98545c998d57d10035ff623266927cb784d13dd2b31fd33b8a5316b85b", size = 46123 }, - { url = "https://files.pythonhosted.org/packages/d4/b0/911eda0865f90c0c7e9f0415d40a5bf681204da5fd7ca089361a64c16b28/propcache-0.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8efd8c5adc5a2c9d3b952815ff8f7710cefdcaf5f2c36d26aff51aeca2f12f", size = 243031 }, - { url = "https://files.pythonhosted.org/packages/0a/06/0da53397c76a74271621807265b6eb61fb011451b1ddebf43213df763669/propcache-0.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2fe5c910f6007e716a06d269608d307b4f36e7babee5f36533722660e8c4a70", size = 249100 }, - { url = "https://files.pythonhosted.org/packages/f1/eb/13090e05bf6b963fc1653cdc922133ced467cb4b8dab53158db5a37aa21e/propcache-0.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a0ab8cf8cdd2194f8ff979a43ab43049b1df0b37aa64ab7eca04ac14429baeb7", size = 250170 }, - { url = "https://files.pythonhosted.org/packages/3b/4c/f72c9e1022b3b043ec7dc475a0f405d4c3e10b9b1d378a7330fecf0652da/propcache-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:563f9d8c03ad645597b8d010ef4e9eab359faeb11a0a2ac9f7b4bc8c28ebef25", size = 245000 }, - { url = "https://files.pythonhosted.org/packages/e8/fd/970ca0e22acc829f1adf5de3724085e778c1ad8a75bec010049502cb3a86/propcache-0.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb6e0faf8cb6b4beea5d6ed7b5a578254c6d7df54c36ccd3d8b3eb00d6770277", size = 230262 }, - { url = "https://files.pythonhosted.org/packages/c4/42/817289120c6b9194a44f6c3e6b2c3277c5b70bbad39e7df648f177cc3634/propcache-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1c5c7ab7f2bb3f573d1cb921993006ba2d39e8621019dffb1c5bc94cdbae81e8", size = 236772 }, - { url = "https://files.pythonhosted.org/packages/7c/9c/3b3942b302badd589ad6b672da3ca7b660a6c2f505cafd058133ddc73918/propcache-0.3.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:050b571b2e96ec942898f8eb46ea4bfbb19bd5502424747e83badc2d4a99a44e", size = 231133 }, - { url = "https://files.pythonhosted.org/packages/98/a1/75f6355f9ad039108ff000dfc2e19962c8dea0430da9a1428e7975cf24b2/propcache-0.3.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e1c4d24b804b3a87e9350f79e2371a705a188d292fd310e663483af6ee6718ee", size = 230741 }, - { url = "https://files.pythonhosted.org/packages/67/0c/3e82563af77d1f8731132166da69fdfd95e71210e31f18edce08a1eb11ea/propcache-0.3.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e4fe2a6d5ce975c117a6bb1e8ccda772d1e7029c1cca1acd209f91d30fa72815", size = 244047 }, - { url = "https://files.pythonhosted.org/packages/f7/50/9fb7cca01532a08c4d5186d7bb2da6c4c587825c0ae134b89b47c7d62628/propcache-0.3.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:feccd282de1f6322f56f6845bf1207a537227812f0a9bf5571df52bb418d79d5", size = 246467 }, - { url = "https://files.pythonhosted.org/packages/a9/02/ccbcf3e1c604c16cc525309161d57412c23cf2351523aedbb280eb7c9094/propcache-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ec314cde7314d2dd0510c6787326bbffcbdc317ecee6b7401ce218b3099075a7", size = 241022 }, - { url = "https://files.pythonhosted.org/packages/db/19/e777227545e09ca1e77a6e21274ae9ec45de0f589f0ce3eca2a41f366220/propcache-0.3.1-cp312-cp312-win32.whl", hash = "sha256:7d2d5a0028d920738372630870e7d9644ce437142197f8c827194fca404bf03b", size = 40647 }, - { url = "https://files.pythonhosted.org/packages/24/bb/3b1b01da5dd04c77a204c84e538ff11f624e31431cfde7201d9110b092b1/propcache-0.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:88c423efef9d7a59dae0614eaed718449c09a5ac79a5f224a8b9664d603f04a3", size = 44784 }, - { url = "https://files.pythonhosted.org/packages/58/60/f645cc8b570f99be3cf46714170c2de4b4c9d6b827b912811eff1eb8a412/propcache-0.3.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f1528ec4374617a7a753f90f20e2f551121bb558fcb35926f99e3c42367164b8", size = 77865 }, - { url = "https://files.pythonhosted.org/packages/6f/d4/c1adbf3901537582e65cf90fd9c26fde1298fde5a2c593f987112c0d0798/propcache-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc1915ec523b3b494933b5424980831b636fe483d7d543f7afb7b3bf00f0c10f", size = 45452 }, - { url = "https://files.pythonhosted.org/packages/d1/b5/fe752b2e63f49f727c6c1c224175d21b7d1727ce1d4873ef1c24c9216830/propcache-0.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a110205022d077da24e60b3df8bcee73971be9575dec5573dd17ae5d81751111", size = 44800 }, - { url = "https://files.pythonhosted.org/packages/62/37/fc357e345bc1971e21f76597028b059c3d795c5ca7690d7a8d9a03c9708a/propcache-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d249609e547c04d190e820d0d4c8ca03ed4582bcf8e4e160a6969ddfb57b62e5", size = 225804 }, - { url = "https://files.pythonhosted.org/packages/0d/f1/16e12c33e3dbe7f8b737809bad05719cff1dccb8df4dafbcff5575002c0e/propcache-0.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ced33d827625d0a589e831126ccb4f5c29dfdf6766cac441d23995a65825dcb", size = 230650 }, - { url = "https://files.pythonhosted.org/packages/3e/a2/018b9f2ed876bf5091e60153f727e8f9073d97573f790ff7cdf6bc1d1fb8/propcache-0.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4114c4ada8f3181af20808bedb250da6bae56660e4b8dfd9cd95d4549c0962f7", size = 234235 }, - { url = "https://files.pythonhosted.org/packages/45/5f/3faee66fc930dfb5da509e34c6ac7128870631c0e3582987fad161fcb4b1/propcache-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:975af16f406ce48f1333ec5e912fe11064605d5c5b3f6746969077cc3adeb120", size = 228249 }, - { url = "https://files.pythonhosted.org/packages/62/1e/a0d5ebda5da7ff34d2f5259a3e171a94be83c41eb1e7cd21a2105a84a02e/propcache-0.3.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a34aa3a1abc50740be6ac0ab9d594e274f59960d3ad253cd318af76b996dd654", size = 214964 }, - { url = "https://files.pythonhosted.org/packages/db/a0/d72da3f61ceab126e9be1f3bc7844b4e98c6e61c985097474668e7e52152/propcache-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9cec3239c85ed15bfaded997773fdad9fb5662b0a7cbc854a43f291eb183179e", size = 222501 }, - { url = "https://files.pythonhosted.org/packages/18/6d/a008e07ad7b905011253adbbd97e5b5375c33f0b961355ca0a30377504ac/propcache-0.3.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:05543250deac8e61084234d5fc54f8ebd254e8f2b39a16b1dce48904f45b744b", size = 217917 }, - { url = "https://files.pythonhosted.org/packages/98/37/02c9343ffe59e590e0e56dc5c97d0da2b8b19fa747ebacf158310f97a79a/propcache-0.3.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5cb5918253912e088edbf023788de539219718d3b10aef334476b62d2b53de53", size = 217089 }, - { url = "https://files.pythonhosted.org/packages/53/1b/d3406629a2c8a5666d4674c50f757a77be119b113eedd47b0375afdf1b42/propcache-0.3.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f3bbecd2f34d0e6d3c543fdb3b15d6b60dd69970c2b4c822379e5ec8f6f621d5", size = 228102 }, - { url = "https://files.pythonhosted.org/packages/cd/a7/3664756cf50ce739e5f3abd48febc0be1a713b1f389a502ca819791a6b69/propcache-0.3.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aca63103895c7d960a5b9b044a83f544b233c95e0dcff114389d64d762017af7", size = 230122 }, - { url = "https://files.pythonhosted.org/packages/35/36/0bbabaacdcc26dac4f8139625e930f4311864251276033a52fd52ff2a274/propcache-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a0a9898fdb99bf11786265468571e628ba60af80dc3f6eb89a3545540c6b0ef", size = 226818 }, - { url = "https://files.pythonhosted.org/packages/cc/27/4e0ef21084b53bd35d4dae1634b6d0bad35e9c58ed4f032511acca9d4d26/propcache-0.3.1-cp313-cp313-win32.whl", hash = "sha256:3a02a28095b5e63128bcae98eb59025924f121f048a62393db682f049bf4ac24", size = 40112 }, - { url = "https://files.pythonhosted.org/packages/a6/2c/a54614d61895ba6dd7ac8f107e2b2a0347259ab29cbf2ecc7b94fa38c4dc/propcache-0.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:813fbb8b6aea2fc9659815e585e548fe706d6f663fa73dff59a1677d4595a037", size = 44034 }, - { url = "https://files.pythonhosted.org/packages/5a/a8/0a4fd2f664fc6acc66438370905124ce62e84e2e860f2557015ee4a61c7e/propcache-0.3.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a444192f20f5ce8a5e52761a031b90f5ea6288b1eef42ad4c7e64fef33540b8f", size = 82613 }, - { url = "https://files.pythonhosted.org/packages/4d/e5/5ef30eb2cd81576256d7b6caaa0ce33cd1d2c2c92c8903cccb1af1a4ff2f/propcache-0.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0fbe94666e62ebe36cd652f5fc012abfbc2342de99b523f8267a678e4dfdee3c", size = 47763 }, - { url = "https://files.pythonhosted.org/packages/87/9a/87091ceb048efeba4d28e903c0b15bcc84b7c0bf27dc0261e62335d9b7b8/propcache-0.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f011f104db880f4e2166bcdcf7f58250f7a465bc6b068dc84c824a3d4a5c94dc", size = 47175 }, - { url = "https://files.pythonhosted.org/packages/3e/2f/854e653c96ad1161f96194c6678a41bbb38c7947d17768e8811a77635a08/propcache-0.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e584b6d388aeb0001d6d5c2bd86b26304adde6d9bb9bfa9c4889805021b96de", size = 292265 }, - { url = "https://files.pythonhosted.org/packages/40/8d/090955e13ed06bc3496ba4a9fb26c62e209ac41973cb0d6222de20c6868f/propcache-0.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a17583515a04358b034e241f952f1715243482fc2c2945fd99a1b03a0bd77d6", size = 294412 }, - { url = "https://files.pythonhosted.org/packages/39/e6/d51601342e53cc7582449e6a3c14a0479fab2f0750c1f4d22302e34219c6/propcache-0.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5aed8d8308215089c0734a2af4f2e95eeb360660184ad3912686c181e500b2e7", size = 294290 }, - { url = "https://files.pythonhosted.org/packages/3b/4d/be5f1a90abc1881884aa5878989a1acdafd379a91d9c7e5e12cef37ec0d7/propcache-0.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d8e309ff9a0503ef70dc9a0ebd3e69cf7b3894c9ae2ae81fc10943c37762458", size = 282926 }, - { url = "https://files.pythonhosted.org/packages/57/2b/8f61b998c7ea93a2b7eca79e53f3e903db1787fca9373af9e2cf8dc22f9d/propcache-0.3.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b655032b202028a582d27aeedc2e813299f82cb232f969f87a4fde491a233f11", size = 267808 }, - { url = "https://files.pythonhosted.org/packages/11/1c/311326c3dfce59c58a6098388ba984b0e5fb0381ef2279ec458ef99bd547/propcache-0.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f64d91b751df77931336b5ff7bafbe8845c5770b06630e27acd5dbb71e1931c", size = 290916 }, - { url = "https://files.pythonhosted.org/packages/4b/74/91939924b0385e54dc48eb2e4edd1e4903ffd053cf1916ebc5347ac227f7/propcache-0.3.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:19a06db789a4bd896ee91ebc50d059e23b3639c25d58eb35be3ca1cbe967c3bf", size = 262661 }, - { url = "https://files.pythonhosted.org/packages/c2/d7/e6079af45136ad325c5337f5dd9ef97ab5dc349e0ff362fe5c5db95e2454/propcache-0.3.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:bef100c88d8692864651b5f98e871fb090bd65c8a41a1cb0ff2322db39c96c27", size = 264384 }, - { url = "https://files.pythonhosted.org/packages/b7/d5/ba91702207ac61ae6f1c2da81c5d0d6bf6ce89e08a2b4d44e411c0bbe867/propcache-0.3.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:87380fb1f3089d2a0b8b00f006ed12bd41bd858fabfa7330c954c70f50ed8757", size = 291420 }, - { url = "https://files.pythonhosted.org/packages/58/70/2117780ed7edcd7ba6b8134cb7802aada90b894a9810ec56b7bb6018bee7/propcache-0.3.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e474fc718e73ba5ec5180358aa07f6aded0ff5f2abe700e3115c37d75c947e18", size = 290880 }, - { url = "https://files.pythonhosted.org/packages/4a/1f/ecd9ce27710021ae623631c0146719280a929d895a095f6d85efb6a0be2e/propcache-0.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:17d1c688a443355234f3c031349da69444be052613483f3e4158eef751abcd8a", size = 287407 }, - { url = "https://files.pythonhosted.org/packages/3e/66/2e90547d6b60180fb29e23dc87bd8c116517d4255240ec6d3f7dc23d1926/propcache-0.3.1-cp313-cp313t-win32.whl", hash = "sha256:359e81a949a7619802eb601d66d37072b79b79c2505e6d3fd8b945538411400d", size = 42573 }, - { url = "https://files.pythonhosted.org/packages/cb/8f/50ad8599399d1861b4d2b6b45271f0ef6af1b09b0a2386a46dbaf19c9535/propcache-0.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e7fb9a84c9abbf2b2683fa3e7b0d7da4d8ecf139a1c635732a8bda29c5214b0e", size = 46757 }, - { url = "https://files.pythonhosted.org/packages/b8/d3/c3cb8f1d6ae3b37f83e1de806713a9b3642c5895f0215a62e1a4bd6e5e34/propcache-0.3.1-py3-none-any.whl", hash = "sha256:9a8ecf38de50a7f518c21568c80f985e776397b902f1ce0b01f799aba1608b40", size = 12376 }, +version = "0.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/16/43264e4a779dd8588c21a70f0709665ee8f611211bdd2c87d952cfa7c776/propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168", size = 44139 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/80/8d/e8b436717ab9c2cfc23b116d2c297305aa4cd8339172a456d61ebf5669b8/propcache-0.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0b8d2f607bd8f80ddc04088bc2a037fdd17884a6fcadc47a96e334d72f3717be", size = 74207 }, + { url = "https://files.pythonhosted.org/packages/d6/29/1e34000e9766d112171764b9fa3226fa0153ab565d0c242c70e9945318a7/propcache-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06766d8f34733416e2e34f46fea488ad5d60726bb9481d3cddf89a6fa2d9603f", size = 43648 }, + { url = "https://files.pythonhosted.org/packages/46/92/1ad5af0df781e76988897da39b5f086c2bf0f028b7f9bd1f409bb05b6874/propcache-0.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a2dc1f4a1df4fecf4e6f68013575ff4af84ef6f478fe5344317a65d38a8e6dc9", size = 43496 }, + { url = "https://files.pythonhosted.org/packages/b3/ce/e96392460f9fb68461fabab3e095cb00c8ddf901205be4eae5ce246e5b7e/propcache-0.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be29c4f4810c5789cf10ddf6af80b041c724e629fa51e308a7a0fb19ed1ef7bf", size = 217288 }, + { url = "https://files.pythonhosted.org/packages/c5/2a/866726ea345299f7ceefc861a5e782b045545ae6940851930a6adaf1fca6/propcache-0.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59d61f6970ecbd8ff2e9360304d5c8876a6abd4530cb752c06586849ac8a9dc9", size = 227456 }, + { url = "https://files.pythonhosted.org/packages/de/03/07d992ccb6d930398689187e1b3c718339a1c06b8b145a8d9650e4726166/propcache-0.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:62180e0b8dbb6b004baec00a7983e4cc52f5ada9cd11f48c3528d8cfa7b96a66", size = 225429 }, + { url = "https://files.pythonhosted.org/packages/5d/e6/116ba39448753b1330f48ab8ba927dcd6cf0baea8a0ccbc512dfb49ba670/propcache-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c144ca294a204c470f18cf4c9d78887810d04a3e2fbb30eea903575a779159df", size = 213472 }, + { url = "https://files.pythonhosted.org/packages/a6/85/f01f5d97e54e428885a5497ccf7f54404cbb4f906688a1690cd51bf597dc/propcache-0.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5c2a784234c28854878d68978265617aa6dc0780e53d44b4d67f3651a17a9a2", size = 204480 }, + { url = "https://files.pythonhosted.org/packages/e3/79/7bf5ab9033b8b8194cc3f7cf1aaa0e9c3256320726f64a3e1f113a812dce/propcache-0.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5745bc7acdafa978ca1642891b82c19238eadc78ba2aaa293c6863b304e552d7", size = 214530 }, + { url = "https://files.pythonhosted.org/packages/31/0b/bd3e0c00509b609317df4a18e6b05a450ef2d9a963e1d8bc9c9415d86f30/propcache-0.3.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:c0075bf773d66fa8c9d41f66cc132ecc75e5bb9dd7cce3cfd14adc5ca184cb95", size = 205230 }, + { url = "https://files.pythonhosted.org/packages/7a/23/fae0ff9b54b0de4e819bbe559508da132d5683c32d84d0dc2ccce3563ed4/propcache-0.3.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5f57aa0847730daceff0497f417c9de353c575d8da3579162cc74ac294c5369e", size = 206754 }, + { url = "https://files.pythonhosted.org/packages/b7/7f/ad6a3c22630aaa5f618b4dc3c3598974a72abb4c18e45a50b3cdd091eb2f/propcache-0.3.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:eef914c014bf72d18efb55619447e0aecd5fb7c2e3fa7441e2e5d6099bddff7e", size = 218430 }, + { url = "https://files.pythonhosted.org/packages/5b/2c/ba4f1c0e8a4b4c75910742f0d333759d441f65a1c7f34683b4a74c0ee015/propcache-0.3.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2a4092e8549031e82facf3decdbc0883755d5bbcc62d3aea9d9e185549936dcf", size = 223884 }, + { url = "https://files.pythonhosted.org/packages/88/e4/ebe30fc399e98572019eee82ad0caf512401661985cbd3da5e3140ffa1b0/propcache-0.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:85871b050f174bc0bfb437efbdb68aaf860611953ed12418e4361bc9c392749e", size = 211480 }, + { url = "https://files.pythonhosted.org/packages/96/0a/7d5260b914e01d1d0906f7f38af101f8d8ed0dc47426219eeaf05e8ea7c2/propcache-0.3.2-cp311-cp311-win32.whl", hash = "sha256:36c8d9b673ec57900c3554264e630d45980fd302458e4ac801802a7fd2ef7897", size = 37757 }, + { url = "https://files.pythonhosted.org/packages/e1/2d/89fe4489a884bc0da0c3278c552bd4ffe06a1ace559db5ef02ef24ab446b/propcache-0.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53af8cb6a781b02d2ea079b5b853ba9430fcbe18a8e3ce647d5982a3ff69f39", size = 41500 }, + { url = "https://files.pythonhosted.org/packages/a8/42/9ca01b0a6f48e81615dca4765a8f1dd2c057e0540f6116a27dc5ee01dfb6/propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10", size = 73674 }, + { url = "https://files.pythonhosted.org/packages/af/6e/21293133beb550f9c901bbece755d582bfaf2176bee4774000bd4dd41884/propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154", size = 43570 }, + { url = "https://files.pythonhosted.org/packages/0c/c8/0393a0a3a2b8760eb3bde3c147f62b20044f0ddac81e9d6ed7318ec0d852/propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615", size = 43094 }, + { url = "https://files.pythonhosted.org/packages/37/2c/489afe311a690399d04a3e03b069225670c1d489eb7b044a566511c1c498/propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db", size = 226958 }, + { url = "https://files.pythonhosted.org/packages/9d/ca/63b520d2f3d418c968bf596839ae26cf7f87bead026b6192d4da6a08c467/propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1", size = 234894 }, + { url = "https://files.pythonhosted.org/packages/11/60/1d0ed6fff455a028d678df30cc28dcee7af77fa2b0e6962ce1df95c9a2a9/propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c", size = 233672 }, + { url = "https://files.pythonhosted.org/packages/37/7c/54fd5301ef38505ab235d98827207176a5c9b2aa61939b10a460ca53e123/propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67", size = 224395 }, + { url = "https://files.pythonhosted.org/packages/ee/1a/89a40e0846f5de05fdc6779883bf46ba980e6df4d2ff8fb02643de126592/propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b", size = 212510 }, + { url = "https://files.pythonhosted.org/packages/5e/33/ca98368586c9566a6b8d5ef66e30484f8da84c0aac3f2d9aec6d31a11bd5/propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8", size = 222949 }, + { url = "https://files.pythonhosted.org/packages/ba/11/ace870d0aafe443b33b2f0b7efdb872b7c3abd505bfb4890716ad7865e9d/propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251", size = 217258 }, + { url = "https://files.pythonhosted.org/packages/5b/d2/86fd6f7adffcfc74b42c10a6b7db721d1d9ca1055c45d39a1a8f2a740a21/propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474", size = 213036 }, + { url = "https://files.pythonhosted.org/packages/07/94/2d7d1e328f45ff34a0a284cf5a2847013701e24c2a53117e7c280a4316b3/propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535", size = 227684 }, + { url = "https://files.pythonhosted.org/packages/b7/05/37ae63a0087677e90b1d14710e532ff104d44bc1efa3b3970fff99b891dc/propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06", size = 234562 }, + { url = "https://files.pythonhosted.org/packages/a4/7c/3f539fcae630408d0bd8bf3208b9a647ccad10976eda62402a80adf8fc34/propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1", size = 222142 }, + { url = "https://files.pythonhosted.org/packages/7c/d2/34b9eac8c35f79f8a962546b3e97e9d4b990c420ee66ac8255d5d9611648/propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1", size = 37711 }, + { url = "https://files.pythonhosted.org/packages/19/61/d582be5d226cf79071681d1b46b848d6cb03d7b70af7063e33a2787eaa03/propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c", size = 41479 }, + { url = "https://files.pythonhosted.org/packages/dc/d1/8c747fafa558c603c4ca19d8e20b288aa0c7cda74e9402f50f31eb65267e/propcache-0.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca592ed634a73ca002967458187109265e980422116c0a107cf93d81f95af945", size = 71286 }, + { url = "https://files.pythonhosted.org/packages/61/99/d606cb7986b60d89c36de8a85d58764323b3a5ff07770a99d8e993b3fa73/propcache-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9ecb0aad4020e275652ba3975740f241bd12a61f1a784df044cf7477a02bc252", size = 42425 }, + { url = "https://files.pythonhosted.org/packages/8c/96/ef98f91bbb42b79e9bb82bdd348b255eb9d65f14dbbe3b1594644c4073f7/propcache-0.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f08f1cc28bd2eade7a8a3d2954ccc673bb02062e3e7da09bc75d843386b342f", size = 41846 }, + { url = "https://files.pythonhosted.org/packages/5b/ad/3f0f9a705fb630d175146cd7b1d2bf5555c9beaed54e94132b21aac098a6/propcache-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1a342c834734edb4be5ecb1e9fb48cb64b1e2320fccbd8c54bf8da8f2a84c33", size = 208871 }, + { url = "https://files.pythonhosted.org/packages/3a/38/2085cda93d2c8b6ec3e92af2c89489a36a5886b712a34ab25de9fbca7992/propcache-0.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a544caaae1ac73f1fecfae70ded3e93728831affebd017d53449e3ac052ac1e", size = 215720 }, + { url = "https://files.pythonhosted.org/packages/61/c1/d72ea2dc83ac7f2c8e182786ab0fc2c7bd123a1ff9b7975bee671866fe5f/propcache-0.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:310d11aa44635298397db47a3ebce7db99a4cc4b9bbdfcf6c98a60c8d5261cf1", size = 215203 }, + { url = "https://files.pythonhosted.org/packages/af/81/b324c44ae60c56ef12007105f1460d5c304b0626ab0cc6b07c8f2a9aa0b8/propcache-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1396592321ac83157ac03a2023aa6cc4a3cc3cfdecb71090054c09e5a7cce3", size = 206365 }, + { url = "https://files.pythonhosted.org/packages/09/73/88549128bb89e66d2aff242488f62869014ae092db63ccea53c1cc75a81d/propcache-0.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cabf5b5902272565e78197edb682017d21cf3b550ba0460ee473753f28d23c1", size = 196016 }, + { url = "https://files.pythonhosted.org/packages/b9/3f/3bdd14e737d145114a5eb83cb172903afba7242f67c5877f9909a20d948d/propcache-0.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0a2f2235ac46a7aa25bdeb03a9e7060f6ecbd213b1f9101c43b3090ffb971ef6", size = 205596 }, + { url = "https://files.pythonhosted.org/packages/0f/ca/2f4aa819c357d3107c3763d7ef42c03980f9ed5c48c82e01e25945d437c1/propcache-0.3.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:92b69e12e34869a6970fd2f3da91669899994b47c98f5d430b781c26f1d9f387", size = 200977 }, + { url = "https://files.pythonhosted.org/packages/cd/4a/e65276c7477533c59085251ae88505caf6831c0e85ff8b2e31ebcbb949b1/propcache-0.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:54e02207c79968ebbdffc169591009f4474dde3b4679e16634d34c9363ff56b4", size = 197220 }, + { url = "https://files.pythonhosted.org/packages/7c/54/fc7152e517cf5578278b242396ce4d4b36795423988ef39bb8cd5bf274c8/propcache-0.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4adfb44cb588001f68c5466579d3f1157ca07f7504fc91ec87862e2b8e556b88", size = 210642 }, + { url = "https://files.pythonhosted.org/packages/b9/80/abeb4a896d2767bf5f1ea7b92eb7be6a5330645bd7fb844049c0e4045d9d/propcache-0.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fd3e6019dc1261cd0291ee8919dd91fbab7b169bb76aeef6c716833a3f65d206", size = 212789 }, + { url = "https://files.pythonhosted.org/packages/b3/db/ea12a49aa7b2b6d68a5da8293dcf50068d48d088100ac016ad92a6a780e6/propcache-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4c181cad81158d71c41a2bce88edce078458e2dd5ffee7eddd6b05da85079f43", size = 205880 }, + { url = "https://files.pythonhosted.org/packages/d1/e5/9076a0bbbfb65d1198007059c65639dfd56266cf8e477a9707e4b1999ff4/propcache-0.3.2-cp313-cp313-win32.whl", hash = "sha256:8a08154613f2249519e549de2330cf8e2071c2887309a7b07fb56098f5170a02", size = 37220 }, + { url = "https://files.pythonhosted.org/packages/d3/f5/b369e026b09a26cd77aa88d8fffd69141d2ae00a2abaaf5380d2603f4b7f/propcache-0.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e41671f1594fc4ab0a6dec1351864713cb3a279910ae8b58f884a88a0a632c05", size = 40678 }, + { url = "https://files.pythonhosted.org/packages/a4/3a/6ece377b55544941a08d03581c7bc400a3c8cd3c2865900a68d5de79e21f/propcache-0.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9a3cf035bbaf035f109987d9d55dc90e4b0e36e04bbbb95af3055ef17194057b", size = 76560 }, + { url = "https://files.pythonhosted.org/packages/0c/da/64a2bb16418740fa634b0e9c3d29edff1db07f56d3546ca2d86ddf0305e1/propcache-0.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:156c03d07dc1323d8dacaa221fbe028c5c70d16709cdd63502778e6c3ccca1b0", size = 44676 }, + { url = "https://files.pythonhosted.org/packages/36/7b/f025e06ea51cb72c52fb87e9b395cced02786610b60a3ed51da8af017170/propcache-0.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74413c0ba02ba86f55cf60d18daab219f7e531620c15f1e23d95563f505efe7e", size = 44701 }, + { url = "https://files.pythonhosted.org/packages/a4/00/faa1b1b7c3b74fc277f8642f32a4c72ba1d7b2de36d7cdfb676db7f4303e/propcache-0.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f066b437bb3fa39c58ff97ab2ca351db465157d68ed0440abecb21715eb24b28", size = 276934 }, + { url = "https://files.pythonhosted.org/packages/74/ab/935beb6f1756e0476a4d5938ff44bf0d13a055fed880caf93859b4f1baf4/propcache-0.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1304b085c83067914721e7e9d9917d41ad87696bf70f0bc7dee450e9c71ad0a", size = 278316 }, + { url = "https://files.pythonhosted.org/packages/f8/9d/994a5c1ce4389610838d1caec74bdf0e98b306c70314d46dbe4fcf21a3e2/propcache-0.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab50cef01b372763a13333b4e54021bdcb291fc9a8e2ccb9c2df98be51bcde6c", size = 282619 }, + { url = "https://files.pythonhosted.org/packages/2b/00/a10afce3d1ed0287cef2e09506d3be9822513f2c1e96457ee369adb9a6cd/propcache-0.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad3b2a085ec259ad2c2842666b2a0a49dea8463579c606426128925af1ed725", size = 265896 }, + { url = "https://files.pythonhosted.org/packages/2e/a8/2aa6716ffa566ca57c749edb909ad27884680887d68517e4be41b02299f3/propcache-0.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:261fa020c1c14deafd54c76b014956e2f86991af198c51139faf41c4d5e83892", size = 252111 }, + { url = "https://files.pythonhosted.org/packages/36/4f/345ca9183b85ac29c8694b0941f7484bf419c7f0fea2d1e386b4f7893eed/propcache-0.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:46d7f8aa79c927e5f987ee3a80205c987717d3659f035c85cf0c3680526bdb44", size = 268334 }, + { url = "https://files.pythonhosted.org/packages/3e/ca/fcd54f78b59e3f97b3b9715501e3147f5340167733d27db423aa321e7148/propcache-0.3.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:6d8f3f0eebf73e3c0ff0e7853f68be638b4043c65a70517bb575eff54edd8dbe", size = 255026 }, + { url = "https://files.pythonhosted.org/packages/8b/95/8e6a6bbbd78ac89c30c225210a5c687790e532ba4088afb8c0445b77ef37/propcache-0.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:03c89c1b14a5452cf15403e291c0ccd7751d5b9736ecb2c5bab977ad6c5bcd81", size = 250724 }, + { url = "https://files.pythonhosted.org/packages/ee/b0/0dd03616142baba28e8b2d14ce5df6631b4673850a3d4f9c0f9dd714a404/propcache-0.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cc17efde71e12bbaad086d679ce575268d70bc123a5a71ea7ad76f70ba30bba", size = 268868 }, + { url = "https://files.pythonhosted.org/packages/c5/98/2c12407a7e4fbacd94ddd32f3b1e3d5231e77c30ef7162b12a60e2dd5ce3/propcache-0.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:acdf05d00696bc0447e278bb53cb04ca72354e562cf88ea6f9107df8e7fd9770", size = 271322 }, + { url = "https://files.pythonhosted.org/packages/35/91/9cb56efbb428b006bb85db28591e40b7736847b8331d43fe335acf95f6c8/propcache-0.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4445542398bd0b5d32df908031cb1b30d43ac848e20470a878b770ec2dcc6330", size = 265778 }, + { url = "https://files.pythonhosted.org/packages/9a/4c/b0fe775a2bdd01e176b14b574be679d84fc83958335790f7c9a686c1f468/propcache-0.3.2-cp313-cp313t-win32.whl", hash = "sha256:f86e5d7cd03afb3a1db8e9f9f6eff15794e79e791350ac48a8c924e6f439f394", size = 41175 }, + { url = "https://files.pythonhosted.org/packages/a4/ff/47f08595e3d9b5e149c150f88d9714574f1a7cbd89fe2817158a952674bf/propcache-0.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9704bedf6e7cbe3c65eca4379a9b53ee6a83749f047808cbb5044d40d7d72198", size = 44857 }, + { url = "https://files.pythonhosted.org/packages/cc/35/cc0aaecf278bb4575b8555f2b137de5ab821595ddae9da9d3cd1da4072c7/propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f", size = 12663 }, ] [[package]] @@ -2411,31 +2321,31 @@ wheels = [ [[package]] name = "protobuf" -version = "6.31.0" +version = "6.31.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/13/48/718c1e104a2e89970a8ff3b06d87e152834b576c570a6908f8c17ba88d65/protobuf-6.31.0.tar.gz", hash = "sha256:314fab1a6a316469dc2dd46f993cbbe95c861ea6807da910becfe7475bc26ffe", size = 441644 } +sdist = { url = "https://files.pythonhosted.org/packages/52/f3/b9655a711b32c19720253f6f06326faf90580834e2e83f840472d752bc8b/protobuf-6.31.1.tar.gz", hash = "sha256:d8cac4c982f0b957a4dc73a80e2ea24fab08e679c0de9deb835f4a12d69aca9a", size = 441797 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/77/8671682038b08237c927215fa3296bc1c54e4086fe542c87017c1b626663/protobuf-6.31.0-cp310-abi3-win32.whl", hash = "sha256:10bd62802dfa0588649740a59354090eaf54b8322f772fbdcca19bc78d27f0d6", size = 423437 }, - { url = "https://files.pythonhosted.org/packages/e4/07/cc9b0cbf7593f6ef8cf87fa9b0e55cd74c5cb526dd89ad84aa7d6547ef8d/protobuf-6.31.0-cp310-abi3-win_amd64.whl", hash = "sha256:3e987c99fd634be8347246a02123250f394ba20573c953de133dc8b2c107dd71", size = 435118 }, - { url = "https://files.pythonhosted.org/packages/21/46/33f884aa8bc59114dc97e0d954ca4618c556483670236008c88fbb7e834f/protobuf-6.31.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2c812f0f96ceb6b514448cefeb1df54ec06dde456783f5099c0e2f8a0f2caa89", size = 425439 }, - { url = "https://files.pythonhosted.org/packages/9b/f2/9a676b50229ce37b12777d7b21de90ae7bc0f9505d07e72e2e8d47b8d165/protobuf-6.31.0-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:67ce50195e4e584275623b8e6bc6d3d3dfd93924bf6116b86b3b8975ab9e4571", size = 321950 }, - { url = "https://files.pythonhosted.org/packages/a1/a7/243fa2d3c1b7675d54744b32dacf30356f4c27c0d3ad940ca8745a1c6b2c/protobuf-6.31.0-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:5353e38844168a327acd2b2aa440044411cd8d1b6774d5701008bd1dba067c79", size = 320904 }, - { url = "https://files.pythonhosted.org/packages/ee/01/1ed1d482960a5718fd99c82f6d79120181947cfd4667ec3944d448ed44a3/protobuf-6.31.0-py3-none-any.whl", hash = "sha256:6ac2e82556e822c17a8d23aa1190bbc1d06efb9c261981da95c71c9da09e9e23", size = 168558 }, + { url = "https://files.pythonhosted.org/packages/f3/6f/6ab8e4bf962fd5570d3deaa2d5c38f0a363f57b4501047b5ebeb83ab1125/protobuf-6.31.1-cp310-abi3-win32.whl", hash = "sha256:7fa17d5a29c2e04b7d90e5e32388b8bfd0e7107cd8e616feef7ed3fa6bdab5c9", size = 423603 }, + { url = "https://files.pythonhosted.org/packages/44/3a/b15c4347dd4bf3a1b0ee882f384623e2063bb5cf9fa9d57990a4f7df2fb6/protobuf-6.31.1-cp310-abi3-win_amd64.whl", hash = "sha256:426f59d2964864a1a366254fa703b8632dcec0790d8862d30034d8245e1cd447", size = 435283 }, + { url = "https://files.pythonhosted.org/packages/6a/c9/b9689a2a250264a84e66c46d8862ba788ee7a641cdca39bccf64f59284b7/protobuf-6.31.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:6f1227473dc43d44ed644425268eb7c2e488ae245d51c6866d19fe158e207402", size = 425604 }, + { url = "https://files.pythonhosted.org/packages/76/a1/7a5a94032c83375e4fe7e7f56e3976ea6ac90c5e85fac8576409e25c39c3/protobuf-6.31.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:a40fc12b84c154884d7d4c4ebd675d5b3b5283e155f324049ae396b95ddebc39", size = 322115 }, + { url = "https://files.pythonhosted.org/packages/fa/b1/b59d405d64d31999244643d88c45c8241c58f17cc887e73bcb90602327f8/protobuf-6.31.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:4ee898bf66f7a8b0bd21bce523814e6fbd8c6add948045ce958b73af7e8878c6", size = 321070 }, + { url = "https://files.pythonhosted.org/packages/f7/af/ab3c51ab7507a7325e98ffe691d9495ee3d3aa5f589afad65ec920d39821/protobuf-6.31.1-py3-none-any.whl", hash = "sha256:720a6c7e6b77288b85063569baae8536671b39f15cc22037ec7045658d80489e", size = 168724 }, ] [[package]] name = "psutil" -version = "6.1.1" +version = "7.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1f/5a/07871137bb752428aa4b659f910b399ba6f291156bdea939be3e96cae7cb/psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5", size = 508502 } +sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003 } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/99/ca79d302be46f7bdd8321089762dd4476ee725fce16fc2b2e1dbba8cac17/psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8", size = 247511 }, - { url = "https://files.pythonhosted.org/packages/0b/6b/73dbde0dd38f3782905d4587049b9be64d76671042fdcaf60e2430c6796d/psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377", size = 248985 }, - { url = "https://files.pythonhosted.org/packages/17/38/c319d31a1d3f88c5b79c68b3116c129e5133f1822157dd6da34043e32ed6/psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003", size = 284488 }, - { url = "https://files.pythonhosted.org/packages/9c/39/0f88a830a1c8a3aba27fededc642da37613c57cbff143412e3536f89784f/psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160", size = 287477 }, - { url = "https://files.pythonhosted.org/packages/47/da/99f4345d4ddf2845cb5b5bd0d93d554e84542d116934fde07a0c50bd4e9f/psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3", size = 289017 }, - { url = "https://files.pythonhosted.org/packages/38/53/bd755c2896f4461fd4f36fa6a6dcb66a88a9e4b9fd4e5b66a77cf9d4a584/psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53", size = 250602 }, - { url = "https://files.pythonhosted.org/packages/7b/d7/7831438e6c3ebbfa6e01a927127a6cb42ad3ab844247f3c5b96bea25d73d/psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649", size = 254444 }, + { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051 }, + { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535 }, + { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004 }, + { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986 }, + { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544 }, + { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053 }, + { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885 }, ] [[package]] @@ -2488,86 +2398,105 @@ wheels = [ [[package]] name = "pydantic" -version = "2.9.2" +version = "2.11.7" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-types" }, { name = "pydantic-core" }, { name = "typing-extensions" }, + { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a9/b7/d9e3f12af310e1120c21603644a1cd86f59060e040ec5c3a80b8f05fae30/pydantic-2.9.2.tar.gz", hash = "sha256:d155cef71265d1e9807ed1c32b4c8deec042a44a50a4188b25ac67ecd81a9c0f", size = 769917 } +sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db", size = 788350 } wheels = [ - { url = "https://files.pythonhosted.org/packages/df/e4/ba44652d562cbf0bf320e0f3810206149c8a4e99cdbf66da82e97ab53a15/pydantic-2.9.2-py3-none-any.whl", hash = "sha256:f048cec7b26778210e28a0459867920654d48e5e62db0958433636cde4254f12", size = 434928 }, + { url = "https://files.pythonhosted.org/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b", size = 444782 }, ] [[package]] name = "pydantic-core" -version = "2.23.4" +version = "2.33.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e2/aa/6b6a9b9f8537b872f552ddd46dd3da230367754b6f707b8e1e963f515ea3/pydantic_core-2.23.4.tar.gz", hash = "sha256:2584f7cf844ac4d970fba483a717dbe10c1c1c96a969bf65d61ffe94df1b2863", size = 402156 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/30/890a583cd3f2be27ecf32b479d5d615710bb926d92da03e3f7838ff3e58b/pydantic_core-2.23.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:77733e3892bb0a7fa797826361ce8a9184d25c8dffaec60b7ffe928153680ba8", size = 1865160 }, - { url = "https://files.pythonhosted.org/packages/1d/9a/b634442e1253bc6889c87afe8bb59447f106ee042140bd57680b3b113ec7/pydantic_core-2.23.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b84d168f6c48fabd1f2027a3d1bdfe62f92cade1fb273a5d68e621da0e44e6d", size = 1776777 }, - { url = "https://files.pythonhosted.org/packages/75/9a/7816295124a6b08c24c96f9ce73085032d8bcbaf7e5a781cd41aa910c891/pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df49e7a0861a8c36d089c1ed57d308623d60416dab2647a4a17fe050ba85de0e", size = 1799244 }, - { url = "https://files.pythonhosted.org/packages/a9/8f/89c1405176903e567c5f99ec53387449e62f1121894aa9fc2c4fdc51a59b/pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff02b6d461a6de369f07ec15e465a88895f3223eb75073ffea56b84d9331f607", size = 1805307 }, - { url = "https://files.pythonhosted.org/packages/d5/a5/1a194447d0da1ef492e3470680c66048fef56fc1f1a25cafbea4bc1d1c48/pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:996a38a83508c54c78a5f41456b0103c30508fed9abcad0a59b876d7398f25fd", size = 2000663 }, - { url = "https://files.pythonhosted.org/packages/13/a5/1df8541651de4455e7d587cf556201b4f7997191e110bca3b589218745a5/pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d97683ddee4723ae8c95d1eddac7c192e8c552da0c73a925a89fa8649bf13eea", size = 2655941 }, - { url = "https://files.pythonhosted.org/packages/44/31/a3899b5ce02c4316865e390107f145089876dff7e1dfc770a231d836aed8/pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:216f9b2d7713eb98cb83c80b9c794de1f6b7e3145eef40400c62e86cee5f4e1e", size = 2052105 }, - { url = "https://files.pythonhosted.org/packages/1b/aa/98e190f8745d5ec831f6d5449344c48c0627ac5fed4e5340a44b74878f8e/pydantic_core-2.23.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6f783e0ec4803c787bcea93e13e9932edab72068f68ecffdf86a99fd5918878b", size = 1919967 }, - { url = "https://files.pythonhosted.org/packages/ae/35/b6e00b6abb2acfee3e8f85558c02a0822e9a8b2f2d812ea8b9079b118ba0/pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d0776dea117cf5272382634bd2a5c1b6eb16767c223c6a5317cd3e2a757c61a0", size = 1964291 }, - { url = "https://files.pythonhosted.org/packages/13/46/7bee6d32b69191cd649bbbd2361af79c472d72cb29bb2024f0b6e350ba06/pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5f7a395a8cf1621939692dba2a6b6a830efa6b3cee787d82c7de1ad2930de64", size = 2109666 }, - { url = "https://files.pythonhosted.org/packages/39/ef/7b34f1b122a81b68ed0a7d0e564da9ccdc9a2924c8d6c6b5b11fa3a56970/pydantic_core-2.23.4-cp311-none-win32.whl", hash = "sha256:74b9127ffea03643e998e0c5ad9bd3811d3dac8c676e47db17b0ee7c3c3bf35f", size = 1732940 }, - { url = "https://files.pythonhosted.org/packages/2f/76/37b7e76c645843ff46c1d73e046207311ef298d3f7b2f7d8f6ac60113071/pydantic_core-2.23.4-cp311-none-win_amd64.whl", hash = "sha256:98d134c954828488b153d88ba1f34e14259284f256180ce659e8d83e9c05eaa3", size = 1916804 }, - { url = "https://files.pythonhosted.org/packages/74/7b/8e315f80666194b354966ec84b7d567da77ad927ed6323db4006cf915f3f/pydantic_core-2.23.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f3e0da4ebaef65158d4dfd7d3678aad692f7666877df0002b8a522cdf088f231", size = 1856459 }, - { url = "https://files.pythonhosted.org/packages/14/de/866bdce10ed808323d437612aca1ec9971b981e1c52e5e42ad9b8e17a6f6/pydantic_core-2.23.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f69a8e0b033b747bb3e36a44e7732f0c99f7edd5cea723d45bc0d6e95377ffee", size = 1770007 }, - { url = "https://files.pythonhosted.org/packages/dc/69/8edd5c3cd48bb833a3f7ef9b81d7666ccddd3c9a635225214e044b6e8281/pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723314c1d51722ab28bfcd5240d858512ffd3116449c557a1336cbe3919beb87", size = 1790245 }, - { url = "https://files.pythonhosted.org/packages/80/33/9c24334e3af796ce80d2274940aae38dd4e5676298b4398eff103a79e02d/pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb2802e667b7051a1bebbfe93684841cc9351004e2badbd6411bf357ab8d5ac8", size = 1801260 }, - { url = "https://files.pythonhosted.org/packages/a5/6f/e9567fd90104b79b101ca9d120219644d3314962caa7948dd8b965e9f83e/pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18ca8148bebe1b0a382a27a8ee60350091a6ddaf475fa05ef50dc35b5df6327", size = 1996872 }, - { url = "https://files.pythonhosted.org/packages/2d/ad/b5f0fe9e6cfee915dd144edbd10b6e9c9c9c9d7a56b69256d124b8ac682e/pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33e3d65a85a2a4a0dc3b092b938a4062b1a05f3a9abde65ea93b233bca0e03f2", size = 2661617 }, - { url = "https://files.pythonhosted.org/packages/06/c8/7d4b708f8d05a5cbfda3243aad468052c6e99de7d0937c9146c24d9f12e9/pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:128585782e5bfa515c590ccee4b727fb76925dd04a98864182b22e89a4e6ed36", size = 2071831 }, - { url = "https://files.pythonhosted.org/packages/89/4d/3079d00c47f22c9a9a8220db088b309ad6e600a73d7a69473e3a8e5e3ea3/pydantic_core-2.23.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:68665f4c17edcceecc112dfed5dbe6f92261fb9d6054b47d01bf6371a6196126", size = 1917453 }, - { url = "https://files.pythonhosted.org/packages/e9/88/9df5b7ce880a4703fcc2d76c8c2d8eb9f861f79d0c56f4b8f5f2607ccec8/pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:20152074317d9bed6b7a95ade3b7d6054845d70584216160860425f4fbd5ee9e", size = 1968793 }, - { url = "https://files.pythonhosted.org/packages/e3/b9/41f7efe80f6ce2ed3ee3c2dcfe10ab7adc1172f778cc9659509a79518c43/pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9261d3ce84fa1d38ed649c3638feefeae23d32ba9182963e465d58d62203bd24", size = 2116872 }, - { url = "https://files.pythonhosted.org/packages/63/08/b59b7a92e03dd25554b0436554bf23e7c29abae7cce4b1c459cd92746811/pydantic_core-2.23.4-cp312-none-win32.whl", hash = "sha256:4ba762ed58e8d68657fc1281e9bb72e1c3e79cc5d464be146e260c541ec12d84", size = 1738535 }, - { url = "https://files.pythonhosted.org/packages/88/8d/479293e4d39ab409747926eec4329de5b7129beaedc3786eca070605d07f/pydantic_core-2.23.4-cp312-none-win_amd64.whl", hash = "sha256:97df63000f4fea395b2824da80e169731088656d1818a11b95f3b173747b6cd9", size = 1917992 }, - { url = "https://files.pythonhosted.org/packages/ad/ef/16ee2df472bf0e419b6bc68c05bf0145c49247a1095e85cee1463c6a44a1/pydantic_core-2.23.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7530e201d10d7d14abce4fb54cfe5b94a0aefc87da539d0346a484ead376c3cc", size = 1856143 }, - { url = "https://files.pythonhosted.org/packages/da/fa/bc3dbb83605669a34a93308e297ab22be82dfb9dcf88c6cf4b4f264e0a42/pydantic_core-2.23.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:df933278128ea1cd77772673c73954e53a1c95a4fdf41eef97c2b779271bd0bd", size = 1770063 }, - { url = "https://files.pythonhosted.org/packages/4e/48/e813f3bbd257a712303ebdf55c8dc46f9589ec74b384c9f652597df3288d/pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cb3da3fd1b6a5d0279a01877713dbda118a2a4fc6f0d821a57da2e464793f05", size = 1790013 }, - { url = "https://files.pythonhosted.org/packages/b4/e0/56eda3a37929a1d297fcab1966db8c339023bcca0b64c5a84896db3fcc5c/pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c6dcb030aefb668a2b7009c85b27f90e51e6a3b4d5c9bc4c57631292015b0d", size = 1801077 }, - { url = "https://files.pythonhosted.org/packages/04/be/5e49376769bfbf82486da6c5c1683b891809365c20d7c7e52792ce4c71f3/pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:696dd8d674d6ce621ab9d45b205df149399e4bb9aa34102c970b721554828510", size = 1996782 }, - { url = "https://files.pythonhosted.org/packages/bc/24/e3ee6c04f1d58cc15f37bcc62f32c7478ff55142b7b3e6d42ea374ea427c/pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2971bb5ffe72cc0f555c13e19b23c85b654dd2a8f7ab493c262071377bfce9f6", size = 2661375 }, - { url = "https://files.pythonhosted.org/packages/c1/f8/11a9006de4e89d016b8de74ebb1db727dc100608bb1e6bbe9d56a3cbbcce/pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8394d940e5d400d04cad4f75c0598665cbb81aecefaca82ca85bd28264af7f9b", size = 2071635 }, - { url = "https://files.pythonhosted.org/packages/7c/45/bdce5779b59f468bdf262a5bc9eecbae87f271c51aef628d8c073b4b4b4c/pydantic_core-2.23.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0dff76e0602ca7d4cdaacc1ac4c005e0ce0dcfe095d5b5259163a80d3a10d327", size = 1916994 }, - { url = "https://files.pythonhosted.org/packages/d8/fa/c648308fe711ee1f88192cad6026ab4f925396d1293e8356de7e55be89b5/pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7d32706badfe136888bdea71c0def994644e09fff0bfe47441deaed8e96fdbc6", size = 1968877 }, - { url = "https://files.pythonhosted.org/packages/16/16/b805c74b35607d24d37103007f899abc4880923b04929547ae68d478b7f4/pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed541d70698978a20eb63d8c5d72f2cc6d7079d9d90f6b50bad07826f1320f5f", size = 2116814 }, - { url = "https://files.pythonhosted.org/packages/d1/58/5305e723d9fcdf1c5a655e6a4cc2a07128bf644ff4b1d98daf7a9dbf57da/pydantic_core-2.23.4-cp313-none-win32.whl", hash = "sha256:3d5639516376dce1940ea36edf408c554475369f5da2abd45d44621cb616f769", size = 1738360 }, - { url = "https://files.pythonhosted.org/packages/a5/ae/e14b0ff8b3f48e02394d8acd911376b7b66e164535687ef7dc24ea03072f/pydantic_core-2.23.4-cp313-none-win_amd64.whl", hash = "sha256:5a1504ad17ba4210df3a045132a7baeeba5a200e930f57512ee02909fc5c4cb5", size = 1919411 }, +sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size = 435195 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/8d/71db63483d518cbbf290261a1fc2839d17ff89fce7089e08cad07ccfce67/pydantic_core-2.33.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c5b0a576fb381edd6d27f0a85915c6daf2f8138dc5c267a57c08a62900758c7", size = 2028584 }, + { url = "https://files.pythonhosted.org/packages/24/2f/3cfa7244ae292dd850989f328722d2aef313f74ffc471184dc509e1e4e5a/pydantic_core-2.33.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e799c050df38a639db758c617ec771fd8fb7a5f8eaaa4b27b101f266b216a246", size = 1855071 }, + { url = "https://files.pythonhosted.org/packages/b3/d3/4ae42d33f5e3f50dd467761304be2fa0a9417fbf09735bc2cce003480f2a/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc46a01bf8d62f227d5ecee74178ffc448ff4e5197c756331f71efcc66dc980f", size = 1897823 }, + { url = "https://files.pythonhosted.org/packages/f4/f3/aa5976e8352b7695ff808599794b1fba2a9ae2ee954a3426855935799488/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a144d4f717285c6d9234a66778059f33a89096dfb9b39117663fd8413d582dcc", size = 1983792 }, + { url = "https://files.pythonhosted.org/packages/d5/7a/cda9b5a23c552037717f2b2a5257e9b2bfe45e687386df9591eff7b46d28/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cf6373c21bc80b2e0dc88444f41ae60b2f070ed02095754eb5a01df12256de", size = 2136338 }, + { url = "https://files.pythonhosted.org/packages/2b/9f/b8f9ec8dd1417eb9da784e91e1667d58a2a4a7b7b34cf4af765ef663a7e5/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dc625f4aa79713512d1976fe9f0bc99f706a9dee21dfd1810b4bbbf228d0e8a", size = 2730998 }, + { url = "https://files.pythonhosted.org/packages/47/bc/cd720e078576bdb8255d5032c5d63ee5c0bf4b7173dd955185a1d658c456/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b21b5549499972441da4758d662aeea93f1923f953e9cbaff14b8b9565aef", size = 2003200 }, + { url = "https://files.pythonhosted.org/packages/ca/22/3602b895ee2cd29d11a2b349372446ae9727c32e78a94b3d588a40fdf187/pydantic_core-2.33.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bdc25f3681f7b78572699569514036afe3c243bc3059d3942624e936ec93450e", size = 2113890 }, + { url = "https://files.pythonhosted.org/packages/ff/e6/e3c5908c03cf00d629eb38393a98fccc38ee0ce8ecce32f69fc7d7b558a7/pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fe5b32187cbc0c862ee201ad66c30cf218e5ed468ec8dc1cf49dec66e160cc4d", size = 2073359 }, + { url = "https://files.pythonhosted.org/packages/12/e7/6a36a07c59ebefc8777d1ffdaf5ae71b06b21952582e4b07eba88a421c79/pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:bc7aee6f634a6f4a95676fcb5d6559a2c2a390330098dba5e5a5f28a2e4ada30", size = 2245883 }, + { url = "https://files.pythonhosted.org/packages/16/3f/59b3187aaa6cc0c1e6616e8045b284de2b6a87b027cce2ffcea073adf1d2/pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:235f45e5dbcccf6bd99f9f472858849f73d11120d76ea8707115415f8e5ebebf", size = 2241074 }, + { url = "https://files.pythonhosted.org/packages/e0/ed/55532bb88f674d5d8f67ab121a2a13c385df382de2a1677f30ad385f7438/pydantic_core-2.33.2-cp311-cp311-win32.whl", hash = "sha256:6368900c2d3ef09b69cb0b913f9f8263b03786e5b2a387706c5afb66800efd51", size = 1910538 }, + { url = "https://files.pythonhosted.org/packages/fe/1b/25b7cccd4519c0b23c2dd636ad39d381abf113085ce4f7bec2b0dc755eb1/pydantic_core-2.33.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e063337ef9e9820c77acc768546325ebe04ee38b08703244c1309cccc4f1bab", size = 1952909 }, + { url = "https://files.pythonhosted.org/packages/49/a9/d809358e49126438055884c4366a1f6227f0f84f635a9014e2deb9b9de54/pydantic_core-2.33.2-cp311-cp311-win_arm64.whl", hash = "sha256:6b99022f1d19bc32a4c2a0d544fc9a76e3be90f0b3f4af413f87d38749300e65", size = 1897786 }, + { url = "https://files.pythonhosted.org/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc", size = 2009000 }, + { url = "https://files.pythonhosted.org/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7", size = 1847996 }, + { url = "https://files.pythonhosted.org/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025", size = 1880957 }, + { url = "https://files.pythonhosted.org/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011", size = 1964199 }, + { url = "https://files.pythonhosted.org/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f", size = 2120296 }, + { url = "https://files.pythonhosted.org/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88", size = 2676109 }, + { url = "https://files.pythonhosted.org/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1", size = 2002028 }, + { url = "https://files.pythonhosted.org/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b", size = 2100044 }, + { url = "https://files.pythonhosted.org/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1", size = 2058881 }, + { url = "https://files.pythonhosted.org/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6", size = 2227034 }, + { url = "https://files.pythonhosted.org/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea", size = 2234187 }, + { url = "https://files.pythonhosted.org/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290", size = 1892628 }, + { url = "https://files.pythonhosted.org/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2", size = 1955866 }, + { url = "https://files.pythonhosted.org/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab", size = 1888894 }, + { url = "https://files.pythonhosted.org/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f", size = 2015688 }, + { url = "https://files.pythonhosted.org/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6", size = 1844808 }, + { url = "https://files.pythonhosted.org/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef", size = 1885580 }, + { url = "https://files.pythonhosted.org/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a", size = 1973859 }, + { url = "https://files.pythonhosted.org/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916", size = 2120810 }, + { url = "https://files.pythonhosted.org/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a", size = 2676498 }, + { url = "https://files.pythonhosted.org/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d", size = 2000611 }, + { url = "https://files.pythonhosted.org/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56", size = 2107924 }, + { url = "https://files.pythonhosted.org/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5", size = 2063196 }, + { url = "https://files.pythonhosted.org/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e", size = 2236389 }, + { url = "https://files.pythonhosted.org/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162", size = 2239223 }, + { url = "https://files.pythonhosted.org/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849", size = 1900473 }, + { url = "https://files.pythonhosted.org/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9", size = 1955269 }, + { url = "https://files.pythonhosted.org/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9", size = 1893921 }, + { url = "https://files.pythonhosted.org/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac", size = 1806162 }, + { url = "https://files.pythonhosted.org/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5", size = 1981560 }, + { url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777 }, + { url = "https://files.pythonhosted.org/packages/7b/27/d4ae6487d73948d6f20dddcd94be4ea43e74349b56eba82e9bdee2d7494c/pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dd14041875d09cc0f9308e37a6f8b65f5585cf2598a53aa0123df8b129d481f8", size = 2025200 }, + { url = "https://files.pythonhosted.org/packages/f1/b8/b3cb95375f05d33801024079b9392a5ab45267a63400bf1866e7ce0f0de4/pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d87c561733f66531dced0da6e864f44ebf89a8fba55f31407b00c2f7f9449593", size = 1859123 }, + { url = "https://files.pythonhosted.org/packages/05/bc/0d0b5adeda59a261cd30a1235a445bf55c7e46ae44aea28f7bd6ed46e091/pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f82865531efd18d6e07a04a17331af02cb7a651583c418df8266f17a63c6612", size = 1892852 }, + { url = "https://files.pythonhosted.org/packages/3e/11/d37bdebbda2e449cb3f519f6ce950927b56d62f0b84fd9cb9e372a26a3d5/pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bfb5112df54209d820d7bf9317c7a6c9025ea52e49f46b6a2060104bba37de7", size = 2067484 }, + { url = "https://files.pythonhosted.org/packages/8c/55/1f95f0a05ce72ecb02a8a8a1c3be0579bbc29b1d5ab68f1378b7bebc5057/pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64632ff9d614e5eecfb495796ad51b0ed98c453e447a76bcbeeb69615079fc7e", size = 2108896 }, + { url = "https://files.pythonhosted.org/packages/53/89/2b2de6c81fa131f423246a9109d7b2a375e83968ad0800d6e57d0574629b/pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f889f7a40498cc077332c7ab6b4608d296d852182211787d4f3ee377aaae66e8", size = 2069475 }, + { url = "https://files.pythonhosted.org/packages/b8/e9/1f7efbe20d0b2b10f6718944b5d8ece9152390904f29a78e68d4e7961159/pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:de4b83bb311557e439b9e186f733f6c645b9417c84e2eb8203f3f820a4b988bf", size = 2239013 }, + { url = "https://files.pythonhosted.org/packages/3c/b2/5309c905a93811524a49b4e031e9851a6b00ff0fb668794472ea7746b448/pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:82f68293f055f51b51ea42fafc74b6aad03e70e191799430b90c13d643059ebb", size = 2238715 }, + { url = "https://files.pythonhosted.org/packages/32/56/8a7ca5d2cd2cda1d245d34b1c9a942920a718082ae8e54e5f3e5a58b7add/pydantic_core-2.33.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:329467cecfb529c925cf2bbd4d60d2c509bc2fb52a20c1045bf09bb70971a9c1", size = 2066757 }, ] [[package]] name = "pydantic-settings" -version = "2.9.1" +version = "2.10.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, { name = "python-dotenv" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/67/1d/42628a2c33e93f8e9acbde0d5d735fa0850f3e6a2f8cb1eb6c40b9a732ac/pydantic_settings-2.9.1.tar.gz", hash = "sha256:c509bf79d27563add44e8446233359004ed85066cd096d8b510f715e6ef5d268", size = 163234 } +sdist = { url = "https://files.pythonhosted.org/packages/68/85/1ea668bbab3c50071ca613c6ab30047fb36ab0da1b92fa8f17bbc38fd36c/pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee", size = 172583 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/5f/d6d641b490fd3ec2c4c13b4244d68deea3a1b970a97be64f34fb5504ff72/pydantic_settings-2.9.1-py3-none-any.whl", hash = "sha256:59b4f431b1defb26fe620c71a7d3968a710d719f5f4cdbbdb7926edeb770f6ef", size = 44356 }, + { url = "https://files.pythonhosted.org/packages/58/f0/427018098906416f580e3cf1366d3b1abfb408a0652e9f31600c24a1903c/pydantic_settings-2.10.1-py3-none-any.whl", hash = "sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796", size = 45235 }, ] [[package]] name = "pygments" -version = "2.19.1" +version = "2.19.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581 } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631 } wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 }, + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217 }, ] [[package]] @@ -2586,17 +2515,18 @@ crypto = [ [[package]] name = "pytest" -version = "8.3.5" +version = "8.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "iniconfig" }, { name = "packaging" }, { name = "pluggy" }, + { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845", size = 1450891 } +sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714 } wheels = [ - { url = "https://files.pythonhosted.org/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac/pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820", size = 343634 }, + { url = "https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7", size = 365474 }, ] [[package]] @@ -2623,11 +2553,11 @@ wheels = [ [[package]] name = "python-dotenv" -version = "1.1.0" +version = "1.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/88/2c/7bb1416c5620485aa793f2de31d3df393d3686aa8a8506d11e10e13c5baf/python_dotenv-1.1.0.tar.gz", hash = "sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5", size = 39920 } +sdist = { url = "https://files.pythonhosted.org/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab", size = 41978 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/18/98a99ad95133c6a6e2005fe89faedf294a748bd5dc803008059409ac9b1e/python_dotenv-1.1.0-py3-none-any.whl", hash = "sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d", size = 20256 }, + { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556 }, ] [[package]] @@ -2692,59 +2622,47 @@ wheels = [ [[package]] name = "pyzmq" -version = "26.4.0" +version = "27.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "implementation_name == 'pypy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b1/11/b9213d25230ac18a71b39b3723494e57adebe36e066397b961657b3b41c1/pyzmq-26.4.0.tar.gz", hash = "sha256:4bd13f85f80962f91a651a7356fe0472791a5f7a92f227822b5acf44795c626d", size = 278293 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/6d/234e3b0aa82fd0290b1896e9992f56bdddf1f97266110be54d0177a9d2d9/pyzmq-26.4.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:bfcf82644c9b45ddd7cd2a041f3ff8dce4a0904429b74d73a439e8cab1bd9e54", size = 1339723 }, - { url = "https://files.pythonhosted.org/packages/4f/11/6d561efe29ad83f7149a7cd48e498e539ed09019c6cd7ecc73f4cc725028/pyzmq-26.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9bcae3979b2654d5289d3490742378b2f3ce804b0b5fd42036074e2bf35b030", size = 672645 }, - { url = "https://files.pythonhosted.org/packages/19/fd/81bfe3e23f418644660bad1a90f0d22f0b3eebe33dd65a79385530bceb3d/pyzmq-26.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccdff8ac4246b6fb60dcf3982dfaeeff5dd04f36051fe0632748fc0aa0679c01", size = 910133 }, - { url = "https://files.pythonhosted.org/packages/97/68/321b9c775595ea3df832a9516252b653fe32818db66fdc8fa31c9b9fce37/pyzmq-26.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4550af385b442dc2d55ab7717837812799d3674cb12f9a3aa897611839c18e9e", size = 867428 }, - { url = "https://files.pythonhosted.org/packages/4e/6e/159cbf2055ef36aa2aa297e01b24523176e5b48ead283c23a94179fb2ba2/pyzmq-26.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:2f9f7ffe9db1187a253fca95191854b3fda24696f086e8789d1d449308a34b88", size = 862409 }, - { url = "https://files.pythonhosted.org/packages/05/1c/45fb8db7be5a7d0cadea1070a9cbded5199a2d578de2208197e592f219bd/pyzmq-26.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3709c9ff7ba61589b7372923fd82b99a81932b592a5c7f1a24147c91da9a68d6", size = 1205007 }, - { url = "https://files.pythonhosted.org/packages/f8/fa/658c7f583af6498b463f2fa600f34e298e1b330886f82f1feba0dc2dd6c3/pyzmq-26.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:f8f3c30fb2d26ae5ce36b59768ba60fb72507ea9efc72f8f69fa088450cff1df", size = 1514599 }, - { url = "https://files.pythonhosted.org/packages/4d/d7/44d641522353ce0a2bbd150379cb5ec32f7120944e6bfba4846586945658/pyzmq-26.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:382a4a48c8080e273427fc692037e3f7d2851959ffe40864f2db32646eeb3cef", size = 1414546 }, - { url = "https://files.pythonhosted.org/packages/72/76/c8ed7263218b3d1e9bce07b9058502024188bd52cc0b0a267a9513b431fc/pyzmq-26.4.0-cp311-cp311-win32.whl", hash = "sha256:d56aad0517d4c09e3b4f15adebba8f6372c5102c27742a5bdbfc74a7dceb8fca", size = 579247 }, - { url = "https://files.pythonhosted.org/packages/c3/d0/2d9abfa2571a0b1a67c0ada79a8aa1ba1cce57992d80f771abcdf99bb32c/pyzmq-26.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:963977ac8baed7058c1e126014f3fe58b3773f45c78cce7af5c26c09b6823896", size = 644727 }, - { url = "https://files.pythonhosted.org/packages/0d/d1/c8ad82393be6ccedfc3c9f3adb07f8f3976e3c4802640fe3f71441941e70/pyzmq-26.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0c8e8cadc81e44cc5088fcd53b9b3b4ce9344815f6c4a03aec653509296fae3", size = 559942 }, - { url = "https://files.pythonhosted.org/packages/10/44/a778555ebfdf6c7fc00816aad12d185d10a74d975800341b1bc36bad1187/pyzmq-26.4.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:5227cb8da4b6f68acfd48d20c588197fd67745c278827d5238c707daf579227b", size = 1341586 }, - { url = "https://files.pythonhosted.org/packages/9c/4f/f3a58dc69ac757e5103be3bd41fb78721a5e17da7cc617ddb56d973a365c/pyzmq-26.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1c07a7fa7f7ba86554a2b1bef198c9fed570c08ee062fd2fd6a4dcacd45f905", size = 665880 }, - { url = "https://files.pythonhosted.org/packages/fe/45/50230bcfb3ae5cb98bee683b6edeba1919f2565d7cc1851d3c38e2260795/pyzmq-26.4.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae775fa83f52f52de73183f7ef5395186f7105d5ed65b1ae65ba27cb1260de2b", size = 902216 }, - { url = "https://files.pythonhosted.org/packages/41/59/56bbdc5689be5e13727491ad2ba5efd7cd564365750514f9bc8f212eef82/pyzmq-26.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66c760d0226ebd52f1e6b644a9e839b5db1e107a23f2fcd46ec0569a4fdd4e63", size = 859814 }, - { url = "https://files.pythonhosted.org/packages/81/b1/57db58cfc8af592ce94f40649bd1804369c05b2190e4cbc0a2dad572baeb/pyzmq-26.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ef8c6ecc1d520debc147173eaa3765d53f06cd8dbe7bd377064cdbc53ab456f5", size = 855889 }, - { url = "https://files.pythonhosted.org/packages/e8/92/47542e629cbac8f221c230a6d0f38dd3d9cff9f6f589ed45fdf572ffd726/pyzmq-26.4.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3150ef4084e163dec29ae667b10d96aad309b668fac6810c9e8c27cf543d6e0b", size = 1197153 }, - { url = "https://files.pythonhosted.org/packages/07/e5/b10a979d1d565d54410afc87499b16c96b4a181af46e7645ab4831b1088c/pyzmq-26.4.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4448c9e55bf8329fa1dcedd32f661bf611214fa70c8e02fee4347bc589d39a84", size = 1507352 }, - { url = "https://files.pythonhosted.org/packages/ab/58/5a23db84507ab9c01c04b1232a7a763be66e992aa2e66498521bbbc72a71/pyzmq-26.4.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e07dde3647afb084d985310d067a3efa6efad0621ee10826f2cb2f9a31b89d2f", size = 1406834 }, - { url = "https://files.pythonhosted.org/packages/22/74/aaa837b331580c13b79ac39396601fb361454ee184ca85e8861914769b99/pyzmq-26.4.0-cp312-cp312-win32.whl", hash = "sha256:ba034a32ecf9af72adfa5ee383ad0fd4f4e38cdb62b13624278ef768fe5b5b44", size = 577992 }, - { url = "https://files.pythonhosted.org/packages/30/0f/55f8c02c182856743b82dde46b2dc3e314edda7f1098c12a8227eeda0833/pyzmq-26.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:056a97aab4064f526ecb32f4343917a4022a5d9efb6b9df990ff72e1879e40be", size = 640466 }, - { url = "https://files.pythonhosted.org/packages/e4/29/073779afc3ef6f830b8de95026ef20b2d1ec22d0324d767748d806e57379/pyzmq-26.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:2f23c750e485ce1eb639dbd576d27d168595908aa2d60b149e2d9e34c9df40e0", size = 556342 }, - { url = "https://files.pythonhosted.org/packages/d7/20/fb2c92542488db70f833b92893769a569458311a76474bda89dc4264bd18/pyzmq-26.4.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:c43fac689880f5174d6fc864857d1247fe5cfa22b09ed058a344ca92bf5301e3", size = 1339484 }, - { url = "https://files.pythonhosted.org/packages/58/29/2f06b9cabda3a6ea2c10f43e67ded3e47fc25c54822e2506dfb8325155d4/pyzmq-26.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:902aca7eba477657c5fb81c808318460328758e8367ecdd1964b6330c73cae43", size = 666106 }, - { url = "https://files.pythonhosted.org/packages/77/e4/dcf62bd29e5e190bd21bfccaa4f3386e01bf40d948c239239c2f1e726729/pyzmq-26.4.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5e48a830bfd152fe17fbdeaf99ac5271aa4122521bf0d275b6b24e52ef35eb6", size = 902056 }, - { url = "https://files.pythonhosted.org/packages/1a/cf/b36b3d7aea236087d20189bec1a87eeb2b66009731d7055e5c65f845cdba/pyzmq-26.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31be2b6de98c824c06f5574331f805707c667dc8f60cb18580b7de078479891e", size = 860148 }, - { url = "https://files.pythonhosted.org/packages/18/a6/f048826bc87528c208e90604c3bf573801e54bd91e390cbd2dfa860e82dc/pyzmq-26.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:6332452034be001bbf3206ac59c0d2a7713de5f25bb38b06519fc6967b7cf771", size = 855983 }, - { url = "https://files.pythonhosted.org/packages/0a/27/454d34ab6a1d9772a36add22f17f6b85baf7c16e14325fa29e7202ca8ee8/pyzmq-26.4.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:da8c0f5dd352136853e6a09b1b986ee5278dfddfebd30515e16eae425c872b30", size = 1197274 }, - { url = "https://files.pythonhosted.org/packages/f4/3d/7abfeab6b83ad38aa34cbd57c6fc29752c391e3954fd12848bd8d2ec0df6/pyzmq-26.4.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f4ccc1a0a2c9806dda2a2dd118a3b7b681e448f3bb354056cad44a65169f6d86", size = 1507120 }, - { url = "https://files.pythonhosted.org/packages/13/ff/bc8d21dbb9bc8705126e875438a1969c4f77e03fc8565d6901c7933a3d01/pyzmq-26.4.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:1c0b5fceadbab461578daf8d1dcc918ebe7ddd2952f748cf30c7cf2de5d51101", size = 1406738 }, - { url = "https://files.pythonhosted.org/packages/f5/5d/d4cd85b24de71d84d81229e3bbb13392b2698432cf8fdcea5afda253d587/pyzmq-26.4.0-cp313-cp313-win32.whl", hash = "sha256:28e2b0ff5ba4b3dd11062d905682bad33385cfa3cc03e81abd7f0822263e6637", size = 577826 }, - { url = "https://files.pythonhosted.org/packages/c6/6c/f289c1789d7bb6e5a3b3bef7b2a55089b8561d17132be7d960d3ff33b14e/pyzmq-26.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:23ecc9d241004c10e8b4f49d12ac064cd7000e1643343944a10df98e57bc544b", size = 640406 }, - { url = "https://files.pythonhosted.org/packages/b3/99/676b8851cb955eb5236a0c1e9ec679ea5ede092bf8bf2c8a68d7e965cac3/pyzmq-26.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:1edb0385c7f025045d6e0f759d4d3afe43c17a3d898914ec6582e6f464203c08", size = 556216 }, - { url = "https://files.pythonhosted.org/packages/65/c2/1fac340de9d7df71efc59d9c50fc7a635a77b103392d1842898dd023afcb/pyzmq-26.4.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:93a29e882b2ba1db86ba5dd5e88e18e0ac6b627026c5cfbec9983422011b82d4", size = 1333769 }, - { url = "https://files.pythonhosted.org/packages/5c/c7/6c03637e8d742c3b00bec4f5e4cd9d1c01b2f3694c6f140742e93ca637ed/pyzmq-26.4.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb45684f276f57110bb89e4300c00f1233ca631f08f5f42528a5c408a79efc4a", size = 658826 }, - { url = "https://files.pythonhosted.org/packages/a5/97/a8dca65913c0f78e0545af2bb5078aebfc142ca7d91cdaffa1fbc73e5dbd/pyzmq-26.4.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f72073e75260cb301aad4258ad6150fa7f57c719b3f498cb91e31df16784d89b", size = 891650 }, - { url = "https://files.pythonhosted.org/packages/7d/7e/f63af1031eb060bf02d033732b910fe48548dcfdbe9c785e9f74a6cc6ae4/pyzmq-26.4.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be37e24b13026cfedd233bcbbccd8c0bcd2fdd186216094d095f60076201538d", size = 849776 }, - { url = "https://files.pythonhosted.org/packages/f6/fa/1a009ce582802a895c0d5fe9413f029c940a0a8ee828657a3bb0acffd88b/pyzmq-26.4.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:237b283044934d26f1eeff4075f751b05d2f3ed42a257fc44386d00df6a270cf", size = 842516 }, - { url = "https://files.pythonhosted.org/packages/6e/bc/f88b0bad0f7a7f500547d71e99f10336f2314e525d4ebf576a1ea4a1d903/pyzmq-26.4.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:b30f862f6768b17040929a68432c8a8be77780317f45a353cb17e423127d250c", size = 1189183 }, - { url = "https://files.pythonhosted.org/packages/d9/8c/db446a3dd9cf894406dec2e61eeffaa3c07c3abb783deaebb9812c4af6a5/pyzmq-26.4.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:c80fcd3504232f13617c6ab501124d373e4895424e65de8b72042333316f64a8", size = 1495501 }, - { url = "https://files.pythonhosted.org/packages/05/4c/bf3cad0d64c3214ac881299c4562b815f05d503bccc513e3fd4fdc6f67e4/pyzmq-26.4.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:26a2a7451606b87f67cdeca2c2789d86f605da08b4bd616b1a9981605ca3a364", size = 1395540 }, - { url = "https://files.pythonhosted.org/packages/04/52/a70fcd5592715702248306d8e1729c10742c2eac44529984413b05c68658/pyzmq-26.4.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4478b14cb54a805088299c25a79f27eaf530564a7a4f72bf432a040042b554eb", size = 834405 }, - { url = "https://files.pythonhosted.org/packages/25/f9/1a03f1accff16b3af1a6fa22cbf7ced074776abbf688b2e9cb4629700c62/pyzmq-26.4.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a28ac29c60e4ba84b5f58605ace8ad495414a724fe7aceb7cf06cd0598d04e1", size = 569578 }, - { url = "https://files.pythonhosted.org/packages/76/0c/3a633acd762aa6655fcb71fa841907eae0ab1e8582ff494b137266de341d/pyzmq-26.4.0-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43b03c1ceea27c6520124f4fb2ba9c647409b9abdf9a62388117148a90419494", size = 798248 }, - { url = "https://files.pythonhosted.org/packages/cd/cc/6c99c84aa60ac1cc56747bed6be8ce6305b9b861d7475772e7a25ce019d3/pyzmq-26.4.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7731abd23a782851426d4e37deb2057bf9410848a4459b5ede4fe89342e687a9", size = 756757 }, - { url = "https://files.pythonhosted.org/packages/13/9c/d8073bd898eb896e94c679abe82e47506e2b750eb261cf6010ced869797c/pyzmq-26.4.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:a222ad02fbe80166b0526c038776e8042cd4e5f0dec1489a006a1df47e9040e0", size = 555371 }, +sdist = { url = "https://files.pythonhosted.org/packages/f1/06/50a4e9648b3e8b992bef8eb632e457307553a89d294103213cfd47b3da69/pyzmq-27.0.0.tar.gz", hash = "sha256:b1f08eeb9ce1510e6939b6e5dcd46a17765e2333daae78ecf4606808442e52cf", size = 280478 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/df/84c630654106d9bd9339cdb564aa941ed41b023a0264251d6743766bb50e/pyzmq-27.0.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:21457825249b2a53834fa969c69713f8b5a79583689387a5e7aed880963ac564", size = 1332718 }, + { url = "https://files.pythonhosted.org/packages/c1/8e/f6a5461a07654d9840d256476434ae0ff08340bba562a455f231969772cb/pyzmq-27.0.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1958947983fef513e6e98eff9cb487b60bf14f588dc0e6bf35fa13751d2c8251", size = 908248 }, + { url = "https://files.pythonhosted.org/packages/7c/93/82863e8d695a9a3ae424b63662733ae204a295a2627d52af2f62c2cd8af9/pyzmq-27.0.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0dc628b5493f9a8cd9844b8bee9732ef587ab00002157c9329e4fc0ef4d3afa", size = 668647 }, + { url = "https://files.pythonhosted.org/packages/f3/85/15278769b348121eacdbfcbd8c4d40f1102f32fa6af5be1ffc032ed684be/pyzmq-27.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7bbe9e1ed2c8d3da736a15694d87c12493e54cc9dc9790796f0321794bbc91f", size = 856600 }, + { url = "https://files.pythonhosted.org/packages/d4/af/1c469b3d479bd095edb28e27f12eee10b8f00b356acbefa6aeb14dd295d1/pyzmq-27.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dc1091f59143b471d19eb64f54bae4f54bcf2a466ffb66fe45d94d8d734eb495", size = 1657748 }, + { url = "https://files.pythonhosted.org/packages/8c/f4/17f965d0ee6380b1d6326da842a50e4b8b9699745161207945f3745e8cb5/pyzmq-27.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7011ade88c8e535cf140f8d1a59428676fbbce7c6e54fefce58bf117aefb6667", size = 2034311 }, + { url = "https://files.pythonhosted.org/packages/e0/6e/7c391d81fa3149fd759de45d298003de6cfab343fb03e92c099821c448db/pyzmq-27.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2c386339d7e3f064213aede5d03d054b237937fbca6dd2197ac8cf3b25a6b14e", size = 1893630 }, + { url = "https://files.pythonhosted.org/packages/0e/e0/eaffe7a86f60e556399e224229e7769b717f72fec0706b70ab2c03aa04cb/pyzmq-27.0.0-cp311-cp311-win32.whl", hash = "sha256:0546a720c1f407b2172cb04b6b094a78773491497e3644863cf5c96c42df8cff", size = 567706 }, + { url = "https://files.pythonhosted.org/packages/c9/05/89354a8cffdcce6e547d48adaaf7be17007fc75572123ff4ca90a4ca04fc/pyzmq-27.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:15f39d50bd6c9091c67315ceb878a4f531957b121d2a05ebd077eb35ddc5efed", size = 630322 }, + { url = "https://files.pythonhosted.org/packages/fa/07/4ab976d5e1e63976719389cc4f3bfd248a7f5f2bb2ebe727542363c61b5f/pyzmq-27.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c5817641eebb391a2268c27fecd4162448e03538387093cdbd8bf3510c316b38", size = 558435 }, + { url = "https://files.pythonhosted.org/packages/93/a7/9ad68f55b8834ede477842214feba6a4c786d936c022a67625497aacf61d/pyzmq-27.0.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:cbabc59dcfaac66655c040dfcb8118f133fb5dde185e5fc152628354c1598e52", size = 1305438 }, + { url = "https://files.pythonhosted.org/packages/ba/ee/26aa0f98665a22bc90ebe12dced1de5f3eaca05363b717f6fb229b3421b3/pyzmq-27.0.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:cb0ac5179cba4b2f94f1aa208fbb77b62c4c9bf24dd446278b8b602cf85fcda3", size = 895095 }, + { url = "https://files.pythonhosted.org/packages/cf/85/c57e7ab216ecd8aa4cc7e3b83b06cc4e9cf45c87b0afc095f10cd5ce87c1/pyzmq-27.0.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53a48f0228eab6cbf69fde3aa3c03cbe04e50e623ef92ae395fce47ef8a76152", size = 651826 }, + { url = "https://files.pythonhosted.org/packages/69/9a/9ea7e230feda9400fb0ae0d61d7d6ddda635e718d941c44eeab22a179d34/pyzmq-27.0.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:111db5f395e09f7e775f759d598f43cb815fc58e0147623c4816486e1a39dc22", size = 839750 }, + { url = "https://files.pythonhosted.org/packages/08/66/4cebfbe71f3dfbd417011daca267539f62ed0fbc68105357b68bbb1a25b7/pyzmq-27.0.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c8878011653dcdc27cc2c57e04ff96f0471e797f5c19ac3d7813a245bcb24371", size = 1641357 }, + { url = "https://files.pythonhosted.org/packages/ac/f6/b0f62578c08d2471c791287149cb8c2aaea414ae98c6e995c7dbe008adfb/pyzmq-27.0.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:c0ed2c1f335ba55b5fdc964622254917d6b782311c50e138863eda409fbb3b6d", size = 2020281 }, + { url = "https://files.pythonhosted.org/packages/37/b9/4f670b15c7498495da9159edc374ec09c88a86d9cd5a47d892f69df23450/pyzmq-27.0.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e918d70862d4cfd4b1c187310015646a14e1f5917922ab45b29f28f345eeb6be", size = 1877110 }, + { url = "https://files.pythonhosted.org/packages/66/31/9dee25c226295b740609f0d46db2fe972b23b6f5cf786360980524a3ba92/pyzmq-27.0.0-cp312-abi3-win32.whl", hash = "sha256:88b4e43cab04c3c0f0d55df3b1eef62df2b629a1a369b5289a58f6fa8b07c4f4", size = 559297 }, + { url = "https://files.pythonhosted.org/packages/9b/12/52da5509800f7ff2d287b2f2b4e636e7ea0f001181cba6964ff6c1537778/pyzmq-27.0.0-cp312-abi3-win_amd64.whl", hash = "sha256:dce4199bf5f648a902ce37e7b3afa286f305cd2ef7a8b6ec907470ccb6c8b371", size = 619203 }, + { url = "https://files.pythonhosted.org/packages/93/6d/7f2e53b19d1edb1eb4f09ec7c3a1f945ca0aac272099eab757d15699202b/pyzmq-27.0.0-cp312-abi3-win_arm64.whl", hash = "sha256:56e46bbb85d52c1072b3f809cc1ce77251d560bc036d3a312b96db1afe76db2e", size = 551927 }, + { url = "https://files.pythonhosted.org/packages/19/62/876b27c4ff777db4ceba1c69ea90d3c825bb4f8d5e7cd987ce5802e33c55/pyzmq-27.0.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c36ad534c0c29b4afa088dc53543c525b23c0797e01b69fef59b1a9c0e38b688", size = 1340826 }, + { url = "https://files.pythonhosted.org/packages/43/69/58ef8f4f59d3bcd505260c73bee87b008850f45edca40ddaba54273c35f4/pyzmq-27.0.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:67855c14173aec36395d7777aaba3cc527b393821f30143fd20b98e1ff31fd38", size = 897283 }, + { url = "https://files.pythonhosted.org/packages/43/15/93a0d0396700a60475ad3c5d42c5f1c308d3570bc94626b86c71ef9953e0/pyzmq-27.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8617c7d43cd8ccdb62aebe984bfed77ca8f036e6c3e46dd3dddda64b10f0ab7a", size = 660567 }, + { url = "https://files.pythonhosted.org/packages/0e/b3/fe055513e498ca32f64509abae19b9c9eb4d7c829e02bd8997dd51b029eb/pyzmq-27.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:67bfbcbd0a04c575e8103a6061d03e393d9f80ffdb9beb3189261e9e9bc5d5e9", size = 847681 }, + { url = "https://files.pythonhosted.org/packages/b6/4f/ff15300b00b5b602191f3df06bbc8dd4164e805fdd65bb77ffbb9c5facdc/pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5cd11d46d7b7e5958121b3eaf4cd8638eff3a720ec527692132f05a57f14341d", size = 1650148 }, + { url = "https://files.pythonhosted.org/packages/c4/6f/84bdfff2a224a6f26a24249a342e5906993c50b0761e311e81b39aef52a7/pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:b801c2e40c5aa6072c2f4876de8dccd100af6d9918d4d0d7aa54a1d982fd4f44", size = 2023768 }, + { url = "https://files.pythonhosted.org/packages/64/39/dc2db178c26a42228c5ac94a9cc595030458aa64c8d796a7727947afbf55/pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:20d5cb29e8c5f76a127c75b6e7a77e846bc4b655c373baa098c26a61b7ecd0ef", size = 1885199 }, + { url = "https://files.pythonhosted.org/packages/c7/21/dae7b06a1f8cdee5d8e7a63d99c5d129c401acc40410bef2cbf42025e26f/pyzmq-27.0.0-cp313-cp313t-win32.whl", hash = "sha256:a20528da85c7ac7a19b7384e8c3f8fa707841fd85afc4ed56eda59d93e3d98ad", size = 575439 }, + { url = "https://files.pythonhosted.org/packages/eb/bc/1709dc55f0970cf4cb8259e435e6773f9946f41a045c2cb90e870b7072da/pyzmq-27.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d8229f2efece6a660ee211d74d91dbc2a76b95544d46c74c615e491900dc107f", size = 639933 }, + { url = "https://files.pythonhosted.org/packages/98/a6/92394373b8dbc1edc9d53c951e8d3989d518185174ee54492ec27711779d/pyzmq-27.0.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd1dc59763effd1576f8368047c9c31468fce0af89d76b5067641137506792ae", size = 835948 }, + { url = "https://files.pythonhosted.org/packages/56/f3/4dc38d75d9995bfc18773df3e41f2a2ca9b740b06f1a15dbf404077e7588/pyzmq-27.0.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:60e8cc82d968174650c1860d7b716366caab9973787a1c060cf8043130f7d0f7", size = 799874 }, + { url = "https://files.pythonhosted.org/packages/ab/ba/64af397e0f421453dc68e31d5e0784d554bf39013a2de0872056e96e58af/pyzmq-27.0.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:14fe7aaac86e4e93ea779a821967360c781d7ac5115b3f1a171ced77065a0174", size = 567400 }, + { url = "https://files.pythonhosted.org/packages/63/87/ec956cbe98809270b59a22891d5758edae147a258e658bf3024a8254c855/pyzmq-27.0.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6ad0562d4e6abb785be3e4dd68599c41be821b521da38c402bc9ab2a8e7ebc7e", size = 747031 }, + { url = "https://files.pythonhosted.org/packages/be/8a/4a3764a68abc02e2fbb0668d225b6fda5cd39586dd099cee8b2ed6ab0452/pyzmq-27.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:9df43a2459cd3a3563404c1456b2c4c69564daa7dbaf15724c09821a3329ce46", size = 544726 }, ] [[package]] @@ -2820,62 +2738,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775 }, ] -[[package]] -name = "regex" -version = "2024.11.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8e/5f/bd69653fbfb76cf8604468d3b4ec4c403197144c7bfe0e6a5fc9e02a07cb/regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519", size = 399494 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/58/58/7e4d9493a66c88a7da6d205768119f51af0f684fe7be7bac8328e217a52c/regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638", size = 482669 }, - { url = "https://files.pythonhosted.org/packages/34/4c/8f8e631fcdc2ff978609eaeef1d6994bf2f028b59d9ac67640ed051f1218/regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7", size = 287684 }, - { url = "https://files.pythonhosted.org/packages/c5/1b/f0e4d13e6adf866ce9b069e191f303a30ab1277e037037a365c3aad5cc9c/regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20", size = 284589 }, - { url = "https://files.pythonhosted.org/packages/25/4d/ab21047f446693887f25510887e6820b93f791992994f6498b0318904d4a/regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114", size = 792121 }, - { url = "https://files.pythonhosted.org/packages/45/ee/c867e15cd894985cb32b731d89576c41a4642a57850c162490ea34b78c3b/regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3", size = 831275 }, - { url = "https://files.pythonhosted.org/packages/b3/12/b0f480726cf1c60f6536fa5e1c95275a77624f3ac8fdccf79e6727499e28/regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f", size = 818257 }, - { url = "https://files.pythonhosted.org/packages/bf/ce/0d0e61429f603bac433910d99ef1a02ce45a8967ffbe3cbee48599e62d88/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0", size = 792727 }, - { url = "https://files.pythonhosted.org/packages/e4/c1/243c83c53d4a419c1556f43777ccb552bccdf79d08fda3980e4e77dd9137/regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55", size = 780667 }, - { url = "https://files.pythonhosted.org/packages/c5/f4/75eb0dd4ce4b37f04928987f1d22547ddaf6c4bae697623c1b05da67a8aa/regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89", size = 776963 }, - { url = "https://files.pythonhosted.org/packages/16/5d/95c568574e630e141a69ff8a254c2f188b4398e813c40d49228c9bbd9875/regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d", size = 784700 }, - { url = "https://files.pythonhosted.org/packages/8e/b5/f8495c7917f15cc6fee1e7f395e324ec3e00ab3c665a7dc9d27562fd5290/regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34", size = 848592 }, - { url = "https://files.pythonhosted.org/packages/1c/80/6dd7118e8cb212c3c60b191b932dc57db93fb2e36fb9e0e92f72a5909af9/regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d", size = 852929 }, - { url = "https://files.pythonhosted.org/packages/11/9b/5a05d2040297d2d254baf95eeeb6df83554e5e1df03bc1a6687fc4ba1f66/regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45", size = 781213 }, - { url = "https://files.pythonhosted.org/packages/26/b7/b14e2440156ab39e0177506c08c18accaf2b8932e39fb092074de733d868/regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9", size = 261734 }, - { url = "https://files.pythonhosted.org/packages/80/32/763a6cc01d21fb3819227a1cc3f60fd251c13c37c27a73b8ff4315433a8e/regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60", size = 274052 }, - { url = "https://files.pythonhosted.org/packages/ba/30/9a87ce8336b172cc232a0db89a3af97929d06c11ceaa19d97d84fa90a8f8/regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a", size = 483781 }, - { url = "https://files.pythonhosted.org/packages/01/e8/00008ad4ff4be8b1844786ba6636035f7ef926db5686e4c0f98093612add/regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9", size = 288455 }, - { url = "https://files.pythonhosted.org/packages/60/85/cebcc0aff603ea0a201667b203f13ba75d9fc8668fab917ac5b2de3967bc/regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2", size = 284759 }, - { url = "https://files.pythonhosted.org/packages/94/2b/701a4b0585cb05472a4da28ee28fdfe155f3638f5e1ec92306d924e5faf0/regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4", size = 794976 }, - { url = "https://files.pythonhosted.org/packages/4b/bf/fa87e563bf5fee75db8915f7352e1887b1249126a1be4813837f5dbec965/regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577", size = 833077 }, - { url = "https://files.pythonhosted.org/packages/a1/56/7295e6bad94b047f4d0834e4779491b81216583c00c288252ef625c01d23/regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3", size = 823160 }, - { url = "https://files.pythonhosted.org/packages/fb/13/e3b075031a738c9598c51cfbc4c7879e26729c53aa9cca59211c44235314/regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e", size = 796896 }, - { url = "https://files.pythonhosted.org/packages/24/56/0b3f1b66d592be6efec23a795b37732682520b47c53da5a32c33ed7d84e3/regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe", size = 783997 }, - { url = "https://files.pythonhosted.org/packages/f9/a1/eb378dada8b91c0e4c5f08ffb56f25fcae47bf52ad18f9b2f33b83e6d498/regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e", size = 781725 }, - { url = "https://files.pythonhosted.org/packages/83/f2/033e7dec0cfd6dda93390089864732a3409246ffe8b042e9554afa9bff4e/regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29", size = 789481 }, - { url = "https://files.pythonhosted.org/packages/83/23/15d4552ea28990a74e7696780c438aadd73a20318c47e527b47a4a5a596d/regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39", size = 852896 }, - { url = "https://files.pythonhosted.org/packages/e3/39/ed4416bc90deedbfdada2568b2cb0bc1fdb98efe11f5378d9892b2a88f8f/regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51", size = 860138 }, - { url = "https://files.pythonhosted.org/packages/93/2d/dd56bb76bd8e95bbce684326302f287455b56242a4f9c61f1bc76e28360e/regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad", size = 787692 }, - { url = "https://files.pythonhosted.org/packages/0b/55/31877a249ab7a5156758246b9c59539abbeba22461b7d8adc9e8475ff73e/regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54", size = 262135 }, - { url = "https://files.pythonhosted.org/packages/38/ec/ad2d7de49a600cdb8dd78434a1aeffe28b9d6fc42eb36afab4a27ad23384/regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b", size = 273567 }, - { url = "https://files.pythonhosted.org/packages/90/73/bcb0e36614601016552fa9344544a3a2ae1809dc1401b100eab02e772e1f/regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84", size = 483525 }, - { url = "https://files.pythonhosted.org/packages/0f/3f/f1a082a46b31e25291d830b369b6b0c5576a6f7fb89d3053a354c24b8a83/regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4", size = 288324 }, - { url = "https://files.pythonhosted.org/packages/09/c9/4e68181a4a652fb3ef5099e077faf4fd2a694ea6e0f806a7737aff9e758a/regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0", size = 284617 }, - { url = "https://files.pythonhosted.org/packages/fc/fd/37868b75eaf63843165f1d2122ca6cb94bfc0271e4428cf58c0616786dce/regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0", size = 795023 }, - { url = "https://files.pythonhosted.org/packages/c4/7c/d4cd9c528502a3dedb5c13c146e7a7a539a3853dc20209c8e75d9ba9d1b2/regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7", size = 833072 }, - { url = "https://files.pythonhosted.org/packages/4f/db/46f563a08f969159c5a0f0e722260568425363bea43bb7ae370becb66a67/regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7", size = 823130 }, - { url = "https://files.pythonhosted.org/packages/db/60/1eeca2074f5b87df394fccaa432ae3fc06c9c9bfa97c5051aed70e6e00c2/regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c", size = 796857 }, - { url = "https://files.pythonhosted.org/packages/10/db/ac718a08fcee981554d2f7bb8402f1faa7e868c1345c16ab1ebec54b0d7b/regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3", size = 784006 }, - { url = "https://files.pythonhosted.org/packages/c2/41/7da3fe70216cea93144bf12da2b87367590bcf07db97604edeea55dac9ad/regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07", size = 781650 }, - { url = "https://files.pythonhosted.org/packages/a7/d5/880921ee4eec393a4752e6ab9f0fe28009435417c3102fc413f3fe81c4e5/regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e", size = 789545 }, - { url = "https://files.pythonhosted.org/packages/dc/96/53770115e507081122beca8899ab7f5ae28ae790bfcc82b5e38976df6a77/regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6", size = 853045 }, - { url = "https://files.pythonhosted.org/packages/31/d3/1372add5251cc2d44b451bd94f43b2ec78e15a6e82bff6a290ef9fd8f00a/regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4", size = 860182 }, - { url = "https://files.pythonhosted.org/packages/ed/e3/c446a64984ea9f69982ba1a69d4658d5014bc7a0ea468a07e1a1265db6e2/regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d", size = 787733 }, - { url = "https://files.pythonhosted.org/packages/2b/f1/e40c8373e3480e4f29f2692bd21b3e05f296d3afebc7e5dcf21b9756ca1c/regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff", size = 262122 }, - { url = "https://files.pythonhosted.org/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a", size = 273545 }, -] - [[package]] name = "requests" -version = "2.32.3" +version = "2.32.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, @@ -2883,9 +2748,9 @@ dependencies = [ { name = "idna" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } +sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422", size = 135258 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, + { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847 }, ] [[package]] @@ -2903,15 +2768,15 @@ wheels = [ [[package]] name = "rich" -version = "13.9.4" +version = "14.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 } +sdist = { url = "https://files.pythonhosted.org/packages/a1/53/830aa4c3066a8ab0ae9a9955976fb770fe9c6102117c8ec4ab3ea62d89e8/rich-14.0.0.tar.gz", hash = "sha256:82f1bc23a6a21ebca4ae0c45af9bdbc492ed20231dcb63f297d6d1021a9d5725", size = 224078 } wheels = [ - { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 }, + { url = "https://files.pythonhosted.org/packages/0d/9b/63f4c7ebc259242c89b3acafdb37b41d1185c07ff0011164674e9076b491/rich-14.0.0-py3-none-any.whl", hash = "sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0", size = 243229 }, ] [[package]] @@ -3011,14 +2876,14 @@ wheels = [ [[package]] name = "ruamel-yaml" -version = "0.18.11" +version = "0.18.14" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "ruamel-yaml-clib", marker = "platform_python_implementation == 'CPython'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9d/8f/dfbab2d5ec83da0605ab935fb43ffa8ab5828455e2c910b7314fdd18e0b8/ruamel.yaml-0.18.11.tar.gz", hash = "sha256:b586a3416676566ed45bf679a0909719f7ea7b58c03a9b6e03f905a1e2cd5076", size = 144299 } +sdist = { url = "https://files.pythonhosted.org/packages/39/87/6da0df742a4684263261c253f00edd5829e6aca970fff69e75028cccc547/ruamel.yaml-0.18.14.tar.gz", hash = "sha256:7227b76aaec364df15936730efbf7d72b30c0b79b1d578bbb8e3dcb2d81f52b7", size = 145511 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/62/615a16ebbca43fd4434843e9d346d795a134d0a1ff46101c858d93c9778d/ruamel.yaml-0.18.11-py3-none-any.whl", hash = "sha256:eca06c9fce6ee3220845c4c54e58376586e041a6127e4d1958e12a3142084897", size = 118313 }, + { url = "https://files.pythonhosted.org/packages/af/6d/6fe4805235e193aad4aaf979160dd1f3c487c57d48b810c816e6e842171b/ruamel.yaml-0.18.14-py3-none-any.whl", hash = "sha256:710ff198bb53da66718c7db27eec4fbcc9aa6ca7204e4c1df2f282b6fe5eb6b2", size = 118570 }, ] [[package]] @@ -3058,87 +2923,41 @@ wheels = [ [[package]] name = "ruff" -version = "0.11.11" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/53/ae4857030d59286924a8bdb30d213d6ff22d8f0957e738d0289990091dd8/ruff-0.11.11.tar.gz", hash = "sha256:7774173cc7c1980e6bf67569ebb7085989a78a103922fb83ef3dfe230cd0687d", size = 4186707 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/14/f2326676197bab099e2a24473158c21656fbf6a207c65f596ae15acb32b9/ruff-0.11.11-py3-none-linux_armv6l.whl", hash = "sha256:9924e5ae54125ed8958a4f7de320dab7380f6e9fa3195e3dc3b137c6842a0092", size = 10229049 }, - { url = "https://files.pythonhosted.org/packages/9a/f3/bff7c92dd66c959e711688b2e0768e486bbca46b2f35ac319bb6cce04447/ruff-0.11.11-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:c8a93276393d91e952f790148eb226658dd275cddfde96c6ca304873f11d2ae4", size = 11053601 }, - { url = "https://files.pythonhosted.org/packages/e2/38/8e1a3efd0ef9d8259346f986b77de0f62c7a5ff4a76563b6b39b68f793b9/ruff-0.11.11-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d6e333dbe2e6ae84cdedefa943dfd6434753ad321764fd937eef9d6b62022bcd", size = 10367421 }, - { url = "https://files.pythonhosted.org/packages/b4/50/557ad9dd4fb9d0bf524ec83a090a3932d284d1a8b48b5906b13b72800e5f/ruff-0.11.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7885d9a5e4c77b24e8c88aba8c80be9255fa22ab326019dac2356cff42089fc6", size = 10581980 }, - { url = "https://files.pythonhosted.org/packages/c4/b2/e2ed82d6e2739ece94f1bdbbd1d81b712d3cdaf69f0a1d1f1a116b33f9ad/ruff-0.11.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b5ab797fcc09121ed82e9b12b6f27e34859e4227080a42d090881be888755d4", size = 10089241 }, - { url = "https://files.pythonhosted.org/packages/3d/9f/b4539f037a5302c450d7c695c82f80e98e48d0d667ecc250e6bdeb49b5c3/ruff-0.11.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e231ff3132c1119ece836487a02785f099a43992b95c2f62847d29bace3c75ac", size = 11699398 }, - { url = "https://files.pythonhosted.org/packages/61/fb/32e029d2c0b17df65e6eaa5ce7aea5fbeaed22dddd9fcfbbf5fe37c6e44e/ruff-0.11.11-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:a97c9babe1d4081037a90289986925726b802d180cca784ac8da2bbbc335f709", size = 12427955 }, - { url = "https://files.pythonhosted.org/packages/6e/e3/160488dbb11f18c8121cfd588e38095ba779ae208292765972f7732bfd95/ruff-0.11.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d8c4ddcbe8a19f59f57fd814b8b117d4fcea9bee7c0492e6cf5fdc22cfa563c8", size = 12069803 }, - { url = "https://files.pythonhosted.org/packages/ff/16/3b006a875f84b3d0bff24bef26b8b3591454903f6f754b3f0a318589dcc3/ruff-0.11.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6224076c344a7694c6fbbb70d4f2a7b730f6d47d2a9dc1e7f9d9bb583faf390b", size = 11242630 }, - { url = "https://files.pythonhosted.org/packages/65/0d/0338bb8ac0b97175c2d533e9c8cdc127166de7eb16d028a43c5ab9e75abd/ruff-0.11.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:882821fcdf7ae8db7a951df1903d9cb032bbe838852e5fc3c2b6c3ab54e39875", size = 11507310 }, - { url = "https://files.pythonhosted.org/packages/6f/bf/d7130eb26174ce9b02348b9f86d5874eafbf9f68e5152e15e8e0a392e4a3/ruff-0.11.11-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:dcec2d50756463d9df075a26a85a6affbc1b0148873da3997286caf1ce03cae1", size = 10441144 }, - { url = "https://files.pythonhosted.org/packages/b3/f3/4be2453b258c092ff7b1761987cf0749e70ca1340cd1bfb4def08a70e8d8/ruff-0.11.11-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:99c28505ecbaeb6594701a74e395b187ee083ee26478c1a795d35084d53ebd81", size = 10081987 }, - { url = "https://files.pythonhosted.org/packages/6c/6e/dfa4d2030c5b5c13db158219f2ec67bf333e8a7748dccf34cfa2a6ab9ebc/ruff-0.11.11-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9263f9e5aa4ff1dec765e99810f1cc53f0c868c5329b69f13845f699fe74f639", size = 11073922 }, - { url = "https://files.pythonhosted.org/packages/ff/f4/f7b0b0c3d32b593a20ed8010fa2c1a01f2ce91e79dda6119fcc51d26c67b/ruff-0.11.11-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:64ac6f885e3ecb2fdbb71de2701d4e34526651f1e8503af8fb30d4915a3fe345", size = 11568537 }, - { url = "https://files.pythonhosted.org/packages/d2/46/0e892064d0adc18bcc81deed9aaa9942a27fd2cd9b1b7791111ce468c25f/ruff-0.11.11-py3-none-win32.whl", hash = "sha256:1adcb9a18802268aaa891ffb67b1c94cd70578f126637118e8099b8e4adcf112", size = 10536492 }, - { url = "https://files.pythonhosted.org/packages/1b/d9/232e79459850b9f327e9f1dc9c047a2a38a6f9689e1ec30024841fc4416c/ruff-0.11.11-py3-none-win_amd64.whl", hash = "sha256:748b4bb245f11e91a04a4ff0f96e386711df0a30412b9fe0c74d5bdc0e4a531f", size = 11612562 }, - { url = "https://files.pythonhosted.org/packages/ce/eb/09c132cff3cc30b2e7244191dcce69437352d6d6709c0adf374f3e6f476e/ruff-0.11.11-py3-none-win_arm64.whl", hash = "sha256:6c51f136c0364ab1b774767aa8b86331bd8e9d414e2d107db7a2189f35ea1f7b", size = 10735951 }, +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/97/38/796a101608a90494440856ccfb52b1edae90de0b817e76bfade66b12d320/ruff-0.12.1.tar.gz", hash = "sha256:806bbc17f1104fd57451a98a58df35388ee3ab422e029e8f5cf30aa4af2c138c", size = 4413426 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/bf/3dba52c1d12ab5e78d75bd78ad52fb85a6a1f29cc447c2423037b82bed0d/ruff-0.12.1-py3-none-linux_armv6l.whl", hash = "sha256:6013a46d865111e2edb71ad692fbb8262e6c172587a57c0669332a449384a36b", size = 10305649 }, + { url = "https://files.pythonhosted.org/packages/8c/65/dab1ba90269bc8c81ce1d499a6517e28fe6f87b2119ec449257d0983cceb/ruff-0.12.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b3f75a19e03a4b0757d1412edb7f27cffb0c700365e9d6b60bc1b68d35bc89e0", size = 11120201 }, + { url = "https://files.pythonhosted.org/packages/3f/3e/2d819ffda01defe857fa2dd4cba4d19109713df4034cc36f06bbf582d62a/ruff-0.12.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:9a256522893cb7e92bb1e1153283927f842dea2e48619c803243dccc8437b8be", size = 10466769 }, + { url = "https://files.pythonhosted.org/packages/63/37/bde4cf84dbd7821c8de56ec4ccc2816bce8125684f7b9e22fe4ad92364de/ruff-0.12.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:069052605fe74c765a5b4272eb89880e0ff7a31e6c0dbf8767203c1fbd31c7ff", size = 10660902 }, + { url = "https://files.pythonhosted.org/packages/0e/3a/390782a9ed1358c95e78ccc745eed1a9d657a537e5c4c4812fce06c8d1a0/ruff-0.12.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a684f125a4fec2d5a6501a466be3841113ba6847827be4573fddf8308b83477d", size = 10167002 }, + { url = "https://files.pythonhosted.org/packages/6d/05/f2d4c965009634830e97ffe733201ec59e4addc5b1c0efa035645baa9e5f/ruff-0.12.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdecdef753bf1e95797593007569d8e1697a54fca843d78f6862f7dc279e23bd", size = 11751522 }, + { url = "https://files.pythonhosted.org/packages/35/4e/4bfc519b5fcd462233f82fc20ef8b1e5ecce476c283b355af92c0935d5d9/ruff-0.12.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:70d52a058c0e7b88b602f575d23596e89bd7d8196437a4148381a3f73fcd5010", size = 12520264 }, + { url = "https://files.pythonhosted.org/packages/85/b2/7756a6925da236b3a31f234b4167397c3e5f91edb861028a631546bad719/ruff-0.12.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84d0a69d1e8d716dfeab22d8d5e7c786b73f2106429a933cee51d7b09f861d4e", size = 12133882 }, + { url = "https://files.pythonhosted.org/packages/dd/00/40da9c66d4a4d51291e619be6757fa65c91b92456ff4f01101593f3a1170/ruff-0.12.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6cc32e863adcf9e71690248607ccdf25252eeeab5193768e6873b901fd441fed", size = 11608941 }, + { url = "https://files.pythonhosted.org/packages/91/e7/f898391cc026a77fbe68dfea5940f8213622474cb848eb30215538a2dadf/ruff-0.12.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fd49a4619f90d5afc65cf42e07b6ae98bb454fd5029d03b306bd9e2273d44cc", size = 11602887 }, + { url = "https://files.pythonhosted.org/packages/f6/02/0891872fc6aab8678084f4cf8826f85c5d2d24aa9114092139a38123f94b/ruff-0.12.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ed5af6aaaea20710e77698e2055b9ff9b3494891e1b24d26c07055459bb717e9", size = 10521742 }, + { url = "https://files.pythonhosted.org/packages/2a/98/d6534322c74a7d47b0f33b036b2498ccac99d8d8c40edadb552c038cecf1/ruff-0.12.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:801d626de15e6bf988fbe7ce59b303a914ff9c616d5866f8c79eb5012720ae13", size = 10149909 }, + { url = "https://files.pythonhosted.org/packages/34/5c/9b7ba8c19a31e2b6bd5e31aa1e65b533208a30512f118805371dbbbdf6a9/ruff-0.12.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:2be9d32a147f98a1972c1e4df9a6956d612ca5f5578536814372113d09a27a6c", size = 11136005 }, + { url = "https://files.pythonhosted.org/packages/dc/34/9bbefa4d0ff2c000e4e533f591499f6b834346025e11da97f4ded21cb23e/ruff-0.12.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:49b7ce354eed2a322fbaea80168c902de9504e6e174fd501e9447cad0232f9e6", size = 11648579 }, + { url = "https://files.pythonhosted.org/packages/6f/1c/20cdb593783f8f411839ce749ec9ae9e4298c2b2079b40295c3e6e2089e1/ruff-0.12.1-py3-none-win32.whl", hash = "sha256:d973fa626d4c8267848755bd0414211a456e99e125dcab147f24daa9e991a245", size = 10519495 }, + { url = "https://files.pythonhosted.org/packages/cf/56/7158bd8d3cf16394928f47c637d39a7d532268cd45220bdb6cd622985760/ruff-0.12.1-py3-none-win_amd64.whl", hash = "sha256:9e1123b1c033f77bd2590e4c1fe7e8ea72ef990a85d2484351d408224d603013", size = 11547485 }, + { url = "https://files.pythonhosted.org/packages/91/d0/6902c0d017259439d6fd2fd9393cea1cfe30169940118b007d5e0ea7e954/ruff-0.12.1-py3-none-win_arm64.whl", hash = "sha256:78ad09a022c64c13cc6077707f036bab0fac8cd7088772dcd1e5be21c5002efc", size = 10691209 }, ] [[package]] name = "s3fs" -version = "2024.12.0" +version = "2025.5.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiobotocore" }, { name = "aiohttp" }, { name = "fsspec" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/96/88/e2fc4fc2a618126ac3cea9b16a4abc5a37dff2522067c9730b5d72d67ac3/s3fs-2024.12.0.tar.gz", hash = "sha256:1b0f3a8f5946cca5ba29871d6792ab1e4528ed762327d8aefafc81b73b99fd56", size = 76578 } +sdist = { url = "https://files.pythonhosted.org/packages/7f/6f/d0ee452580d7d0643a1a776b95dfef2144023f3fc077038e07d651995d34/s3fs-2025.5.1.tar.gz", hash = "sha256:84beffa231b8ed94f8d667e93387b38351e1c4447aedea5c2c19dd88b7fcb658", size = 77276 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/af/eaec1466887348d7f6cc9d3a668b30b62a4629fb187d0268146118ba3d5e/s3fs-2024.12.0-py3-none-any.whl", hash = "sha256:d8665549f9d1de083151582437a2f10d5f3b3227c1f8e67a2b0b730db813e005", size = 30196 }, -] - -[[package]] -name = "safety" -version = "3.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "authlib" }, - { name = "click" }, - { name = "dparse" }, - { name = "filelock" }, - { name = "httpx" }, - { name = "jinja2" }, - { name = "marshmallow" }, - { name = "nltk" }, - { name = "packaging" }, - { name = "psutil" }, - { name = "pydantic" }, - { name = "requests" }, - { name = "ruamel-yaml" }, - { name = "safety-schemas" }, - { name = "setuptools" }, - { name = "tenacity" }, - { name = "tomlkit" }, - { name = "typer" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c2/31/e4875edebb8fd5885ff8e52d0522c44a4d9bc2abe26f11225b8e64b31868/safety-3.5.0.tar.gz", hash = "sha256:7223af388bde5323867eca5495f9817746289be9fd5b1896f168dc7082ea8ff1", size = 272371 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b5/02/e7ef5f2d3a206771e885c25376d4515da8d4adfdd59ed526e847ddeee245/safety-3.5.0-py3-none-any.whl", hash = "sha256:b002e863e6e6bf111a1aafdf60e3a0378f8bc66221a3628c2230c7f2617c522e", size = 270668 }, -] - -[[package]] -name = "safety-schemas" -version = "0.0.14" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "dparse" }, - { name = "packaging" }, - { name = "pydantic" }, - { name = "ruamel-yaml" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/04/40/e5107b3e456ca4b78d1c0d5bd07be3377e673cc54949b18e5f3aed345067/safety_schemas-0.0.14.tar.gz", hash = "sha256:49953f7a59e919572be25595a8946f9cbbcd2066fe3e160c9467d9d1d6d7af6a", size = 53216 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/7f/f3d1ac7eb0a6546eda3e82c0487233cea0774e511239769945dbd1dd01de/safety_schemas-0.0.14-py3-none-any.whl", hash = "sha256:0bf6fc4aa5e474651b714cc9e427c862792946bf052b61d5c7bec4eac4c0f254", size = 39268 }, + { url = "https://files.pythonhosted.org/packages/d5/c0/f5cc95ec88694429fcb841a37456be0a27463bc39d43edbd36e3164120ed/s3fs-2025.5.1-py3-none-any.whl", hash = "sha256:7475e7c40a3a112f17144907ffae50782ab6c03487fe0b45a9c3942bb7a5c606", size = 30476 }, ] [[package]] @@ -3425,14 +3244,15 @@ wheels = [ [[package]] name = "starlette" -version = "0.46.2" +version = "0.47.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ce/20/08dfcd9c983f6a6f4a1000d934b9e6d626cff8d2eeb77a89a68eef20a2b7/starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5", size = 2580846 } +sdist = { url = "https://files.pythonhosted.org/packages/0a/69/662169fdb92fb96ec3eaee218cf540a629d629c86d7993d9651226a6789b/starlette-0.47.1.tar.gz", hash = "sha256:aef012dd2b6be325ffa16698f9dc533614fb1cebd593a906b90dc1025529a79b", size = 2583072 } wheels = [ - { url = "https://files.pythonhosted.org/packages/8b/0c/9d30a4ebeb6db2b25a841afbb80f6ef9a854fc3b41be131d249a977b4959/starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35", size = 72037 }, + { url = "https://files.pythonhosted.org/packages/82/95/38ef0cd7fa11eaba6a99b3c4f5ac948d8bc6ff199aabd327a29cc000840c/starlette-0.47.1-py3-none-any.whl", hash = "sha256:5e11c9f5c7c3f24959edbf2dffdc01bba860228acf657129467d8a7468591527", size = 72747 }, ] [[package]] @@ -3453,15 +3273,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/27/44/aa5c8b10b2cce7a053018e0d132bd58e27527a0243c4985383d5b6fd93e9/tblib-3.1.0-py3-none-any.whl", hash = "sha256:670bb4582578134b3d81a84afa1b016128b429f3d48e6cbbaecc9d15675e984e", size = 12552 }, ] -[[package]] -name = "tenacity" -version = "9.1.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0a/d4/2b0cd0fe285e14b36db076e78c93766ff1d529d70408bd1d2a5a84f1d929/tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb", size = 48036 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248 }, -] - [[package]] name = "tomli" version = "2.2.1" @@ -3501,15 +3312,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 }, ] -[[package]] -name = "tomlkit" -version = "0.13.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b1/09/a439bec5888f00a54b8b9f05fa94d7f901d6735ef4e55dcec9bc37b5d8fa/tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79", size = 192885 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/b6/a447b5e4ec71e13871be01ba81f5dfc9d0af7e473da256ff46bc0e24026f/tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde", size = 37955 }, -] - [[package]] name = "toolz" version = "1.0.0" @@ -3561,14 +3363,14 @@ wheels = [ [[package]] name = "typeguard" -version = "4.4.2" +version = "4.4.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/70/60/8cd6a3d78d00ceeb2193c02b7ed08f063d5341ccdfb24df88e61f383048e/typeguard-4.4.2.tar.gz", hash = "sha256:a6f1065813e32ef365bc3b3f503af8a96f9dd4e0033a02c28c4a4983de8c6c49", size = 75746 } +sdist = { url = "https://files.pythonhosted.org/packages/c7/68/71c1a15b5f65f40e91b65da23b8224dad41349894535a97f63a52e462196/typeguard-4.4.4.tar.gz", hash = "sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74", size = 75203 } wheels = [ - { url = "https://files.pythonhosted.org/packages/cf/4b/9a77dc721aa0b7f74440a42e4ef6f9a4fae7324e17f64f88b96f4c25cc05/typeguard-4.4.2-py3-none-any.whl", hash = "sha256:77a78f11f09777aeae7fa08585f33b5f4ef0e7335af40005b0c422ed398ff48c", size = 35801 }, + { url = "https://files.pythonhosted.org/packages/1b/a9/e3aee762739c1d7528da1c3e06d518503f8b6c439c35549b53735ba52ead/typeguard-4.4.4-py3-none-any.whl", hash = "sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e", size = 34874 }, ] [[package]] @@ -3588,11 +3390,11 @@ wheels = [ [[package]] name = "typing-extensions" -version = "4.13.2" +version = "4.14.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f6/37/23083fcd6e35492953e8d2aaaa68b860eb422b34627b13f2ce3eb6106061/typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef", size = 106967 } +sdist = { url = "https://files.pythonhosted.org/packages/d1/bc/51647cd02527e87d05cb083ccc402f93e441606ff1f01739a62c8ad09ba5/typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4", size = 107423 } wheels = [ - { url = "https://files.pythonhosted.org/packages/8b/54/b1ae86c0973cc6f0210b53d508ca3641fb6d0c56823f288d108bc7ab3cc8/typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c", size = 45806 }, + { url = "https://files.pythonhosted.org/packages/69/e0/552843e0d356fbb5256d21449fa957fa4eff3bbc135a74a691ee70c7c5da/typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af", size = 43839 }, ] [[package]] @@ -3627,24 +3429,24 @@ wheels = [ [[package]] name = "urllib3" -version = "2.4.0" +version = "2.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672 } +sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680 }, + { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795 }, ] [[package]] name = "uvicorn" -version = "0.34.2" +version = "0.35.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a6/ae/9bbb19b9e1c450cf9ecaef06463e40234d98d95bf572fab11b4f19ae5ded/uvicorn-0.34.2.tar.gz", hash = "sha256:0e929828f6186353a80b58ea719861d2629d766293b6d19baf086ba31d4f3328", size = 76815 } +sdist = { url = "https://files.pythonhosted.org/packages/5e/42/e0e305207bb88c6b8d3061399c6a961ffe5fbb7e2aa63c9234df7259e9cd/uvicorn-0.35.0.tar.gz", hash = "sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96cc94a01", size = 78473 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/4b/4cef6ce21a2aaca9d852a6e84ef4f135d99fcd74fa75105e2fc0c8308acd/uvicorn-0.34.2-py3-none-any.whl", hash = "sha256:deb49af569084536d269fe0a6d67e3754f104cf03aba7c11c40f01aadf33c403", size = 62483 }, + { url = "https://files.pythonhosted.org/packages/d2/e2/dc81b1bd1dcfe91735810265e9d26bc8ec5da45b4c0f6237e286819194c3/uvicorn-0.35.0-py3-none-any.whl", hash = "sha256:197535216b25ff9b785e29a0b79199f55222193d47f820816e7da751e9bc8d4a", size = 66406 }, ] [[package]] @@ -3672,51 +3474,66 @@ wheels = [ [[package]] name = "watchfiles" -version = "1.0.5" +version = "1.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/03/e2/8ed598c42057de7aa5d97c472254af4906ff0a59a66699d426fc9ef795d7/watchfiles-1.0.5.tar.gz", hash = "sha256:b7529b5dcc114679d43827d8c35a07c493ad6f083633d573d81c660abc5979e9", size = 94537 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/39/f4/41b591f59021786ef517e1cdc3b510383551846703e03f204827854a96f8/watchfiles-1.0.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:237f9be419e977a0f8f6b2e7b0475ababe78ff1ab06822df95d914a945eac827", size = 405336 }, - { url = "https://files.pythonhosted.org/packages/ae/06/93789c135be4d6d0e4f63e96eea56dc54050b243eacc28439a26482b5235/watchfiles-1.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0da39ff917af8b27a4bdc5a97ac577552a38aac0d260a859c1517ea3dc1a7c4", size = 395977 }, - { url = "https://files.pythonhosted.org/packages/d2/db/1cd89bd83728ca37054512d4d35ab69b5f12b8aa2ac9be3b0276b3bf06cc/watchfiles-1.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cfcb3952350e95603f232a7a15f6c5f86c5375e46f0bd4ae70d43e3e063c13d", size = 455232 }, - { url = "https://files.pythonhosted.org/packages/40/90/d8a4d44ffe960517e487c9c04f77b06b8abf05eb680bed71c82b5f2cad62/watchfiles-1.0.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:68b2dddba7a4e6151384e252a5632efcaa9bc5d1c4b567f3cb621306b2ca9f63", size = 459151 }, - { url = "https://files.pythonhosted.org/packages/6c/da/267a1546f26465dead1719caaba3ce660657f83c9d9c052ba98fb8856e13/watchfiles-1.0.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:95cf944fcfc394c5f9de794ce581914900f82ff1f855326f25ebcf24d5397418", size = 489054 }, - { url = "https://files.pythonhosted.org/packages/b1/31/33850dfd5c6efb6f27d2465cc4c6b27c5a6f5ed53c6fa63b7263cf5f60f6/watchfiles-1.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecf6cd9f83d7c023b1aba15d13f705ca7b7d38675c121f3cc4a6e25bd0857ee9", size = 523955 }, - { url = "https://files.pythonhosted.org/packages/09/84/b7d7b67856efb183a421f1416b44ca975cb2ea6c4544827955dfb01f7dc2/watchfiles-1.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:852de68acd6212cd6d33edf21e6f9e56e5d98c6add46f48244bd479d97c967c6", size = 502234 }, - { url = "https://files.pythonhosted.org/packages/71/87/6dc5ec6882a2254cfdd8b0718b684504e737273903b65d7338efaba08b52/watchfiles-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5730f3aa35e646103b53389d5bc77edfbf578ab6dab2e005142b5b80a35ef25", size = 454750 }, - { url = "https://files.pythonhosted.org/packages/3d/6c/3786c50213451a0ad15170d091570d4a6554976cf0df19878002fc96075a/watchfiles-1.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:18b3bd29954bc4abeeb4e9d9cf0b30227f0f206c86657674f544cb032296acd5", size = 631591 }, - { url = "https://files.pythonhosted.org/packages/1b/b3/1427425ade4e359a0deacce01a47a26024b2ccdb53098f9d64d497f6684c/watchfiles-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ba5552a1b07c8edbf197055bc9d518b8f0d98a1c6a73a293bc0726dce068ed01", size = 625370 }, - { url = "https://files.pythonhosted.org/packages/15/ba/f60e053b0b5b8145d682672024aa91370a29c5c921a88977eb565de34086/watchfiles-1.0.5-cp311-cp311-win32.whl", hash = "sha256:2f1fefb2e90e89959447bc0420fddd1e76f625784340d64a2f7d5983ef9ad246", size = 277791 }, - { url = "https://files.pythonhosted.org/packages/50/ed/7603c4e164225c12c0d4e8700b64bb00e01a6c4eeea372292a3856be33a4/watchfiles-1.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:b6e76ceb1dd18c8e29c73f47d41866972e891fc4cc7ba014f487def72c1cf096", size = 291622 }, - { url = "https://files.pythonhosted.org/packages/a2/c2/99bb7c96b4450e36877fde33690ded286ff555b5a5c1d925855d556968a1/watchfiles-1.0.5-cp311-cp311-win_arm64.whl", hash = "sha256:266710eb6fddc1f5e51843c70e3bebfb0f5e77cf4f27129278c70554104d19ed", size = 283699 }, - { url = "https://files.pythonhosted.org/packages/2a/8c/4f0b9bdb75a1bfbd9c78fad7d8854369283f74fe7cf03eb16be77054536d/watchfiles-1.0.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b5eb568c2aa6018e26da9e6c86f3ec3fd958cee7f0311b35c2630fa4217d17f2", size = 401511 }, - { url = "https://files.pythonhosted.org/packages/dc/4e/7e15825def77f8bd359b6d3f379f0c9dac4eb09dd4ddd58fd7d14127179c/watchfiles-1.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0a04059f4923ce4e856b4b4e5e783a70f49d9663d22a4c3b3298165996d1377f", size = 392715 }, - { url = "https://files.pythonhosted.org/packages/58/65/b72fb817518728e08de5840d5d38571466c1b4a3f724d190cec909ee6f3f/watchfiles-1.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e380c89983ce6e6fe2dd1e1921b9952fb4e6da882931abd1824c092ed495dec", size = 454138 }, - { url = "https://files.pythonhosted.org/packages/3e/a4/86833fd2ea2e50ae28989f5950b5c3f91022d67092bfec08f8300d8b347b/watchfiles-1.0.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fe43139b2c0fdc4a14d4f8d5b5d967f7a2777fd3d38ecf5b1ec669b0d7e43c21", size = 458592 }, - { url = "https://files.pythonhosted.org/packages/38/7e/42cb8df8be9a37e50dd3a818816501cf7a20d635d76d6bd65aae3dbbff68/watchfiles-1.0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee0822ce1b8a14fe5a066f93edd20aada932acfe348bede8aa2149f1a4489512", size = 487532 }, - { url = "https://files.pythonhosted.org/packages/fc/fd/13d26721c85d7f3df6169d8b495fcac8ab0dc8f0945ebea8845de4681dab/watchfiles-1.0.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a0dbcb1c2d8f2ab6e0a81c6699b236932bd264d4cef1ac475858d16c403de74d", size = 522865 }, - { url = "https://files.pythonhosted.org/packages/a1/0d/7f9ae243c04e96c5455d111e21b09087d0eeaf9a1369e13a01c7d3d82478/watchfiles-1.0.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a2014a2b18ad3ca53b1f6c23f8cd94a18ce930c1837bd891262c182640eb40a6", size = 499887 }, - { url = "https://files.pythonhosted.org/packages/8e/0f/a257766998e26aca4b3acf2ae97dff04b57071e991a510857d3799247c67/watchfiles-1.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10f6ae86d5cb647bf58f9f655fcf577f713915a5d69057a0371bc257e2553234", size = 454498 }, - { url = "https://files.pythonhosted.org/packages/81/79/8bf142575a03e0af9c3d5f8bcae911ee6683ae93a625d349d4ecf4c8f7df/watchfiles-1.0.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1a7bac2bde1d661fb31f4d4e8e539e178774b76db3c2c17c4bb3e960a5de07a2", size = 630663 }, - { url = "https://files.pythonhosted.org/packages/f1/80/abe2e79f610e45c63a70d271caea90c49bbf93eb00fa947fa9b803a1d51f/watchfiles-1.0.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ab626da2fc1ac277bbf752446470b367f84b50295264d2d313e28dc4405d663", size = 625410 }, - { url = "https://files.pythonhosted.org/packages/91/6f/bc7fbecb84a41a9069c2c6eb6319f7f7df113adf113e358c57fc1aff7ff5/watchfiles-1.0.5-cp312-cp312-win32.whl", hash = "sha256:9f4571a783914feda92018ef3901dab8caf5b029325b5fe4558c074582815249", size = 277965 }, - { url = "https://files.pythonhosted.org/packages/99/a5/bf1c297ea6649ec59e935ab311f63d8af5faa8f0b86993e3282b984263e3/watchfiles-1.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:360a398c3a19672cf93527f7e8d8b60d8275119c5d900f2e184d32483117a705", size = 291693 }, - { url = "https://files.pythonhosted.org/packages/7f/7b/fd01087cc21db5c47e5beae507b87965db341cce8a86f9eb12bf5219d4e0/watchfiles-1.0.5-cp312-cp312-win_arm64.whl", hash = "sha256:1a2902ede862969077b97523987c38db28abbe09fb19866e711485d9fbf0d417", size = 283287 }, - { url = "https://files.pythonhosted.org/packages/c7/62/435766874b704f39b2fecd8395a29042db2b5ec4005bd34523415e9bd2e0/watchfiles-1.0.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0b289572c33a0deae62daa57e44a25b99b783e5f7aed81b314232b3d3c81a11d", size = 401531 }, - { url = "https://files.pythonhosted.org/packages/6e/a6/e52a02c05411b9cb02823e6797ef9bbba0bfaf1bb627da1634d44d8af833/watchfiles-1.0.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a056c2f692d65bf1e99c41045e3bdcaea3cb9e6b5a53dcaf60a5f3bd95fc9763", size = 392417 }, - { url = "https://files.pythonhosted.org/packages/3f/53/c4af6819770455932144e0109d4854437769672d7ad897e76e8e1673435d/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9dca99744991fc9850d18015c4f0438865414e50069670f5f7eee08340d8b40", size = 453423 }, - { url = "https://files.pythonhosted.org/packages/cb/d1/8e88df58bbbf819b8bc5cfbacd3c79e01b40261cad0fc84d1e1ebd778a07/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:894342d61d355446d02cd3988a7326af344143eb33a2fd5d38482a92072d9563", size = 458185 }, - { url = "https://files.pythonhosted.org/packages/ff/70/fffaa11962dd5429e47e478a18736d4e42bec42404f5ee3b92ef1b87ad60/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab44e1580924d1ffd7b3938e02716d5ad190441965138b4aa1d1f31ea0877f04", size = 486696 }, - { url = "https://files.pythonhosted.org/packages/39/db/723c0328e8b3692d53eb273797d9a08be6ffb1d16f1c0ba2bdbdc2a3852c/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6f9367b132078b2ceb8d066ff6c93a970a18c3029cea37bfd7b2d3dd2e5db8f", size = 522327 }, - { url = "https://files.pythonhosted.org/packages/cd/05/9fccc43c50c39a76b68343484b9da7b12d42d0859c37c61aec018c967a32/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2e55a9b162e06e3f862fb61e399fe9f05d908d019d87bf5b496a04ef18a970a", size = 499741 }, - { url = "https://files.pythonhosted.org/packages/23/14/499e90c37fa518976782b10a18b18db9f55ea73ca14641615056f8194bb3/watchfiles-1.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0125f91f70e0732a9f8ee01e49515c35d38ba48db507a50c5bdcad9503af5827", size = 453995 }, - { url = "https://files.pythonhosted.org/packages/61/d9/f75d6840059320df5adecd2c687fbc18960a7f97b55c300d20f207d48aef/watchfiles-1.0.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:13bb21f8ba3248386337c9fa51c528868e6c34a707f729ab041c846d52a0c69a", size = 629693 }, - { url = "https://files.pythonhosted.org/packages/fc/17/180ca383f5061b61406477218c55d66ec118e6c0c51f02d8142895fcf0a9/watchfiles-1.0.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:839ebd0df4a18c5b3c1b890145b5a3f5f64063c2a0d02b13c76d78fe5de34936", size = 624677 }, - { url = "https://files.pythonhosted.org/packages/bf/15/714d6ef307f803f236d69ee9d421763707899d6298d9f3183e55e366d9af/watchfiles-1.0.5-cp313-cp313-win32.whl", hash = "sha256:4a8ec1e4e16e2d5bafc9ba82f7aaecfeec990ca7cd27e84fb6f191804ed2fcfc", size = 277804 }, - { url = "https://files.pythonhosted.org/packages/a8/b4/c57b99518fadf431f3ef47a610839e46e5f8abf9814f969859d1c65c02c7/watchfiles-1.0.5-cp313-cp313-win_amd64.whl", hash = "sha256:f436601594f15bf406518af922a89dcaab416568edb6f65c4e5bbbad1ea45c11", size = 291087 }, +sdist = { url = "https://files.pythonhosted.org/packages/2a/9a/d451fcc97d029f5812e898fd30a53fd8c15c7bbd058fd75cfc6beb9bd761/watchfiles-1.1.0.tar.gz", hash = "sha256:693ed7ec72cbfcee399e92c895362b6e66d63dac6b91e2c11ae03d10d503e575", size = 94406 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/78/7401154b78ab484ccaaeef970dc2af0cb88b5ba8a1b415383da444cdd8d3/watchfiles-1.1.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:c9649dfc57cc1f9835551deb17689e8d44666315f2e82d337b9f07bd76ae3aa2", size = 405751 }, + { url = "https://files.pythonhosted.org/packages/76/63/e6c3dbc1f78d001589b75e56a288c47723de28c580ad715eb116639152b5/watchfiles-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:406520216186b99374cdb58bc48e34bb74535adec160c8459894884c983a149c", size = 397313 }, + { url = "https://files.pythonhosted.org/packages/6c/a2/8afa359ff52e99af1632f90cbf359da46184207e893a5f179301b0c8d6df/watchfiles-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb45350fd1dc75cd68d3d72c47f5b513cb0578da716df5fba02fff31c69d5f2d", size = 450792 }, + { url = "https://files.pythonhosted.org/packages/1d/bf/7446b401667f5c64972a57a0233be1104157fc3abf72c4ef2666c1bd09b2/watchfiles-1.1.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:11ee4444250fcbeb47459a877e5e80ed994ce8e8d20283857fc128be1715dac7", size = 458196 }, + { url = "https://files.pythonhosted.org/packages/58/2f/501ddbdfa3fa874ea5597c77eeea3d413579c29af26c1091b08d0c792280/watchfiles-1.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bda8136e6a80bdea23e5e74e09df0362744d24ffb8cd59c4a95a6ce3d142f79c", size = 484788 }, + { url = "https://files.pythonhosted.org/packages/61/1e/9c18eb2eb5c953c96bc0e5f626f0e53cfef4bd19bd50d71d1a049c63a575/watchfiles-1.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b915daeb2d8c1f5cee4b970f2e2c988ce6514aace3c9296e58dd64dc9aa5d575", size = 597879 }, + { url = "https://files.pythonhosted.org/packages/8b/6c/1467402e5185d89388b4486745af1e0325007af0017c3384cc786fff0542/watchfiles-1.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ed8fc66786de8d0376f9f913c09e963c66e90ced9aa11997f93bdb30f7c872a8", size = 477447 }, + { url = "https://files.pythonhosted.org/packages/2b/a1/ec0a606bde4853d6c4a578f9391eeb3684a9aea736a8eb217e3e00aa89a1/watchfiles-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe4371595edf78c41ef8ac8df20df3943e13defd0efcb732b2e393b5a8a7a71f", size = 453145 }, + { url = "https://files.pythonhosted.org/packages/90/b9/ef6f0c247a6a35d689fc970dc7f6734f9257451aefb30def5d100d6246a5/watchfiles-1.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b7c5f6fe273291f4d414d55b2c80d33c457b8a42677ad14b4b47ff025d0893e4", size = 626539 }, + { url = "https://files.pythonhosted.org/packages/34/44/6ffda5537085106ff5aaa762b0d130ac6c75a08015dd1621376f708c94de/watchfiles-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7738027989881e70e3723c75921f1efa45225084228788fc59ea8c6d732eb30d", size = 624472 }, + { url = "https://files.pythonhosted.org/packages/c3/e3/71170985c48028fa3f0a50946916a14055e741db11c2e7bc2f3b61f4d0e3/watchfiles-1.1.0-cp311-cp311-win32.whl", hash = "sha256:622d6b2c06be19f6e89b1d951485a232e3b59618def88dbeda575ed8f0d8dbf2", size = 279348 }, + { url = "https://files.pythonhosted.org/packages/89/1b/3e39c68b68a7a171070f81fc2561d23ce8d6859659406842a0e4bebf3bba/watchfiles-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:48aa25e5992b61debc908a61ab4d3f216b64f44fdaa71eb082d8b2de846b7d12", size = 292607 }, + { url = "https://files.pythonhosted.org/packages/61/9f/2973b7539f2bdb6ea86d2c87f70f615a71a1fc2dba2911795cea25968aea/watchfiles-1.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:00645eb79a3faa70d9cb15c8d4187bb72970b2470e938670240c7998dad9f13a", size = 285056 }, + { url = "https://files.pythonhosted.org/packages/f6/b8/858957045a38a4079203a33aaa7d23ea9269ca7761c8a074af3524fbb240/watchfiles-1.1.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9dc001c3e10de4725c749d4c2f2bdc6ae24de5a88a339c4bce32300a31ede179", size = 402339 }, + { url = "https://files.pythonhosted.org/packages/80/28/98b222cca751ba68e88521fabd79a4fab64005fc5976ea49b53fa205d1fa/watchfiles-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d9ba68ec283153dead62cbe81872d28e053745f12335d037de9cbd14bd1877f5", size = 394409 }, + { url = "https://files.pythonhosted.org/packages/86/50/dee79968566c03190677c26f7f47960aff738d32087087bdf63a5473e7df/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:130fc497b8ee68dce163e4254d9b0356411d1490e868bd8790028bc46c5cc297", size = 450939 }, + { url = "https://files.pythonhosted.org/packages/40/45/a7b56fb129700f3cfe2594a01aa38d033b92a33dddce86c8dfdfc1247b72/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:50a51a90610d0845a5931a780d8e51d7bd7f309ebc25132ba975aca016b576a0", size = 457270 }, + { url = "https://files.pythonhosted.org/packages/b5/c8/fa5ef9476b1d02dc6b5e258f515fcaaecf559037edf8b6feffcbc097c4b8/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc44678a72ac0910bac46fa6a0de6af9ba1355669b3dfaf1ce5f05ca7a74364e", size = 483370 }, + { url = "https://files.pythonhosted.org/packages/98/68/42cfcdd6533ec94f0a7aab83f759ec11280f70b11bfba0b0f885e298f9bd/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a543492513a93b001975ae283a51f4b67973662a375a403ae82f420d2c7205ee", size = 598654 }, + { url = "https://files.pythonhosted.org/packages/d3/74/b2a1544224118cc28df7e59008a929e711f9c68ce7d554e171b2dc531352/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ac164e20d17cc285f2b94dc31c384bc3aa3dd5e7490473b3db043dd70fbccfd", size = 478667 }, + { url = "https://files.pythonhosted.org/packages/8c/77/e3362fe308358dc9f8588102481e599c83e1b91c2ae843780a7ded939a35/watchfiles-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7590d5a455321e53857892ab8879dce62d1f4b04748769f5adf2e707afb9d4f", size = 452213 }, + { url = "https://files.pythonhosted.org/packages/6e/17/c8f1a36540c9a1558d4faf08e909399e8133599fa359bf52ec8fcee5be6f/watchfiles-1.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:37d3d3f7defb13f62ece99e9be912afe9dd8a0077b7c45ee5a57c74811d581a4", size = 626718 }, + { url = "https://files.pythonhosted.org/packages/26/45/fb599be38b4bd38032643783d7496a26a6f9ae05dea1a42e58229a20ac13/watchfiles-1.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:7080c4bb3efd70a07b1cc2df99a7aa51d98685be56be6038c3169199d0a1c69f", size = 623098 }, + { url = "https://files.pythonhosted.org/packages/a1/e7/fdf40e038475498e160cd167333c946e45d8563ae4dd65caf757e9ffe6b4/watchfiles-1.1.0-cp312-cp312-win32.whl", hash = "sha256:cbcf8630ef4afb05dc30107bfa17f16c0896bb30ee48fc24bf64c1f970f3b1fd", size = 279209 }, + { url = "https://files.pythonhosted.org/packages/3f/d3/3ae9d5124ec75143bdf088d436cba39812122edc47709cd2caafeac3266f/watchfiles-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:cbd949bdd87567b0ad183d7676feb98136cde5bb9025403794a4c0db28ed3a47", size = 292786 }, + { url = "https://files.pythonhosted.org/packages/26/2f/7dd4fc8b5f2b34b545e19629b4a018bfb1de23b3a496766a2c1165ca890d/watchfiles-1.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:0a7d40b77f07be87c6faa93d0951a0fcd8cbca1ddff60a1b65d741bac6f3a9f6", size = 284343 }, + { url = "https://files.pythonhosted.org/packages/d3/42/fae874df96595556a9089ade83be34a2e04f0f11eb53a8dbf8a8a5e562b4/watchfiles-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5007f860c7f1f8df471e4e04aaa8c43673429047d63205d1630880f7637bca30", size = 402004 }, + { url = "https://files.pythonhosted.org/packages/fa/55/a77e533e59c3003d9803c09c44c3651224067cbe7fb5d574ddbaa31e11ca/watchfiles-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:20ecc8abbd957046f1fe9562757903f5eaf57c3bce70929fda6c7711bb58074a", size = 393671 }, + { url = "https://files.pythonhosted.org/packages/05/68/b0afb3f79c8e832e6571022611adbdc36e35a44e14f129ba09709aa4bb7a/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2f0498b7d2a3c072766dba3274fe22a183dbea1f99d188f1c6c72209a1063dc", size = 449772 }, + { url = "https://files.pythonhosted.org/packages/ff/05/46dd1f6879bc40e1e74c6c39a1b9ab9e790bf1f5a2fe6c08b463d9a807f4/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:239736577e848678e13b201bba14e89718f5c2133dfd6b1f7846fa1b58a8532b", size = 456789 }, + { url = "https://files.pythonhosted.org/packages/8b/ca/0eeb2c06227ca7f12e50a47a3679df0cd1ba487ea19cf844a905920f8e95/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eff4b8d89f444f7e49136dc695599a591ff769300734446c0a86cba2eb2f9895", size = 482551 }, + { url = "https://files.pythonhosted.org/packages/31/47/2cecbd8694095647406645f822781008cc524320466ea393f55fe70eed3b/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12b0a02a91762c08f7264e2e79542f76870c3040bbc847fb67410ab81474932a", size = 597420 }, + { url = "https://files.pythonhosted.org/packages/d9/7e/82abc4240e0806846548559d70f0b1a6dfdca75c1b4f9fa62b504ae9b083/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:29e7bc2eee15cbb339c68445959108803dc14ee0c7b4eea556400131a8de462b", size = 477950 }, + { url = "https://files.pythonhosted.org/packages/25/0d/4d564798a49bf5482a4fa9416dea6b6c0733a3b5700cb8a5a503c4b15853/watchfiles-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9481174d3ed982e269c090f780122fb59cee6c3796f74efe74e70f7780ed94c", size = 451706 }, + { url = "https://files.pythonhosted.org/packages/81/b5/5516cf46b033192d544102ea07c65b6f770f10ed1d0a6d388f5d3874f6e4/watchfiles-1.1.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:80f811146831c8c86ab17b640801c25dc0a88c630e855e2bef3568f30434d52b", size = 625814 }, + { url = "https://files.pythonhosted.org/packages/0c/dd/7c1331f902f30669ac3e754680b6edb9a0dd06dea5438e61128111fadd2c/watchfiles-1.1.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:60022527e71d1d1fda67a33150ee42869042bce3d0fcc9cc49be009a9cded3fb", size = 622820 }, + { url = "https://files.pythonhosted.org/packages/1b/14/36d7a8e27cd128d7b1009e7715a7c02f6c131be9d4ce1e5c3b73d0e342d8/watchfiles-1.1.0-cp313-cp313-win32.whl", hash = "sha256:32d6d4e583593cb8576e129879ea0991660b935177c0f93c6681359b3654bfa9", size = 279194 }, + { url = "https://files.pythonhosted.org/packages/25/41/2dd88054b849aa546dbeef5696019c58f8e0774f4d1c42123273304cdb2e/watchfiles-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:f21af781a4a6fbad54f03c598ab620e3a77032c5878f3d780448421a6e1818c7", size = 292349 }, + { url = "https://files.pythonhosted.org/packages/c8/cf/421d659de88285eb13941cf11a81f875c176f76a6d99342599be88e08d03/watchfiles-1.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:5366164391873ed76bfdf618818c82084c9db7fac82b64a20c44d335eec9ced5", size = 283836 }, + { url = "https://files.pythonhosted.org/packages/45/10/6faf6858d527e3599cc50ec9fcae73590fbddc1420bd4fdccfebffeedbc6/watchfiles-1.1.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:17ab167cca6339c2b830b744eaf10803d2a5b6683be4d79d8475d88b4a8a4be1", size = 400343 }, + { url = "https://files.pythonhosted.org/packages/03/20/5cb7d3966f5e8c718006d0e97dfe379a82f16fecd3caa7810f634412047a/watchfiles-1.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:328dbc9bff7205c215a7807da7c18dce37da7da718e798356212d22696404339", size = 392916 }, + { url = "https://files.pythonhosted.org/packages/8c/07/d8f1176328fa9e9581b6f120b017e286d2a2d22ae3f554efd9515c8e1b49/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7208ab6e009c627b7557ce55c465c98967e8caa8b11833531fdf95799372633", size = 449582 }, + { url = "https://files.pythonhosted.org/packages/66/e8/80a14a453cf6038e81d072a86c05276692a1826471fef91df7537dba8b46/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a8f6f72974a19efead54195bc9bed4d850fc047bb7aa971268fd9a8387c89011", size = 456752 }, + { url = "https://files.pythonhosted.org/packages/5a/25/0853b3fe0e3c2f5af9ea60eb2e781eade939760239a72c2d38fc4cc335f6/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d181ef50923c29cf0450c3cd47e2f0557b62218c50b2ab8ce2ecaa02bd97e670", size = 481436 }, + { url = "https://files.pythonhosted.org/packages/fe/9e/4af0056c258b861fbb29dcb36258de1e2b857be4a9509e6298abcf31e5c9/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adb4167043d3a78280d5d05ce0ba22055c266cf8655ce942f2fb881262ff3cdf", size = 596016 }, + { url = "https://files.pythonhosted.org/packages/c5/fa/95d604b58aa375e781daf350897aaaa089cff59d84147e9ccff2447c8294/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5701dc474b041e2934a26d31d39f90fac8a3dee2322b39f7729867f932b1d4", size = 476727 }, + { url = "https://files.pythonhosted.org/packages/65/95/fe479b2664f19be4cf5ceeb21be05afd491d95f142e72d26a42f41b7c4f8/watchfiles-1.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b067915e3c3936966a8607f6fe5487df0c9c4afb85226613b520890049deea20", size = 451864 }, + { url = "https://files.pythonhosted.org/packages/d3/8a/3c4af14b93a15ce55901cd7a92e1a4701910f1768c78fb30f61d2b79785b/watchfiles-1.1.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:9c733cda03b6d636b4219625a4acb5c6ffb10803338e437fb614fef9516825ef", size = 625626 }, + { url = "https://files.pythonhosted.org/packages/da/f5/cf6aa047d4d9e128f4b7cde615236a915673775ef171ff85971d698f3c2c/watchfiles-1.1.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:cc08ef8b90d78bfac66f0def80240b0197008e4852c9f285907377b2947ffdcb", size = 622744 }, + { url = "https://files.pythonhosted.org/packages/8c/6b/686dcf5d3525ad17b384fd94708e95193529b460a1b7bf40851f1328ec6e/watchfiles-1.1.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0ece16b563b17ab26eaa2d52230c9a7ae46cf01759621f4fbbca280e438267b3", size = 406910 }, + { url = "https://files.pythonhosted.org/packages/f3/d3/71c2dcf81dc1edcf8af9f4d8d63b1316fb0a2dd90cbfd427e8d9dd584a90/watchfiles-1.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:51b81e55d40c4b4aa8658427a3ee7ea847c591ae9e8b81ef94a90b668999353c", size = 398816 }, + { url = "https://files.pythonhosted.org/packages/b8/fa/12269467b2fc006f8fce4cd6c3acfa77491dd0777d2a747415f28ccc8c60/watchfiles-1.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2bcdc54ea267fe72bfc7d83c041e4eb58d7d8dc6f578dfddb52f037ce62f432", size = 451584 }, + { url = "https://files.pythonhosted.org/packages/bd/d3/254cea30f918f489db09d6a8435a7de7047f8cb68584477a515f160541d6/watchfiles-1.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:923fec6e5461c42bd7e3fd5ec37492c6f3468be0499bc0707b4bbbc16ac21792", size = 454009 }, ] [[package]] @@ -3825,16 +3642,16 @@ wheels = [ [[package]] name = "xarray" -version = "2025.4.0" +version = "2025.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, { name = "packaging" }, { name = "pandas" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9b/29/37761364e137db13898cf5a790574dd7883f7355d5dfb42b66ee7a9a6318/xarray-2025.4.0.tar.gz", hash = "sha256:2a89cd6a1dfd589aa90ac45f4e483246f31fc641836db45dd2790bb78bd333dc", size = 2974151 } +sdist = { url = "https://files.pythonhosted.org/packages/19/ec/e50d833518f10b0c24feb184b209bb6856f25b919ba8c1f89678b930b1cd/xarray-2025.6.1.tar.gz", hash = "sha256:a84f3f07544634a130d7dc615ae44175419f4c77957a7255161ed99c69c7c8b0", size = 3003185 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/1e/96fd96419fec1a37da998a1ca3d558f2cae2f6f3cd5015170371b05a2b6b/xarray-2025.4.0-py3-none-any.whl", hash = "sha256:b27defd082c5cb85d32c695708de6bb05c2838fb7caaf3f952982e602a35b9b8", size = 1290171 }, + { url = "https://files.pythonhosted.org/packages/82/8a/6b50c1dd2260d407c1a499d47cf829f59f07007e0dcebafdabb24d1d26a5/xarray-2025.6.1-py3-none-any.whl", hash = "sha256:8b988b47f67a383bdc3b04c5db475cd165e580134c1f1943d52aee4a9c97651b", size = 1314739 }, ] [[package]] @@ -3863,84 +3680,84 @@ wheels = [ [[package]] name = "yarl" -version = "1.20.0" +version = "1.20.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "idna" }, { name = "multidict" }, { name = "propcache" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/62/51/c0edba5219027f6eab262e139f73e2417b0f4efffa23bf562f6e18f76ca5/yarl-1.20.0.tar.gz", hash = "sha256:686d51e51ee5dfe62dec86e4866ee0e9ed66df700d55c828a615640adc885307", size = 185258 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/60/82/a59d8e21b20ffc836775fa7daedac51d16bb8f3010c4fcb495c4496aa922/yarl-1.20.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fdb5204d17cb32b2de2d1e21c7461cabfacf17f3645e4b9039f210c5d3378bf3", size = 145178 }, - { url = "https://files.pythonhosted.org/packages/ba/81/315a3f6f95947cfbf37c92d6fbce42a1a6207b6c38e8c2b452499ec7d449/yarl-1.20.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:eaddd7804d8e77d67c28d154ae5fab203163bd0998769569861258e525039d2a", size = 96859 }, - { url = "https://files.pythonhosted.org/packages/ad/17/9b64e575583158551b72272a1023cdbd65af54fe13421d856b2850a6ddb7/yarl-1.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:634b7ba6b4a85cf67e9df7c13a7fb2e44fa37b5d34501038d174a63eaac25ee2", size = 94647 }, - { url = "https://files.pythonhosted.org/packages/2c/29/8f291e7922a58a21349683f6120a85701aeefaa02e9f7c8a2dc24fe3f431/yarl-1.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d409e321e4addf7d97ee84162538c7258e53792eb7c6defd0c33647d754172e", size = 355788 }, - { url = "https://files.pythonhosted.org/packages/26/6d/b4892c80b805c42c228c6d11e03cafabf81662d371b0853e7f0f513837d5/yarl-1.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ea52f7328a36960ba3231c6677380fa67811b414798a6e071c7085c57b6d20a9", size = 344613 }, - { url = "https://files.pythonhosted.org/packages/d7/0e/517aa28d3f848589bae9593717b063a544b86ba0a807d943c70f48fcf3bb/yarl-1.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c8703517b924463994c344dcdf99a2d5ce9eca2b6882bb640aa555fb5efc706a", size = 370953 }, - { url = "https://files.pythonhosted.org/packages/5f/9b/5bd09d2f1ad6e6f7c2beae9e50db78edd2cca4d194d227b958955573e240/yarl-1.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:077989b09ffd2f48fb2d8f6a86c5fef02f63ffe6b1dd4824c76de7bb01e4f2e2", size = 369204 }, - { url = "https://files.pythonhosted.org/packages/9c/85/d793a703cf4bd0d4cd04e4b13cc3d44149470f790230430331a0c1f52df5/yarl-1.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0acfaf1da020253f3533526e8b7dd212838fdc4109959a2c53cafc6db611bff2", size = 358108 }, - { url = "https://files.pythonhosted.org/packages/6f/54/b6c71e13549c1f6048fbc14ce8d930ac5fb8bafe4f1a252e621a24f3f1f9/yarl-1.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b4230ac0b97ec5eeb91d96b324d66060a43fd0d2a9b603e3327ed65f084e41f8", size = 346610 }, - { url = "https://files.pythonhosted.org/packages/a0/1a/d6087d58bdd0d8a2a37bbcdffac9d9721af6ebe50d85304d9f9b57dfd862/yarl-1.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a6a1e6ae21cdd84011c24c78d7a126425148b24d437b5702328e4ba640a8902", size = 365378 }, - { url = "https://files.pythonhosted.org/packages/02/84/e25ddff4cbc001dbc4af76f8d41a3e23818212dd1f0a52044cbc60568872/yarl-1.20.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:86de313371ec04dd2531f30bc41a5a1a96f25a02823558ee0f2af0beaa7ca791", size = 356919 }, - { url = "https://files.pythonhosted.org/packages/04/76/898ae362353bf8f64636495d222c8014c8e5267df39b1a9fe1e1572fb7d0/yarl-1.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:dd59c9dd58ae16eaa0f48c3d0cbe6be8ab4dc7247c3ff7db678edecbaf59327f", size = 364248 }, - { url = "https://files.pythonhosted.org/packages/1b/b0/9d9198d83a622f1c40fdbf7bd13b224a6979f2e1fc2cf50bfb1d8773c495/yarl-1.20.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a0bc5e05f457b7c1994cc29e83b58f540b76234ba6b9648a4971ddc7f6aa52da", size = 378418 }, - { url = "https://files.pythonhosted.org/packages/c7/ce/1f50c1cc594cf5d3f5bf4a9b616fca68680deaec8ad349d928445ac52eb8/yarl-1.20.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c9471ca18e6aeb0e03276b5e9b27b14a54c052d370a9c0c04a68cefbd1455eb4", size = 383850 }, - { url = "https://files.pythonhosted.org/packages/89/1e/a59253a87b35bfec1a25bb5801fb69943330b67cfd266278eb07e0609012/yarl-1.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:40ed574b4df723583a26c04b298b283ff171bcc387bc34c2683235e2487a65a5", size = 381218 }, - { url = "https://files.pythonhosted.org/packages/85/b0/26f87df2b3044b0ef1a7cf66d321102bdca091db64c5ae853fcb2171c031/yarl-1.20.0-cp311-cp311-win32.whl", hash = "sha256:db243357c6c2bf3cd7e17080034ade668d54ce304d820c2a58514a4e51d0cfd6", size = 86606 }, - { url = "https://files.pythonhosted.org/packages/33/46/ca335c2e1f90446a77640a45eeb1cd8f6934f2c6e4df7db0f0f36ef9f025/yarl-1.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:8c12cd754d9dbd14204c328915e23b0c361b88f3cffd124129955e60a4fbfcfb", size = 93374 }, - { url = "https://files.pythonhosted.org/packages/c3/e8/3efdcb83073df978bb5b1a9cc0360ce596680e6c3fac01f2a994ccbb8939/yarl-1.20.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e06b9f6cdd772f9b665e5ba8161968e11e403774114420737f7884b5bd7bdf6f", size = 147089 }, - { url = "https://files.pythonhosted.org/packages/60/c3/9e776e98ea350f76f94dd80b408eaa54e5092643dbf65fd9babcffb60509/yarl-1.20.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b9ae2fbe54d859b3ade40290f60fe40e7f969d83d482e84d2c31b9bff03e359e", size = 97706 }, - { url = "https://files.pythonhosted.org/packages/0c/5b/45cdfb64a3b855ce074ae607b9fc40bc82e7613b94e7612b030255c93a09/yarl-1.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d12b8945250d80c67688602c891237994d203d42427cb14e36d1a732eda480e", size = 95719 }, - { url = "https://files.pythonhosted.org/packages/2d/4e/929633b249611eeed04e2f861a14ed001acca3ef9ec2a984a757b1515889/yarl-1.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:087e9731884621b162a3e06dc0d2d626e1542a617f65ba7cc7aeab279d55ad33", size = 343972 }, - { url = "https://files.pythonhosted.org/packages/49/fd/047535d326c913f1a90407a3baf7ff535b10098611eaef2c527e32e81ca1/yarl-1.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:69df35468b66c1a6e6556248e6443ef0ec5f11a7a4428cf1f6281f1879220f58", size = 339639 }, - { url = "https://files.pythonhosted.org/packages/48/2f/11566f1176a78f4bafb0937c0072410b1b0d3640b297944a6a7a556e1d0b/yarl-1.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b2992fe29002fd0d4cbaea9428b09af9b8686a9024c840b8a2b8f4ea4abc16f", size = 353745 }, - { url = "https://files.pythonhosted.org/packages/26/17/07dfcf034d6ae8837b33988be66045dd52f878dfb1c4e8f80a7343f677be/yarl-1.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c903e0b42aab48abfbac668b5a9d7b6938e721a6341751331bcd7553de2dcae", size = 354178 }, - { url = "https://files.pythonhosted.org/packages/15/45/212604d3142d84b4065d5f8cab6582ed3d78e4cc250568ef2a36fe1cf0a5/yarl-1.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf099e2432131093cc611623e0b0bcc399b8cddd9a91eded8bfb50402ec35018", size = 349219 }, - { url = "https://files.pythonhosted.org/packages/e6/e0/a10b30f294111c5f1c682461e9459935c17d467a760c21e1f7db400ff499/yarl-1.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a7f62f5dc70a6c763bec9ebf922be52aa22863d9496a9a30124d65b489ea672", size = 337266 }, - { url = "https://files.pythonhosted.org/packages/33/a6/6efa1d85a675d25a46a167f9f3e80104cde317dfdf7f53f112ae6b16a60a/yarl-1.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:54ac15a8b60382b2bcefd9a289ee26dc0920cf59b05368c9b2b72450751c6eb8", size = 360873 }, - { url = "https://files.pythonhosted.org/packages/77/67/c8ab718cb98dfa2ae9ba0f97bf3cbb7d45d37f13fe1fbad25ac92940954e/yarl-1.20.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:25b3bc0763a7aca16a0f1b5e8ef0f23829df11fb539a1b70476dcab28bd83da7", size = 360524 }, - { url = "https://files.pythonhosted.org/packages/bd/e8/c3f18660cea1bc73d9f8a2b3ef423def8dadbbae6c4afabdb920b73e0ead/yarl-1.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b2586e36dc070fc8fad6270f93242124df68b379c3a251af534030a4a33ef594", size = 365370 }, - { url = "https://files.pythonhosted.org/packages/c9/99/33f3b97b065e62ff2d52817155a89cfa030a1a9b43fee7843ef560ad9603/yarl-1.20.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:866349da9d8c5290cfefb7fcc47721e94de3f315433613e01b435473be63daa6", size = 373297 }, - { url = "https://files.pythonhosted.org/packages/3d/89/7519e79e264a5f08653d2446b26d4724b01198a93a74d2e259291d538ab1/yarl-1.20.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:33bb660b390a0554d41f8ebec5cd4475502d84104b27e9b42f5321c5192bfcd1", size = 378771 }, - { url = "https://files.pythonhosted.org/packages/3a/58/6c460bbb884abd2917c3eef6f663a4a873f8dc6f498561fc0ad92231c113/yarl-1.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:737e9f171e5a07031cbee5e9180f6ce21a6c599b9d4b2c24d35df20a52fabf4b", size = 375000 }, - { url = "https://files.pythonhosted.org/packages/3b/2a/dd7ed1aa23fea996834278d7ff178f215b24324ee527df53d45e34d21d28/yarl-1.20.0-cp312-cp312-win32.whl", hash = "sha256:839de4c574169b6598d47ad61534e6981979ca2c820ccb77bf70f4311dd2cc64", size = 86355 }, - { url = "https://files.pythonhosted.org/packages/ca/c6/333fe0338305c0ac1c16d5aa7cc4841208d3252bbe62172e0051006b5445/yarl-1.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:3d7dbbe44b443b0c4aa0971cb07dcb2c2060e4a9bf8d1301140a33a93c98e18c", size = 92904 }, - { url = "https://files.pythonhosted.org/packages/0f/6f/514c9bff2900c22a4f10e06297714dbaf98707143b37ff0bcba65a956221/yarl-1.20.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2137810a20b933b1b1b7e5cf06a64c3ed3b4747b0e5d79c9447c00db0e2f752f", size = 145030 }, - { url = "https://files.pythonhosted.org/packages/4e/9d/f88da3fa319b8c9c813389bfb3463e8d777c62654c7168e580a13fadff05/yarl-1.20.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:447c5eadd750db8389804030d15f43d30435ed47af1313303ed82a62388176d3", size = 96894 }, - { url = "https://files.pythonhosted.org/packages/cd/57/92e83538580a6968b2451d6c89c5579938a7309d4785748e8ad42ddafdce/yarl-1.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:42fbe577272c203528d402eec8bf4b2d14fd49ecfec92272334270b850e9cd7d", size = 94457 }, - { url = "https://files.pythonhosted.org/packages/e9/ee/7ee43bd4cf82dddd5da97fcaddb6fa541ab81f3ed564c42f146c83ae17ce/yarl-1.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18e321617de4ab170226cd15006a565d0fa0d908f11f724a2c9142d6b2812ab0", size = 343070 }, - { url = "https://files.pythonhosted.org/packages/4a/12/b5eccd1109e2097bcc494ba7dc5de156e41cf8309fab437ebb7c2b296ce3/yarl-1.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4345f58719825bba29895011e8e3b545e6e00257abb984f9f27fe923afca2501", size = 337739 }, - { url = "https://files.pythonhosted.org/packages/7d/6b/0eade8e49af9fc2585552f63c76fa59ef469c724cc05b29519b19aa3a6d5/yarl-1.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d9b980d7234614bc4674468ab173ed77d678349c860c3af83b1fffb6a837ddc", size = 351338 }, - { url = "https://files.pythonhosted.org/packages/45/cb/aaaa75d30087b5183c7b8a07b4fb16ae0682dd149a1719b3a28f54061754/yarl-1.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af4baa8a445977831cbaa91a9a84cc09debb10bc8391f128da2f7bd070fc351d", size = 353636 }, - { url = "https://files.pythonhosted.org/packages/98/9d/d9cb39ec68a91ba6e66fa86d97003f58570327d6713833edf7ad6ce9dde5/yarl-1.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:123393db7420e71d6ce40d24885a9e65eb1edefc7a5228db2d62bcab3386a5c0", size = 348061 }, - { url = "https://files.pythonhosted.org/packages/72/6b/103940aae893d0cc770b4c36ce80e2ed86fcb863d48ea80a752b8bda9303/yarl-1.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab47acc9332f3de1b39e9b702d9c916af7f02656b2a86a474d9db4e53ef8fd7a", size = 334150 }, - { url = "https://files.pythonhosted.org/packages/ef/b2/986bd82aa222c3e6b211a69c9081ba46484cffa9fab2a5235e8d18ca7a27/yarl-1.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4a34c52ed158f89876cba9c600b2c964dfc1ca52ba7b3ab6deb722d1d8be6df2", size = 362207 }, - { url = "https://files.pythonhosted.org/packages/14/7c/63f5922437b873795d9422cbe7eb2509d4b540c37ae5548a4bb68fd2c546/yarl-1.20.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:04d8cfb12714158abf2618f792c77bc5c3d8c5f37353e79509608be4f18705c9", size = 361277 }, - { url = "https://files.pythonhosted.org/packages/81/83/450938cccf732466953406570bdb42c62b5ffb0ac7ac75a1f267773ab5c8/yarl-1.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7dc63ad0d541c38b6ae2255aaa794434293964677d5c1ec5d0116b0e308031f5", size = 364990 }, - { url = "https://files.pythonhosted.org/packages/b4/de/af47d3a47e4a833693b9ec8e87debb20f09d9fdc9139b207b09a3e6cbd5a/yarl-1.20.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d02b591a64e4e6ca18c5e3d925f11b559c763b950184a64cf47d74d7e41877", size = 374684 }, - { url = "https://files.pythonhosted.org/packages/62/0b/078bcc2d539f1faffdc7d32cb29a2d7caa65f1a6f7e40795d8485db21851/yarl-1.20.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:95fc9876f917cac7f757df80a5dda9de59d423568460fe75d128c813b9af558e", size = 382599 }, - { url = "https://files.pythonhosted.org/packages/74/a9/4fdb1a7899f1fb47fd1371e7ba9e94bff73439ce87099d5dd26d285fffe0/yarl-1.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bb769ae5760cd1c6a712135ee7915f9d43f11d9ef769cb3f75a23e398a92d384", size = 378573 }, - { url = "https://files.pythonhosted.org/packages/fd/be/29f5156b7a319e4d2e5b51ce622b4dfb3aa8d8204cd2a8a339340fbfad40/yarl-1.20.0-cp313-cp313-win32.whl", hash = "sha256:70e0c580a0292c7414a1cead1e076c9786f685c1fc4757573d2967689b370e62", size = 86051 }, - { url = "https://files.pythonhosted.org/packages/52/56/05fa52c32c301da77ec0b5f63d2d9605946fe29defacb2a7ebd473c23b81/yarl-1.20.0-cp313-cp313-win_amd64.whl", hash = "sha256:4c43030e4b0af775a85be1fa0433119b1565673266a70bf87ef68a9d5ba3174c", size = 92742 }, - { url = "https://files.pythonhosted.org/packages/d4/2f/422546794196519152fc2e2f475f0e1d4d094a11995c81a465faf5673ffd/yarl-1.20.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b6c4c3d0d6a0ae9b281e492b1465c72de433b782e6b5001c8e7249e085b69051", size = 163575 }, - { url = "https://files.pythonhosted.org/packages/90/fc/67c64ddab6c0b4a169d03c637fb2d2a212b536e1989dec8e7e2c92211b7f/yarl-1.20.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8681700f4e4df891eafa4f69a439a6e7d480d64e52bf460918f58e443bd3da7d", size = 106121 }, - { url = "https://files.pythonhosted.org/packages/6d/00/29366b9eba7b6f6baed7d749f12add209b987c4cfbfa418404dbadc0f97c/yarl-1.20.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:84aeb556cb06c00652dbf87c17838eb6d92cfd317799a8092cee0e570ee11229", size = 103815 }, - { url = "https://files.pythonhosted.org/packages/28/f4/a2a4c967c8323c03689383dff73396281ced3b35d0ed140580825c826af7/yarl-1.20.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f166eafa78810ddb383e930d62e623d288fb04ec566d1b4790099ae0f31485f1", size = 408231 }, - { url = "https://files.pythonhosted.org/packages/0f/a1/66f7ffc0915877d726b70cc7a896ac30b6ac5d1d2760613603b022173635/yarl-1.20.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5d3d6d14754aefc7a458261027a562f024d4f6b8a798adb472277f675857b1eb", size = 390221 }, - { url = "https://files.pythonhosted.org/packages/41/15/cc248f0504610283271615e85bf38bc014224122498c2016d13a3a1b8426/yarl-1.20.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a8f64df8ed5d04c51260dbae3cc82e5649834eebea9eadfd829837b8093eb00", size = 411400 }, - { url = "https://files.pythonhosted.org/packages/5c/af/f0823d7e092bfb97d24fce6c7269d67fcd1aefade97d0a8189c4452e4d5e/yarl-1.20.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4d9949eaf05b4d30e93e4034a7790634bbb41b8be2d07edd26754f2e38e491de", size = 411714 }, - { url = "https://files.pythonhosted.org/packages/83/70/be418329eae64b9f1b20ecdaac75d53aef098797d4c2299d82ae6f8e4663/yarl-1.20.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c366b254082d21cc4f08f522ac201d0d83a8b8447ab562732931d31d80eb2a5", size = 404279 }, - { url = "https://files.pythonhosted.org/packages/19/f5/52e02f0075f65b4914eb890eea1ba97e6fd91dd821cc33a623aa707b2f67/yarl-1.20.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91bc450c80a2e9685b10e34e41aef3d44ddf99b3a498717938926d05ca493f6a", size = 384044 }, - { url = "https://files.pythonhosted.org/packages/6a/36/b0fa25226b03d3f769c68d46170b3e92b00ab3853d73127273ba22474697/yarl-1.20.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c2aa4387de4bc3a5fe158080757748d16567119bef215bec643716b4fbf53f9", size = 416236 }, - { url = "https://files.pythonhosted.org/packages/cb/3a/54c828dd35f6831dfdd5a79e6c6b4302ae2c5feca24232a83cb75132b205/yarl-1.20.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d2cbca6760a541189cf87ee54ff891e1d9ea6406079c66341008f7ef6ab61145", size = 402034 }, - { url = "https://files.pythonhosted.org/packages/10/97/c7bf5fba488f7e049f9ad69c1b8fdfe3daa2e8916b3d321aa049e361a55a/yarl-1.20.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:798a5074e656f06b9fad1a162be5a32da45237ce19d07884d0b67a0aa9d5fdda", size = 407943 }, - { url = "https://files.pythonhosted.org/packages/fd/a4/022d2555c1e8fcff08ad7f0f43e4df3aba34f135bff04dd35d5526ce54ab/yarl-1.20.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f106e75c454288472dbe615accef8248c686958c2e7dd3b8d8ee2669770d020f", size = 423058 }, - { url = "https://files.pythonhosted.org/packages/4c/f6/0873a05563e5df29ccf35345a6ae0ac9e66588b41fdb7043a65848f03139/yarl-1.20.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:3b60a86551669c23dc5445010534d2c5d8a4e012163218fc9114e857c0586fdd", size = 423792 }, - { url = "https://files.pythonhosted.org/packages/9e/35/43fbbd082708fa42e923f314c24f8277a28483d219e049552e5007a9aaca/yarl-1.20.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3e429857e341d5e8e15806118e0294f8073ba9c4580637e59ab7b238afca836f", size = 422242 }, - { url = "https://files.pythonhosted.org/packages/ed/f7/f0f2500cf0c469beb2050b522c7815c575811627e6d3eb9ec7550ddd0bfe/yarl-1.20.0-cp313-cp313t-win32.whl", hash = "sha256:65a4053580fe88a63e8e4056b427224cd01edfb5f951498bfefca4052f0ce0ac", size = 93816 }, - { url = "https://files.pythonhosted.org/packages/3f/93/f73b61353b2a699d489e782c3f5998b59f974ec3156a2050a52dfd7e8946/yarl-1.20.0-cp313-cp313t-win_amd64.whl", hash = "sha256:53b2da3a6ca0a541c1ae799c349788d480e5144cac47dba0266c7cb6c76151fe", size = 101093 }, - { url = "https://files.pythonhosted.org/packages/ea/1f/70c57b3d7278e94ed22d85e09685d3f0a38ebdd8c5c73b65ba4c0d0fe002/yarl-1.20.0-py3-none-any.whl", hash = "sha256:5d0fe6af927a47a230f31e6004621fd0959eaa915fc62acfafa67ff7229a3124", size = 46124 }, +sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/18/893b50efc2350e47a874c5c2d67e55a0ea5df91186b2a6f5ac52eff887cd/yarl-1.20.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:47ee6188fea634bdfaeb2cc420f5b3b17332e6225ce88149a17c413c77ff269e", size = 133833 }, + { url = "https://files.pythonhosted.org/packages/89/ed/b8773448030e6fc47fa797f099ab9eab151a43a25717f9ac043844ad5ea3/yarl-1.20.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d0f6500f69e8402d513e5eedb77a4e1818691e8f45e6b687147963514d84b44b", size = 91070 }, + { url = "https://files.pythonhosted.org/packages/e3/e3/409bd17b1e42619bf69f60e4f031ce1ccb29bd7380117a55529e76933464/yarl-1.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7a8900a42fcdaad568de58887c7b2f602962356908eedb7628eaf6021a6e435b", size = 89818 }, + { url = "https://files.pythonhosted.org/packages/f8/77/64d8431a4d77c856eb2d82aa3de2ad6741365245a29b3a9543cd598ed8c5/yarl-1.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bad6d131fda8ef508b36be3ece16d0902e80b88ea7200f030a0f6c11d9e508d4", size = 347003 }, + { url = "https://files.pythonhosted.org/packages/8d/d2/0c7e4def093dcef0bd9fa22d4d24b023788b0a33b8d0088b51aa51e21e99/yarl-1.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:df018d92fe22aaebb679a7f89fe0c0f368ec497e3dda6cb81a567610f04501f1", size = 336537 }, + { url = "https://files.pythonhosted.org/packages/f0/f3/fc514f4b2cf02cb59d10cbfe228691d25929ce8f72a38db07d3febc3f706/yarl-1.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f969afbb0a9b63c18d0feecf0db09d164b7a44a053e78a7d05f5df163e43833", size = 362358 }, + { url = "https://files.pythonhosted.org/packages/ea/6d/a313ac8d8391381ff9006ac05f1d4331cee3b1efaa833a53d12253733255/yarl-1.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:812303eb4aa98e302886ccda58d6b099e3576b1b9276161469c25803a8db277d", size = 357362 }, + { url = "https://files.pythonhosted.org/packages/00/70/8f78a95d6935a70263d46caa3dd18e1f223cf2f2ff2037baa01a22bc5b22/yarl-1.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98c4a7d166635147924aa0bf9bfe8d8abad6fffa6102de9c99ea04a1376f91e8", size = 348979 }, + { url = "https://files.pythonhosted.org/packages/cb/05/42773027968968f4f15143553970ee36ead27038d627f457cc44bbbeecf3/yarl-1.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12e768f966538e81e6e7550f9086a6236b16e26cd964cf4df35349970f3551cf", size = 337274 }, + { url = "https://files.pythonhosted.org/packages/05/be/665634aa196954156741ea591d2f946f1b78ceee8bb8f28488bf28c0dd62/yarl-1.20.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fe41919b9d899661c5c28a8b4b0acf704510b88f27f0934ac7a7bebdd8938d5e", size = 363294 }, + { url = "https://files.pythonhosted.org/packages/eb/90/73448401d36fa4e210ece5579895731f190d5119c4b66b43b52182e88cd5/yarl-1.20.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:8601bc010d1d7780592f3fc1bdc6c72e2b6466ea34569778422943e1a1f3c389", size = 358169 }, + { url = "https://files.pythonhosted.org/packages/c3/b0/fce922d46dc1eb43c811f1889f7daa6001b27a4005587e94878570300881/yarl-1.20.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:daadbdc1f2a9033a2399c42646fbd46da7992e868a5fe9513860122d7fe7a73f", size = 362776 }, + { url = "https://files.pythonhosted.org/packages/f1/0d/b172628fce039dae8977fd22caeff3eeebffd52e86060413f5673767c427/yarl-1.20.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:03aa1e041727cb438ca762628109ef1333498b122e4c76dd858d186a37cec845", size = 381341 }, + { url = "https://files.pythonhosted.org/packages/6b/9b/5b886d7671f4580209e855974fe1cecec409aa4a89ea58b8f0560dc529b1/yarl-1.20.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:642980ef5e0fa1de5fa96d905c7e00cb2c47cb468bfcac5a18c58e27dbf8d8d1", size = 379988 }, + { url = "https://files.pythonhosted.org/packages/73/be/75ef5fd0fcd8f083a5d13f78fd3f009528132a1f2a1d7c925c39fa20aa79/yarl-1.20.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:86971e2795584fe8c002356d3b97ef6c61862720eeff03db2a7c86b678d85b3e", size = 371113 }, + { url = "https://files.pythonhosted.org/packages/50/4f/62faab3b479dfdcb741fe9e3f0323e2a7d5cd1ab2edc73221d57ad4834b2/yarl-1.20.1-cp311-cp311-win32.whl", hash = "sha256:597f40615b8d25812f14562699e287f0dcc035d25eb74da72cae043bb884d773", size = 81485 }, + { url = "https://files.pythonhosted.org/packages/f0/09/d9c7942f8f05c32ec72cd5c8e041c8b29b5807328b68b4801ff2511d4d5e/yarl-1.20.1-cp311-cp311-win_amd64.whl", hash = "sha256:26ef53a9e726e61e9cd1cda6b478f17e350fb5800b4bd1cd9fe81c4d91cfeb2e", size = 86686 }, + { url = "https://files.pythonhosted.org/packages/5f/9a/cb7fad7d73c69f296eda6815e4a2c7ed53fc70c2f136479a91c8e5fbdb6d/yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9", size = 133667 }, + { url = "https://files.pythonhosted.org/packages/67/38/688577a1cb1e656e3971fb66a3492501c5a5df56d99722e57c98249e5b8a/yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a", size = 91025 }, + { url = "https://files.pythonhosted.org/packages/50/ec/72991ae51febeb11a42813fc259f0d4c8e0507f2b74b5514618d8b640365/yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2", size = 89709 }, + { url = "https://files.pythonhosted.org/packages/99/da/4d798025490e89426e9f976702e5f9482005c548c579bdae792a4c37769e/yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee", size = 352287 }, + { url = "https://files.pythonhosted.org/packages/1a/26/54a15c6a567aac1c61b18aa0f4b8aa2e285a52d547d1be8bf48abe2b3991/yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819", size = 345429 }, + { url = "https://files.pythonhosted.org/packages/d6/95/9dcf2386cb875b234353b93ec43e40219e14900e046bf6ac118f94b1e353/yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16", size = 365429 }, + { url = "https://files.pythonhosted.org/packages/91/b2/33a8750f6a4bc224242a635f5f2cff6d6ad5ba651f6edcccf721992c21a0/yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6", size = 363862 }, + { url = "https://files.pythonhosted.org/packages/98/28/3ab7acc5b51f4434b181b0cee8f1f4b77a65919700a355fb3617f9488874/yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd", size = 355616 }, + { url = "https://files.pythonhosted.org/packages/36/a3/f666894aa947a371724ec7cd2e5daa78ee8a777b21509b4252dd7bd15e29/yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a", size = 339954 }, + { url = "https://files.pythonhosted.org/packages/f1/81/5f466427e09773c04219d3450d7a1256138a010b6c9f0af2d48565e9ad13/yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38", size = 365575 }, + { url = "https://files.pythonhosted.org/packages/2e/e3/e4b0ad8403e97e6c9972dd587388940a032f030ebec196ab81a3b8e94d31/yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef", size = 365061 }, + { url = "https://files.pythonhosted.org/packages/ac/99/b8a142e79eb86c926f9f06452eb13ecb1bb5713bd01dc0038faf5452e544/yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f", size = 364142 }, + { url = "https://files.pythonhosted.org/packages/34/f2/08ed34a4a506d82a1a3e5bab99ccd930a040f9b6449e9fd050320e45845c/yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8", size = 381894 }, + { url = "https://files.pythonhosted.org/packages/92/f8/9a3fbf0968eac704f681726eff595dce9b49c8a25cd92bf83df209668285/yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a", size = 383378 }, + { url = "https://files.pythonhosted.org/packages/af/85/9363f77bdfa1e4d690957cd39d192c4cacd1c58965df0470a4905253b54f/yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004", size = 374069 }, + { url = "https://files.pythonhosted.org/packages/35/99/9918c8739ba271dcd935400cff8b32e3cd319eaf02fcd023d5dcd487a7c8/yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5", size = 81249 }, + { url = "https://files.pythonhosted.org/packages/eb/83/5d9092950565481b413b31a23e75dd3418ff0a277d6e0abf3729d4d1ce25/yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698", size = 86710 }, + { url = "https://files.pythonhosted.org/packages/8a/e1/2411b6d7f769a07687acee88a062af5833cf1966b7266f3d8dfb3d3dc7d3/yarl-1.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0b5ff0fbb7c9f1b1b5ab53330acbfc5247893069e7716840c8e7d5bb7355038a", size = 131811 }, + { url = "https://files.pythonhosted.org/packages/b2/27/584394e1cb76fb771371770eccad35de400e7b434ce3142c2dd27392c968/yarl-1.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:14f326acd845c2b2e2eb38fb1346c94f7f3b01a4f5c788f8144f9b630bfff9a3", size = 90078 }, + { url = "https://files.pythonhosted.org/packages/bf/9a/3246ae92d4049099f52d9b0fe3486e3b500e29b7ea872d0f152966fc209d/yarl-1.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f60e4ad5db23f0b96e49c018596707c3ae89f5d0bd97f0ad3684bcbad899f1e7", size = 88748 }, + { url = "https://files.pythonhosted.org/packages/a3/25/35afe384e31115a1a801fbcf84012d7a066d89035befae7c5d4284df1e03/yarl-1.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49bdd1b8e00ce57e68ba51916e4bb04461746e794e7c4d4bbc42ba2f18297691", size = 349595 }, + { url = "https://files.pythonhosted.org/packages/28/2d/8aca6cb2cabc8f12efcb82749b9cefecbccfc7b0384e56cd71058ccee433/yarl-1.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:66252d780b45189975abfed839616e8fd2dbacbdc262105ad7742c6ae58f3e31", size = 342616 }, + { url = "https://files.pythonhosted.org/packages/0b/e9/1312633d16b31acf0098d30440ca855e3492d66623dafb8e25b03d00c3da/yarl-1.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59174e7332f5d153d8f7452a102b103e2e74035ad085f404df2e40e663a22b28", size = 361324 }, + { url = "https://files.pythonhosted.org/packages/bc/a0/688cc99463f12f7669eec7c8acc71ef56a1521b99eab7cd3abb75af887b0/yarl-1.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3968ec7d92a0c0f9ac34d5ecfd03869ec0cab0697c91a45db3fbbd95fe1b653", size = 359676 }, + { url = "https://files.pythonhosted.org/packages/af/44/46407d7f7a56e9a85a4c207724c9f2c545c060380718eea9088f222ba697/yarl-1.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1a4fbb50e14396ba3d375f68bfe02215d8e7bc3ec49da8341fe3157f59d2ff5", size = 352614 }, + { url = "https://files.pythonhosted.org/packages/b1/91/31163295e82b8d5485d31d9cf7754d973d41915cadce070491778d9c9825/yarl-1.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11a62c839c3a8eac2410e951301309426f368388ff2f33799052787035793b02", size = 336766 }, + { url = "https://files.pythonhosted.org/packages/b4/8e/c41a5bc482121f51c083c4c2bcd16b9e01e1cf8729e380273a952513a21f/yarl-1.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:041eaa14f73ff5a8986b4388ac6bb43a77f2ea09bf1913df7a35d4646db69e53", size = 364615 }, + { url = "https://files.pythonhosted.org/packages/e3/5b/61a3b054238d33d70ea06ebba7e58597891b71c699e247df35cc984ab393/yarl-1.20.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:377fae2fef158e8fd9d60b4c8751387b8d1fb121d3d0b8e9b0be07d1b41e83dc", size = 360982 }, + { url = "https://files.pythonhosted.org/packages/df/a3/6a72fb83f8d478cb201d14927bc8040af901811a88e0ff2da7842dd0ed19/yarl-1.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1c92f4390e407513f619d49319023664643d3339bd5e5a56a3bebe01bc67ec04", size = 369792 }, + { url = "https://files.pythonhosted.org/packages/7c/af/4cc3c36dfc7c077f8dedb561eb21f69e1e9f2456b91b593882b0b18c19dc/yarl-1.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d25ddcf954df1754ab0f86bb696af765c5bfaba39b74095f27eececa049ef9a4", size = 382049 }, + { url = "https://files.pythonhosted.org/packages/19/3a/e54e2c4752160115183a66dc9ee75a153f81f3ab2ba4bf79c3c53b33de34/yarl-1.20.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:909313577e9619dcff8c31a0ea2aa0a2a828341d92673015456b3ae492e7317b", size = 384774 }, + { url = "https://files.pythonhosted.org/packages/9c/20/200ae86dabfca89060ec6447649f219b4cbd94531e425e50d57e5f5ac330/yarl-1.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:793fd0580cb9664548c6b83c63b43c477212c0260891ddf86809e1c06c8b08f1", size = 374252 }, + { url = "https://files.pythonhosted.org/packages/83/75/11ee332f2f516b3d094e89448da73d557687f7d137d5a0f48c40ff211487/yarl-1.20.1-cp313-cp313-win32.whl", hash = "sha256:468f6e40285de5a5b3c44981ca3a319a4b208ccc07d526b20b12aeedcfa654b7", size = 81198 }, + { url = "https://files.pythonhosted.org/packages/ba/ba/39b1ecbf51620b40ab402b0fc817f0ff750f6d92712b44689c2c215be89d/yarl-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:495b4ef2fea40596bfc0affe3837411d6aa3371abcf31aac0ccc4bdd64d4ef5c", size = 86346 }, + { url = "https://files.pythonhosted.org/packages/43/c7/669c52519dca4c95153c8ad96dd123c79f354a376346b198f438e56ffeb4/yarl-1.20.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f60233b98423aab21d249a30eb27c389c14929f47be8430efa7dbd91493a729d", size = 138826 }, + { url = "https://files.pythonhosted.org/packages/6a/42/fc0053719b44f6ad04a75d7f05e0e9674d45ef62f2d9ad2c1163e5c05827/yarl-1.20.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6f3eff4cc3f03d650d8755c6eefc844edde99d641d0dcf4da3ab27141a5f8ddf", size = 93217 }, + { url = "https://files.pythonhosted.org/packages/4f/7f/fa59c4c27e2a076bba0d959386e26eba77eb52ea4a0aac48e3515c186b4c/yarl-1.20.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:69ff8439d8ba832d6bed88af2c2b3445977eba9a4588b787b32945871c2444e3", size = 92700 }, + { url = "https://files.pythonhosted.org/packages/2f/d4/062b2f48e7c93481e88eff97a6312dca15ea200e959f23e96d8ab898c5b8/yarl-1.20.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cf34efa60eb81dd2645a2e13e00bb98b76c35ab5061a3989c7a70f78c85006d", size = 347644 }, + { url = "https://files.pythonhosted.org/packages/89/47/78b7f40d13c8f62b499cc702fdf69e090455518ae544c00a3bf4afc9fc77/yarl-1.20.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8e0fe9364ad0fddab2688ce72cb7a8e61ea42eff3c7caeeb83874a5d479c896c", size = 323452 }, + { url = "https://files.pythonhosted.org/packages/eb/2b/490d3b2dc66f52987d4ee0d3090a147ea67732ce6b4d61e362c1846d0d32/yarl-1.20.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f64fbf81878ba914562c672024089e3401974a39767747691c65080a67b18c1", size = 346378 }, + { url = "https://files.pythonhosted.org/packages/66/ad/775da9c8a94ce925d1537f939a4f17d782efef1f973039d821cbe4bcc211/yarl-1.20.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6342d643bf9a1de97e512e45e4b9560a043347e779a173250824f8b254bd5ce", size = 353261 }, + { url = "https://files.pythonhosted.org/packages/4b/23/0ed0922b47a4f5c6eb9065d5ff1e459747226ddce5c6a4c111e728c9f701/yarl-1.20.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56dac5f452ed25eef0f6e3c6a066c6ab68971d96a9fb441791cad0efba6140d3", size = 335987 }, + { url = "https://files.pythonhosted.org/packages/3e/49/bc728a7fe7d0e9336e2b78f0958a2d6b288ba89f25a1762407a222bf53c3/yarl-1.20.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7d7f497126d65e2cad8dc5f97d34c27b19199b6414a40cb36b52f41b79014be", size = 329361 }, + { url = "https://files.pythonhosted.org/packages/93/8f/b811b9d1f617c83c907e7082a76e2b92b655400e61730cd61a1f67178393/yarl-1.20.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:67e708dfb8e78d8a19169818eeb5c7a80717562de9051bf2413aca8e3696bf16", size = 346460 }, + { url = "https://files.pythonhosted.org/packages/70/fd/af94f04f275f95da2c3b8b5e1d49e3e79f1ed8b6ceb0f1664cbd902773ff/yarl-1.20.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:595c07bc79af2494365cc96ddeb772f76272364ef7c80fb892ef9d0649586513", size = 334486 }, + { url = "https://files.pythonhosted.org/packages/84/65/04c62e82704e7dd0a9b3f61dbaa8447f8507655fd16c51da0637b39b2910/yarl-1.20.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7bdd2f80f4a7df852ab9ab49484a4dee8030023aa536df41f2d922fd57bf023f", size = 342219 }, + { url = "https://files.pythonhosted.org/packages/91/95/459ca62eb958381b342d94ab9a4b6aec1ddec1f7057c487e926f03c06d30/yarl-1.20.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c03bfebc4ae8d862f853a9757199677ab74ec25424d0ebd68a0027e9c639a390", size = 350693 }, + { url = "https://files.pythonhosted.org/packages/a6/00/d393e82dd955ad20617abc546a8f1aee40534d599ff555ea053d0ec9bf03/yarl-1.20.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:344d1103e9c1523f32a5ed704d576172d2cabed3122ea90b1d4e11fe17c66458", size = 355803 }, + { url = "https://files.pythonhosted.org/packages/9e/ed/c5fb04869b99b717985e244fd93029c7a8e8febdfcffa06093e32d7d44e7/yarl-1.20.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:88cab98aa4e13e1ade8c141daeedd300a4603b7132819c484841bb7af3edce9e", size = 341709 }, + { url = "https://files.pythonhosted.org/packages/24/fd/725b8e73ac2a50e78a4534ac43c6addf5c1c2d65380dd48a9169cc6739a9/yarl-1.20.1-cp313-cp313t-win32.whl", hash = "sha256:b121ff6a7cbd4abc28985b6028235491941b9fe8fe226e6fdc539c977ea1739d", size = 86591 }, + { url = "https://files.pythonhosted.org/packages/94/c3/b2e9f38bc3e11191981d57ea08cab2166e74ea770024a646617c9cddd9f6/yarl-1.20.1-cp313-cp313t-win_amd64.whl", hash = "sha256:541d050a355bbbc27e55d906bc91cb6fe42f96c01413dd0f4ed5a5240513874f", size = 93003 }, + { url = "https://files.pythonhosted.org/packages/b4/2d/2345fce04cfd4bee161bf1e7d9cdc702e3e16109021035dbb24db654a622/yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77", size = 46542 }, ] [[package]] @@ -3992,9 +3809,9 @@ wheels = [ [[package]] name = "zipp" -version = "3.22.0" +version = "3.23.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/12/b6/7b3d16792fdf94f146bed92be90b4eb4563569eca91513c8609aebf0c167/zipp-3.22.0.tar.gz", hash = "sha256:dd2f28c3ce4bc67507bfd3781d21b7bb2be31103b51a4553ad7d90b84e57ace5", size = 25257 } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/da/f64669af4cae46f17b90798a827519ce3737d31dbafad65d391e49643dc4/zipp-3.22.0-py3-none-any.whl", hash = "sha256:fe208f65f2aca48b81f9e6fd8cf7b8b32c26375266b009b413d45306b6148343", size = 9796 }, + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276 }, ] From 4062a770be50a16db4a5c2adc4185eea2454b854 Mon Sep 17 00:00:00 2001 From: Altay Sansal Date: Mon, 7 Jul 2025 09:12:28 -0500 Subject: [PATCH 18/19] unpin zarr because breaking bug fixed (#569) --- pyproject.toml | 2 +- uv.lock | 391 +++++++++++++++++++++++++------------------------ 2 files changed, 202 insertions(+), 191 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a9e14605..e2f72190 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ dependencies = [ "segy (>=0.4.1.post2,<0.5.0)", "tqdm (>=4.67.1,<5.0.0)", "xarray>=2025.6.1", - "zarr (>=3.0.8,<3.0.9)", + "zarr (>=3.0.10,<4.0.0)", ] [project.optional-dependencies] diff --git a/uv.lock b/uv.lock index 964a1c2d..6f04c363 100644 --- a/uv.lock +++ b/uv.lock @@ -130,14 +130,15 @@ wheels = [ [[package]] name = "aiosignal" -version = "1.3.2" +version = "1.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "frozenlist" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ba/b5/6d55e80f6d8a08ce22b982eafa278d823b541c925f11ee774b0b9c43473d/aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54", size = 19424 } +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/6a/bc7e17a3e87a2985d3e8f4da4cd0f481060eb78fb08596c42be62c90a4d9/aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5", size = 7597 }, + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490 }, ] [[package]] @@ -201,16 +202,16 @@ wheels = [ [[package]] name = "azure-core" -version = "1.34.0" +version = "1.35.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "requests" }, { name = "six" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c9/29/ff7a519a315e41c85bab92a7478c6acd1cf0b14353139a08caee4c691f77/azure_core-1.34.0.tar.gz", hash = "sha256:bdb544989f246a0ad1c85d72eeb45f2f835afdcbc5b45e43f0dbde7461c81ece", size = 297999 } +sdist = { url = "https://files.pythonhosted.org/packages/ce/89/f53968635b1b2e53e4aad2dd641488929fef4ca9dfb0b97927fa7697ddf3/azure_core-1.35.0.tar.gz", hash = "sha256:c0be528489485e9ede59b6971eb63c1eaacf83ef53001bfe3904e475e972be5c", size = 339689 } wheels = [ - { url = "https://files.pythonhosted.org/packages/84/9e/5c87b49f65bb16571599bc789857d0ded2f53014d3392bc88a5d1f3ad779/azure_core-1.34.0-py3-none-any.whl", hash = "sha256:0615d3b756beccdb6624d1c0ae97284f38b78fb59a2a9839bf927c66fbbdddd6", size = 207409 }, + { url = "https://files.pythonhosted.org/packages/d4/78/bf94897361fdd650850f0f2e405b2293e2f12808239046232bdedf554301/azure_core-1.35.0-py3-none-any.whl", hash = "sha256:8db78c72868a58f3de8991eb4d22c4d368fae226dac1002998d6c50437e7dad1", size = 210708 }, ] [[package]] @@ -547,56 +548,56 @@ wheels = [ [[package]] name = "coverage" -version = "7.9.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e7/e0/98670a80884f64578f0c22cd70c5e81a6e07b08167721c7487b4d70a7ca0/coverage-7.9.1.tar.gz", hash = "sha256:6cf43c78c4282708a28e466316935ec7489a9c487518a77fa68f716c67909cec", size = 813650 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/60/34/fa69372a07d0903a78ac103422ad34db72281c9fc625eba94ac1185da66f/coverage-7.9.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:95c765060e65c692da2d2f51a9499c5e9f5cf5453aeaf1420e3fc847cc060582", size = 212146 }, - { url = "https://files.pythonhosted.org/packages/27/f0/da1894915d2767f093f081c42afeba18e760f12fdd7a2f4acbe00564d767/coverage-7.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ba383dc6afd5ec5b7a0d0c23d38895db0e15bcba7fb0fa8901f245267ac30d86", size = 212536 }, - { url = "https://files.pythonhosted.org/packages/10/d5/3fc33b06e41e390f88eef111226a24e4504d216ab8e5d1a7089aa5a3c87a/coverage-7.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37ae0383f13cbdcf1e5e7014489b0d71cc0106458878ccde52e8a12ced4298ed", size = 245092 }, - { url = "https://files.pythonhosted.org/packages/0a/39/7aa901c14977aba637b78e95800edf77f29f5a380d29768c5b66f258305b/coverage-7.9.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69aa417a030bf11ec46149636314c24c8d60fadb12fc0ee8f10fda0d918c879d", size = 242806 }, - { url = "https://files.pythonhosted.org/packages/43/fc/30e5cfeaf560b1fc1989227adedc11019ce4bb7cce59d65db34fe0c2d963/coverage-7.9.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a4be2a28656afe279b34d4f91c3e26eccf2f85500d4a4ff0b1f8b54bf807338", size = 244610 }, - { url = "https://files.pythonhosted.org/packages/bf/15/cca62b13f39650bc87b2b92bb03bce7f0e79dd0bf2c7529e9fc7393e4d60/coverage-7.9.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:382e7ddd5289f140259b610e5f5c58f713d025cb2f66d0eb17e68d0a94278875", size = 244257 }, - { url = "https://files.pythonhosted.org/packages/cd/1a/c0f2abe92c29e1464dbd0ff9d56cb6c88ae2b9e21becdb38bea31fcb2f6c/coverage-7.9.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e5532482344186c543c37bfad0ee6069e8ae4fc38d073b8bc836fc8f03c9e250", size = 242309 }, - { url = "https://files.pythonhosted.org/packages/57/8d/c6fd70848bd9bf88fa90df2af5636589a8126d2170f3aade21ed53f2b67a/coverage-7.9.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a39d18b3f50cc121d0ce3838d32d58bd1d15dab89c910358ebefc3665712256c", size = 242898 }, - { url = "https://files.pythonhosted.org/packages/c2/9e/6ca46c7bff4675f09a66fe2797cd1ad6a24f14c9c7c3b3ebe0470a6e30b8/coverage-7.9.1-cp311-cp311-win32.whl", hash = "sha256:dd24bd8d77c98557880def750782df77ab2b6885a18483dc8588792247174b32", size = 214561 }, - { url = "https://files.pythonhosted.org/packages/a1/30/166978c6302010742dabcdc425fa0f938fa5a800908e39aff37a7a876a13/coverage-7.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:6b55ad10a35a21b8015eabddc9ba31eb590f54adc9cd39bcf09ff5349fd52125", size = 215493 }, - { url = "https://files.pythonhosted.org/packages/60/07/a6d2342cd80a5be9f0eeab115bc5ebb3917b4a64c2953534273cf9bc7ae6/coverage-7.9.1-cp311-cp311-win_arm64.whl", hash = "sha256:6ad935f0016be24c0e97fc8c40c465f9c4b85cbbe6eac48934c0dc4d2568321e", size = 213869 }, - { url = "https://files.pythonhosted.org/packages/68/d9/7f66eb0a8f2fce222de7bdc2046ec41cb31fe33fb55a330037833fb88afc/coverage-7.9.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a8de12b4b87c20de895f10567639c0797b621b22897b0af3ce4b4e204a743626", size = 212336 }, - { url = "https://files.pythonhosted.org/packages/20/20/e07cb920ef3addf20f052ee3d54906e57407b6aeee3227a9c91eea38a665/coverage-7.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5add197315a054e92cee1b5f686a2bcba60c4c3e66ee3de77ace6c867bdee7cb", size = 212571 }, - { url = "https://files.pythonhosted.org/packages/78/f8/96f155de7e9e248ca9c8ff1a40a521d944ba48bec65352da9be2463745bf/coverage-7.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:600a1d4106fe66f41e5d0136dfbc68fe7200a5cbe85610ddf094f8f22e1b0300", size = 246377 }, - { url = "https://files.pythonhosted.org/packages/3e/cf/1d783bd05b7bca5c10ded5f946068909372e94615a4416afadfe3f63492d/coverage-7.9.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a876e4c3e5a2a1715a6608906aa5a2e0475b9c0f68343c2ada98110512ab1d8", size = 243394 }, - { url = "https://files.pythonhosted.org/packages/02/dd/e7b20afd35b0a1abea09fb3998e1abc9f9bd953bee548f235aebd2b11401/coverage-7.9.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81f34346dd63010453922c8e628a52ea2d2ccd73cb2487f7700ac531b247c8a5", size = 245586 }, - { url = "https://files.pythonhosted.org/packages/4e/38/b30b0006fea9d617d1cb8e43b1bc9a96af11eff42b87eb8c716cf4d37469/coverage-7.9.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:888f8eee13f2377ce86d44f338968eedec3291876b0b8a7289247ba52cb984cd", size = 245396 }, - { url = "https://files.pythonhosted.org/packages/31/e4/4d8ec1dc826e16791f3daf1b50943e8e7e1eb70e8efa7abb03936ff48418/coverage-7.9.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9969ef1e69b8c8e1e70d591f91bbc37fc9a3621e447525d1602801a24ceda898", size = 243577 }, - { url = "https://files.pythonhosted.org/packages/25/f4/b0e96c5c38e6e40ef465c4bc7f138863e2909c00e54a331da335faf0d81a/coverage-7.9.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:60c458224331ee3f1a5b472773e4a085cc27a86a0b48205409d364272d67140d", size = 244809 }, - { url = "https://files.pythonhosted.org/packages/8a/65/27e0a1fa5e2e5079bdca4521be2f5dabf516f94e29a0defed35ac2382eb2/coverage-7.9.1-cp312-cp312-win32.whl", hash = "sha256:5f646a99a8c2b3ff4c6a6e081f78fad0dde275cd59f8f49dc4eab2e394332e74", size = 214724 }, - { url = "https://files.pythonhosted.org/packages/9b/a8/d5b128633fd1a5e0401a4160d02fa15986209a9e47717174f99dc2f7166d/coverage-7.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:30f445f85c353090b83e552dcbbdad3ec84c7967e108c3ae54556ca69955563e", size = 215535 }, - { url = "https://files.pythonhosted.org/packages/a3/37/84bba9d2afabc3611f3e4325ee2c6a47cd449b580d4a606b240ce5a6f9bf/coverage-7.9.1-cp312-cp312-win_arm64.whl", hash = "sha256:af41da5dca398d3474129c58cb2b106a5d93bbb196be0d307ac82311ca234342", size = 213904 }, - { url = "https://files.pythonhosted.org/packages/d0/a7/a027970c991ca90f24e968999f7d509332daf6b8c3533d68633930aaebac/coverage-7.9.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:31324f18d5969feef7344a932c32428a2d1a3e50b15a6404e97cba1cc9b2c631", size = 212358 }, - { url = "https://files.pythonhosted.org/packages/f2/48/6aaed3651ae83b231556750280682528fea8ac7f1232834573472d83e459/coverage-7.9.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0c804506d624e8a20fb3108764c52e0eef664e29d21692afa375e0dd98dc384f", size = 212620 }, - { url = "https://files.pythonhosted.org/packages/6c/2a/f4b613f3b44d8b9f144847c89151992b2b6b79cbc506dee89ad0c35f209d/coverage-7.9.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef64c27bc40189f36fcc50c3fb8f16ccda73b6a0b80d9bd6e6ce4cffcd810bbd", size = 245788 }, - { url = "https://files.pythonhosted.org/packages/04/d2/de4fdc03af5e4e035ef420ed26a703c6ad3d7a07aff2e959eb84e3b19ca8/coverage-7.9.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4fe2348cc6ec372e25adec0219ee2334a68d2f5222e0cba9c0d613394e12d86", size = 243001 }, - { url = "https://files.pythonhosted.org/packages/f5/e8/eed18aa5583b0423ab7f04e34659e51101135c41cd1dcb33ac1d7013a6d6/coverage-7.9.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34ed2186fe52fcc24d4561041979a0dec69adae7bce2ae8d1c49eace13e55c43", size = 244985 }, - { url = "https://files.pythonhosted.org/packages/17/f8/ae9e5cce8885728c934eaa58ebfa8281d488ef2afa81c3dbc8ee9e6d80db/coverage-7.9.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:25308bd3d00d5eedd5ae7d4357161f4df743e3c0240fa773ee1b0f75e6c7c0f1", size = 245152 }, - { url = "https://files.pythonhosted.org/packages/5a/c8/272c01ae792bb3af9b30fac14d71d63371db227980682836ec388e2c57c0/coverage-7.9.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73e9439310f65d55a5a1e0564b48e34f5369bee943d72c88378f2d576f5a5751", size = 243123 }, - { url = "https://files.pythonhosted.org/packages/8c/d0/2819a1e3086143c094ab446e3bdf07138527a7b88cb235c488e78150ba7a/coverage-7.9.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:37ab6be0859141b53aa89412a82454b482c81cf750de4f29223d52268a86de67", size = 244506 }, - { url = "https://files.pythonhosted.org/packages/8b/4e/9f6117b89152df7b6112f65c7a4ed1f2f5ec8e60c4be8f351d91e7acc848/coverage-7.9.1-cp313-cp313-win32.whl", hash = "sha256:64bdd969456e2d02a8b08aa047a92d269c7ac1f47e0c977675d550c9a0863643", size = 214766 }, - { url = "https://files.pythonhosted.org/packages/27/0f/4b59f7c93b52c2c4ce7387c5a4e135e49891bb3b7408dcc98fe44033bbe0/coverage-7.9.1-cp313-cp313-win_amd64.whl", hash = "sha256:be9e3f68ca9edb897c2184ad0eee815c635565dbe7a0e7e814dc1f7cbab92c0a", size = 215568 }, - { url = "https://files.pythonhosted.org/packages/09/1e/9679826336f8c67b9c39a359352882b24a8a7aee48d4c9cad08d38d7510f/coverage-7.9.1-cp313-cp313-win_arm64.whl", hash = "sha256:1c503289ffef1d5105d91bbb4d62cbe4b14bec4d13ca225f9c73cde9bb46207d", size = 213939 }, - { url = "https://files.pythonhosted.org/packages/bb/5b/5c6b4e7a407359a2e3b27bf9c8a7b658127975def62077d441b93a30dbe8/coverage-7.9.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0b3496922cb5f4215bf5caaef4cf12364a26b0be82e9ed6d050f3352cf2d7ef0", size = 213079 }, - { url = "https://files.pythonhosted.org/packages/a2/22/1e2e07279fd2fd97ae26c01cc2186e2258850e9ec125ae87184225662e89/coverage-7.9.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9565c3ab1c93310569ec0d86b017f128f027cab0b622b7af288696d7ed43a16d", size = 213299 }, - { url = "https://files.pythonhosted.org/packages/14/c0/4c5125a4b69d66b8c85986d3321520f628756cf524af810baab0790c7647/coverage-7.9.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2241ad5dbf79ae1d9c08fe52b36d03ca122fb9ac6bca0f34439e99f8327ac89f", size = 256535 }, - { url = "https://files.pythonhosted.org/packages/81/8b/e36a04889dda9960be4263e95e777e7b46f1bb4fc32202612c130a20c4da/coverage-7.9.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bb5838701ca68b10ebc0937dbd0eb81974bac54447c55cd58dea5bca8451029", size = 252756 }, - { url = "https://files.pythonhosted.org/packages/98/82/be04eff8083a09a4622ecd0e1f31a2c563dbea3ed848069e7b0445043a70/coverage-7.9.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b30a25f814591a8c0c5372c11ac8967f669b97444c47fd794926e175c4047ece", size = 254912 }, - { url = "https://files.pythonhosted.org/packages/0f/25/c26610a2c7f018508a5ab958e5b3202d900422cf7cdca7670b6b8ca4e8df/coverage-7.9.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2d04b16a6062516df97969f1ae7efd0de9c31eb6ebdceaa0d213b21c0ca1a683", size = 256144 }, - { url = "https://files.pythonhosted.org/packages/c5/8b/fb9425c4684066c79e863f1e6e7ecebb49e3a64d9f7f7860ef1688c56f4a/coverage-7.9.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7931b9e249edefb07cd6ae10c702788546341d5fe44db5b6108a25da4dca513f", size = 254257 }, - { url = "https://files.pythonhosted.org/packages/93/df/27b882f54157fc1131e0e215b0da3b8d608d9b8ef79a045280118a8f98fe/coverage-7.9.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:52e92b01041151bf607ee858e5a56c62d4b70f4dac85b8c8cb7fb8a351ab2c10", size = 255094 }, - { url = "https://files.pythonhosted.org/packages/41/5f/cad1c3dbed8b3ee9e16fa832afe365b4e3eeab1fb6edb65ebbf745eabc92/coverage-7.9.1-cp313-cp313t-win32.whl", hash = "sha256:684e2110ed84fd1ca5f40e89aa44adf1729dc85444004111aa01866507adf363", size = 215437 }, - { url = "https://files.pythonhosted.org/packages/99/4d/fad293bf081c0e43331ca745ff63673badc20afea2104b431cdd8c278b4c/coverage-7.9.1-cp313-cp313t-win_amd64.whl", hash = "sha256:437c576979e4db840539674e68c84b3cda82bc824dd138d56bead1435f1cb5d7", size = 216605 }, - { url = "https://files.pythonhosted.org/packages/1f/56/4ee027d5965fc7fc126d7ec1187529cc30cc7d740846e1ecb5e92d31b224/coverage-7.9.1-cp313-cp313t-win_arm64.whl", hash = "sha256:18a0912944d70aaf5f399e350445738a1a20b50fbea788f640751c2ed9208b6c", size = 214392 }, - { url = "https://files.pythonhosted.org/packages/3e/e5/c723545c3fd3204ebde3b4cc4b927dce709d3b6dc577754bb57f63ca4a4a/coverage-7.9.1-pp39.pp310.pp311-none-any.whl", hash = "sha256:db0f04118d1db74db6c9e1cb1898532c7dcc220f1d2718f058601f7c3f499514", size = 204009 }, - { url = "https://files.pythonhosted.org/packages/08/b8/7ddd1e8ba9701dea08ce22029917140e6f66a859427406579fd8d0ca7274/coverage-7.9.1-py3-none-any.whl", hash = "sha256:66b974b145aa189516b6bf2d8423e888b742517d37872f6ee4c5be0073bd9a3c", size = 204000 }, +version = "7.9.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/04/b7/c0465ca253df10a9e8dae0692a4ae6e9726d245390aaef92360e1d6d3832/coverage-7.9.2.tar.gz", hash = "sha256:997024fa51e3290264ffd7492ec97d0690293ccd2b45a6cd7d82d945a4a80c8b", size = 813556 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/40/916786453bcfafa4c788abee4ccd6f592b5b5eca0cd61a32a4e5a7ef6e02/coverage-7.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a7a56a2964a9687b6aba5b5ced6971af308ef6f79a91043c05dd4ee3ebc3e9ba", size = 212152 }, + { url = "https://files.pythonhosted.org/packages/9f/66/cc13bae303284b546a030762957322bbbff1ee6b6cb8dc70a40f8a78512f/coverage-7.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:123d589f32c11d9be7fe2e66d823a236fe759b0096f5db3fb1b75b2fa414a4fa", size = 212540 }, + { url = "https://files.pythonhosted.org/packages/0f/3c/d56a764b2e5a3d43257c36af4a62c379df44636817bb5f89265de4bf8bd7/coverage-7.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:333b2e0ca576a7dbd66e85ab402e35c03b0b22f525eed82681c4b866e2e2653a", size = 245097 }, + { url = "https://files.pythonhosted.org/packages/b1/46/bd064ea8b3c94eb4ca5d90e34d15b806cba091ffb2b8e89a0d7066c45791/coverage-7.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:326802760da234baf9f2f85a39e4a4b5861b94f6c8d95251f699e4f73b1835dc", size = 242812 }, + { url = "https://files.pythonhosted.org/packages/43/02/d91992c2b29bc7afb729463bc918ebe5f361be7f1daae93375a5759d1e28/coverage-7.9.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19e7be4cfec248df38ce40968c95d3952fbffd57b400d4b9bb580f28179556d2", size = 244617 }, + { url = "https://files.pythonhosted.org/packages/b7/4f/8fadff6bf56595a16d2d6e33415841b0163ac660873ed9a4e9046194f779/coverage-7.9.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0b4a4cb73b9f2b891c1788711408ef9707666501ba23684387277ededab1097c", size = 244263 }, + { url = "https://files.pythonhosted.org/packages/9b/d2/e0be7446a2bba11739edb9f9ba4eff30b30d8257370e237418eb44a14d11/coverage-7.9.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2c8937fa16c8c9fbbd9f118588756e7bcdc7e16a470766a9aef912dd3f117dbd", size = 242314 }, + { url = "https://files.pythonhosted.org/packages/9d/7d/dcbac9345000121b8b57a3094c2dfcf1ccc52d8a14a40c1d4bc89f936f80/coverage-7.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:42da2280c4d30c57a9b578bafd1d4494fa6c056d4c419d9689e66d775539be74", size = 242904 }, + { url = "https://files.pythonhosted.org/packages/41/58/11e8db0a0c0510cf31bbbdc8caf5d74a358b696302a45948d7c768dfd1cf/coverage-7.9.2-cp311-cp311-win32.whl", hash = "sha256:14fa8d3da147f5fdf9d298cacc18791818f3f1a9f542c8958b80c228320e90c6", size = 214553 }, + { url = "https://files.pythonhosted.org/packages/3a/7d/751794ec8907a15e257136e48dc1021b1f671220ecccfd6c4eaf30802714/coverage-7.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:549cab4892fc82004f9739963163fd3aac7a7b0df430669b75b86d293d2df2a7", size = 215441 }, + { url = "https://files.pythonhosted.org/packages/62/5b/34abcedf7b946c1c9e15b44f326cb5b0da852885312b30e916f674913428/coverage-7.9.2-cp311-cp311-win_arm64.whl", hash = "sha256:c2667a2b913e307f06aa4e5677f01a9746cd08e4b35e14ebcde6420a9ebb4c62", size = 213873 }, + { url = "https://files.pythonhosted.org/packages/53/d7/7deefc6fd4f0f1d4c58051f4004e366afc9e7ab60217ac393f247a1de70a/coverage-7.9.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae9eb07f1cfacd9cfe8eaee6f4ff4b8a289a668c39c165cd0c8548484920ffc0", size = 212344 }, + { url = "https://files.pythonhosted.org/packages/95/0c/ee03c95d32be4d519e6a02e601267769ce2e9a91fc8faa1b540e3626c680/coverage-7.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9ce85551f9a1119f02adc46d3014b5ee3f765deac166acf20dbb851ceb79b6f3", size = 212580 }, + { url = "https://files.pythonhosted.org/packages/8b/9f/826fa4b544b27620086211b87a52ca67592622e1f3af9e0a62c87aea153a/coverage-7.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8f6389ac977c5fb322e0e38885fbbf901743f79d47f50db706e7644dcdcb6e1", size = 246383 }, + { url = "https://files.pythonhosted.org/packages/7f/b3/4477aafe2a546427b58b9c540665feff874f4db651f4d3cb21b308b3a6d2/coverage-7.9.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d9eae8cdfcd58fe7893b88993723583a6ce4dfbfd9f29e001922544f95615", size = 243400 }, + { url = "https://files.pythonhosted.org/packages/f8/c2/efffa43778490c226d9d434827702f2dfbc8041d79101a795f11cbb2cf1e/coverage-7.9.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fae939811e14e53ed8a9818dad51d434a41ee09df9305663735f2e2d2d7d959b", size = 245591 }, + { url = "https://files.pythonhosted.org/packages/c6/e7/a59888e882c9a5f0192d8627a30ae57910d5d449c80229b55e7643c078c4/coverage-7.9.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:31991156251ec202c798501e0a42bbdf2169dcb0f137b1f5c0f4267f3fc68ef9", size = 245402 }, + { url = "https://files.pythonhosted.org/packages/92/a5/72fcd653ae3d214927edc100ce67440ed8a0a1e3576b8d5e6d066ed239db/coverage-7.9.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d0d67963f9cbfc7c7f96d4ac74ed60ecbebd2ea6eeb51887af0f8dce205e545f", size = 243583 }, + { url = "https://files.pythonhosted.org/packages/5c/f5/84e70e4df28f4a131d580d7d510aa1ffd95037293da66fd20d446090a13b/coverage-7.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49b752a2858b10580969ec6af6f090a9a440a64a301ac1528d7ca5f7ed497f4d", size = 244815 }, + { url = "https://files.pythonhosted.org/packages/39/e7/d73d7cbdbd09fdcf4642655ae843ad403d9cbda55d725721965f3580a314/coverage-7.9.2-cp312-cp312-win32.whl", hash = "sha256:88d7598b8ee130f32f8a43198ee02edd16d7f77692fa056cb779616bbea1b355", size = 214719 }, + { url = "https://files.pythonhosted.org/packages/9f/d6/7486dcc3474e2e6ad26a2af2db7e7c162ccd889c4c68fa14ea8ec189c9e9/coverage-7.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:9dfb070f830739ee49d7c83e4941cc767e503e4394fdecb3b54bfdac1d7662c0", size = 215509 }, + { url = "https://files.pythonhosted.org/packages/b7/34/0439f1ae2593b0346164d907cdf96a529b40b7721a45fdcf8b03c95fcd90/coverage-7.9.2-cp312-cp312-win_arm64.whl", hash = "sha256:4e2c058aef613e79df00e86b6d42a641c877211384ce5bd07585ed7ba71ab31b", size = 213910 }, + { url = "https://files.pythonhosted.org/packages/94/9d/7a8edf7acbcaa5e5c489a646226bed9591ee1c5e6a84733c0140e9ce1ae1/coverage-7.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:985abe7f242e0d7bba228ab01070fde1d6c8fa12f142e43debe9ed1dde686038", size = 212367 }, + { url = "https://files.pythonhosted.org/packages/e8/9e/5cd6f130150712301f7e40fb5865c1bc27b97689ec57297e568d972eec3c/coverage-7.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82c3939264a76d44fde7f213924021ed31f55ef28111a19649fec90c0f109e6d", size = 212632 }, + { url = "https://files.pythonhosted.org/packages/a8/de/6287a2c2036f9fd991c61cefa8c64e57390e30c894ad3aa52fac4c1e14a8/coverage-7.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae5d563e970dbe04382f736ec214ef48103d1b875967c89d83c6e3f21706d5b3", size = 245793 }, + { url = "https://files.pythonhosted.org/packages/06/cc/9b5a9961d8160e3cb0b558c71f8051fe08aa2dd4b502ee937225da564ed1/coverage-7.9.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdd612e59baed2a93c8843c9a7cb902260f181370f1d772f4842987535071d14", size = 243006 }, + { url = "https://files.pythonhosted.org/packages/49/d9/4616b787d9f597d6443f5588619c1c9f659e1f5fc9eebf63699eb6d34b78/coverage-7.9.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:256ea87cb2a1ed992bcdfc349d8042dcea1b80436f4ddf6e246d6bee4b5d73b6", size = 244990 }, + { url = "https://files.pythonhosted.org/packages/48/83/801cdc10f137b2d02b005a761661649ffa60eb173dcdaeb77f571e4dc192/coverage-7.9.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f44ae036b63c8ea432f610534a2668b0c3aee810e7037ab9d8ff6883de480f5b", size = 245157 }, + { url = "https://files.pythonhosted.org/packages/c8/a4/41911ed7e9d3ceb0ffb019e7635468df7499f5cc3edca5f7dfc078e9c5ec/coverage-7.9.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:82d76ad87c932935417a19b10cfe7abb15fd3f923cfe47dbdaa74ef4e503752d", size = 243128 }, + { url = "https://files.pythonhosted.org/packages/10/41/344543b71d31ac9cb00a664d5d0c9ef134a0fe87cb7d8430003b20fa0b7d/coverage-7.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:619317bb86de4193debc712b9e59d5cffd91dc1d178627ab2a77b9870deb2868", size = 244511 }, + { url = "https://files.pythonhosted.org/packages/d5/81/3b68c77e4812105e2a060f6946ba9e6f898ddcdc0d2bfc8b4b152a9ae522/coverage-7.9.2-cp313-cp313-win32.whl", hash = "sha256:0a07757de9feb1dfafd16ab651e0f628fd7ce551604d1bf23e47e1ddca93f08a", size = 214765 }, + { url = "https://files.pythonhosted.org/packages/06/a2/7fac400f6a346bb1a4004eb2a76fbff0e242cd48926a2ce37a22a6a1d917/coverage-7.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:115db3d1f4d3f35f5bb021e270edd85011934ff97c8797216b62f461dd69374b", size = 215536 }, + { url = "https://files.pythonhosted.org/packages/08/47/2c6c215452b4f90d87017e61ea0fd9e0486bb734cb515e3de56e2c32075f/coverage-7.9.2-cp313-cp313-win_arm64.whl", hash = "sha256:48f82f889c80af8b2a7bb6e158d95a3fbec6a3453a1004d04e4f3b5945a02694", size = 213943 }, + { url = "https://files.pythonhosted.org/packages/a3/46/e211e942b22d6af5e0f323faa8a9bc7c447a1cf1923b64c47523f36ed488/coverage-7.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:55a28954545f9d2f96870b40f6c3386a59ba8ed50caf2d949676dac3ecab99f5", size = 213088 }, + { url = "https://files.pythonhosted.org/packages/d2/2f/762551f97e124442eccd907bf8b0de54348635b8866a73567eb4e6417acf/coverage-7.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cdef6504637731a63c133bb2e6f0f0214e2748495ec15fe42d1e219d1b133f0b", size = 213298 }, + { url = "https://files.pythonhosted.org/packages/7a/b7/76d2d132b7baf7360ed69be0bcab968f151fa31abe6d067f0384439d9edb/coverage-7.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bcd5ebe66c7a97273d5d2ddd4ad0ed2e706b39630ed4b53e713d360626c3dbb3", size = 256541 }, + { url = "https://files.pythonhosted.org/packages/a0/17/392b219837d7ad47d8e5974ce5f8dc3deb9f99a53b3bd4d123602f960c81/coverage-7.9.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9303aed20872d7a3c9cb39c5d2b9bdbe44e3a9a1aecb52920f7e7495410dfab8", size = 252761 }, + { url = "https://files.pythonhosted.org/packages/d5/77/4256d3577fe1b0daa8d3836a1ebe68eaa07dd2cbaf20cf5ab1115d6949d4/coverage-7.9.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc18ea9e417a04d1920a9a76fe9ebd2f43ca505b81994598482f938d5c315f46", size = 254917 }, + { url = "https://files.pythonhosted.org/packages/53/99/fc1a008eef1805e1ddb123cf17af864743354479ea5129a8f838c433cc2c/coverage-7.9.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6406cff19880aaaadc932152242523e892faff224da29e241ce2fca329866584", size = 256147 }, + { url = "https://files.pythonhosted.org/packages/92/c0/f63bf667e18b7f88c2bdb3160870e277c4874ced87e21426128d70aa741f/coverage-7.9.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:2d0d4f6ecdf37fcc19c88fec3e2277d5dee740fb51ffdd69b9579b8c31e4232e", size = 254261 }, + { url = "https://files.pythonhosted.org/packages/8c/32/37dd1c42ce3016ff8ec9e4b607650d2e34845c0585d3518b2a93b4830c1a/coverage-7.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c33624f50cf8de418ab2b4d6ca9eda96dc45b2c4231336bac91454520e8d1fac", size = 255099 }, + { url = "https://files.pythonhosted.org/packages/da/2e/af6b86f7c95441ce82f035b3affe1cd147f727bbd92f563be35e2d585683/coverage-7.9.2-cp313-cp313t-win32.whl", hash = "sha256:1df6b76e737c6a92210eebcb2390af59a141f9e9430210595251fbaf02d46926", size = 215440 }, + { url = "https://files.pythonhosted.org/packages/4d/bb/8a785d91b308867f6b2e36e41c569b367c00b70c17f54b13ac29bcd2d8c8/coverage-7.9.2-cp313-cp313t-win_amd64.whl", hash = "sha256:f5fd54310b92741ebe00d9c0d1d7b2b27463952c022da6d47c175d246a98d1bd", size = 216537 }, + { url = "https://files.pythonhosted.org/packages/1d/a0/a6bffb5e0f41a47279fd45a8f3155bf193f77990ae1c30f9c224b61cacb0/coverage-7.9.2-cp313-cp313t-win_arm64.whl", hash = "sha256:c48c2375287108c887ee87d13b4070a381c6537d30e8487b24ec721bf2a781cb", size = 214398 }, + { url = "https://files.pythonhosted.org/packages/d7/85/f8bbefac27d286386961c25515431482a425967e23d3698b75a250872924/coverage-7.9.2-pp39.pp310.pp311-none-any.whl", hash = "sha256:8a1166db2fb62473285bcb092f586e081e92656c7dfa8e9f62b4d39d7e6b5050", size = 204013 }, + { url = "https://files.pythonhosted.org/packages/3c/38/bbe2e63902847cf79036ecc75550d0698af31c91c7575352eb25190d0fb3/coverage-7.9.2-py3-none-any.whl", hash = "sha256:e425cd5b00f6fc0ed7cdbd766c70be8baab4b7839e4d4fe5fac48581dd968ea4", size = 204005 }, ] [package.optional-dependencies] @@ -658,43 +659,43 @@ wheels = [ [[package]] name = "cryptography" -version = "45.0.4" +version = "45.0.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fe/c8/a2a376a8711c1e11708b9c9972e0c3223f5fc682552c82d8db844393d6ce/cryptography-45.0.4.tar.gz", hash = "sha256:7405ade85c83c37682c8fe65554759800a4a8c54b2d96e0f8ad114d31b808d57", size = 744890 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/1c/92637793de053832523b410dbe016d3f5c11b41d0cf6eef8787aabb51d41/cryptography-45.0.4-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:425a9a6ac2823ee6e46a76a21a4e8342d8fa5c01e08b823c1f19a8b74f096069", size = 7055712 }, - { url = "https://files.pythonhosted.org/packages/ba/14/93b69f2af9ba832ad6618a03f8a034a5851dc9a3314336a3d71c252467e1/cryptography-45.0.4-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:680806cf63baa0039b920f4976f5f31b10e772de42f16310a6839d9f21a26b0d", size = 4205335 }, - { url = "https://files.pythonhosted.org/packages/67/30/fae1000228634bf0b647fca80403db5ca9e3933b91dd060570689f0bd0f7/cryptography-45.0.4-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4ca0f52170e821bc8da6fc0cc565b7bb8ff8d90d36b5e9fdd68e8a86bdf72036", size = 4431487 }, - { url = "https://files.pythonhosted.org/packages/6d/5a/7dffcf8cdf0cb3c2430de7404b327e3db64735747d641fc492539978caeb/cryptography-45.0.4-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f3fe7a5ae34d5a414957cc7f457e2b92076e72938423ac64d215722f6cf49a9e", size = 4208922 }, - { url = "https://files.pythonhosted.org/packages/c6/f3/528729726eb6c3060fa3637253430547fbaaea95ab0535ea41baa4a6fbd8/cryptography-45.0.4-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:25eb4d4d3e54595dc8adebc6bbd5623588991d86591a78c2548ffb64797341e2", size = 3900433 }, - { url = "https://files.pythonhosted.org/packages/d9/4a/67ba2e40f619e04d83c32f7e1d484c1538c0800a17c56a22ff07d092ccc1/cryptography-45.0.4-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:ce1678a2ccbe696cf3af15a75bb72ee008d7ff183c9228592ede9db467e64f1b", size = 4464163 }, - { url = "https://files.pythonhosted.org/packages/7e/9a/b4d5aa83661483ac372464809c4b49b5022dbfe36b12fe9e323ca8512420/cryptography-45.0.4-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:49fe9155ab32721b9122975e168a6760d8ce4cffe423bcd7ca269ba41b5dfac1", size = 4208687 }, - { url = "https://files.pythonhosted.org/packages/db/b7/a84bdcd19d9c02ec5807f2ec2d1456fd8451592c5ee353816c09250e3561/cryptography-45.0.4-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:2882338b2a6e0bd337052e8b9007ced85c637da19ef9ecaf437744495c8c2999", size = 4463623 }, - { url = "https://files.pythonhosted.org/packages/d8/84/69707d502d4d905021cac3fb59a316344e9f078b1da7fb43ecde5e10840a/cryptography-45.0.4-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:23b9c3ea30c3ed4db59e7b9619272e94891f8a3a5591d0b656a7582631ccf750", size = 4332447 }, - { url = "https://files.pythonhosted.org/packages/f3/ee/d4f2ab688e057e90ded24384e34838086a9b09963389a5ba6854b5876598/cryptography-45.0.4-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b0a97c927497e3bc36b33987abb99bf17a9a175a19af38a892dc4bbb844d7ee2", size = 4572830 }, - { url = "https://files.pythonhosted.org/packages/70/d4/994773a261d7ff98034f72c0e8251fe2755eac45e2265db4c866c1c6829c/cryptography-45.0.4-cp311-abi3-win32.whl", hash = "sha256:e00a6c10a5c53979d6242f123c0a97cff9f3abed7f064fc412c36dc521b5f257", size = 2932769 }, - { url = "https://files.pythonhosted.org/packages/5a/42/c80bd0b67e9b769b364963b5252b17778a397cefdd36fa9aa4a5f34c599a/cryptography-45.0.4-cp311-abi3-win_amd64.whl", hash = "sha256:817ee05c6c9f7a69a16200f0c90ab26d23a87701e2a284bd15156783e46dbcc8", size = 3410441 }, - { url = "https://files.pythonhosted.org/packages/ce/0b/2488c89f3a30bc821c9d96eeacfcab6ff3accc08a9601ba03339c0fd05e5/cryptography-45.0.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:964bcc28d867e0f5491a564b7debb3ffdd8717928d315d12e0d7defa9e43b723", size = 7031836 }, - { url = "https://files.pythonhosted.org/packages/fe/51/8c584ed426093aac257462ae62d26ad61ef1cbf5b58d8b67e6e13c39960e/cryptography-45.0.4-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6a5bf57554e80f75a7db3d4b1dacaa2764611ae166ab42ea9a72bcdb5d577637", size = 4195746 }, - { url = "https://files.pythonhosted.org/packages/5c/7d/4b0ca4d7af95a704eef2f8f80a8199ed236aaf185d55385ae1d1610c03c2/cryptography-45.0.4-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:46cf7088bf91bdc9b26f9c55636492c1cce3e7aaf8041bbf0243f5e5325cfb2d", size = 4424456 }, - { url = "https://files.pythonhosted.org/packages/1d/45/5fabacbc6e76ff056f84d9f60eeac18819badf0cefc1b6612ee03d4ab678/cryptography-45.0.4-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7bedbe4cc930fa4b100fc845ea1ea5788fcd7ae9562e669989c11618ae8d76ee", size = 4198495 }, - { url = "https://files.pythonhosted.org/packages/55/b7/ffc9945b290eb0a5d4dab9b7636706e3b5b92f14ee5d9d4449409d010d54/cryptography-45.0.4-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:eaa3e28ea2235b33220b949c5a0d6cf79baa80eab2eb5607ca8ab7525331b9ff", size = 3885540 }, - { url = "https://files.pythonhosted.org/packages/7f/e3/57b010282346980475e77d414080acdcb3dab9a0be63071efc2041a2c6bd/cryptography-45.0.4-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:7ef2dde4fa9408475038fc9aadfc1fb2676b174e68356359632e980c661ec8f6", size = 4452052 }, - { url = "https://files.pythonhosted.org/packages/37/e6/ddc4ac2558bf2ef517a358df26f45bc774a99bf4653e7ee34b5e749c03e3/cryptography-45.0.4-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:6a3511ae33f09094185d111160fd192c67aa0a2a8d19b54d36e4c78f651dc5ad", size = 4198024 }, - { url = "https://files.pythonhosted.org/packages/3a/c0/85fa358ddb063ec588aed4a6ea1df57dc3e3bc1712d87c8fa162d02a65fc/cryptography-45.0.4-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:06509dc70dd71fa56eaa138336244e2fbaf2ac164fc9b5e66828fccfd2b680d6", size = 4451442 }, - { url = "https://files.pythonhosted.org/packages/33/67/362d6ec1492596e73da24e669a7fbbaeb1c428d6bf49a29f7a12acffd5dc/cryptography-45.0.4-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5f31e6b0a5a253f6aa49be67279be4a7e5a4ef259a9f33c69f7d1b1191939872", size = 4325038 }, - { url = "https://files.pythonhosted.org/packages/53/75/82a14bf047a96a1b13ebb47fb9811c4f73096cfa2e2b17c86879687f9027/cryptography-45.0.4-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:944e9ccf67a9594137f942d5b52c8d238b1b4e46c7a0c2891b7ae6e01e7c80a4", size = 4560964 }, - { url = "https://files.pythonhosted.org/packages/cd/37/1a3cba4c5a468ebf9b95523a5ef5651244693dc712001e276682c278fc00/cryptography-45.0.4-cp37-abi3-win32.whl", hash = "sha256:c22fe01e53dc65edd1945a2e6f0015e887f84ced233acecb64b4daadb32f5c97", size = 2924557 }, - { url = "https://files.pythonhosted.org/packages/2a/4b/3256759723b7e66380397d958ca07c59cfc3fb5c794fb5516758afd05d41/cryptography-45.0.4-cp37-abi3-win_amd64.whl", hash = "sha256:627ba1bc94f6adf0b0a2e35d87020285ead22d9f648c7e75bb64f367375f3b22", size = 3395508 }, - { url = "https://files.pythonhosted.org/packages/ea/ba/cf442ae99ef363855ed84b39e0fb3c106ac66b7a7703f3c9c9cfe05412cb/cryptography-45.0.4-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4828190fb6c4bcb6ebc6331f01fe66ae838bb3bd58e753b59d4b22eb444b996c", size = 3590512 }, - { url = "https://files.pythonhosted.org/packages/28/9a/a7d5bb87d149eb99a5abdc69a41e4e47b8001d767e5f403f78bfaafc7aa7/cryptography-45.0.4-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:03dbff8411206713185b8cebe31bc5c0eb544799a50c09035733716b386e61a4", size = 4146899 }, - { url = "https://files.pythonhosted.org/packages/17/11/9361c2c71c42cc5c465cf294c8030e72fb0c87752bacbd7a3675245e3db3/cryptography-45.0.4-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51dfbd4d26172d31150d84c19bbe06c68ea4b7f11bbc7b3a5e146b367c311349", size = 4388900 }, - { url = "https://files.pythonhosted.org/packages/c0/76/f95b83359012ee0e670da3e41c164a0c256aeedd81886f878911581d852f/cryptography-45.0.4-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:0339a692de47084969500ee455e42c58e449461e0ec845a34a6a9b9bf7df7fb8", size = 4146422 }, - { url = "https://files.pythonhosted.org/packages/09/ad/5429fcc4def93e577a5407988f89cf15305e64920203d4ac14601a9dc876/cryptography-45.0.4-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:0cf13c77d710131d33e63626bd55ae7c0efb701ebdc2b3a7952b9b23a0412862", size = 4388475 }, - { url = "https://files.pythonhosted.org/packages/99/49/0ab9774f64555a1b50102757811508f5ace451cf5dc0a2d074a4b9deca6a/cryptography-45.0.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:bbc505d1dc469ac12a0a064214879eac6294038d6b24ae9f71faae1448a9608d", size = 3337594 }, +sdist = { url = "https://files.pythonhosted.org/packages/95/1e/49527ac611af559665f71cbb8f92b332b5ec9c6fbc4e88b0f8e92f5e85df/cryptography-45.0.5.tar.gz", hash = "sha256:72e76caa004ab63accdf26023fccd1d087f6d90ec6048ff33ad0445abf7f605a", size = 744903 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f0/fb/09e28bc0c46d2c547085e60897fea96310574c70fb21cd58a730a45f3403/cryptography-45.0.5-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:101ee65078f6dd3e5a028d4f19c07ffa4dd22cce6a20eaa160f8b5219911e7d8", size = 7043092 }, + { url = "https://files.pythonhosted.org/packages/b1/05/2194432935e29b91fb649f6149c1a4f9e6d3d9fc880919f4ad1bcc22641e/cryptography-45.0.5-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3a264aae5f7fbb089dbc01e0242d3b67dffe3e6292e1f5182122bdf58e65215d", size = 4205926 }, + { url = "https://files.pythonhosted.org/packages/07/8b/9ef5da82350175e32de245646b1884fc01124f53eb31164c77f95a08d682/cryptography-45.0.5-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e74d30ec9c7cb2f404af331d5b4099a9b322a8a6b25c4632755c8757345baac5", size = 4429235 }, + { url = "https://files.pythonhosted.org/packages/7c/e1/c809f398adde1994ee53438912192d92a1d0fc0f2d7582659d9ef4c28b0c/cryptography-45.0.5-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:3af26738f2db354aafe492fb3869e955b12b2ef2e16908c8b9cb928128d42c57", size = 4209785 }, + { url = "https://files.pythonhosted.org/packages/d0/8b/07eb6bd5acff58406c5e806eff34a124936f41a4fb52909ffa4d00815f8c/cryptography-45.0.5-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e6c00130ed423201c5bc5544c23359141660b07999ad82e34e7bb8f882bb78e0", size = 3893050 }, + { url = "https://files.pythonhosted.org/packages/ec/ef/3333295ed58d900a13c92806b67e62f27876845a9a908c939f040887cca9/cryptography-45.0.5-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:dd420e577921c8c2d31289536c386aaa30140b473835e97f83bc71ea9d2baf2d", size = 4457379 }, + { url = "https://files.pythonhosted.org/packages/d9/9d/44080674dee514dbb82b21d6fa5d1055368f208304e2ab1828d85c9de8f4/cryptography-45.0.5-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:d05a38884db2ba215218745f0781775806bde4f32e07b135348355fe8e4991d9", size = 4209355 }, + { url = "https://files.pythonhosted.org/packages/c9/d8/0749f7d39f53f8258e5c18a93131919ac465ee1f9dccaf1b3f420235e0b5/cryptography-45.0.5-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:ad0caded895a00261a5b4aa9af828baede54638754b51955a0ac75576b831b27", size = 4456087 }, + { url = "https://files.pythonhosted.org/packages/09/d7/92acac187387bf08902b0bf0699816f08553927bdd6ba3654da0010289b4/cryptography-45.0.5-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9024beb59aca9d31d36fcdc1604dd9bbeed0a55bface9f1908df19178e2f116e", size = 4332873 }, + { url = "https://files.pythonhosted.org/packages/03/c2/840e0710da5106a7c3d4153c7215b2736151bba60bf4491bdb421df5056d/cryptography-45.0.5-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:91098f02ca81579c85f66df8a588c78f331ca19089763d733e34ad359f474174", size = 4564651 }, + { url = "https://files.pythonhosted.org/packages/2e/92/cc723dd6d71e9747a887b94eb3827825c6c24b9e6ce2bb33b847d31d5eaa/cryptography-45.0.5-cp311-abi3-win32.whl", hash = "sha256:926c3ea71a6043921050eaa639137e13dbe7b4ab25800932a8498364fc1abec9", size = 2929050 }, + { url = "https://files.pythonhosted.org/packages/1f/10/197da38a5911a48dd5389c043de4aec4b3c94cb836299b01253940788d78/cryptography-45.0.5-cp311-abi3-win_amd64.whl", hash = "sha256:b85980d1e345fe769cfc57c57db2b59cff5464ee0c045d52c0df087e926fbe63", size = 3403224 }, + { url = "https://files.pythonhosted.org/packages/fe/2b/160ce8c2765e7a481ce57d55eba1546148583e7b6f85514472b1d151711d/cryptography-45.0.5-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:f3562c2f23c612f2e4a6964a61d942f891d29ee320edb62ff48ffb99f3de9ae8", size = 7017143 }, + { url = "https://files.pythonhosted.org/packages/c2/e7/2187be2f871c0221a81f55ee3105d3cf3e273c0a0853651d7011eada0d7e/cryptography-45.0.5-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3fcfbefc4a7f332dece7272a88e410f611e79458fab97b5efe14e54fe476f4fd", size = 4197780 }, + { url = "https://files.pythonhosted.org/packages/b9/cf/84210c447c06104e6be9122661159ad4ce7a8190011669afceeaea150524/cryptography-45.0.5-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:460f8c39ba66af7db0545a8c6f2eabcbc5a5528fc1cf6c3fa9a1e44cec33385e", size = 4420091 }, + { url = "https://files.pythonhosted.org/packages/3e/6a/cb8b5c8bb82fafffa23aeff8d3a39822593cee6e2f16c5ca5c2ecca344f7/cryptography-45.0.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:9b4cf6318915dccfe218e69bbec417fdd7c7185aa7aab139a2c0beb7468c89f0", size = 4198711 }, + { url = "https://files.pythonhosted.org/packages/04/f7/36d2d69df69c94cbb2473871926daf0f01ad8e00fe3986ac3c1e8c4ca4b3/cryptography-45.0.5-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2089cc8f70a6e454601525e5bf2779e665d7865af002a5dec8d14e561002e135", size = 3883299 }, + { url = "https://files.pythonhosted.org/packages/82/c7/f0ea40f016de72f81288e9fe8d1f6748036cb5ba6118774317a3ffc6022d/cryptography-45.0.5-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:0027d566d65a38497bc37e0dd7c2f8ceda73597d2ac9ba93810204f56f52ebc7", size = 4450558 }, + { url = "https://files.pythonhosted.org/packages/06/ae/94b504dc1a3cdf642d710407c62e86296f7da9e66f27ab12a1ee6fdf005b/cryptography-45.0.5-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:be97d3a19c16a9be00edf79dca949c8fa7eff621763666a145f9f9535a5d7f42", size = 4198020 }, + { url = "https://files.pythonhosted.org/packages/05/2b/aaf0adb845d5dabb43480f18f7ca72e94f92c280aa983ddbd0bcd6ecd037/cryptography-45.0.5-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:7760c1c2e1a7084153a0f68fab76e754083b126a47d0117c9ed15e69e2103492", size = 4449759 }, + { url = "https://files.pythonhosted.org/packages/91/e4/f17e02066de63e0100a3a01b56f8f1016973a1d67551beaf585157a86b3f/cryptography-45.0.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6ff8728d8d890b3dda5765276d1bc6fb099252915a2cd3aff960c4c195745dd0", size = 4319991 }, + { url = "https://files.pythonhosted.org/packages/f2/2e/e2dbd629481b499b14516eed933f3276eb3239f7cee2dcfa4ee6b44d4711/cryptography-45.0.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7259038202a47fdecee7e62e0fd0b0738b6daa335354396c6ddebdbe1206af2a", size = 4554189 }, + { url = "https://files.pythonhosted.org/packages/f8/ea/a78a0c38f4c8736287b71c2ea3799d173d5ce778c7d6e3c163a95a05ad2a/cryptography-45.0.5-cp37-abi3-win32.whl", hash = "sha256:1e1da5accc0c750056c556a93c3e9cb828970206c68867712ca5805e46dc806f", size = 2911769 }, + { url = "https://files.pythonhosted.org/packages/79/b3/28ac139109d9005ad3f6b6f8976ffede6706a6478e21c889ce36c840918e/cryptography-45.0.5-cp37-abi3-win_amd64.whl", hash = "sha256:90cb0a7bb35959f37e23303b7eed0a32280510030daba3f7fdfbb65defde6a97", size = 3390016 }, + { url = "https://files.pythonhosted.org/packages/c0/71/9bdbcfd58d6ff5084687fe722c58ac718ebedbc98b9f8f93781354e6d286/cryptography-45.0.5-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8c4a6ff8a30e9e3d38ac0539e9a9e02540ab3f827a3394f8852432f6b0ea152e", size = 3587878 }, + { url = "https://files.pythonhosted.org/packages/f0/63/83516cfb87f4a8756eaa4203f93b283fda23d210fc14e1e594bd5f20edb6/cryptography-45.0.5-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bd4c45986472694e5121084c6ebbd112aa919a25e783b87eb95953c9573906d6", size = 4152447 }, + { url = "https://files.pythonhosted.org/packages/22/11/d2823d2a5a0bd5802b3565437add16f5c8ce1f0778bf3822f89ad2740a38/cryptography-45.0.5-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:982518cd64c54fcada9d7e5cf28eabd3ee76bd03ab18e08a48cad7e8b6f31b18", size = 4386778 }, + { url = "https://files.pythonhosted.org/packages/5f/38/6bf177ca6bce4fe14704ab3e93627c5b0ca05242261a2e43ef3168472540/cryptography-45.0.5-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:12e55281d993a793b0e883066f590c1ae1e802e3acb67f8b442e721e475e6463", size = 4151627 }, + { url = "https://files.pythonhosted.org/packages/38/6a/69fc67e5266bff68a91bcb81dff8fb0aba4d79a78521a08812048913e16f/cryptography-45.0.5-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:5aa1e32983d4443e310f726ee4b071ab7569f58eedfdd65e9675484a4eb67bd1", size = 4385593 }, + { url = "https://files.pythonhosted.org/packages/f6/34/31a1604c9a9ade0fdab61eb48570e09a796f4d9836121266447b0eaf7feb/cryptography-45.0.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:e357286c1b76403dd384d938f93c46b2b058ed4dfcdce64a770f0537ed3feb6f", size = 3331106 }, ] [[package]] @@ -1735,7 +1736,7 @@ requires-dist = [ { name = "segy", specifier = ">=0.4.1.post2,<0.5.0" }, { name = "tqdm", specifier = ">=4.67.1,<5.0.0" }, { name = "xarray", specifier = ">=2025.6.1" }, - { name = "zarr", specifier = ">=3.0.8,<3.0.9" }, + { name = "zarr", specifier = ">=3.0.10,<4.0.0" }, { name = "zfpy", marker = "extra == 'lossy'", specifier = ">=1.0.1,<2.0.0" }, ] provides-extras = ["cloud", "distributed", "lossy"] @@ -2117,6 +2118,8 @@ sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3 wheels = [ { 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 }, { 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 }, + { 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 }, + { 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 }, { 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 }, { 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 }, { 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 }, @@ -2126,6 +2129,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c6/df/90bd886fabd544c25addd63e5ca6932c86f2b701d5da6c7839387a076b4a/pillow-11.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:30807c931ff7c095620fe04448e2c2fc673fcbb1ffe2a7da3fb39613489b1ddd", size = 2423079 }, { 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 }, { 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 }, + { 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 }, + { 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 }, { 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 }, { 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 }, { 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 }, @@ -2138,6 +2143,8 @@ wheels = [ { 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 }, { 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 }, { 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 }, + { 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 }, + { 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 }, { 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 }, { 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 }, { 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 }, @@ -2147,6 +2154,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/17/d2/622f4547f69cd173955194b78e4d19ca4935a1b0f03a302d655c9f6aae65/pillow-11.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:1904e1264881f682f02b7f8167935cce37bc97db457f8e7849dc3a6a52b99580", size = 2423055 }, { 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 }, { 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 }, + { 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 }, + { 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 }, { 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 }, { 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 }, { 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 }, @@ -2156,6 +2165,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f3/7e/b623008460c09a0cb38263c93b828c666493caee2eb34ff67f778b87e58c/pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e", size = 2424803 }, { 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 }, { 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 }, + { 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 }, + { 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 }, { 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 }, { 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 }, { url = "https://files.pythonhosted.org/packages/34/e7/ae39f538fd6844e982063c3a5e4598b8ced43b9633baa3a85ef33af8c05c/pillow-11.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c84d689db21a1c397d001aa08241044aa2069e7587b398c8cc63020390b1c1b8", size = 6984598 }, @@ -2790,76 +2801,76 @@ wheels = [ [[package]] name = "rpds-py" -version = "0.25.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8c/a6/60184b7fc00dd3ca80ac635dd5b8577d444c57e8e8742cecabfacb829921/rpds_py-0.25.1.tar.gz", hash = "sha256:8960b6dac09b62dac26e75d7e2c4a22efb835d827a7278c34f72b2b84fa160e3", size = 27304 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/95/e1/df13fe3ddbbea43567e07437f097863b20c99318ae1f58a0fe389f763738/rpds_py-0.25.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5f048bbf18b1f9120685c6d6bb70cc1a52c8cc11bdd04e643d28d3be0baf666d", size = 373341 }, - { url = "https://files.pythonhosted.org/packages/7a/58/deef4d30fcbcbfef3b6d82d17c64490d5c94585a2310544ce8e2d3024f83/rpds_py-0.25.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4fbb0dbba559959fcb5d0735a0f87cdbca9e95dac87982e9b95c0f8f7ad10255", size = 359111 }, - { url = "https://files.pythonhosted.org/packages/bb/7e/39f1f4431b03e96ebaf159e29a0f82a77259d8f38b2dd474721eb3a8ac9b/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4ca54b9cf9d80b4016a67a0193ebe0bcf29f6b0a96f09db942087e294d3d4c2", size = 386112 }, - { url = "https://files.pythonhosted.org/packages/db/e7/847068a48d63aec2ae695a1646089620b3b03f8ccf9f02c122ebaf778f3c/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ee3e26eb83d39b886d2cb6e06ea701bba82ef30a0de044d34626ede51ec98b0", size = 400362 }, - { url = "https://files.pythonhosted.org/packages/3b/3d/9441d5db4343d0cee759a7ab4d67420a476cebb032081763de934719727b/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:89706d0683c73a26f76a5315d893c051324d771196ae8b13e6ffa1ffaf5e574f", size = 522214 }, - { url = "https://files.pythonhosted.org/packages/a2/ec/2cc5b30d95f9f1a432c79c7a2f65d85e52812a8f6cbf8768724571710786/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2013ee878c76269c7b557a9a9c042335d732e89d482606990b70a839635feb7", size = 411491 }, - { url = "https://files.pythonhosted.org/packages/dc/6c/44695c1f035077a017dd472b6a3253553780837af2fac9b6ac25f6a5cb4d/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45e484db65e5380804afbec784522de84fa95e6bb92ef1bd3325d33d13efaebd", size = 386978 }, - { url = "https://files.pythonhosted.org/packages/b1/74/b4357090bb1096db5392157b4e7ed8bb2417dc7799200fcbaee633a032c9/rpds_py-0.25.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:48d64155d02127c249695abb87d39f0faf410733428d499867606be138161d65", size = 420662 }, - { url = "https://files.pythonhosted.org/packages/26/dd/8cadbebf47b96e59dfe8b35868e5c38a42272699324e95ed522da09d3a40/rpds_py-0.25.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:048893e902132fd6548a2e661fb38bf4896a89eea95ac5816cf443524a85556f", size = 563385 }, - { url = "https://files.pythonhosted.org/packages/c3/ea/92960bb7f0e7a57a5ab233662f12152085c7dc0d5468534c65991a3d48c9/rpds_py-0.25.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0317177b1e8691ab5879f4f33f4b6dc55ad3b344399e23df2e499de7b10a548d", size = 592047 }, - { url = "https://files.pythonhosted.org/packages/61/ad/71aabc93df0d05dabcb4b0c749277881f8e74548582d96aa1bf24379493a/rpds_py-0.25.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bffcf57826d77a4151962bf1701374e0fc87f536e56ec46f1abdd6a903354042", size = 557863 }, - { url = "https://files.pythonhosted.org/packages/93/0f/89df0067c41f122b90b76f3660028a466eb287cbe38efec3ea70e637ca78/rpds_py-0.25.1-cp311-cp311-win32.whl", hash = "sha256:cda776f1967cb304816173b30994faaf2fd5bcb37e73118a47964a02c348e1bc", size = 219627 }, - { url = "https://files.pythonhosted.org/packages/7c/8d/93b1a4c1baa903d0229374d9e7aa3466d751f1d65e268c52e6039c6e338e/rpds_py-0.25.1-cp311-cp311-win_amd64.whl", hash = "sha256:dc3c1ff0abc91444cd20ec643d0f805df9a3661fcacf9c95000329f3ddf268a4", size = 231603 }, - { url = "https://files.pythonhosted.org/packages/cb/11/392605e5247bead2f23e6888e77229fbd714ac241ebbebb39a1e822c8815/rpds_py-0.25.1-cp311-cp311-win_arm64.whl", hash = "sha256:5a3ddb74b0985c4387719fc536faced33cadf2172769540c62e2a94b7b9be1c4", size = 223967 }, - { url = "https://files.pythonhosted.org/packages/7f/81/28ab0408391b1dc57393653b6a0cf2014cc282cc2909e4615e63e58262be/rpds_py-0.25.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b5ffe453cde61f73fea9430223c81d29e2fbf412a6073951102146c84e19e34c", size = 364647 }, - { url = "https://files.pythonhosted.org/packages/2c/9a/7797f04cad0d5e56310e1238434f71fc6939d0bc517192a18bb99a72a95f/rpds_py-0.25.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:115874ae5e2fdcfc16b2aedc95b5eef4aebe91b28e7e21951eda8a5dc0d3461b", size = 350454 }, - { url = "https://files.pythonhosted.org/packages/69/3c/93d2ef941b04898011e5d6eaa56a1acf46a3b4c9f4b3ad1bbcbafa0bee1f/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a714bf6e5e81b0e570d01f56e0c89c6375101b8463999ead3a93a5d2a4af91fa", size = 389665 }, - { url = "https://files.pythonhosted.org/packages/c1/57/ad0e31e928751dde8903a11102559628d24173428a0f85e25e187defb2c1/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:35634369325906bcd01577da4c19e3b9541a15e99f31e91a02d010816b49bfda", size = 403873 }, - { url = "https://files.pythonhosted.org/packages/16/ad/c0c652fa9bba778b4f54980a02962748479dc09632e1fd34e5282cf2556c/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4cb2b3ddc16710548801c6fcc0cfcdeeff9dafbc983f77265877793f2660309", size = 525866 }, - { url = "https://files.pythonhosted.org/packages/2a/39/3e1839bc527e6fcf48d5fec4770070f872cdee6c6fbc9b259932f4e88a38/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ceca1cf097ed77e1a51f1dbc8d174d10cb5931c188a4505ff9f3e119dfe519b", size = 416886 }, - { url = "https://files.pythonhosted.org/packages/7a/95/dd6b91cd4560da41df9d7030a038298a67d24f8ca38e150562644c829c48/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c2cd1a4b0c2b8c5e31ffff50d09f39906fe351389ba143c195566056c13a7ea", size = 390666 }, - { url = "https://files.pythonhosted.org/packages/64/48/1be88a820e7494ce0a15c2d390ccb7c52212370badabf128e6a7bb4cb802/rpds_py-0.25.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1de336a4b164c9188cb23f3703adb74a7623ab32d20090d0e9bf499a2203ad65", size = 425109 }, - { url = "https://files.pythonhosted.org/packages/cf/07/3e2a17927ef6d7720b9949ec1b37d1e963b829ad0387f7af18d923d5cfa5/rpds_py-0.25.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9fca84a15333e925dd59ce01da0ffe2ffe0d6e5d29a9eeba2148916d1824948c", size = 567244 }, - { url = "https://files.pythonhosted.org/packages/d2/e5/76cf010998deccc4f95305d827847e2eae9c568099c06b405cf96384762b/rpds_py-0.25.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88ec04afe0c59fa64e2f6ea0dd9657e04fc83e38de90f6de201954b4d4eb59bd", size = 596023 }, - { url = "https://files.pythonhosted.org/packages/52/9a/df55efd84403736ba37a5a6377b70aad0fd1cb469a9109ee8a1e21299a1c/rpds_py-0.25.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a8bd2f19e312ce3e1d2c635618e8a8d8132892bb746a7cf74780a489f0f6cdcb", size = 561634 }, - { url = "https://files.pythonhosted.org/packages/ab/aa/dc3620dd8db84454aaf9374bd318f1aa02578bba5e567f5bf6b79492aca4/rpds_py-0.25.1-cp312-cp312-win32.whl", hash = "sha256:e5e2f7280d8d0d3ef06f3ec1b4fd598d386cc6f0721e54f09109a8132182fbfe", size = 222713 }, - { url = "https://files.pythonhosted.org/packages/a3/7f/7cef485269a50ed5b4e9bae145f512d2a111ca638ae70cc101f661b4defd/rpds_py-0.25.1-cp312-cp312-win_amd64.whl", hash = "sha256:db58483f71c5db67d643857404da360dce3573031586034b7d59f245144cc192", size = 235280 }, - { url = "https://files.pythonhosted.org/packages/99/f2/c2d64f6564f32af913bf5f3f7ae41c7c263c5ae4c4e8f1a17af8af66cd46/rpds_py-0.25.1-cp312-cp312-win_arm64.whl", hash = "sha256:6d50841c425d16faf3206ddbba44c21aa3310a0cebc3c1cdfc3e3f4f9f6f5728", size = 225399 }, - { url = "https://files.pythonhosted.org/packages/2b/da/323848a2b62abe6a0fec16ebe199dc6889c5d0a332458da8985b2980dffe/rpds_py-0.25.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:659d87430a8c8c704d52d094f5ba6fa72ef13b4d385b7e542a08fc240cb4a559", size = 364498 }, - { url = "https://files.pythonhosted.org/packages/1f/b4/4d3820f731c80fd0cd823b3e95b9963fec681ae45ba35b5281a42382c67d/rpds_py-0.25.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68f6f060f0bbdfb0245267da014d3a6da9be127fe3e8cc4a68c6f833f8a23bb1", size = 350083 }, - { url = "https://files.pythonhosted.org/packages/d5/b1/3a8ee1c9d480e8493619a437dec685d005f706b69253286f50f498cbdbcf/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:083a9513a33e0b92cf6e7a6366036c6bb43ea595332c1ab5c8ae329e4bcc0a9c", size = 389023 }, - { url = "https://files.pythonhosted.org/packages/3b/31/17293edcfc934dc62c3bf74a0cb449ecd549531f956b72287203e6880b87/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:816568614ecb22b18a010c7a12559c19f6fe993526af88e95a76d5a60b8b75fb", size = 403283 }, - { url = "https://files.pythonhosted.org/packages/d1/ca/e0f0bc1a75a8925024f343258c8ecbd8828f8997ea2ac71e02f67b6f5299/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c6564c0947a7f52e4792983f8e6cf9bac140438ebf81f527a21d944f2fd0a40", size = 524634 }, - { url = "https://files.pythonhosted.org/packages/3e/03/5d0be919037178fff33a6672ffc0afa04ea1cfcb61afd4119d1b5280ff0f/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c4a128527fe415d73cf1f70a9a688d06130d5810be69f3b553bf7b45e8acf79", size = 416233 }, - { url = "https://files.pythonhosted.org/packages/05/7c/8abb70f9017a231c6c961a8941403ed6557664c0913e1bf413cbdc039e75/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a49e1d7a4978ed554f095430b89ecc23f42014a50ac385eb0c4d163ce213c325", size = 390375 }, - { url = "https://files.pythonhosted.org/packages/7a/ac/a87f339f0e066b9535074a9f403b9313fd3892d4a164d5d5f5875ac9f29f/rpds_py-0.25.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d74ec9bc0e2feb81d3f16946b005748119c0f52a153f6db6a29e8cd68636f295", size = 424537 }, - { url = "https://files.pythonhosted.org/packages/1f/8f/8d5c1567eaf8c8afe98a838dd24de5013ce6e8f53a01bd47fe8bb06b5533/rpds_py-0.25.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3af5b4cc10fa41e5bc64e5c198a1b2d2864337f8fcbb9a67e747e34002ce812b", size = 566425 }, - { url = "https://files.pythonhosted.org/packages/95/33/03016a6be5663b389c8ab0bbbcca68d9e96af14faeff0a04affcb587e776/rpds_py-0.25.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:79dc317a5f1c51fd9c6a0c4f48209c6b8526d0524a6904fc1076476e79b00f98", size = 595197 }, - { url = "https://files.pythonhosted.org/packages/33/8d/da9f4d3e208c82fda311bff0cf0a19579afceb77cf456e46c559a1c075ba/rpds_py-0.25.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1521031351865e0181bc585147624d66b3b00a84109b57fcb7a779c3ec3772cd", size = 561244 }, - { url = "https://files.pythonhosted.org/packages/e2/b3/39d5dcf7c5f742ecd6dbc88f6f84ae54184b92f5f387a4053be2107b17f1/rpds_py-0.25.1-cp313-cp313-win32.whl", hash = "sha256:5d473be2b13600b93a5675d78f59e63b51b1ba2d0476893415dfbb5477e65b31", size = 222254 }, - { url = "https://files.pythonhosted.org/packages/5f/19/2d6772c8eeb8302c5f834e6d0dfd83935a884e7c5ce16340c7eaf89ce925/rpds_py-0.25.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7b74e92a3b212390bdce1d93da9f6488c3878c1d434c5e751cbc202c5e09500", size = 234741 }, - { url = "https://files.pythonhosted.org/packages/5b/5a/145ada26cfaf86018d0eb304fe55eafdd4f0b6b84530246bb4a7c4fb5c4b/rpds_py-0.25.1-cp313-cp313-win_arm64.whl", hash = "sha256:dd326a81afe332ede08eb39ab75b301d5676802cdffd3a8f287a5f0b694dc3f5", size = 224830 }, - { url = "https://files.pythonhosted.org/packages/4b/ca/d435844829c384fd2c22754ff65889c5c556a675d2ed9eb0e148435c6690/rpds_py-0.25.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:a58d1ed49a94d4183483a3ce0af22f20318d4a1434acee255d683ad90bf78129", size = 359668 }, - { url = "https://files.pythonhosted.org/packages/1f/01/b056f21db3a09f89410d493d2f6614d87bb162499f98b649d1dbd2a81988/rpds_py-0.25.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f251bf23deb8332823aef1da169d5d89fa84c89f67bdfb566c49dea1fccfd50d", size = 345649 }, - { url = "https://files.pythonhosted.org/packages/e0/0f/e0d00dc991e3d40e03ca36383b44995126c36b3eafa0ccbbd19664709c88/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dbd586bfa270c1103ece2109314dd423df1fa3d9719928b5d09e4840cec0d72", size = 384776 }, - { url = "https://files.pythonhosted.org/packages/9f/a2/59374837f105f2ca79bde3c3cd1065b2f8c01678900924949f6392eab66d/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6d273f136e912aa101a9274c3145dcbddbe4bac560e77e6d5b3c9f6e0ed06d34", size = 395131 }, - { url = "https://files.pythonhosted.org/packages/9c/dc/48e8d84887627a0fe0bac53f0b4631e90976fd5d35fff8be66b8e4f3916b/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:666fa7b1bd0a3810a7f18f6d3a25ccd8866291fbbc3c9b912b917a6715874bb9", size = 520942 }, - { url = "https://files.pythonhosted.org/packages/7c/f5/ee056966aeae401913d37befeeab57a4a43a4f00099e0a20297f17b8f00c/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:921954d7fbf3fccc7de8f717799304b14b6d9a45bbeec5a8d7408ccbf531faf5", size = 411330 }, - { url = "https://files.pythonhosted.org/packages/ab/74/b2cffb46a097cefe5d17f94ede7a174184b9d158a0aeb195f39f2c0361e8/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3d86373ff19ca0441ebeb696ef64cb58b8b5cbacffcda5a0ec2f3911732a194", size = 387339 }, - { url = "https://files.pythonhosted.org/packages/7f/9a/0ff0b375dcb5161c2b7054e7d0b7575f1680127505945f5cabaac890bc07/rpds_py-0.25.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c8980cde3bb8575e7c956a530f2c217c1d6aac453474bf3ea0f9c89868b531b6", size = 418077 }, - { url = "https://files.pythonhosted.org/packages/0d/a1/fda629bf20d6b698ae84c7c840cfb0e9e4200f664fc96e1f456f00e4ad6e/rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8eb8c84ecea987a2523e057c0d950bcb3f789696c0499290b8d7b3107a719d78", size = 562441 }, - { url = "https://files.pythonhosted.org/packages/20/15/ce4b5257f654132f326f4acd87268e1006cc071e2c59794c5bdf4bebbb51/rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:e43a005671a9ed5a650f3bc39e4dbccd6d4326b24fb5ea8be5f3a43a6f576c72", size = 590750 }, - { url = "https://files.pythonhosted.org/packages/fb/ab/e04bf58a8d375aeedb5268edcc835c6a660ebf79d4384d8e0889439448b0/rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:58f77c60956501a4a627749a6dcb78dac522f249dd96b5c9f1c6af29bfacfb66", size = 558891 }, - { url = "https://files.pythonhosted.org/packages/90/82/cb8c6028a6ef6cd2b7991e2e4ced01c854b6236ecf51e81b64b569c43d73/rpds_py-0.25.1-cp313-cp313t-win32.whl", hash = "sha256:2cb9e5b5e26fc02c8a4345048cd9998c2aca7c2712bd1b36da0c72ee969a3523", size = 218718 }, - { url = "https://files.pythonhosted.org/packages/b6/97/5a4b59697111c89477d20ba8a44df9ca16b41e737fa569d5ae8bff99e650/rpds_py-0.25.1-cp313-cp313t-win_amd64.whl", hash = "sha256:401ca1c4a20cc0510d3435d89c069fe0a9ae2ee6495135ac46bdd49ec0495763", size = 232218 }, - { url = "https://files.pythonhosted.org/packages/49/74/48f3df0715a585cbf5d34919c9c757a4c92c1a9eba059f2d334e72471f70/rpds_py-0.25.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee86d81551ec68a5c25373c5643d343150cc54672b5e9a0cafc93c1870a53954", size = 374208 }, - { url = "https://files.pythonhosted.org/packages/55/b0/9b01bb11ce01ec03d05e627249cc2c06039d6aa24ea5a22a39c312167c10/rpds_py-0.25.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89c24300cd4a8e4a51e55c31a8ff3918e6651b241ee8876a42cc2b2a078533ba", size = 359262 }, - { url = "https://files.pythonhosted.org/packages/a9/eb/5395621618f723ebd5116c53282052943a726dba111b49cd2071f785b665/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:771c16060ff4e79584dc48902a91ba79fd93eade3aa3a12d6d2a4aadaf7d542b", size = 387366 }, - { url = "https://files.pythonhosted.org/packages/68/73/3d51442bdb246db619d75039a50ea1cf8b5b4ee250c3e5cd5c3af5981cd4/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:785ffacd0ee61c3e60bdfde93baa6d7c10d86f15655bd706c89da08068dc5038", size = 400759 }, - { url = "https://files.pythonhosted.org/packages/b7/4c/3a32d5955d7e6cb117314597bc0f2224efc798428318b13073efe306512a/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a40046a529cc15cef88ac5ab589f83f739e2d332cb4d7399072242400ed68c9", size = 523128 }, - { url = "https://files.pythonhosted.org/packages/be/95/1ffccd3b0bb901ae60b1dd4b1be2ab98bb4eb834cd9b15199888f5702f7b/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85fc223d9c76cabe5d0bff82214459189720dc135db45f9f66aa7cffbf9ff6c1", size = 411597 }, - { url = "https://files.pythonhosted.org/packages/ef/6d/6e6cd310180689db8b0d2de7f7d1eabf3fb013f239e156ae0d5a1a85c27f/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0be9965f93c222fb9b4cc254235b3b2b215796c03ef5ee64f995b1b69af0762", size = 388053 }, - { url = "https://files.pythonhosted.org/packages/4a/87/ec4186b1fe6365ced6fa470960e68fc7804bafbe7c0cf5a36237aa240efa/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8378fa4a940f3fb509c081e06cb7f7f2adae8cf46ef258b0e0ed7519facd573e", size = 421821 }, - { url = "https://files.pythonhosted.org/packages/7a/60/84f821f6bf4e0e710acc5039d91f8f594fae0d93fc368704920d8971680d/rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:33358883a4490287e67a2c391dfaea4d9359860281db3292b6886bf0be3d8692", size = 564534 }, - { url = "https://files.pythonhosted.org/packages/41/3a/bc654eb15d3b38f9330fe0f545016ba154d89cdabc6177b0295910cd0ebe/rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1d1fadd539298e70cac2f2cb36f5b8a65f742b9b9f1014dd4ea1f7785e2470bf", size = 592674 }, - { url = "https://files.pythonhosted.org/packages/2e/ba/31239736f29e4dfc7a58a45955c5db852864c306131fd6320aea214d5437/rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9a46c2fb2545e21181445515960006e85d22025bd2fe6db23e76daec6eb689fe", size = 558781 }, +version = "0.26.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/aa/4456d84bbb54adc6a916fb10c9b374f78ac840337644e4a5eda229c81275/rpds_py-0.26.0.tar.gz", hash = "sha256:20dae58a859b0906f0685642e591056f1e787f3a8b39c8e8749a45dc7d26bdb0", size = 27385 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/09/4c/4ee8f7e512030ff79fda1df3243c88d70fc874634e2dbe5df13ba4210078/rpds_py-0.26.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9e8cb77286025bdb21be2941d64ac6ca016130bfdcd228739e8ab137eb4406ed", size = 372610 }, + { url = "https://files.pythonhosted.org/packages/fa/9d/3dc16be00f14fc1f03c71b1d67c8df98263ab2710a2fbd65a6193214a527/rpds_py-0.26.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5e09330b21d98adc8ccb2dbb9fc6cb434e8908d4c119aeaa772cb1caab5440a0", size = 358032 }, + { url = "https://files.pythonhosted.org/packages/e7/5a/7f1bf8f045da2866324a08ae80af63e64e7bfaf83bd31f865a7b91a58601/rpds_py-0.26.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c9c1b92b774b2e68d11193dc39620d62fd8ab33f0a3c77ecdabe19c179cdbc1", size = 381525 }, + { url = "https://files.pythonhosted.org/packages/45/8a/04479398c755a066ace10e3d158866beb600867cacae194c50ffa783abd0/rpds_py-0.26.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:824e6d3503ab990d7090768e4dfd9e840837bae057f212ff9f4f05ec6d1975e7", size = 397089 }, + { url = "https://files.pythonhosted.org/packages/72/88/9203f47268db488a1b6d469d69c12201ede776bb728b9d9f29dbfd7df406/rpds_py-0.26.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ad7fd2258228bf288f2331f0a6148ad0186b2e3643055ed0db30990e59817a6", size = 514255 }, + { url = "https://files.pythonhosted.org/packages/f5/b4/01ce5d1e853ddf81fbbd4311ab1eff0b3cf162d559288d10fd127e2588b5/rpds_py-0.26.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0dc23bbb3e06ec1ea72d515fb572c1fea59695aefbffb106501138762e1e915e", size = 402283 }, + { url = "https://files.pythonhosted.org/packages/34/a2/004c99936997bfc644d590a9defd9e9c93f8286568f9c16cdaf3e14429a7/rpds_py-0.26.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d80bf832ac7b1920ee29a426cdca335f96a2b5caa839811803e999b41ba9030d", size = 383881 }, + { url = "https://files.pythonhosted.org/packages/05/1b/ef5fba4a8f81ce04c427bfd96223f92f05e6cd72291ce9d7523db3b03a6c/rpds_py-0.26.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0919f38f5542c0a87e7b4afcafab6fd2c15386632d249e9a087498571250abe3", size = 415822 }, + { url = "https://files.pythonhosted.org/packages/16/80/5c54195aec456b292f7bd8aa61741c8232964063fd8a75fdde9c1e982328/rpds_py-0.26.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d422b945683e409000c888e384546dbab9009bb92f7c0b456e217988cf316107", size = 558347 }, + { url = "https://files.pythonhosted.org/packages/f2/1c/1845c1b1fd6d827187c43afe1841d91678d7241cbdb5420a4c6de180a538/rpds_py-0.26.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a7711fa562ba2da1aa757e11024ad6d93bad6ad7ede5afb9af144623e5f76a", size = 587956 }, + { url = "https://files.pythonhosted.org/packages/2e/ff/9e979329dd131aa73a438c077252ddabd7df6d1a7ad7b9aacf6261f10faa/rpds_py-0.26.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:238e8c8610cb7c29460e37184f6799547f7e09e6a9bdbdab4e8edb90986a2318", size = 554363 }, + { url = "https://files.pythonhosted.org/packages/00/8b/d78cfe034b71ffbe72873a136e71acc7a831a03e37771cfe59f33f6de8a2/rpds_py-0.26.0-cp311-cp311-win32.whl", hash = "sha256:893b022bfbdf26d7bedb083efeea624e8550ca6eb98bf7fea30211ce95b9201a", size = 220123 }, + { url = "https://files.pythonhosted.org/packages/94/c1/3c8c94c7dd3905dbfde768381ce98778500a80db9924731d87ddcdb117e9/rpds_py-0.26.0-cp311-cp311-win_amd64.whl", hash = "sha256:87a5531de9f71aceb8af041d72fc4cab4943648d91875ed56d2e629bef6d4c03", size = 231732 }, + { url = "https://files.pythonhosted.org/packages/67/93/e936fbed1b734eabf36ccb5d93c6a2e9246fbb13c1da011624b7286fae3e/rpds_py-0.26.0-cp311-cp311-win_arm64.whl", hash = "sha256:de2713f48c1ad57f89ac25b3cb7daed2156d8e822cf0eca9b96a6f990718cc41", size = 221917 }, + { url = "https://files.pythonhosted.org/packages/ea/86/90eb87c6f87085868bd077c7a9938006eb1ce19ed4d06944a90d3560fce2/rpds_py-0.26.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:894514d47e012e794f1350f076c427d2347ebf82f9b958d554d12819849a369d", size = 363933 }, + { url = "https://files.pythonhosted.org/packages/63/78/4469f24d34636242c924626082b9586f064ada0b5dbb1e9d096ee7a8e0c6/rpds_py-0.26.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc921b96fa95a097add244da36a1d9e4f3039160d1d30f1b35837bf108c21136", size = 350447 }, + { url = "https://files.pythonhosted.org/packages/ad/91/c448ed45efdfdade82348d5e7995e15612754826ea640afc20915119734f/rpds_py-0.26.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e1157659470aa42a75448b6e943c895be8c70531c43cb78b9ba990778955582", size = 384711 }, + { url = "https://files.pythonhosted.org/packages/ec/43/e5c86fef4be7f49828bdd4ecc8931f0287b1152c0bb0163049b3218740e7/rpds_py-0.26.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:521ccf56f45bb3a791182dc6b88ae5f8fa079dd705ee42138c76deb1238e554e", size = 400865 }, + { url = "https://files.pythonhosted.org/packages/55/34/e00f726a4d44f22d5c5fe2e5ddd3ac3d7fd3f74a175607781fbdd06fe375/rpds_py-0.26.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9def736773fd56b305c0eef698be5192c77bfa30d55a0e5885f80126c4831a15", size = 517763 }, + { url = "https://files.pythonhosted.org/packages/52/1c/52dc20c31b147af724b16104500fba13e60123ea0334beba7b40e33354b4/rpds_py-0.26.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cdad4ea3b4513b475e027be79e5a0ceac8ee1c113a1a11e5edc3c30c29f964d8", size = 406651 }, + { url = "https://files.pythonhosted.org/packages/2e/77/87d7bfabfc4e821caa35481a2ff6ae0b73e6a391bb6b343db2c91c2b9844/rpds_py-0.26.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82b165b07f416bdccf5c84546a484cc8f15137ca38325403864bfdf2b5b72f6a", size = 386079 }, + { url = "https://files.pythonhosted.org/packages/e3/d4/7f2200c2d3ee145b65b3cddc4310d51f7da6a26634f3ac87125fd789152a/rpds_py-0.26.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d04cab0a54b9dba4d278fe955a1390da3cf71f57feb78ddc7cb67cbe0bd30323", size = 421379 }, + { url = "https://files.pythonhosted.org/packages/ae/13/9fdd428b9c820869924ab62236b8688b122baa22d23efdd1c566938a39ba/rpds_py-0.26.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:79061ba1a11b6a12743a2b0f72a46aa2758613d454aa6ba4f5a265cc48850158", size = 562033 }, + { url = "https://files.pythonhosted.org/packages/f3/e1/b69686c3bcbe775abac3a4c1c30a164a2076d28df7926041f6c0eb5e8d28/rpds_py-0.26.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f405c93675d8d4c5ac87364bb38d06c988e11028a64b52a47158a355079661f3", size = 591639 }, + { url = "https://files.pythonhosted.org/packages/5c/c9/1e3d8c8863c84a90197ac577bbc3d796a92502124c27092413426f670990/rpds_py-0.26.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dafd4c44b74aa4bed4b250f1aed165b8ef5de743bcca3b88fc9619b6087093d2", size = 557105 }, + { url = "https://files.pythonhosted.org/packages/9f/c5/90c569649057622959f6dcc40f7b516539608a414dfd54b8d77e3b201ac0/rpds_py-0.26.0-cp312-cp312-win32.whl", hash = "sha256:3da5852aad63fa0c6f836f3359647870e21ea96cf433eb393ffa45263a170d44", size = 223272 }, + { url = "https://files.pythonhosted.org/packages/7d/16/19f5d9f2a556cfed454eebe4d354c38d51c20f3db69e7b4ce6cff904905d/rpds_py-0.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:cf47cfdabc2194a669dcf7a8dbba62e37a04c5041d2125fae0233b720da6f05c", size = 234995 }, + { url = "https://files.pythonhosted.org/packages/83/f0/7935e40b529c0e752dfaa7880224771b51175fce08b41ab4a92eb2fbdc7f/rpds_py-0.26.0-cp312-cp312-win_arm64.whl", hash = "sha256:20ab1ae4fa534f73647aad289003f1104092890849e0266271351922ed5574f8", size = 223198 }, + { url = "https://files.pythonhosted.org/packages/6a/67/bb62d0109493b12b1c6ab00de7a5566aa84c0e44217c2d94bee1bd370da9/rpds_py-0.26.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:696764a5be111b036256c0b18cd29783fab22154690fc698062fc1b0084b511d", size = 363917 }, + { url = "https://files.pythonhosted.org/packages/4b/f3/34e6ae1925a5706c0f002a8d2d7f172373b855768149796af87bd65dcdb9/rpds_py-0.26.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1e6c15d2080a63aaed876e228efe4f814bc7889c63b1e112ad46fdc8b368b9e1", size = 350073 }, + { url = "https://files.pythonhosted.org/packages/75/83/1953a9d4f4e4de7fd0533733e041c28135f3c21485faaef56a8aadbd96b5/rpds_py-0.26.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390e3170babf42462739a93321e657444f0862c6d722a291accc46f9d21ed04e", size = 384214 }, + { url = "https://files.pythonhosted.org/packages/48/0e/983ed1b792b3322ea1d065e67f4b230f3b96025f5ce3878cc40af09b7533/rpds_py-0.26.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7da84c2c74c0f5bc97d853d9e17bb83e2dcafcff0dc48286916001cc114379a1", size = 400113 }, + { url = "https://files.pythonhosted.org/packages/69/7f/36c0925fff6f660a80be259c5b4f5e53a16851f946eb080351d057698528/rpds_py-0.26.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c5fe114a6dd480a510b6d3661d09d67d1622c4bf20660a474507aaee7eeeee9", size = 515189 }, + { url = "https://files.pythonhosted.org/packages/13/45/cbf07fc03ba7a9b54662c9badb58294ecfb24f828b9732970bd1a431ed5c/rpds_py-0.26.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3100b3090269f3a7ea727b06a6080d4eb7439dca4c0e91a07c5d133bb1727ea7", size = 406998 }, + { url = "https://files.pythonhosted.org/packages/6c/b0/8fa5e36e58657997873fd6a1cf621285ca822ca75b4b3434ead047daa307/rpds_py-0.26.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c03c9b0c64afd0320ae57de4c982801271c0c211aa2d37f3003ff5feb75bb04", size = 385903 }, + { url = "https://files.pythonhosted.org/packages/4b/f7/b25437772f9f57d7a9fbd73ed86d0dcd76b4c7c6998348c070d90f23e315/rpds_py-0.26.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5963b72ccd199ade6ee493723d18a3f21ba7d5b957017607f815788cef50eaf1", size = 419785 }, + { url = "https://files.pythonhosted.org/packages/a7/6b/63ffa55743dfcb4baf2e9e77a0b11f7f97ed96a54558fcb5717a4b2cd732/rpds_py-0.26.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9da4e873860ad5bab3291438525cae80169daecbfafe5657f7f5fb4d6b3f96b9", size = 561329 }, + { url = "https://files.pythonhosted.org/packages/2f/07/1f4f5e2886c480a2346b1e6759c00278b8a69e697ae952d82ae2e6ee5db0/rpds_py-0.26.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5afaddaa8e8c7f1f7b4c5c725c0070b6eed0228f705b90a1732a48e84350f4e9", size = 590875 }, + { url = "https://files.pythonhosted.org/packages/cc/bc/e6639f1b91c3a55f8c41b47d73e6307051b6e246254a827ede730624c0f8/rpds_py-0.26.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4916dc96489616a6f9667e7526af8fa693c0fdb4f3acb0e5d9f4400eb06a47ba", size = 556636 }, + { url = "https://files.pythonhosted.org/packages/05/4c/b3917c45566f9f9a209d38d9b54a1833f2bb1032a3e04c66f75726f28876/rpds_py-0.26.0-cp313-cp313-win32.whl", hash = "sha256:2a343f91b17097c546b93f7999976fd6c9d5900617aa848c81d794e062ab302b", size = 222663 }, + { url = "https://files.pythonhosted.org/packages/e0/0b/0851bdd6025775aaa2365bb8de0697ee2558184c800bfef8d7aef5ccde58/rpds_py-0.26.0-cp313-cp313-win_amd64.whl", hash = "sha256:0a0b60701f2300c81b2ac88a5fb893ccfa408e1c4a555a77f908a2596eb875a5", size = 234428 }, + { url = "https://files.pythonhosted.org/packages/ed/e8/a47c64ed53149c75fb581e14a237b7b7cd18217e969c30d474d335105622/rpds_py-0.26.0-cp313-cp313-win_arm64.whl", hash = "sha256:257d011919f133a4746958257f2c75238e3ff54255acd5e3e11f3ff41fd14256", size = 222571 }, + { url = "https://files.pythonhosted.org/packages/89/bf/3d970ba2e2bcd17d2912cb42874107390f72873e38e79267224110de5e61/rpds_py-0.26.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:529c8156d7506fba5740e05da8795688f87119cce330c244519cf706a4a3d618", size = 360475 }, + { url = "https://files.pythonhosted.org/packages/82/9f/283e7e2979fc4ec2d8ecee506d5a3675fce5ed9b4b7cb387ea5d37c2f18d/rpds_py-0.26.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f53ec51f9d24e9638a40cabb95078ade8c99251945dad8d57bf4aabe86ecee35", size = 346692 }, + { url = "https://files.pythonhosted.org/packages/e3/03/7e50423c04d78daf391da3cc4330bdb97042fc192a58b186f2d5deb7befd/rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab504c4d654e4a29558eaa5bb8cea5fdc1703ea60a8099ffd9c758472cf913f", size = 379415 }, + { url = "https://files.pythonhosted.org/packages/57/00/d11ee60d4d3b16808432417951c63df803afb0e0fc672b5e8d07e9edaaae/rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd0641abca296bc1a00183fe44f7fced8807ed49d501f188faa642d0e4975b83", size = 391783 }, + { url = "https://files.pythonhosted.org/packages/08/b3/1069c394d9c0d6d23c5b522e1f6546b65793a22950f6e0210adcc6f97c3e/rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b312fecc1d017b5327afa81d4da1480f51c68810963a7336d92203dbb3d4f1", size = 512844 }, + { url = "https://files.pythonhosted.org/packages/08/3b/c4fbf0926800ed70b2c245ceca99c49f066456755f5d6eb8863c2c51e6d0/rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c741107203954f6fc34d3066d213d0a0c40f7bb5aafd698fb39888af277c70d8", size = 402105 }, + { url = "https://files.pythonhosted.org/packages/1c/b0/db69b52ca07413e568dae9dc674627a22297abb144c4d6022c6d78f1e5cc/rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc3e55a7db08dc9a6ed5fb7103019d2c1a38a349ac41901f9f66d7f95750942f", size = 383440 }, + { url = "https://files.pythonhosted.org/packages/4c/e1/c65255ad5b63903e56b3bb3ff9dcc3f4f5c3badde5d08c741ee03903e951/rpds_py-0.26.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e851920caab2dbcae311fd28f4313c6953993893eb5c1bb367ec69d9a39e7ed", size = 412759 }, + { url = "https://files.pythonhosted.org/packages/e4/22/bb731077872377a93c6e93b8a9487d0406c70208985831034ccdeed39c8e/rpds_py-0.26.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dfbf280da5f876d0b00c81f26bedce274e72a678c28845453885a9b3c22ae632", size = 556032 }, + { url = "https://files.pythonhosted.org/packages/e0/8b/393322ce7bac5c4530fb96fc79cc9ea2f83e968ff5f6e873f905c493e1c4/rpds_py-0.26.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1cc81d14ddfa53d7f3906694d35d54d9d3f850ef8e4e99ee68bc0d1e5fed9a9c", size = 585416 }, + { url = "https://files.pythonhosted.org/packages/49/ae/769dc372211835bf759319a7aae70525c6eb523e3371842c65b7ef41c9c6/rpds_py-0.26.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dca83c498b4650a91efcf7b88d669b170256bf8017a5db6f3e06c2bf031f57e0", size = 554049 }, + { url = "https://files.pythonhosted.org/packages/6b/f9/4c43f9cc203d6ba44ce3146246cdc38619d92c7bd7bad4946a3491bd5b70/rpds_py-0.26.0-cp313-cp313t-win32.whl", hash = "sha256:4d11382bcaf12f80b51d790dee295c56a159633a8e81e6323b16e55d81ae37e9", size = 218428 }, + { url = "https://files.pythonhosted.org/packages/7e/8b/9286b7e822036a4a977f2f1e851c7345c20528dbd56b687bb67ed68a8ede/rpds_py-0.26.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff110acded3c22c033e637dd8896e411c7d3a11289b2edf041f86663dbc791e9", size = 231524 }, + { url = "https://files.pythonhosted.org/packages/51/f2/b5c85b758a00c513bb0389f8fc8e61eb5423050c91c958cdd21843faa3e6/rpds_py-0.26.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f61a9326f80ca59214d1cceb0a09bb2ece5b2563d4e0cd37bfd5515c28510674", size = 373505 }, + { url = "https://files.pythonhosted.org/packages/23/e0/25db45e391251118e915e541995bb5f5ac5691a3b98fb233020ba53afc9b/rpds_py-0.26.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:183f857a53bcf4b1b42ef0f57ca553ab56bdd170e49d8091e96c51c3d69ca696", size = 359468 }, + { url = "https://files.pythonhosted.org/packages/0b/73/dd5ee6075bb6491be3a646b301dfd814f9486d924137a5098e61f0487e16/rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:941c1cfdf4799d623cf3aa1d326a6b4fdb7a5799ee2687f3516738216d2262fb", size = 382680 }, + { url = "https://files.pythonhosted.org/packages/2f/10/84b522ff58763a5c443f5bcedc1820240e454ce4e620e88520f04589e2ea/rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72a8d9564a717ee291f554eeb4bfeafe2309d5ec0aa6c475170bdab0f9ee8e88", size = 397035 }, + { url = "https://files.pythonhosted.org/packages/06/ea/8667604229a10a520fcbf78b30ccc278977dcc0627beb7ea2c96b3becef0/rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:511d15193cbe013619dd05414c35a7dedf2088fcee93c6bbb7c77859765bd4e8", size = 514922 }, + { url = "https://files.pythonhosted.org/packages/24/e6/9ed5b625c0661c4882fc8cdf302bf8e96c73c40de99c31e0b95ed37d508c/rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aea1f9741b603a8d8fedb0ed5502c2bc0accbc51f43e2ad1337fe7259c2b77a5", size = 402822 }, + { url = "https://files.pythonhosted.org/packages/8a/58/212c7b6fd51946047fb45d3733da27e2fa8f7384a13457c874186af691b1/rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4019a9d473c708cf2f16415688ef0b4639e07abaa569d72f74745bbeffafa2c7", size = 384336 }, + { url = "https://files.pythonhosted.org/packages/aa/f5/a40ba78748ae8ebf4934d4b88e77b98497378bc2c24ba55ebe87a4e87057/rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:093d63b4b0f52d98ebae33b8c50900d3d67e0666094b1be7a12fffd7f65de74b", size = 416871 }, + { url = "https://files.pythonhosted.org/packages/d5/a6/33b1fc0c9f7dcfcfc4a4353daa6308b3ece22496ceece348b3e7a7559a09/rpds_py-0.26.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2abe21d8ba64cded53a2a677e149ceb76dcf44284202d737178afe7ba540c1eb", size = 559439 }, + { url = "https://files.pythonhosted.org/packages/71/2d/ceb3f9c12f8cfa56d34995097f6cd99da1325642c60d1b6680dd9df03ed8/rpds_py-0.26.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:4feb7511c29f8442cbbc28149a92093d32e815a28aa2c50d333826ad2a20fdf0", size = 588380 }, + { url = "https://files.pythonhosted.org/packages/c8/ed/9de62c2150ca8e2e5858acf3f4f4d0d180a38feef9fdab4078bea63d8dba/rpds_py-0.26.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e99685fc95d386da368013e7fb4269dd39c30d99f812a8372d62f244f662709c", size = 555334 }, ] [[package]] @@ -2923,27 +2934,27 @@ wheels = [ [[package]] name = "ruff" -version = "0.12.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/97/38/796a101608a90494440856ccfb52b1edae90de0b817e76bfade66b12d320/ruff-0.12.1.tar.gz", hash = "sha256:806bbc17f1104fd57451a98a58df35388ee3ab422e029e8f5cf30aa4af2c138c", size = 4413426 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/06/bf/3dba52c1d12ab5e78d75bd78ad52fb85a6a1f29cc447c2423037b82bed0d/ruff-0.12.1-py3-none-linux_armv6l.whl", hash = "sha256:6013a46d865111e2edb71ad692fbb8262e6c172587a57c0669332a449384a36b", size = 10305649 }, - { url = "https://files.pythonhosted.org/packages/8c/65/dab1ba90269bc8c81ce1d499a6517e28fe6f87b2119ec449257d0983cceb/ruff-0.12.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b3f75a19e03a4b0757d1412edb7f27cffb0c700365e9d6b60bc1b68d35bc89e0", size = 11120201 }, - { url = "https://files.pythonhosted.org/packages/3f/3e/2d819ffda01defe857fa2dd4cba4d19109713df4034cc36f06bbf582d62a/ruff-0.12.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:9a256522893cb7e92bb1e1153283927f842dea2e48619c803243dccc8437b8be", size = 10466769 }, - { url = "https://files.pythonhosted.org/packages/63/37/bde4cf84dbd7821c8de56ec4ccc2816bce8125684f7b9e22fe4ad92364de/ruff-0.12.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:069052605fe74c765a5b4272eb89880e0ff7a31e6c0dbf8767203c1fbd31c7ff", size = 10660902 }, - { url = "https://files.pythonhosted.org/packages/0e/3a/390782a9ed1358c95e78ccc745eed1a9d657a537e5c4c4812fce06c8d1a0/ruff-0.12.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a684f125a4fec2d5a6501a466be3841113ba6847827be4573fddf8308b83477d", size = 10167002 }, - { url = "https://files.pythonhosted.org/packages/6d/05/f2d4c965009634830e97ffe733201ec59e4addc5b1c0efa035645baa9e5f/ruff-0.12.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdecdef753bf1e95797593007569d8e1697a54fca843d78f6862f7dc279e23bd", size = 11751522 }, - { url = "https://files.pythonhosted.org/packages/35/4e/4bfc519b5fcd462233f82fc20ef8b1e5ecce476c283b355af92c0935d5d9/ruff-0.12.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:70d52a058c0e7b88b602f575d23596e89bd7d8196437a4148381a3f73fcd5010", size = 12520264 }, - { url = "https://files.pythonhosted.org/packages/85/b2/7756a6925da236b3a31f234b4167397c3e5f91edb861028a631546bad719/ruff-0.12.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84d0a69d1e8d716dfeab22d8d5e7c786b73f2106429a933cee51d7b09f861d4e", size = 12133882 }, - { url = "https://files.pythonhosted.org/packages/dd/00/40da9c66d4a4d51291e619be6757fa65c91b92456ff4f01101593f3a1170/ruff-0.12.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6cc32e863adcf9e71690248607ccdf25252eeeab5193768e6873b901fd441fed", size = 11608941 }, - { url = "https://files.pythonhosted.org/packages/91/e7/f898391cc026a77fbe68dfea5940f8213622474cb848eb30215538a2dadf/ruff-0.12.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fd49a4619f90d5afc65cf42e07b6ae98bb454fd5029d03b306bd9e2273d44cc", size = 11602887 }, - { url = "https://files.pythonhosted.org/packages/f6/02/0891872fc6aab8678084f4cf8826f85c5d2d24aa9114092139a38123f94b/ruff-0.12.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ed5af6aaaea20710e77698e2055b9ff9b3494891e1b24d26c07055459bb717e9", size = 10521742 }, - { url = "https://files.pythonhosted.org/packages/2a/98/d6534322c74a7d47b0f33b036b2498ccac99d8d8c40edadb552c038cecf1/ruff-0.12.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:801d626de15e6bf988fbe7ce59b303a914ff9c616d5866f8c79eb5012720ae13", size = 10149909 }, - { url = "https://files.pythonhosted.org/packages/34/5c/9b7ba8c19a31e2b6bd5e31aa1e65b533208a30512f118805371dbbbdf6a9/ruff-0.12.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:2be9d32a147f98a1972c1e4df9a6956d612ca5f5578536814372113d09a27a6c", size = 11136005 }, - { url = "https://files.pythonhosted.org/packages/dc/34/9bbefa4d0ff2c000e4e533f591499f6b834346025e11da97f4ded21cb23e/ruff-0.12.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:49b7ce354eed2a322fbaea80168c902de9504e6e174fd501e9447cad0232f9e6", size = 11648579 }, - { url = "https://files.pythonhosted.org/packages/6f/1c/20cdb593783f8f411839ce749ec9ae9e4298c2b2079b40295c3e6e2089e1/ruff-0.12.1-py3-none-win32.whl", hash = "sha256:d973fa626d4c8267848755bd0414211a456e99e125dcab147f24daa9e991a245", size = 10519495 }, - { url = "https://files.pythonhosted.org/packages/cf/56/7158bd8d3cf16394928f47c637d39a7d532268cd45220bdb6cd622985760/ruff-0.12.1-py3-none-win_amd64.whl", hash = "sha256:9e1123b1c033f77bd2590e4c1fe7e8ea72ef990a85d2484351d408224d603013", size = 11547485 }, - { url = "https://files.pythonhosted.org/packages/91/d0/6902c0d017259439d6fd2fd9393cea1cfe30169940118b007d5e0ea7e954/ruff-0.12.1-py3-none-win_arm64.whl", hash = "sha256:78ad09a022c64c13cc6077707f036bab0fac8cd7088772dcd1e5be21c5002efc", size = 10691209 }, +version = "0.12.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/3d/d9a195676f25d00dbfcf3cf95fdd4c685c497fcfa7e862a44ac5e4e96480/ruff-0.12.2.tar.gz", hash = "sha256:d7b4f55cd6f325cb7621244f19c873c565a08aff5a4ba9c69aa7355f3f7afd3e", size = 4432239 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/b6/2098d0126d2d3318fd5bec3ad40d06c25d377d95749f7a0c5af17129b3b1/ruff-0.12.2-py3-none-linux_armv6l.whl", hash = "sha256:093ea2b221df1d2b8e7ad92fc6ffdca40a2cb10d8564477a987b44fd4008a7be", size = 10369761 }, + { url = "https://files.pythonhosted.org/packages/b1/4b/5da0142033dbe155dc598cfb99262d8ee2449d76920ea92c4eeb9547c208/ruff-0.12.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:09e4cf27cc10f96b1708100fa851e0daf21767e9709e1649175355280e0d950e", size = 11155659 }, + { url = "https://files.pythonhosted.org/packages/3e/21/967b82550a503d7c5c5c127d11c935344b35e8c521f52915fc858fb3e473/ruff-0.12.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:8ae64755b22f4ff85e9c52d1f82644abd0b6b6b6deedceb74bd71f35c24044cc", size = 10537769 }, + { url = "https://files.pythonhosted.org/packages/33/91/00cff7102e2ec71a4890fb7ba1803f2cdb122d82787c7d7cf8041fe8cbc1/ruff-0.12.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3eb3a6b2db4d6e2c77e682f0b988d4d61aff06860158fdb413118ca133d57922", size = 10717602 }, + { url = "https://files.pythonhosted.org/packages/9b/eb/928814daec4e1ba9115858adcda44a637fb9010618721937491e4e2283b8/ruff-0.12.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:73448de992d05517170fc37169cbca857dfeaeaa8c2b9be494d7bcb0d36c8f4b", size = 10198772 }, + { url = "https://files.pythonhosted.org/packages/50/fa/f15089bc20c40f4f72334f9145dde55ab2b680e51afb3b55422effbf2fb6/ruff-0.12.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b8b94317cbc2ae4a2771af641739f933934b03555e51515e6e021c64441532d", size = 11845173 }, + { url = "https://files.pythonhosted.org/packages/43/9f/1f6f98f39f2b9302acc161a4a2187b1e3a97634fe918a8e731e591841cf4/ruff-0.12.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:45fc42c3bf1d30d2008023a0a9a0cfb06bf9835b147f11fe0679f21ae86d34b1", size = 12553002 }, + { url = "https://files.pythonhosted.org/packages/d8/70/08991ac46e38ddd231c8f4fd05ef189b1b94be8883e8c0c146a025c20a19/ruff-0.12.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce48f675c394c37e958bf229fb5c1e843e20945a6d962cf3ea20b7a107dcd9f4", size = 12171330 }, + { url = "https://files.pythonhosted.org/packages/88/a9/5a55266fec474acfd0a1c73285f19dd22461d95a538f29bba02edd07a5d9/ruff-0.12.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793d8859445ea47591272021a81391350205a4af65a9392401f418a95dfb75c9", size = 11774717 }, + { url = "https://files.pythonhosted.org/packages/87/e5/0c270e458fc73c46c0d0f7cf970bb14786e5fdb88c87b5e423a4bd65232b/ruff-0.12.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6932323db80484dda89153da3d8e58164d01d6da86857c79f1961934354992da", size = 11646659 }, + { url = "https://files.pythonhosted.org/packages/b7/b6/45ab96070c9752af37f0be364d849ed70e9ccede07675b0ec4e3ef76b63b/ruff-0.12.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:6aa7e623a3a11538108f61e859ebf016c4f14a7e6e4eba1980190cacb57714ce", size = 10604012 }, + { url = "https://files.pythonhosted.org/packages/86/91/26a6e6a424eb147cc7627eebae095cfa0b4b337a7c1c413c447c9ebb72fd/ruff-0.12.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:2a4a20aeed74671b2def096bdf2eac610c7d8ffcbf4fb0e627c06947a1d7078d", size = 10176799 }, + { url = "https://files.pythonhosted.org/packages/f5/0c/9f344583465a61c8918a7cda604226e77b2c548daf8ef7c2bfccf2b37200/ruff-0.12.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:71a4c550195612f486c9d1f2b045a600aeba851b298c667807ae933478fcef04", size = 11241507 }, + { url = "https://files.pythonhosted.org/packages/1c/b7/99c34ded8fb5f86c0280278fa89a0066c3760edc326e935ce0b1550d315d/ruff-0.12.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:4987b8f4ceadf597c927beee65a5eaf994c6e2b631df963f86d8ad1bdea99342", size = 11717609 }, + { url = "https://files.pythonhosted.org/packages/51/de/8589fa724590faa057e5a6d171e7f2f6cffe3287406ef40e49c682c07d89/ruff-0.12.2-py3-none-win32.whl", hash = "sha256:369ffb69b70cd55b6c3fc453b9492d98aed98062db9fec828cdfd069555f5f1a", size = 10523823 }, + { url = "https://files.pythonhosted.org/packages/94/47/8abf129102ae4c90cba0c2199a1a9b0fa896f6f806238d6f8c14448cc748/ruff-0.12.2-py3-none-win_amd64.whl", hash = "sha256:dca8a3b6d6dc9810ed8f328d406516bf4d660c00caeaef36eb831cf4871b0639", size = 11629831 }, + { url = "https://files.pythonhosted.org/packages/e2/1f/72d2946e3cc7456bb837e88000eb3437e55f80db339c840c04015a11115d/ruff-0.12.2-py3-none-win_arm64.whl", hash = "sha256:48d6c6bfb4761df68bc05ae630e24f506755e702d4fb08f08460be778c7ccb12", size = 10735334 }, ] [[package]] @@ -3390,11 +3401,11 @@ wheels = [ [[package]] name = "typing-extensions" -version = "4.14.0" +version = "4.14.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d1/bc/51647cd02527e87d05cb083ccc402f93e441606ff1f01739a62c8ad09ba5/typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4", size = 107423 } +sdist = { url = "https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36", size = 107673 } wheels = [ - { url = "https://files.pythonhosted.org/packages/69/e0/552843e0d356fbb5256d21449fa957fa4eff3bbc135a74a691ee70c7c5da/typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af", size = 43839 }, + { url = "https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76", size = 43906 }, ] [[package]] @@ -3642,16 +3653,16 @@ wheels = [ [[package]] name = "xarray" -version = "2025.6.1" +version = "2025.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, { name = "packaging" }, { name = "pandas" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/19/ec/e50d833518f10b0c24feb184b209bb6856f25b919ba8c1f89678b930b1cd/xarray-2025.6.1.tar.gz", hash = "sha256:a84f3f07544634a130d7dc615ae44175419f4c77957a7255161ed99c69c7c8b0", size = 3003185 } +sdist = { url = "https://files.pythonhosted.org/packages/75/b5/d2f1fb2f583ae803b86280dcb7a4f81eef9d4c54f1ecde2307d1b6b1a147/xarray-2025.7.0.tar.gz", hash = "sha256:fd83ac8d638e7caef9d7f0c82bcdf380cede29d2ff84575133b2b95164af78ee", size = 3005754 } wheels = [ - { url = "https://files.pythonhosted.org/packages/82/8a/6b50c1dd2260d407c1a499d47cf829f59f07007e0dcebafdabb24d1d26a5/xarray-2025.6.1-py3-none-any.whl", hash = "sha256:8b988b47f67a383bdc3b04c5db475cd165e580134c1f1943d52aee4a9c97651b", size = 1314739 }, + { url = "https://files.pythonhosted.org/packages/6e/40/c9127ffdcceb865044267eb8cccfd8973ee5f8174677d2a67f50df626674/xarray-2025.7.0-py3-none-any.whl", hash = "sha256:7b5d7267bd554ae119c7a0062f62b50517b4dd1968efc11f2553826b7d99297f", size = 1316539 }, ] [[package]] @@ -3762,7 +3773,7 @@ wheels = [ [[package]] name = "zarr" -version = "3.0.8" +version = "3.0.10" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "donfig" }, @@ -3771,9 +3782,9 @@ dependencies = [ { name = "packaging" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/52/60/9652fd0536fbaca8d08cbc1a5572c52e0ce01773297df75da8bb47e45907/zarr-3.0.8.tar.gz", hash = "sha256:88505d095af899a88ae8ac4db02f4650ef0801d2ff6f65b6d1f0a45dcf760a6d", size = 256825 } +sdist = { url = "https://files.pythonhosted.org/packages/07/10/a1b6eabeb5a8681916568a7c6a7a1849c952131be127ccbd57e05d47d43e/zarr-3.0.10.tar.gz", hash = "sha256:1fd1318ade646f692d8f604be0e0ad125675a061196e612e3f7a2cfa9e957d1c", size = 263594 } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/3b/e20bdf84088c11f2c396d034506cbffadd53e024111c1aa4585c2aba1523/zarr-3.0.8-py3-none-any.whl", hash = "sha256:7f81e7aec086437d98882aa432209107114bd7f3a9f4958b2af9c6b5928a70a7", size = 205364 }, + { url = "https://files.pythonhosted.org/packages/45/57/3329346940f78de49047ddcb03fdbca9e16450c3a942688bf24201a322e5/zarr-3.0.10-py3-none-any.whl", hash = "sha256:110724c045fbe4ff5509a8a2a6b6098cb244a6af43da85eaeecef9821473163f", size = 209508 }, ] [[package]] From 90d31a1cd76724d2cb9ad64ede2a615533c80ca6 Mon Sep 17 00:00:00 2001 From: Dima From Texas <34629861+dmitriyrepin@users.noreply.github.com> Date: Thu, 10 Jul 2025 10:55:47 -0500 Subject: [PATCH 19/19] Implement MDIO Dataset builder to create in-memory instance of schemas.v1.dataset.Dataset (#568) * schema_v1-dataset_builder-add_dimension * First take on add_dimension(), add_coordinate(), add_variable() * Finished add_dimension, add_coordinate, add_variable * Work on build * Generalize _to_dictionary() * build * Dataset Build - pass one * Revert .container changes * PR review: remove DEVELOPER_NOTES.md * PR Review: add_coordinate() should accept only data_type: ScalarType * PR review: add_variable() data_type remove default * RE review: do not add dimension variable * PR Review: get api version from the package version * PR Review: remove add_dimension_coordinate * PR Review: add_coordinate() remove data_type default value * PR Review: improve unit tests by extracting common functionality in validate* functions * Remove the Dockerfile changes. They are not supposed to be a part of this PR * PR Review: run ruff * PR Review: fix pre-commit errors * remove some noqa overrides --------- Co-authored-by: Altay Sansal --- src/mdio/schemas/v1/dataset_builder.py | 335 ++++++++++++++++++ tests/unit/v1/__init__.py | 1 + tests/unit/v1/helpers.py | 254 +++++++++++++ .../v1/test_dataset_builder_add_coordinate.py | 141 ++++++++ .../v1/test_dataset_builder_add_dimension.py | 43 +++ .../v1/test_dataset_builder_add_variable.py | 250 +++++++++++++ tests/unit/v1/test_dataset_builder_build.py | 155 ++++++++ tests/unit/v1/test_dataset_builder_helpers.py | 98 +++++ 8 files changed, 1277 insertions(+) create mode 100644 src/mdio/schemas/v1/dataset_builder.py create mode 100644 tests/unit/v1/__init__.py create mode 100644 tests/unit/v1/helpers.py create mode 100644 tests/unit/v1/test_dataset_builder_add_coordinate.py create mode 100644 tests/unit/v1/test_dataset_builder_add_dimension.py create mode 100644 tests/unit/v1/test_dataset_builder_add_variable.py create mode 100644 tests/unit/v1/test_dataset_builder_build.py create mode 100644 tests/unit/v1/test_dataset_builder_helpers.py diff --git a/src/mdio/schemas/v1/dataset_builder.py b/src/mdio/schemas/v1/dataset_builder.py new file mode 100644 index 00000000..facd0dc8 --- /dev/null +++ b/src/mdio/schemas/v1/dataset_builder.py @@ -0,0 +1,335 @@ +"""Builder pattern implementation for MDIO v1 schema models.""" + +from datetime import UTC +from datetime import datetime +from enum import Enum +from enum import auto +from importlib import metadata +from typing import Any +from typing import TypeAlias + +from pydantic import BaseModel + +from mdio.schemas.compressors import ZFP +from mdio.schemas.compressors import Blosc +from mdio.schemas.dimension import NamedDimension +from mdio.schemas.dtype import ScalarType +from mdio.schemas.dtype import StructuredType +from mdio.schemas.metadata import ChunkGridMetadata +from mdio.schemas.metadata import UserAttributes +from mdio.schemas.v1.dataset import Dataset +from mdio.schemas.v1.dataset import DatasetInfo +from mdio.schemas.v1.stats import StatisticsMetadata +from mdio.schemas.v1.units import AllUnits +from mdio.schemas.v1.variable import Coordinate +from mdio.schemas.v1.variable import Variable + +AnyMetadataList: TypeAlias = list[ + AllUnits | UserAttributes | ChunkGridMetadata | StatisticsMetadata | DatasetInfo +] +CoordinateMetadataList: TypeAlias = list[AllUnits | UserAttributes] +VariableMetadataList: TypeAlias = list[ + AllUnits | UserAttributes | ChunkGridMetadata | StatisticsMetadata +] +DatasetMetadataList: TypeAlias = list[DatasetInfo | UserAttributes] + + +class _BuilderState(Enum): + """States for the template builder.""" + + INITIAL = auto() + HAS_DIMENSIONS = auto() + HAS_COORDINATES = auto() + HAS_VARIABLES = auto() + + +def _get_named_dimension( + dimensions: list[NamedDimension], name: str, size: int | None = None +) -> NamedDimension | None: + """Get a dimension by name and optional size from the list[NamedDimension].""" + if dimensions is None: + return False + if not isinstance(name, str): + msg = f"Expected str, got {type(name).__name__}" + raise TypeError(msg) + + nd = next((dim for dim in dimensions if dim.name == name), None) + if nd is None: + return None + if size is not None and nd.size != size: + msg = f"Dimension {name!r} found but size {nd.size} does not match expected size {size}" + raise ValueError(msg) + return nd + + +def _to_dictionary(val: BaseModel | dict[str, Any] | AnyMetadataList) -> dict[str, Any]: + """Convert a dictionary, list or pydantic BaseModel to a dictionary.""" + if val is None: + return None + if isinstance(val, BaseModel): + return val.model_dump(mode="json", by_alias=True) + if isinstance(val, dict): + return val + if isinstance(val, list): + metadata_dict = {} + for md in val: + if md is None: + continue + metadata_dict.update(_to_dictionary(md)) + return metadata_dict + msg = f"Expected BaseModel, dict or list, got {type(val).__name__}" + raise TypeError(msg) + + +class MDIODatasetBuilder: + """Builder for creating MDIO datasets with enforced build order. + + This builder implements the builder pattern to create MDIO datasets with a v1 schema. + It enforces a specific build order to ensure valid dataset construction: + 1. Must add dimensions first via add_dimension() + 2. Can optionally add coordinates via add_coordinate() + 3. Must add variables via add_variable() + 4. Must call build() to create the dataset. + """ + + def __init__(self, name: str, attributes: UserAttributes | None = None): + try: + api_version = metadata.version("multidimio") + except metadata.PackageNotFoundError: + api_version = "unknown" + + self._info = DatasetInfo(name=name, api_version=api_version, created_on=datetime.now(UTC)) + self._attributes = attributes + self._dimensions: list[NamedDimension] = [] + self._coordinates: list[Coordinate] = [] + self._variables: list[Variable] = [] + self._state = _BuilderState.INITIAL + self._unnamed_variable_counter = 0 + + def add_dimension(self, name: str, size: int) -> "MDIODatasetBuilder": + """Add a dimension. + + This function be called at least once before adding coordinates or variables. + + Args: + name: Name of the dimension + size: Size of the dimension + + Raises: + ValueError: If 'name' is not a non-empty string. + if the dimension is already defined. + + Returns: + self: Returns self for method chaining + """ + if not name: + msg = "'name' must be a non-empty string" + raise ValueError(msg) + + # Validate that the dimension is not already defined + old_var = next((e for e in self._dimensions if e.name == name), None) + if old_var is not None: + msg = "Adding dimension with the same name twice is not allowed" + raise ValueError(msg) + + dim = NamedDimension(name=name, size=size) + self._dimensions.append(dim) + self._state = _BuilderState.HAS_DIMENSIONS + return self + + def add_coordinate( # noqa: PLR0913 + self, + name: str, + *, + long_name: str = None, + dimensions: list[str], + data_type: ScalarType, + compressor: Blosc | ZFP | None = None, + metadata_info: CoordinateMetadataList | None = None, + ) -> "MDIODatasetBuilder": + """Add a coordinate after adding at least one dimension. + + This function must be called after all required dimensions are added via add_dimension(). + This call will create a coordinate variable. + + Args: + name: Name of the coordinate + long_name: Optional long name for the coordinate + dimensions: List of dimension names that the coordinate is associated with + data_type: Data type for the coordinate (defaults to FLOAT32) + compressor: Compressor used for the variable (defaults to None) + metadata_info: Optional metadata information for the coordinate + + Raises: + ValueError: If no dimensions have been added yet. + If 'name' is not a non-empty string. + If 'dimensions' is not a non-empty list. + If the coordinate is already defined. + If any referenced dimension is not already defined. + + Returns: + self: Returns self for method chaining + """ + if self._state == _BuilderState.INITIAL: + msg = "Must add at least one dimension before adding coordinates" + raise ValueError(msg) + if not name: + msg = "'name' must be a non-empty string" + raise ValueError(msg) + if dimensions is None or not dimensions: + msg = "'dimensions' must be a non-empty list" + raise ValueError(msg) + old_var = next((e for e in self._coordinates if e.name == name), None) + # Validate that the coordinate is not already defined + if old_var is not None: + msg = "Adding coordinate with the same name twice is not allowed" + raise ValueError(msg) + + # Validate that all referenced dimensions are already defined + named_dimensions = [] + for dim_name in dimensions: + nd = _get_named_dimension(self._dimensions, dim_name) + if nd is None: + msg = f"Pre-existing dimension named {dim_name!r} is not found" + raise ValueError(msg) + named_dimensions.append(nd) + + meta_dict = _to_dictionary(metadata_info) + coord = Coordinate( + name=name, + longName=long_name, + dimensions=named_dimensions, + compressor=compressor, + dataType=data_type, + metadata=meta_dict, + ) + self._coordinates.append(coord) + + # Add a coordinate variable to the dataset + self.add_variable( + name=coord.name, + long_name=f"'{coord.name}' coordinate variable", + dimensions=dimensions, # dimension names (list[str]) + data_type=coord.data_type, + compressor=compressor, + coordinates=[name], # Use the coordinate name as a reference + metadata_info=coord.metadata, + ) + + self._state = _BuilderState.HAS_COORDINATES + return self + + def add_variable( # noqa: PLR0913 + self, + name: str, + *, + long_name: str = None, + dimensions: list[str], + data_type: ScalarType | StructuredType, + compressor: Blosc | ZFP | None = None, + coordinates: list[str] | None = None, + metadata_info: VariableMetadataList | None = None, + ) -> "MDIODatasetBuilder": + """Add a variable after adding at least one dimension and, optionally, coordinate. + + This function must be called after all required dimensions are added via add_dimension() + This function must be called after all required coordinates are added via add_coordinate(). + + If this function is called with a single dimension name that matches the variable name, + it will create a dimension variable. Dimension variables are special variables that + represent sampling along a dimension. + + Args: + name: Name of the variable + long_name: Optional long name for the variable + dimensions: List of dimension names that the variable is associated with + data_type: Data type for the variable (defaults to FLOAT32) + compressor: Compressor used for the variable (defaults to None) + coordinates: List of coordinate names that the variable is associated with + (defaults to None, meaning no coordinates) + metadata_info: Optional metadata information for the variable + + Raises: + ValueError: If no dimensions have been added yet. + If 'name' is not a non-empty string. + If 'dimensions' is not a non-empty list. + If the variable is already defined. + If any referenced dimension is not already defined. + If any referenced coordinate is not already defined. + + Returns: + self: Returns self for method chaining. + """ + if self._state == _BuilderState.INITIAL: + msg = "Must add at least one dimension before adding variables" + raise ValueError(msg) + if not name: + msg = "'name' must be a non-empty string" + raise ValueError(msg) + if dimensions is None or not dimensions: + msg = "'dimensions' must be a non-empty list" + raise ValueError(msg) + + # Validate that the variable is not already defined + old_var = next((e for e in self._variables if e.name == name), None) + if old_var is not None: + msg = "Adding variable with the same name twice is not allowed" + raise ValueError(msg) + + # Validate that all referenced dimensions are already defined + named_dimensions = [] + for dim_name in dimensions: + nd = _get_named_dimension(self._dimensions, dim_name) + if nd is None: + msg = f"Pre-existing dimension named {dim_name!r} is not found" + raise ValueError(msg) + named_dimensions.append(nd) + + coordinate_objs: list[Coordinate] = [] + # Validate that all referenced coordinates are already defined + if coordinates is not None: + for coord in coordinates: + c: Coordinate = next((c for c in self._coordinates if c.name == coord), None) + if c is not None: + coordinate_objs.append(c) + else: + msg = f"Pre-existing coordinate named {coord!r} is not found" + raise ValueError(msg) + + # If this is a dimension coordinate variable, embed the Coordinate into it + if coordinates is not None and len(coordinates) == 1 and coordinates[0] == name: + coordinates = coordinate_objs + + meta_dict = _to_dictionary(metadata_info) + var = Variable( + name=name, + long_name=long_name, + dimensions=named_dimensions, + data_type=data_type, + compressor=compressor, + coordinates=coordinates, + metadata=meta_dict, + ) + self._variables.append(var) + + self._state = _BuilderState.HAS_VARIABLES + return self + + def build(self) -> Dataset: + """Build the final dataset. + + This function must be called after at least one dimension is added via add_dimension(). + It will create a Dataset object with all added dimensions, coordinates, and variables. + + Raises: + ValueError: If no dimensions have been added yet. + + Returns: + Dataset: The built dataset with all added dimensions, coordinates, and variables. + """ + if self._state == _BuilderState.INITIAL: + msg = "Must add at least one dimension before building" + raise ValueError(msg) + + var_meta_dict = _to_dictionary([self._info, self._attributes]) + return Dataset(variables=self._variables, metadata=var_meta_dict) diff --git a/tests/unit/v1/__init__.py b/tests/unit/v1/__init__.py new file mode 100644 index 00000000..fa2ea633 --- /dev/null +++ b/tests/unit/v1/__init__.py @@ -0,0 +1 @@ +"""Unit tests for parts of the MDIO package related to the v1 schema.""" diff --git a/tests/unit/v1/helpers.py b/tests/unit/v1/helpers.py new file mode 100644 index 00000000..2058bdd5 --- /dev/null +++ b/tests/unit/v1/helpers.py @@ -0,0 +1,254 @@ +"""Helper methods used in unit tests.""" + +from mdio.schemas.chunk_grid import RegularChunkGrid +from mdio.schemas.chunk_grid import RegularChunkShape +from mdio.schemas.compressors import Blosc +from mdio.schemas.dtype import ScalarType +from mdio.schemas.dtype import StructuredField +from mdio.schemas.dtype import StructuredType +from mdio.schemas.metadata import ChunkGridMetadata +from mdio.schemas.metadata import UserAttributes +from mdio.schemas.v1.dataset import Dataset +from mdio.schemas.v1.dataset_builder import MDIODatasetBuilder +from mdio.schemas.v1.dataset_builder import _BuilderState +from mdio.schemas.v1.dataset_builder import _get_named_dimension +from mdio.schemas.v1.stats import CenteredBinHistogram +from mdio.schemas.v1.stats import StatisticsMetadata +from mdio.schemas.v1.stats import SummaryStatistics +from mdio.schemas.v1.units import AllUnits +from mdio.schemas.v1.units import LengthUnitEnum +from mdio.schemas.v1.units import LengthUnitModel +from mdio.schemas.v1.units import SpeedUnitEnum +from mdio.schemas.v1.units import SpeedUnitModel +from mdio.schemas.v1.variable import Coordinate +from mdio.schemas.v1.variable import Variable + + +def validate_builder( + builder: MDIODatasetBuilder, state: _BuilderState, n_dims: int, n_coords: int, n_var: int +) -> None: + """Validate the state of the builder, the number of dimensions, coordinates, and variables.""" + assert builder._state == state + assert len(builder._dimensions) == n_dims + assert len(builder._coordinates) == n_coords + assert len(builder._variables) == n_var + + +def validate_coordinate( + builder: MDIODatasetBuilder, name: str, dims: list[tuple[str, int]], dtype: ScalarType +) -> Coordinate: + """Validate existence and the structure of the created coordinate.""" + # Validate that coordinate exists + c = next((c for c in builder._coordinates if c.name == name), None) + assert c is not None + assert isinstance(c, Coordinate) + + # Validate that dimensions are stored as NamedDimensions + for d in dims: + name = d[0] + size = d[1] + assert _get_named_dimension(c.dimensions, name, size) is not None + + assert c.data_type == dtype + return c + + +def validate_variable( + container: MDIODatasetBuilder | Dataset, + name: str, + dims: list[tuple[str, int]], + coords: list[str], + dtype: ScalarType, +) -> Variable: + """Validate existence and the structure of the created variable.""" + if isinstance(container, MDIODatasetBuilder): + var_list = container._variables + global_coord_list = container._coordinates + elif isinstance(container, Dataset): + var_list = container.variables + global_coord_list = _get_all_coordinates(container) + else: + err_msg = f"Expected MDIODatasetBuilder or Dataset, got {type(container)}" + raise TypeError(err_msg) + + # Validate that the variable exists + v = next((e for e in var_list if e.name == name), None) + assert v is not None + assert isinstance(v, Variable) + + # Validate that dimensions are stored as NamedDimensions within the variable + assert len(v.dimensions) == len(dims) + for d in dims: + name = d[0] + size = d[1] + assert _get_named_dimension(v.dimensions, name, size) is not None + + # Validate that coordinates are either embedded or can be resolved from names to Coordinate + if coords is None: + assert v.coordinates is None + else: + assert len(v.coordinates) == len(coords) + for coord_name in coords: + assert _get_coordinate(global_coord_list, v.coordinates, coord_name) is not None + + assert v.data_type == dtype + return v + + +def _get_coordinate( + global_coord_list: list[Coordinate], + coordinates_or_references: list[Coordinate] | list[str], + name: str, +) -> Coordinate | None: + """Get a coordinate by name from the list[Coordinate] | list[str]. + + The function validates that the coordinate referenced by the name can be found + in the global coordinate list. + If the coordinate is stored as a Coordinate object, it is returned directly. + """ + if coordinates_or_references is None: + return None + + for c in coordinates_or_references: + if isinstance(c, str) and c == name: + # The coordinate is stored by name (str). + cc = None + # Find the Coordinate in the global list and return it. + if global_coord_list is not None: + cc = next((cc for cc in global_coord_list if cc.name == name), None) + if cc is None: + msg = f"Pre-existing coordinate named {name!r} is not found" + raise ValueError(msg) + return cc + if isinstance(c, Coordinate) and c.name == name: + # The coordinate is stored as an embedded Coordinate object. + # Return it. + return c + + return None + + +def _get_all_coordinates(dataset: Dataset) -> list[Coordinate]: + all_coords: dict[str, Coordinate] = {} + for v in dataset.variables: + if v.coordinates is not None: + for c in v.coordinates: + if isinstance(c, Coordinate) and c.name not in all_coords: + all_coords[c.name] = c + return list(all_coords.values()) + + +def make_campos_3d_dataset() -> Dataset: + """Create in-memory campos_3d dataset.""" + ds = MDIODatasetBuilder( + "campos_3d", + attributes=UserAttributes( + attributes={ + "textHeader": [ + "C01 .......................... ", + "C02 .......................... ", + "C03 .......................... ", + ], + "foo": "bar", + } + ), + ) + + # Add dimensions + ds.add_dimension("inline", 256) + ds.add_dimension("crossline", 512) + ds.add_dimension("depth", 384) + ds.add_coordinate("inline", dimensions=["inline"], data_type=ScalarType.UINT32) + ds.add_coordinate("crossline", dimensions=["crossline"], data_type=ScalarType.UINT32) + ds.add_coordinate( + "depth", + dimensions=["depth"], + data_type=ScalarType.FLOAT64, + metadata_info=[AllUnits(units_v1=LengthUnitModel(length=LengthUnitEnum.METER))], + ) + # Add coordinates + ds.add_coordinate( + "cdp-x", + dimensions=["inline", "crossline"], + data_type=ScalarType.FLOAT32, + metadata_info=[AllUnits(units_v1=LengthUnitModel(length=LengthUnitEnum.METER))], + ) + ds.add_coordinate( + "cdp-y", + dimensions=["inline", "crossline"], + data_type=ScalarType.FLOAT32, + metadata_info=[AllUnits(units_v1=LengthUnitModel(length=LengthUnitEnum.METER))], + ) + + # Add image variable + ds.add_variable( + name="image", + dimensions=["inline", "crossline", "depth"], + data_type=ScalarType.FLOAT32, + compressor=Blosc(algorithm="zstd"), + coordinates=["cdp-x", "cdp-y"], + metadata_info=[ + ChunkGridMetadata( + chunk_grid=RegularChunkGrid( + configuration=RegularChunkShape(chunk_shape=[128, 128, 128]) + ) + ), + StatisticsMetadata( + stats_v1=SummaryStatistics( + count=100, + sum=1215.1, + sumSquares=125.12, + min=5.61, + max=10.84, + histogram=CenteredBinHistogram(binCenters=[1, 2], counts=[10, 15]), + ) + ), + UserAttributes(attributes={"fizz": "buzz", "UnitSystem": "Canonical"}), + ], + ) + # Add velocity variable + ds.add_variable( + name="velocity", + dimensions=["inline", "crossline", "depth"], + data_type=ScalarType.FLOAT16, + coordinates=["cdp-x", "cdp-y"], + metadata_info=[ + ChunkGridMetadata( + chunk_grid=RegularChunkGrid( + configuration=RegularChunkShape(chunk_shape=[128, 128, 128]) + ) + ), + AllUnits(units_v1=SpeedUnitModel(speed=SpeedUnitEnum.METER_PER_SECOND)), + ], + ) + # Add inline-optimized image variable + ds.add_variable( + name="image_inline", + long_name="inline optimized version of 3d_stack", + dimensions=["inline", "crossline", "depth"], + data_type=ScalarType.FLOAT32, + compressor=Blosc(algorithm="zstd"), + coordinates=["cdp-x", "cdp-y"], + metadata_info=[ + ChunkGridMetadata( + chunk_grid=RegularChunkGrid( + configuration=RegularChunkShape(chunk_shape=[4, 512, 512]) + ) + ) + ], + ) + # Add headers variable with structured dtype + ds.add_variable( + name="image_headers", + dimensions=["inline", "crossline"], + data_type=StructuredType( + fields=[ + StructuredField(name="cdp-x", format=ScalarType.FLOAT32), + StructuredField(name="cdp-y", format=ScalarType.FLOAT32), + StructuredField(name="inline", format=ScalarType.UINT32), + StructuredField(name="crossline", format=ScalarType.UINT32), + ] + ), + coordinates=["cdp-x", "cdp-y"], + ) + return ds.build() diff --git a/tests/unit/v1/test_dataset_builder_add_coordinate.py b/tests/unit/v1/test_dataset_builder_add_coordinate.py new file mode 100644 index 00000000..46cb27cd --- /dev/null +++ b/tests/unit/v1/test_dataset_builder_add_coordinate.py @@ -0,0 +1,141 @@ +# ruff: noqa: PLR2004 +# PLR2004 Magic value used in comparison, consider replacing `3` with a constant variable +# The above erroneous warning is generated for every numerical assert. +# Thus, disable it for this file +"""Tests the schema v1 dataset_builder.add_coordinate() public API.""" + +import pytest + +from mdio.schemas.compressors import Blosc +from mdio.schemas.dtype import ScalarType +from mdio.schemas.metadata import UserAttributes +from mdio.schemas.v1.dataset_builder import MDIODatasetBuilder +from mdio.schemas.v1.dataset_builder import _BuilderState +from mdio.schemas.v1.units import AllUnits +from mdio.schemas.v1.units import LengthUnitEnum +from mdio.schemas.v1.units import LengthUnitModel +from mdio.schemas.v1.variable import VariableMetadata + +from .helpers import validate_builder +from .helpers import validate_coordinate +from .helpers import validate_variable + + +def test_add_coordinate() -> None: + """Test adding coordinates. Check the state transition and validate required parameters.""" + builder = MDIODatasetBuilder("test_dataset") + assert builder._state == _BuilderState.INITIAL + + msg = "Must add at least one dimension before adding coordinates" + with pytest.raises(ValueError, match=msg): + builder.add_coordinate( + "cdp", dimensions=["inline", "crossline"], data_type=ScalarType.FLOAT32 + ) + + builder.add_dimension("inline", 100) + builder.add_dimension("crossline", 200) + + # Validate required parameters + bad_name = None + with pytest.raises(ValueError, match="'name' must be a non-empty string"): + builder.add_coordinate(bad_name, dimensions=["speed"], data_type=ScalarType.FLOAT32) + with pytest.raises(ValueError, match="'name' must be a non-empty string"): + builder.add_coordinate("", dimensions=["speed"], data_type=ScalarType.FLOAT32) + with pytest.raises(ValueError, match="'dimensions' must be a non-empty list"): + builder.add_coordinate("cdp-x", dimensions=None, data_type=ScalarType.FLOAT32) + with pytest.raises(ValueError, match="'dimensions' must be a non-empty list"): + builder.add_coordinate("cdp-x", dimensions=[], data_type=ScalarType.FLOAT32) + + # Add a variable using non-existent dimensions + msg = "Pre-existing dimension named 'xline' is not found" + with pytest.raises(ValueError, match=msg): + builder.add_coordinate( + "bad_cdp-x", dimensions=["inline", "xline"], data_type=ScalarType.FLOAT32 + ) + + # Validate state transition + builder.add_coordinate( + "cdp-x", dimensions=["inline", "crossline"], data_type=ScalarType.FLOAT32 + ) + validate_builder(builder, _BuilderState.HAS_COORDINATES, n_dims=2, n_coords=1, n_var=1) + validate_variable( + builder, + name="cdp-x", + dims=[("inline", 100), ("crossline", 200)], + coords=["cdp-x"], + dtype=ScalarType.FLOAT32, + ) + + # Adding coordinate with the same name twice + msg = "Adding coordinate with the same name twice is not allowed" + with pytest.raises(ValueError, match=msg): + builder.add_coordinate( + "cdp-x", dimensions=["inline", "crossline"], data_type=ScalarType.FLOAT32 + ) + + +def test_add_coordinate_with_defaults() -> None: + """Test adding coordinates with default arguments.""" + builder = MDIODatasetBuilder("test_dataset") + builder.add_dimension("inline", 100) + builder.add_dimension("crossline", 200) + + # Add coordinate using defaults + builder.add_coordinate("cdp", dimensions=["inline", "crossline"], data_type=ScalarType.FLOAT32) + validate_builder(builder, _BuilderState.HAS_COORDINATES, n_dims=2, n_coords=1, n_var=1) + validate_coordinate( + builder, name="cdp", dims=[("inline", 100), ("crossline", 200)], dtype=ScalarType.FLOAT32 + ) + v = validate_variable( + builder, + name="cdp", + dims=[("inline", 100), ("crossline", 200)], + coords=["cdp"], + dtype=ScalarType.FLOAT32, + ) + assert v.long_name == "'cdp' coordinate variable" # Default value + assert v.compressor is None # Default value + assert v.metadata is None # Default value + + +def test_coordinate_with_full_parameters() -> None: + """Test adding coordinates with all metadata.""" + builder = MDIODatasetBuilder("test_dataset") + builder.add_dimension("inline", 100) + builder.add_dimension("crossline", 200) + + # Add coordinate with all metadata + builder.add_coordinate( + "cdp", + long_name="Common Depth Point", + dimensions=["inline", "crossline"], + data_type=ScalarType.FLOAT16, + compressor=Blosc(algorithm="zstd"), + metadata_info=[ + AllUnits(units_v1=LengthUnitModel(length=LengthUnitEnum.FOOT)), + UserAttributes(attributes={"MGA": 51, "UnitSystem": "Imperial"}), + ], + ) + validate_builder(builder, _BuilderState.HAS_COORDINATES, n_dims=2, n_coords=1, n_var=1) + c = validate_coordinate( + builder, name="cdp", dims=[("inline", 100), ("crossline", 200)], dtype=ScalarType.FLOAT16 + ) + assert c.long_name == "Common Depth Point" + assert isinstance(c.compressor, Blosc) + assert c.compressor.algorithm == "zstd" + assert c.metadata.attributes["MGA"] == 51 + assert c.metadata.attributes["UnitSystem"] == "Imperial" + assert c.metadata.units_v1.length == LengthUnitEnum.FOOT + v = validate_variable( + builder, + name="cdp", + dims=[("inline", 100), ("crossline", 200)], + coords=["cdp"], + dtype=ScalarType.FLOAT16, + ) + assert isinstance(v.compressor, Blosc) + assert v.compressor.algorithm == "zstd" + assert isinstance(v.metadata, VariableMetadata) + assert v.metadata.units_v1.length == LengthUnitEnum.FOOT + assert v.metadata.attributes["MGA"] == 51 + assert v.metadata.attributes["UnitSystem"] == "Imperial" diff --git a/tests/unit/v1/test_dataset_builder_add_dimension.py b/tests/unit/v1/test_dataset_builder_add_dimension.py new file mode 100644 index 00000000..ddcbd745 --- /dev/null +++ b/tests/unit/v1/test_dataset_builder_add_dimension.py @@ -0,0 +1,43 @@ +# ruff: noqa: PLR2004 +# PLR2004 Magic value used in comparison, consider replacing `3` with a constant variable +# The above erroneous warning is generated for every numerical assert. +# Thus, disable it for this file +"""Tests the schema v1 dataset_builder.add_dimension() public API.""" + +import pytest + +from mdio.schemas.v1.dataset_builder import MDIODatasetBuilder +from mdio.schemas.v1.dataset_builder import _BuilderState +from mdio.schemas.v1.dataset_builder import _get_named_dimension + +from .helpers import validate_builder + + +def test_add_dimension() -> None: + """Test adding dimension. Check the state transition and validate required parameters.""" + builder = MDIODatasetBuilder("test_dataset") + assert builder._state == _BuilderState.INITIAL + + # Validate required parameters + bad_name = None + with pytest.raises(ValueError, match="'name' must be a non-empty string"): + builder.add_dimension(bad_name, 200) + with pytest.raises(ValueError, match="'name' must be a non-empty string"): + builder.add_dimension("", 200) + + # First dimension should change state to HAS_DIMENSIONS and create a variable + builder.add_dimension("x", 100) + validate_builder(builder, _BuilderState.HAS_DIMENSIONS, n_dims=1, n_coords=0, n_var=0) + assert _get_named_dimension(builder._dimensions, "x", 100) is not None + + # Validate that we can't add a dimension with the same name twice + with pytest.raises( + ValueError, + match="Adding dimension with the same name twice is not allowed", + ): + builder.add_dimension("x", 200) + + # Adding dimension with the same name twice + msg = "Adding dimension with the same name twice is not allowed" + with pytest.raises(ValueError, match=msg): + builder.add_dimension("x", 200) diff --git a/tests/unit/v1/test_dataset_builder_add_variable.py b/tests/unit/v1/test_dataset_builder_add_variable.py new file mode 100644 index 00000000..84abfe3a --- /dev/null +++ b/tests/unit/v1/test_dataset_builder_add_variable.py @@ -0,0 +1,250 @@ +# ruff: noqa: PLR2004 +# PLR2004 Magic value used in comparison, consider replacing `3` with a constant variable +# The above erroneous warning is generated for every numerical assert. +# Thus, disable it for this file +"""Tests the schema v1 Variable public API.""" + +import pytest + +from mdio.schemas.chunk_grid import RegularChunkGrid +from mdio.schemas.chunk_grid import RegularChunkShape +from mdio.schemas.compressors import Blosc +from mdio.schemas.dtype import ScalarType +from mdio.schemas.metadata import ChunkGridMetadata +from mdio.schemas.metadata import UserAttributes +from mdio.schemas.v1.dataset_builder import MDIODatasetBuilder +from mdio.schemas.v1.dataset_builder import _BuilderState +from mdio.schemas.v1.stats import CenteredBinHistogram +from mdio.schemas.v1.stats import StatisticsMetadata +from mdio.schemas.v1.stats import SummaryStatistics +from mdio.schemas.v1.units import AllUnits +from mdio.schemas.v1.units import LengthUnitEnum +from mdio.schemas.v1.units import LengthUnitModel +from mdio.schemas.v1.variable import VariableMetadata + +from .helpers import validate_builder +from .helpers import validate_variable + + +def test_add_variable_no_coords() -> None: + """Test adding variable. Check the state transition and validate required parameters..""" + builder = MDIODatasetBuilder("test_dataset") + validate_builder(builder, _BuilderState.INITIAL, n_dims=0, n_coords=0, n_var=0) + + # Validate: Must add at least one dimension before adding variables + msg = "Must add at least one dimension before adding variables" + with pytest.raises(ValueError, match=msg): + builder.add_variable("amplitude", dimensions=["speed"], data_type=ScalarType.FLOAT32) + + # Add dimension before we can add a data variable + builder.add_dimension("inline", 100) + builder.add_dimension("crossline", 200) + builder.add_dimension("depth", 300) + + # Validate: required parameters must be preset + bad_name = None + with pytest.raises(ValueError, match="'name' must be a non-empty string"): + builder.add_variable(bad_name, dimensions=["speed"], data_type=ScalarType.FLOAT32) + with pytest.raises(ValueError, match="'name' must be a non-empty string"): + builder.add_variable("", dimensions=["speed"], data_type=ScalarType.FLOAT32) + with pytest.raises(ValueError, match="'dimensions' must be a non-empty list"): + builder.add_variable("bad_amplitude", dimensions=None, data_type=ScalarType.FLOAT32) + with pytest.raises(ValueError, match="'dimensions' must be a non-empty list"): + builder.add_variable("bad_amplitude", dimensions=[], data_type=ScalarType.FLOAT32) + + # Validate: Add a variable using non-existent dimensions is not allowed + msg = "Pre-existing dimension named 'il' is not found" + with pytest.raises(ValueError, match=msg): + builder.add_variable( + "bad_amplitude", dimensions=["il", "xl", "depth"], data_type=ScalarType.FLOAT32 + ) + + # Add a variable without coordinates + builder.add_variable( + "amplitude", dimensions=["inline", "crossline", "depth"], data_type=ScalarType.FLOAT32 + ) + validate_builder(builder, _BuilderState.HAS_VARIABLES, n_dims=3, n_coords=0, n_var=1) + validate_variable( + builder, + "amplitude", + dims=[("inline", 100), ("crossline", 200), ("depth", 300)], + coords=None, + dtype=ScalarType.FLOAT32, + ) + + # Validate: adding a variable with the same name twice is not allowed + msg = "Adding variable with the same name twice is not allowed" + with pytest.raises(ValueError, match=msg): + builder.add_variable( + "amplitude", dimensions=["inline", "crossline", "depth"], data_type=ScalarType.FLOAT32 + ) + + +def test_add_variable_with_coords() -> None: + """Test adding variable. Check the state transition and validate required parameters..""" + builder = MDIODatasetBuilder("test_dataset") + builder.add_dimension("inline", 100) + builder.add_dimension("crossline", 200) + builder.add_dimension("depth", 300) + + # Add dimension coordinates before we can add a data variable + builder.add_coordinate("inline", dimensions=["inline"], data_type=ScalarType.UINT32) + builder.add_coordinate("crossline", dimensions=["crossline"], data_type=ScalarType.UINT32) + + # Validate: adding a variable with a coordinate that has not been pre-created is not allowed + msg = "Pre-existing coordinate named 'depth' is not found" + with pytest.raises(ValueError, match=msg): + builder.add_variable( + "ampl", + dimensions=["inline", "crossline", "depth"], + coordinates=["inline", "crossline", "depth"], + data_type=ScalarType.FLOAT32, + ) + + # Add a variable with pre-defined dimension coordinates + builder.add_variable( + "ampl", + dimensions=["inline", "crossline", "depth"], + coordinates=["inline", "crossline"], + data_type=ScalarType.FLOAT32, + ) + validate_builder(builder, _BuilderState.HAS_VARIABLES, n_dims=3, n_coords=2, n_var=3) + validate_variable( + builder, + "ampl", + dims=[("inline", 100), ("crossline", 200), ("depth", 300)], + coords=["inline", "crossline"], + dtype=ScalarType.FLOAT32, + ) + + # Add non-dim coordinates (e.g., 2D coordinates) + builder.add_coordinate( + "cdp-x", dimensions=["inline", "crossline"], data_type=ScalarType.FLOAT32 + ) + builder.add_coordinate( + "cdp-y", dimensions=["inline", "crossline"], data_type=ScalarType.FLOAT32 + ) + + # Add a variable with pre-defined dimension and non-dimension coordinates + builder.add_variable( + "ampl2", + dimensions=["inline", "crossline", "depth"], + coordinates=["inline", "crossline", "cdp-x", "cdp-y"], + data_type=ScalarType.FLOAT32, + ) + validate_builder(builder, _BuilderState.HAS_VARIABLES, n_dims=3, n_coords=4, n_var=6) + validate_variable( + builder, + "ampl2", + dims=[("inline", 100), ("crossline", 200), ("depth", 300)], + coords=["inline", "crossline", "cdp-x", "cdp-y"], + dtype=ScalarType.FLOAT32, + ) + + +def test_add_variable_with_defaults() -> None: + """Test adding variable with default arguments.""" + builder = MDIODatasetBuilder("test_dataset") + # Add dimensions before we can add a data variables + builder.add_dimension("inline", 100) + builder.add_dimension("crossline", 200) + builder.add_dimension("depth", 300) + # Add dimension coordinates + builder.add_coordinate("inline", dimensions=["inline"], data_type=ScalarType.UINT32) + builder.add_coordinate("crossline", dimensions=["crossline"], data_type=ScalarType.UINT32) + builder.add_coordinate( + "depth", + dimensions=["depth"], + data_type=ScalarType.UINT32, + metadata_info=[AllUnits(units_v1=LengthUnitModel(length=LengthUnitEnum.METER))], + ) + + # Add data variable using defaults + builder.add_variable( + "ampl", dimensions=["inline", "crossline", "depth"], data_type=ScalarType.FLOAT32 + ) + validate_builder(builder, _BuilderState.HAS_VARIABLES, n_dims=3, n_coords=3, n_var=4) + v = validate_variable( + builder, + "ampl", + dims=[("inline", 100), ("crossline", 200), ("depth", 300)], + coords=None, + dtype=ScalarType.FLOAT32, + ) + assert v.long_name is None # Default value + assert v.compressor is None # Default value + assert v.coordinates is None # Default value + assert v.metadata is None # Default value + + +def test_add_variable_full_parameters() -> None: + """Test adding variable with full parameters.""" + builder = MDIODatasetBuilder("test_dataset") + # Add dimensions before we can add a data variables + builder.add_dimension("inline", 100) + builder.add_dimension("crossline", 200) + builder.add_dimension("depth", 300) + # Add dimension coordinates + builder.add_coordinate("inline", dimensions=["inline"], data_type=ScalarType.UINT32) + builder.add_coordinate("crossline", dimensions=["crossline"], data_type=ScalarType.UINT32) + builder.add_coordinate("depth", dimensions=["depth"], data_type=ScalarType.UINT32) + # Add coordinates before we can add a data variable + builder.add_coordinate( + "cdp-x", dimensions=["inline", "crossline"], data_type=ScalarType.FLOAT64 + ) + builder.add_coordinate( + "cdp-y", dimensions=["inline", "crossline"], data_type=ScalarType.FLOAT64 + ) + + # Add data variable with full parameters + builder.add_variable( + "ampl", + long_name="Amplitude (dimensionless)", + dimensions=["inline", "crossline", "depth"], + data_type=ScalarType.FLOAT32, + compressor=Blosc(algorithm="zstd"), + coordinates=["inline", "crossline", "depth", "cdp-x", "cdp-y"], + metadata_info=[ + AllUnits(units_v1=LengthUnitModel(length=LengthUnitEnum.FOOT)), + UserAttributes(attributes={"MGA": 51, "UnitSystem": "Imperial"}), + ChunkGridMetadata( + chunk_grid=RegularChunkGrid(configuration=RegularChunkShape(chunk_shape=[20])) + ), + StatisticsMetadata( + stats_v1=SummaryStatistics( + count=100, + sum=1215.1, + sumSquares=125.12, + min=5.61, + max=10.84, + histogram=CenteredBinHistogram(binCenters=[1, 2], counts=[10, 15]), + ) + ), + ], + ) + validate_builder(builder, _BuilderState.HAS_VARIABLES, n_dims=3, n_coords=5, n_var=6) + v = validate_variable( + builder, + "ampl", + dims=[("inline", 100), ("crossline", 200), ("depth", 300)], + coords=["inline", "crossline", "depth", "cdp-x", "cdp-y"], + dtype=ScalarType.FLOAT32, + ) + assert v.long_name == "Amplitude (dimensionless)" + assert isinstance(v.compressor, Blosc) + assert v.compressor.algorithm == "zstd" + assert len(v.coordinates) == 5 + assert v.metadata.stats_v1.count == 100 + assert isinstance(v.metadata, VariableMetadata) + assert v.metadata.units_v1.length == LengthUnitEnum.FOOT + assert v.metadata.attributes["MGA"] == 51 + assert v.metadata.attributes["UnitSystem"] == "Imperial" + assert v.metadata.chunk_grid.name == "regular" + assert v.metadata.chunk_grid.configuration.chunk_shape == [20] + assert v.metadata.stats_v1.count == 100 + assert v.metadata.stats_v1.sum == 1215.1 + assert v.metadata.stats_v1.sum_squares == 125.12 + assert v.metadata.stats_v1.min == 5.61 + assert v.metadata.stats_v1.max == 10.84 + assert v.metadata.stats_v1.histogram.bin_centers == [1, 2] + assert v.metadata.stats_v1.histogram.counts == [10, 15] diff --git a/tests/unit/v1/test_dataset_builder_build.py b/tests/unit/v1/test_dataset_builder_build.py new file mode 100644 index 00000000..aa5fad55 --- /dev/null +++ b/tests/unit/v1/test_dataset_builder_build.py @@ -0,0 +1,155 @@ +# ruff: noqa: PLR2004 +# PLR2004 Magic value used in comparison, consider replacing `3` with a constant variable +# The above erroneous warning is generated for every numerical assert. +# Thus, disable it for this file +"""Tests the schema v1 dataset_builder.add_coordinate() public API.""" + +from mdio.schemas.dtype import ScalarType +from mdio.schemas.dtype import StructuredField +from mdio.schemas.dtype import StructuredType +from mdio.schemas.v1.dataset import Dataset +from mdio.schemas.v1.dataset_builder import MDIODatasetBuilder +from mdio.schemas.v1.units import LengthUnitEnum +from mdio.schemas.v1.units import SpeedUnitEnum + +from .helpers import make_campos_3d_dataset +from .helpers import validate_variable + + +def test_build() -> None: + """Test building a complete dataset.""" + dataset = ( + MDIODatasetBuilder("test_dataset") + .add_dimension("inline", 100) + .add_dimension("crossline", 200) + .add_coordinate("inline", dimensions=["inline"], data_type=ScalarType.FLOAT64) + .add_coordinate("crossline", dimensions=["crossline"], data_type=ScalarType.FLOAT64) + .add_coordinate("x_coord", dimensions=["inline", "crossline"], data_type=ScalarType.FLOAT32) + .add_coordinate("y_coord", dimensions=["inline", "crossline"], data_type=ScalarType.FLOAT32) + .add_variable( + "data", + long_name="Test Data", + dimensions=["inline", "crossline"], + coordinates=["inline", "crossline", "x_coord", "y_coord"], + data_type=ScalarType.FLOAT32, + ) + .build() + ) + + assert isinstance(dataset, Dataset) + assert dataset.metadata.name == "test_dataset" + # 2 dim coord var + 2 non-dim coord var + 1 data variables = 5 variables + assert len(dataset.variables) == 5 + assert next(v for v in dataset.variables if v.name == "inline") is not None + assert next(v for v in dataset.variables if v.name == "crossline") is not None + assert next(v for v in dataset.variables if v.name == "x_coord") is not None + assert next(v for v in dataset.variables if v.name == "y_coord") is not None + assert next(v for v in dataset.variables if v.name == "data") is not None + + +def test_build_campos_3d() -> None: # noqa: PLR0915 Too many statements (57 > 50) + """Test building a Campos 3D dataset with multiple variables and attributes.""" + dataset = make_campos_3d_dataset() + + # Verify dataset structure + assert dataset.metadata.name == "campos_3d" + assert dataset.metadata.api_version == "1.0.0a1" + assert dataset.metadata.attributes["foo"] == "bar" + assert len(dataset.metadata.attributes["textHeader"]) == 3 + + # Verify variables (including dimension variables) + # 3 dimension variables + 4 data variables + 2 coordinate variables + assert len(dataset.variables) == 9 + + # Verify dimension coordinate variables + validate_variable( + dataset, name="inline", dims=[("inline", 256)], coords=["inline"], dtype=ScalarType.UINT32 + ) + + validate_variable( + dataset, + name="crossline", + dims=[("crossline", 512)], + coords=["crossline"], + dtype=ScalarType.UINT32, + ) + + depth = validate_variable( + dataset, name="depth", dims=[("depth", 384)], coords=["depth"], dtype=ScalarType.FLOAT64 + ) + assert depth.metadata.units_v1.length == LengthUnitEnum.METER + + # Verify coordinate variables + cdp_x = validate_variable( + dataset, + name="cdp-x", + dims=[("inline", 256), ("crossline", 512)], + coords=["cdp-x"], + dtype=ScalarType.FLOAT32, + ) + assert cdp_x.metadata.units_v1.length == LengthUnitEnum.METER + + cdp_y = validate_variable( + dataset, + name="cdp-y", + dims=[("inline", 256), ("crossline", 512)], + coords=["cdp-y"], + dtype=ScalarType.FLOAT32, + ) + assert cdp_y.metadata.units_v1.length == LengthUnitEnum.METER + + # Verify data variables + image = validate_variable( + dataset, + name="image", + dims=[("inline", 256), ("crossline", 512), ("depth", 384)], + coords=["cdp-x", "cdp-y"], + dtype=ScalarType.FLOAT32, + ) + assert image.metadata.units_v1 is None # No units defined for image + assert image.compressor.algorithm == "zstd" + assert image.metadata.chunk_grid.configuration.chunk_shape == [128, 128, 128] + assert image.metadata.stats_v1.count == 100 + + velocity = validate_variable( + dataset, + name="velocity", + dims=[("inline", 256), ("crossline", 512), ("depth", 384)], + coords=["cdp-x", "cdp-y"], + dtype=ScalarType.FLOAT16, + ) + assert velocity.compressor is None + assert velocity.metadata.chunk_grid.configuration.chunk_shape == [128, 128, 128] + assert velocity.metadata.units_v1.speed == SpeedUnitEnum.METER_PER_SECOND + + image_inline = validate_variable( + dataset, + name="image_inline", + dims=[("inline", 256), ("crossline", 512), ("depth", 384)], + coords=["cdp-x", "cdp-y"], + dtype=ScalarType.FLOAT32, + ) + assert image_inline.long_name == "inline optimized version of 3d_stack" + assert image_inline.compressor.algorithm == "zstd" + assert image_inline.metadata.chunk_grid.configuration.chunk_shape == [4, 512, 512] + + # Verify image_headers variable + headers = next(v for v in dataset.variables if v.name == "image_headers") + assert isinstance(headers.data_type, StructuredType) + assert len(headers.data_type.fields) == 4 + assert headers.data_type.fields[0].name == "cdp-x" + + headers = validate_variable( + dataset, + name="image_headers", + dims=[("inline", 256), ("crossline", 512)], + coords=["cdp-x", "cdp-y"], + dtype=StructuredType( + fields=[ + StructuredField(name="cdp-x", format=ScalarType.FLOAT32), + StructuredField(name="cdp-y", format=ScalarType.FLOAT32), + StructuredField(name="inline", format=ScalarType.UINT32), + StructuredField(name="crossline", format=ScalarType.UINT32), + ] + ), + ) diff --git a/tests/unit/v1/test_dataset_builder_helpers.py b/tests/unit/v1/test_dataset_builder_helpers.py new file mode 100644 index 00000000..b1ab9964 --- /dev/null +++ b/tests/unit/v1/test_dataset_builder_helpers.py @@ -0,0 +1,98 @@ +# ruff: noqa: PLR2004 +# PLR2004 Magic value used in comparison, consider replacing `3` with a constant variable +# The above erroneous warning is generated for every numerical assert. +# Thus, disable it for this file +"""Tests the schema v1 dataset_builder internal methods.""" + +from datetime import UTC +from datetime import datetime + +import pytest +from pydantic import Field + +from mdio.schemas.core import StrictModel +from mdio.schemas.dimension import NamedDimension +from mdio.schemas.v1.dataset_builder import _get_named_dimension +from mdio.schemas.v1.dataset_builder import _to_dictionary + + +def test__get_named_dimension() -> None: + """Test getting a dimension by name from the list of dimensions.""" + dimensions = [NamedDimension(name="inline", size=2), NamedDimension(name="crossline", size=3)] + + assert _get_named_dimension([], "inline") is None + assert _get_named_dimension(dimensions, "inline") == NamedDimension(name="inline", size=2) + assert _get_named_dimension(dimensions, "crossline") == NamedDimension(name="crossline", size=3) + assert _get_named_dimension(dimensions, "time") is None + + with pytest.raises(TypeError, match="Expected str, got NoneType"): + _get_named_dimension(dimensions, None) + with pytest.raises(TypeError, match="Expected str, got int"): + _get_named_dimension(dimensions, 42) + with pytest.raises( + ValueError, match="Dimension 'inline' found but size 2 does not match expected size 200" + ): + _get_named_dimension(dimensions, "inline", size=200) + + +def test__to_dictionary() -> None: + """Test converting a dictionary, list or pydantic BaseModel to a dictionary.""" + # Validate inputs + with pytest.raises(TypeError, match="Expected BaseModel, dict or list, got datetime"): + _to_dictionary(datetime.now(UTC)) + + # Convert None to None + result = _to_dictionary(None) + assert result is None + + # Validate conversion of a Pydantic BaseModel + class SomeModel(StrictModel): + count: int = Field(default=None, description="Samples count") + samples: list[float] = Field(default_factory=list, description="Samples.") + created: datetime = Field( + default_factory=datetime.now, description="Creation time with TZ info." + ) + + md = SomeModel( + count=3, samples=[1.0, 2.0, 3.0], created=datetime(2023, 10, 1, 12, 0, 0, tzinfo=UTC) + ) + result = _to_dictionary(md) + assert isinstance(result, dict) + assert result == {"count": 3, "created": "2023-10-01T12:00:00Z", "samples": [1.0, 2.0, 3.0]} + + # Validate conversion of a dictionary + dct = { + "count": 3, + "samples": [1.0, 2.0, 3.0], + "created": datetime(2023, 10, 1, 12, 0, 0, tzinfo=UTC), + } + result = _to_dictionary(dct) + assert isinstance(result, dict) + assert result == { + "count": 3, + "samples": [1.0, 2.0, 3.0], + "created": datetime(2023, 10, 1, 12, 0, 0, tzinfo=UTC), + } + + # Validate conversion of a dictionary + lst = [ + None, + SomeModel( + count=3, samples=[1.0, 2.0, 3.0], created=datetime(2023, 10, 1, 12, 0, 0, tzinfo=UTC) + ), + { + "count2": 3, + "samples2": [1.0, 2.0, 3.0], + "created2": datetime(2023, 10, 1, 12, 0, 0, tzinfo=UTC), + }, + ] + result = _to_dictionary(lst) + assert isinstance(result, dict) + assert result == { + "count": 3, + "samples": [1.0, 2.0, 3.0], + "created": "2023-10-01T12:00:00Z", + "count2": 3, + "samples2": [1.0, 2.0, 3.0], + "created2": datetime(2023, 10, 1, 12, 0, 0, tzinfo=UTC), + }