From 02d3dfe1520998a9cd47d90a3fa31d7cebac6874 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 27 Nov 2024 15:06:20 +0100 Subject: [PATCH 01/83] Create icon4py workspace with uv --- .python-version | 1 + base-requirements-dev.txt | 30 - base-requirements.txt | 3 - model/common/pyproject.toml | 2 +- pyproject.toml | 90 + requirements-dev-opt.txt | 13 - requirements-dev.txt | 12 - requirements.txt | 13 - tools/pyproject.toml | 4 +- uv.lock | 3899 +++++++++++++++++++++++++++++++++++ 10 files changed, 3993 insertions(+), 74 deletions(-) create mode 100644 .python-version delete mode 100644 base-requirements-dev.txt delete mode 100644 base-requirements.txt create mode 100644 pyproject.toml delete mode 100644 requirements-dev-opt.txt delete mode 100644 requirements-dev.txt delete mode 100644 requirements.txt create mode 100644 uv.lock diff --git a/.python-version b/.python-version new file mode 100644 index 0000000000..2c0733315e --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.11 diff --git a/base-requirements-dev.txt b/base-requirements-dev.txt deleted file mode 100644 index 16a42ff79f..0000000000 --- a/base-requirements-dev.txt +++ /dev/null @@ -1,30 +0,0 @@ -# VCS --e git+https://github.com/GridTools/gt4py.git@icon4py_20241113#egg=gt4py # use tagged release until #596 & gt4py#1738 is merged -git+https://github.com/GridTools/serialbox#egg=serialbox&subdirectory=src/serialbox-python - -# PyPI -bump2version>=1.0.1 -coverage[toml]>=5.0 -mypy>=1.7.0 -myst-parser>=4.0.0 -pre-commit~=3.8.0 -pytest>=6.1 -pytest-benchmark>=4.0.0 -pytest-cache>=1.0 -pytest-cov>=2.8 -pytest-factoryboy>=2.0 -pytest-xdist[psutil]>=2.2 -pytest-mpi>=0.6 -ruff>=0.2.2 -setuptools>=40.8.0 -sphinx==7.3.7 -sphinx-math-dollar>=1.2.1 -sphinx-rtd-theme>=3.0.1 -sphinx-toolbox>=3.8.1 -tach>=0.10.7 -TexSoup>=0.3.1 -tox >= 3.25 -typing-extensions>=4.6.0 -types-cffi>=1.15 -wheel>=0.37.1 -wget>=3.2 diff --git a/base-requirements.txt b/base-requirements.txt deleted file mode 100644 index 0f64865e49..0000000000 --- a/base-requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -# VCS -gt4py @ git+https://github.com/GridTools/gt4py.git@icon4py_20241113 # use tagged release until #596 & gt4py#1738 is merged - diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index d7deb8c431..9a0b0be30a 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -31,7 +31,7 @@ requires-python = ">=3.10" [project.optional-dependencies] all = ["icon4py-common[ghex,io,dace]"] dace = ["dace>=0.16.1"] -ghex = ["ghex", "mpi4py"] +ghex = ["ghex", "mpi4py>=3.1.5"] io = [ "icon4py-common[netcdf]", "xarray[complete]>=2024.3.0", diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000..bf97964419 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,90 @@ +[project] +name = "icon4py-workspace" +version = "0.0.1" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.10" +dependencies = [ + "gt4py>=1.0.4", + "icon4py-common>=0.0.6", + "icon4py-driver>=0.0.6", + "icon4py-atmosphere-advection>=0.0.6", + "icon4py-atmosphere-diffusion>=0.0.6", + "icon4py-atmosphere-dycore>=0.0.6", + "icon4py-atmosphere-subgrid_scale_physics-microphysics>=0.0.6", + "icon4pytools>=0.0.6", + "serialbox>=0.0.1", + "ghex>=0.3.0", +] + +[project.optional-dependencies] +all = ["icon4py-workspace[dace,ghex,io]"] +dace = ["icon4py-common[dace]>=0.0.6"] +ghex = ["icon4py-common[ghex]>=0.0.6"] +io = ["icon4py-common[io]>=0.0.6"] + +[dependency-groups] +build = ["bump2version>=1.0.1", "setuptools>=70.1.1", "wheel>=0.45.0"] +docs = [ + "myst-parser>=4.0.0", + "sphinx==7.3.7", + "sphinx-math-dollar>=1.2.1", + "sphinx-rtd-theme>=3.0.1", + "sphinx-toolbox>=3.8.1", + "TexSoup>=0.3.1", +] +lint = ["pre-commit>=4.0.1", "ruff>=0.7.1", "tach>=0.15.0"] +test = [ + "coverage[toml]>=7.5.0", + "pytest-benchmark>=5.0.0", + "pytest>=8.0.1", + "pytest-cache>=1.0", + "pytest-cov>=5.0.0", + "pytest-factoryboy>=2.6.1", + "pytest-xdist[psutil]>=3.5.0", + "pytest-mpi>=0.6", + "tox>=3.25", +] +typing = [ + "mypy[faster-cache]>=1.12.0", + "typing-extensions>=4.11.0", + "types-cffi>=1.16.0", +] +dev = [ + { include-group = "build" }, + { include-group = "docs" }, + { include-group = "lint" }, + { include-group = "test" }, + { include-group = "typing" }, + "wget>=3.2", +] + + +# -- uv -- +[tool.uv] +environments = ["sys_platform == 'darwin'", "sys_platform == 'linux'"] + +[tool.uv.sources] +# use GT4Py tagged release until #596 & gt4py#1738 are merged +gt4py = { git = "https://github.com/GridTools/gt4py", tag = "icon4py_20241113" } +icon4py-common = { workspace = true } +icon4py-driver = { workspace = true } +icon4py-atmosphere-advection = { workspace = true } +icon4py-atmosphere-diffusion = { workspace = true } +icon4py-atmosphere-dycore = { workspace = true } +icon4py-atmosphere-subgrid_scale_physics-microphysics = { workspace = true } +icon4pytools = { workspace = true } +serialbox = { git = "https://github.com/GridTools/serialbox", subdirectory = "src/serialbox-python" } +ghex = { git = "https://github.com/ghex-org/GHEX.git", branch = "master", subdirectory = "bindings/python" } + + +[tool.uv.workspace] +members = [ + "model/atmosphere/advection", + "model/atmosphere/diffusion", + "model/atmosphere/dycore", + "model/atmosphere/subgrid_scale_physics/microphysics", + "model/common", + "model/driver", + "tools", +] diff --git a/requirements-dev-opt.txt b/requirements-dev-opt.txt deleted file mode 100644 index d7a1a9c5e4..0000000000 --- a/requirements-dev-opt.txt +++ /dev/null @@ -1,13 +0,0 @@ -ghex@git+https://github.com/ghex-org/GHEX.git@master#subdirectory=bindings/python --r base-requirements-dev.txt -# icon4py model --e ./model/common[all] --e ./model/atmosphere/dycore --e ./model/atmosphere/advection --e ./model/atmosphere/diffusion --e ./model/atmosphere/subgrid_scale_physics/microphysics --e ./model/driver - -# icon4pytools --e ./tools - diff --git a/requirements-dev.txt b/requirements-dev.txt deleted file mode 100644 index 96d06664d2..0000000000 --- a/requirements-dev.txt +++ /dev/null @@ -1,12 +0,0 @@ --r base-requirements-dev.txt - -# icon4py model --e ./model/atmosphere/dycore --e ./model/atmosphere/advection --e ./model/atmosphere/diffusion --e ./model/atmosphere/subgrid_scale_physics/microphysics --e ./model/common[io] --e ./model/driver - -# icon4pytools --e ./tools diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 339f0b5224..0000000000 --- a/requirements.txt +++ /dev/null @@ -1,13 +0,0 @@ --r base-requirements.txt - -# icon4py model -./model/atmosphere/dycore -./model/atmosphere/diffusion -./model/atmosphere/advection -./model/atmosphere/subgrid_scale_physics/microphysics -./model/common[io] -./model/driver - - -# icon4pytools -./tools diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 7444585b6c..fdfae30aa2 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -36,8 +36,8 @@ readme = 'README.md' requires-python = '>=3.10' [project.optional-dependencies] -cupy11 = ['cupy-cuda11x'] -cupy12 = ['cupy-cuda12x'] +cupy11 = ['cupy-cuda11x>13.0'] +cupy12 = ['cupy-cuda12x>13.0'] [project.scripts] f2ser = 'icon4pytools.f2ser.cli:main' diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000000..0d26cc5934 --- /dev/null +++ b/uv.lock @@ -0,0 +1,3899 @@ +version = 1 +requires-python = ">=3.10" +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", +] +supported-markers = [ + "sys_platform == 'darwin'", + "sys_platform == 'linux'", +] + +[manifest] +members = [ + "icon4py-atmosphere-advection", + "icon4py-atmosphere-diffusion", + "icon4py-atmosphere-dycore", + "icon4py-atmosphere-subgrid-scale-physics-microphysics", + "icon4py-common", + "icon4py-driver", + "icon4py-workspace", + "icon4pytools", +] + +[[package]] +name = "aenum" +version = "3.1.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/f8/33e75863394f42e429bb553e05fda7c59763f0fd6848de847a25b3fbccf6/aenum-3.1.15.tar.gz", hash = "sha256:8cbd76cd18c4f870ff39b24284d3ea028fbe8731a58df3aa581e434c575b9559", size = 134730 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/fa/ca0c66b388624ba9dbbf35aab3a9f326bfdf5e56a7237fe8f1b600da6864/aenum-3.1.15-py3-none-any.whl", hash = "sha256:e0dfaeea4c2bd362144b87377e2c61d91958c5ed0b4daf89cb6f45ae23af6288", size = 137633 }, +] + +[[package]] +name = "alabaster" +version = "0.7.16" +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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/34/d4e1c02d3bee589efb5dfa17f88ea08bdb3e3eac12bc475462aec52ed223/alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92", size = 13511 }, +] + +[[package]] +name = "apeye" +version = "1.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "apeye-core", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "domdf-python-tools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "platformdirs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "requests", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4f/6b/cc65e31843d7bfda8313a9dc0c77a21e8580b782adca53c7cb3e511fe023/apeye-1.4.1.tar.gz", hash = "sha256:14ea542fad689e3bfdbda2189a354a4908e90aee4bf84c15ab75d68453d76a36", size = 99219 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/7b/2d63664777b3e831ac1b1d8df5bbf0b7c8bee48e57115896080890527b1b/apeye-1.4.1-py3-none-any.whl", hash = "sha256:44e58a9104ec189bf42e76b3a7fe91e2b2879d96d48e9a77e5e32ff699c9204e", size = 107989 }, +] + +[[package]] +name = "apeye-core" +version = "1.1.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "domdf-python-tools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "idna", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e5/4c/4f108cfd06923bd897bf992a6ecb6fb122646ee7af94d7f9a64abd071d4c/apeye_core-1.1.5.tar.gz", hash = "sha256:5de72ed3d00cc9b20fea55e54b7ab8f5ef8500eb33a5368bc162a5585e238a55", size = 96511 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/9f/fa9971d2a0c6fef64c87ba362a493a4f230eff4ea8dfb9f4c7cbdf71892e/apeye_core-1.1.5-py3-none-any.whl", hash = "sha256:dc27a93f8c9e246b3b238c5ea51edf6115ab2618ef029b9f2d9a190ec8228fbf", size = 99286 }, +] + +[[package]] +name = "asciitree" +version = "0.3.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/6a/885bc91484e1aa8f618f6f0228d76d0e67000b0fdd6090673b777e311913/asciitree-0.3.3.tar.gz", hash = "sha256:4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e", size = 3951 } + +[[package]] +name = "asttokens" +version = "2.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/1d/f03bcb60c4a3212e15f99a56085d93093a497718adf828d050b9d675da81/asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0", size = 62284 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24", size = 27764 }, +] + +[[package]] +name = "astunparse" +version = "1.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "wheel", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872", size = 18290 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8", size = 12732 }, +] + +[[package]] +name = "attrs" +version = "24.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/0f/aafca9af9315aee06a89ffde799a10a582fe8de76c563ee80bbcdc08b3fb/attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", size = 792678 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2", size = 63001 }, +] + +[[package]] +name = "autodocsumm" +version = "0.2.14" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/03/96/92afe8a7912b327c01f0a8b6408c9556ee13b1aba5b98d587ac7327ff32d/autodocsumm-0.2.14.tar.gz", hash = "sha256:2839a9d4facc3c4eccd306c08695540911042b46eeafcdc3203e6d0bab40bc77", size = 46357 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/bc/3f66af9beb683728e06ca08797e4e9d3e44f432f339718cae3ba856a9cad/autodocsumm-0.2.14-py3-none-any.whl", hash = "sha256:3bad8717fc5190802c60392a7ab04b9f3c97aa9efa8b3780b3d81d615bfe5dc0", size = 14640 }, +] + +[[package]] +name = "babel" +version = "2.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2a/74/f1bc80f23eeba13393b7222b11d95ca3af2c1e28edca18af487137eefed9/babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316", size = 9348104 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/20/bc79bc575ba2e2a7f70e8a1155618bb1301eaa5132a8271373a6903f73f8/babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b", size = 9587599 }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", size = 581181 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed", size = 147925 }, +] + +[[package]] +name = "black" +version = "24.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mypy-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pathspec", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "platformdirs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "typing-extensions", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, +] +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/a3/f3/465c0eb5cddf7dbbfe1fecd9b875d1dcf51b88923cd2c1d7e9ab95c6336b/black-24.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6668650ea4b685440857138e5fe40cde4d652633b1bdffc62933d0db4ed9812", size = 1623211 }, + { url = "https://files.pythonhosted.org/packages/df/57/b6d2da7d200773fdfcc224ffb87052cf283cec4d7102fab450b4a05996d8/black-24.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1c536fcf674217e87b8cc3657b81809d3c085d7bf3ef262ead700da345bfa6ea", size = 1457139 }, + { url = "https://files.pythonhosted.org/packages/6e/c5/9023b7673904a5188f9be81f5e129fff69f51f5515655fbd1d5a4e80a47b/black-24.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:649fff99a20bd06c6f727d2a27f401331dc0cc861fb69cde910fe95b01b5928f", size = 1753774 }, + { 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/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/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/8d/a7/4b27c50537ebca8bec139b872861f9d2bf501c5ec51fcf897cb924d9e264/black-24.10.0-py3-none-any.whl", hash = "sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d", size = 206898 }, +] + +[[package]] +name = "bleach" +version = "6.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "webencodings", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/9a/0e33f5054c54d349ea62c277191c020c2d6ef1d65ab2cb1993f91ec846d1/bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f", size = 203083 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/55/96142937f66150805c25c4d0f31ee4132fd33497753400734f9dfdcbdc66/bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e", size = 163406 }, +] + +[[package]] +name = "bokeh" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pillow", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tornado", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "xyzservices", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/54/1b/d62004ebe89b3abb1d329710daa92dd13980196b0f7f5ed82036445cc952/bokeh-3.6.1.tar.gz", hash = "sha256:04d3fb5fac871423f38e4535838164cd90c3d32e707bcb74c8bf991ed28878fc", size = 6246963 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/72/a2/7b5a1a5419e400f715387a48f65225ec7a3f2104465f346fc75e8793407b/bokeh-3.6.1-py3-none-any.whl", hash = "sha256:6a97271bd4cc5b32c5bc7aa9c1c0dbe0beb0a8da2a22193e57c73f0c88d2075a", size = 6865904 }, +] + +[[package]] +name = "boltons" +version = "24.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/84/76/dfc34232b3e88634025563f52a430be0838182647c063f99569086922554/boltons-24.1.0.tar.gz", hash = "sha256:4a49b7d57ee055b83a458c8682a2a6f199d263a8aa517098bda9bab813554b87", size = 240916 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/96/e44606e60a0c005ac5f2a641960a93ca8f449ebdce7479f9bc4f10bead6d/boltons-24.1.0-py3-none-any.whl", hash = "sha256:a1776d47fdc387fb730fba1fe245f405ee184ee0be2fb447dd289773a84aed3b", size = 192196 }, +] + +[[package]] +name = "bottleneck" +version = "1.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/61/9fb34409d58f04e1929da41666a055c36f9495903ff669b80c893bdee65f/bottleneck-1.4.2.tar.gz", hash = "sha256:fa8e8e1799dea5483ce6669462660f9d9a95649f6f98a80d315b84ec89f449f4", size = 103563 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/f3/7e76090a8ab7f2d5f123ba6cad556c7c324bcef2320b1aa3e6a8f87c0f1d/Bottleneck-1.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:125436df93751a226eab1732783aa8f6125e88e779587aa61be071fb66e41f9d", size = 98563 }, + { url = "https://files.pythonhosted.org/packages/b7/db/5a600f6c071e93284e8480684b971a7cce334d9e6b6d57386cc391537d14/Bottleneck-1.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c6df9a60ec6ab88fec934ca864266ba95edd89c490af71dc9cd8afb2a54ebd9", size = 360776 }, + { url = "https://files.pythonhosted.org/packages/e3/8f/8d0322287dd208bd35b2814152726d6f7ec9346c9ad2abae18e23e9ef15e/Bottleneck-1.4.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e2fe327dc2d0564e295a5857a252755103f8c6e05b07d3ff80a69afaa9f5065", size = 356085 }, + { url = "https://files.pythonhosted.org/packages/20/1b/05dd0433052f62b416d3af4d58556f377518b1d35f76872c53e79bd7818f/Bottleneck-1.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6b7790ca8658cd69e3cc0d0e4ff0e9829d60849bf7945fbd7344fbce05b2bbb8", size = 365247 }, + { url = "https://files.pythonhosted.org/packages/b6/6b/eb7a04afa8d4641a498b62a24db5a491ab3d6945890e9f5d5f852ba0aa8c/Bottleneck-1.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6282fa925ac3768f66e3547f89a512376d3f9de7ef53bdd37aa29232fd864054", size = 356080 }, + { url = "https://files.pythonhosted.org/packages/88/b8/31a1cc8279bf11a60c04b844a42666927307a47bb48964cbd92ec9f40e3e/Bottleneck-1.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b6902ebf3e85315b481bc084f10c5770f8240275ad1e039ac69c7c8d2013b040", size = 98565 }, + { url = "https://files.pythonhosted.org/packages/16/64/09d72babae7cc29341c52f2e9381066672743d4f797c86b1e735205d5fc8/Bottleneck-1.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c2fd34b9b490204f95288f0dd35d37042486a95029617246c88c0f94a0ab49fe", size = 364986 }, + { url = "https://files.pythonhosted.org/packages/7e/d6/39e957e9df9ab16df9c531e8ddf71594877063d27aa036dd105b66d3b3b3/Bottleneck-1.4.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:122845e3106c85465551d4a9a3777841347cfedfbebb3aa985cca110e07030b1", size = 360256 }, + { url = "https://files.pythonhosted.org/packages/ff/cb/d287febe0e6504194ba94cf4a6d80df66a0031ca33a32b30f00c030238cc/Bottleneck-1.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1f61658ebdf5a178298544336b65020730bf86cc092dab5f6579a99a86bd888b", size = 369507 }, + { url = "https://files.pythonhosted.org/packages/dc/1e/9310f058ddee71798a76ab15c5c1ad71f0a5c3c6348f7faab9b6da038484/Bottleneck-1.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7c7d29c044a3511b36fd744503c3e697e279c273a8477a6d91a2831d04fd19e0", size = 360282 }, + { url = "https://files.pythonhosted.org/packages/d2/26/6f5124e31a67f75e2a3b9239cc382145326e91fc45e7d7bc9ebffa05fdfa/Bottleneck-1.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a74ddd0417f42eeaba37375f0fc065b28451e0fba45cb2f99e88880b10b3fa43", size = 98681 }, + { url = "https://files.pythonhosted.org/packages/c4/93/e100b6eda77f2aecf5f16157b8c04dd3463913ba188b582650cd77ccf42b/Bottleneck-1.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:070d22f2f62ab81297380a89492cca931e4d9443fa4b84c2baeb52db09c3b1b4", size = 365422 }, + { url = "https://files.pythonhosted.org/packages/82/2b/c6fea2bb048d04c13b8564052818a198d50ce58d5f439ec69c2b0c458703/Bottleneck-1.4.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fc4e7645bd425c05e05acd5541e9e09cb4179e71164e862f082561bf4509eac", size = 361844 }, + { url = "https://files.pythonhosted.org/packages/8f/4c/811475885bd60cf0cb28822568d0c0c3c7d7de4fbccd2ebb66863e7dc726/Bottleneck-1.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:037315c56605128a39f77d19af6a6019dc8c21a63694a4bfef3c026ed963be2e", size = 370369 }, + { url = "https://files.pythonhosted.org/packages/fd/ee/0a8157e6bbd2168bf6171811534a5a73a35f54c453dd7d86a323773b5bd7/Bottleneck-1.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:99778329331d5fae8df19772a019e8b73ba4d9d1650f110cd995ab7657114db0", size = 361786 }, + { url = "https://files.pythonhosted.org/packages/2e/65/148e146ca8c16af9881a0db1d8d1849d49a5186fc9f065c79a8d25d6fc0c/Bottleneck-1.4.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c1c885ad02a6a8fa1f7ee9099f29b9d4c03eb1da2c7ab25839482d5cce739021", size = 98701 }, + { url = "https://files.pythonhosted.org/packages/80/96/6540ac9a9943b0d6f0199eddbde55e878f970d2bdda31207dc3e7a195c2b/Bottleneck-1.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7a1b023de1de3d84b18826462718fba548fed41870df44354f9ab6a414ea82f", size = 365443 }, + { url = "https://files.pythonhosted.org/packages/d0/aa/ccae264aac3b2621fa8a98c7afe033f22a352467cbf85fa2799d176ec31b/Bottleneck-1.4.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c9dbaf737b605b30c81611f2c1d197c2fd2e46c33f605876c1d332d3360c4fc", size = 361849 }, + { url = "https://files.pythonhosted.org/packages/f3/b3/5f96d7bb23a291b835bf0a34eec359c55613f6c4262ad1bb161d897499c0/Bottleneck-1.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7ebbcbe5d4062e37507b9a81e2aacdb1fcccc6193f7feff124ef2b5a6a5eb740", size = 370654 }, + { url = "https://files.pythonhosted.org/packages/51/05/9d1ababa3fd34014b708351270307320c0bc595d2d66c2ba2b9b92f0d618/Bottleneck-1.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:964f6ac4118ddab3bbbac79d4f726b093459be751baba73ee0aa364666e8068e", size = 362054 }, +] + +[[package]] +name = "bump2version" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/29/2a/688aca6eeebfe8941235be53f4da780c6edee05dbbea5d7abaa3aab6fad2/bump2version-1.0.1.tar.gz", hash = "sha256:762cb2bfad61f4ec8e2bdf452c7c267416f8c70dd9ecb1653fd0bbb01fa936e6", size = 36236 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/e3/fa60c47d7c344533142eb3af0b73234ef8ea3fb2da742ab976b947e717df/bump2version-1.0.1-py2.py3-none-any.whl", hash = "sha256:37f927ea17cde7ae2d7baf832f8e80ce3777624554a653006c9144f8017fe410", size = 22030 }, +] + +[[package]] +name = "cachecontrol" +version = "0.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "msgpack", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "requests", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d2/23/db12e0b6b241e33f77f7cce01a06b4cc6f8071728656cc0ea262d2a14dad/cachecontrol-0.14.1.tar.gz", hash = "sha256:06ef916a1e4eb7dba9948cdfc9c76e749db2e02104a9a1277e8b642591a0f717", size = 28928 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/aa/481eb52af52aae093c61c181f2308779973ffd6f0f5f6c0881b2138f3087/cachecontrol-0.14.1-py3-none-any.whl", hash = "sha256:65e3abd62b06382ce3894df60dde9e0deb92aeb734724f68fa4f3b91e97206b9", size = 22085 }, +] + +[package.optional-dependencies] +filecache = [ + { name = "filelock", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[[package]] +name = "cached-property" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/76/4b/3d870836119dbe9a5e3c9a61af8cc1a8b69d75aea564572e385882d5aefb/cached_property-2.0.1.tar.gz", hash = "sha256:484d617105e3ee0e4f1f58725e72a8ef9e93deee462222dbd51cd91230897641", size = 10574 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/0e/7d8225aab3bc1a0f5811f8e1b557aa034ac04bdf641925b30d3caf586b28/cached_property-2.0.1-py3-none-any.whl", hash = "sha256:f617d70ab1100b7bcf6e42228f9ddcb78c676ffa167278d9f730d1c2fba69ccb", size = 7428 }, +] + +[[package]] +name = "cachetools" +version = "5.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/38/a0f315319737ecf45b4319a8cd1f3a908e29d9277b46942263292115eee7/cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a", size = 27661 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/07/14f8ad37f2d12a5ce41206c21820d8cb6561b728e51fad4530dff0552a67/cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292", size = 9524 }, +] + +[[package]] +name = "cartopy" +version = "0.24.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "matplotlib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyproj", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyshp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "shapely", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e0/75/94aff4fef338887641aa780d13795609861e6e9f9593bd66d4917ab7954b/cartopy-0.24.1.tar.gz", hash = "sha256:01c910d5634c69a7efdec46e0a17d473d2328767f001d4dc0b5c4b48e585c8bd", size = 10741277 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/57/41/9dd14e3ee3f7a0546768c11a8f4a37b1c09fc4868b992f431431d526502b/Cartopy-0.24.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ce0c83314570c61a695a1f7c3a4a22dc75f79d28f4c68b88a8aeaf13d6a2343c", size = 10982199 }, + { url = "https://files.pythonhosted.org/packages/72/57/8b4a3856aaf4c600504566d7d956928b79d8b17e8d3a1c70060e5f90124f/Cartopy-0.24.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:511f992340baea2c171cb17b3ef595537e5355640f3baa7ac895de25df016a70", size = 10971756 }, + { url = "https://files.pythonhosted.org/packages/ea/50/e5170302a62259f34289ff7f4944a32ac04a49b38713d001873732742726/Cartopy-0.24.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54f4d23961e0f9436baaf4747928361ccdcc893fa9b7bad9f615551bc8aa3fe8", size = 11658621 }, + { url = "https://files.pythonhosted.org/packages/c4/f0/eaa16216c8b91cfd433b60e79080ffaf9e470bb5c939662835faa40fd347/Cartopy-0.24.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4a14638b63d7df2858f73e9f8f4f4826d7c9cf13781aa6824fa0134fbaebbd98", size = 10982474 }, + { url = "https://files.pythonhosted.org/packages/63/99/681a7ae5e572343e15ce8697dd4b41f49d45fe89f5e5d8b122bff0f8165c/Cartopy-0.24.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d74b4a3eae9e570f474276fb61847112cdccdead396ec2ddad226dad9eaf4564", size = 10971918 }, + { url = "https://files.pythonhosted.org/packages/04/87/8dc9249e67c635a5c08ae81d4243a1ad69a1b91b703d3ab9be7fa78efc2b/Cartopy-0.24.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfa38fb216cfd16cc266fd6f86b60ebdf0056839b490f38d2d89229b03abc877", size = 11718335 }, + { url = "https://files.pythonhosted.org/packages/6e/76/774a4f808c6a4fc19b87c2cc38dd8731d413aad606689451c017ff93ad12/Cartopy-0.24.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a984e33977daed8f760c09c331c8368a6af060db1190af89d74a027c272e39c3", size = 10983939 }, + { url = "https://files.pythonhosted.org/packages/2f/48/8517d5d1cc56ce5c4abda1de6454593474a23412115a543f7981aa7e4377/Cartopy-0.24.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71d8a6d061d0764aba3baf357a68f3d73796a8a46d34b8c9fb241171b273c69e", size = 10972374 }, + { url = "https://files.pythonhosted.org/packages/c8/84/cb1577d5ac2f0deb002001c6e25b291735151c8c3033c97f212dc482ef72/Cartopy-0.24.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f354a1d902a8d6ee33b099acc86ac2e1af528bbc0ea718b834111c97e604981", size = 11715215 }, + { url = "https://files.pythonhosted.org/packages/e6/e8/38e00eb35743f22d4ee9bcb131ab273fb47ec39cc03ce5144686a3142756/Cartopy-0.24.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d279968b845f72e3423e454b2b0b985fb2389e6ccd18fb73324abeca4e43f516", size = 10982533 }, + { url = "https://files.pythonhosted.org/packages/66/60/cc852a0835a053db18085dec1d1dd6f9cedc764d1524bfe30fd8be5ee3a7/Cartopy-0.24.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f0963b80a048252815c56fbd21bc4e5d163618a9eaa36c8898ce2c60b6c03979", size = 10971183 }, + { url = "https://files.pythonhosted.org/packages/a3/5b/476c8f3a277d7c78e5a5318bd32f234b994bfdc5d7731ae84218f2fa8a8f/Cartopy-0.24.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfdde0a6e0e56c5fc46f4e7d332237eb31bbd9908417f0f190fda5d322754184", size = 11709060 }, +] + +[[package]] +name = "certifi" +version = "2024.8.30" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", size = 168507 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", size = 167321 }, +] + +[[package]] +name = "cffi" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/07/f44ca684db4e4f08a3fdc6eeb9a0d15dc6883efc7b8c90357fdbf74e186c/cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14", size = 182191 }, + { url = "https://files.pythonhosted.org/packages/08/fd/cc2fedbd887223f9f5d170c96e57cbf655df9831a6546c1727ae13fa977a/cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67", size = 178592 }, + { url = "https://files.pythonhosted.org/packages/de/cc/4635c320081c78d6ffc2cab0a76025b691a91204f4aa317d568ff9280a2d/cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382", size = 426024 }, + { url = "https://files.pythonhosted.org/packages/b6/7b/3b2b250f3aab91abe5f8a51ada1b717935fdaec53f790ad4100fe2ec64d1/cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702", size = 448188 }, + { url = "https://files.pythonhosted.org/packages/d3/48/1b9283ebbf0ec065148d8de05d647a986c5f22586b18120020452fff8f5d/cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3", size = 455571 }, + { url = "https://files.pythonhosted.org/packages/40/87/3b8452525437b40f39ca7ff70276679772ee7e8b394934ff60e63b7b090c/cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6", size = 436687 }, + { url = "https://files.pythonhosted.org/packages/8d/fb/4da72871d177d63649ac449aec2e8a29efe0274035880c7af59101ca2232/cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17", size = 446211 }, + { url = "https://files.pythonhosted.org/packages/ab/a0/62f00bcb411332106c02b663b26f3545a9ef136f80d5df746c05878f8c4b/cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8", size = 461325 }, + { url = "https://files.pythonhosted.org/packages/36/83/76127035ed2e7e27b0787604d99da630ac3123bfb02d8e80c633f218a11d/cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e", size = 438784 }, + { url = "https://files.pythonhosted.org/packages/21/81/a6cd025db2f08ac88b901b745c163d884641909641f9b826e8cb87645942/cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be", size = 461564 }, + { url = "https://files.pythonhosted.org/packages/6b/f4/927e3a8899e52a27fa57a48607ff7dc91a9ebe97399b357b85a0c7892e00/cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", size = 182264 }, + { url = "https://files.pythonhosted.org/packages/6c/f5/6c3a8efe5f503175aaddcbea6ad0d2c96dad6f5abb205750d1b3df44ef29/cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", size = 178651 }, + { url = "https://files.pythonhosted.org/packages/94/dd/a3f0118e688d1b1a57553da23b16bdade96d2f9bcda4d32e7d2838047ff7/cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", size = 445259 }, + { url = "https://files.pythonhosted.org/packages/2e/ea/70ce63780f096e16ce8588efe039d3c4f91deb1dc01e9c73a287939c79a6/cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", size = 469200 }, + { url = "https://files.pythonhosted.org/packages/1c/a0/a4fa9f4f781bda074c3ddd57a572b060fa0df7655d2a4247bbe277200146/cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", size = 477235 }, + { url = "https://files.pythonhosted.org/packages/62/12/ce8710b5b8affbcdd5c6e367217c242524ad17a02fe5beec3ee339f69f85/cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", size = 459721 }, + { url = "https://files.pythonhosted.org/packages/ff/6b/d45873c5e0242196f042d555526f92aa9e0c32355a1be1ff8c27f077fd37/cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", size = 467242 }, + { url = "https://files.pythonhosted.org/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", size = 477999 }, + { url = "https://files.pythonhosted.org/packages/44/74/f2a2460684a1a2d00ca799ad880d54652841a780c4c97b87754f660c7603/cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", size = 454242 }, + { url = "https://files.pythonhosted.org/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b", size = 478604 }, + { url = "https://files.pythonhosted.org/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", size = 183178 }, + { url = "https://files.pythonhosted.org/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", size = 178840 }, + { url = "https://files.pythonhosted.org/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", size = 454803 }, + { url = "https://files.pythonhosted.org/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", size = 478850 }, + { url = "https://files.pythonhosted.org/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", size = 485729 }, + { url = "https://files.pythonhosted.org/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", size = 471256 }, + { url = "https://files.pythonhosted.org/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", size = 479424 }, + { url = "https://files.pythonhosted.org/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", size = 484568 }, + { url = "https://files.pythonhosted.org/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", size = 488736 }, + { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989 }, + { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802 }, + { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792 }, + { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893 }, + { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810 }, + { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200 }, + { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447 }, + { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358 }, + { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469 }, +] + +[[package]] +name = "cfgv" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/11/74/539e56497d9bd1d484fd863dd69cbbfa653cd2aa27abfe35653494d85e94/cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560", size = 7114 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9", size = 7249 }, +] + +[[package]] +name = "cftime" +version = "1.6.4.post1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/c8/1155d1d58003105307c7e5985f422ae5bcb2ca0cbc553cc828f3c5a934a7/cftime-1.6.4.post1.tar.gz", hash = "sha256:50ac76cc9f10ab7bd46e44a71c51a6927051b499b4407df4f29ab13d741b942f", size = 54631 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/6a/7ebd692ccf5b28d8c5e170fd11b0a2945f530392bc9887e858a0302b1745/cftime-1.6.4.post1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0baa9bc4850929da9f92c25329aa1f651e2d6f23e237504f337ee9e12a769f5d", size = 233017 }, + { url = "https://files.pythonhosted.org/packages/b9/65/3b7a11139282f81ce40872acad7f99b65291f7401ceec7b6bb94c39c8441/cftime-1.6.4.post1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6bb6b087f4b2513c37670bccd457e2a666ca489c5f2aad6e2c0e94604dc1b5b9", size = 213927 }, + { url = "https://files.pythonhosted.org/packages/70/e3/1a56832b13ce0c5f3b798bf7bc60d4550fa1c514e04b613f9b0e48edc535/cftime-1.6.4.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d9bdeb9174962c9ca00015190bfd693de6b0ec3ec0b3dbc35c693a4f48efdcc", size = 1252052 }, + { url = "https://files.pythonhosted.org/packages/5c/aa/f62ce24417ecb19f5ba1aa1dbe72394d11f11f5e53fc53497ccfaab83d3c/cftime-1.6.4.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e735cfd544878eb94d0108ff5a093bd1a332dba90f979a31a357756d609a90d5", size = 1289731 }, + { url = "https://files.pythonhosted.org/packages/e4/21/0cf99e16e9953d17cc37286201922d07f17ffc1743dbc50d0c9e6f98ddda/cftime-1.6.4.post1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1dcd1b140bf50da6775c56bd7ca179e84bd258b2f159b53eefd5c514b341f2bf", size = 1317229 }, + { url = "https://files.pythonhosted.org/packages/85/e6/6a7d2120fcffee208cf637d22b0d8f2701d91f69f68a96940056429950f3/cftime-1.6.4.post1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1bf7be0a0afc87628cb8c8483412aac6e48e83877004faa0936afb5bf8a877ba", size = 233445 }, + { url = "https://files.pythonhosted.org/packages/1c/a0/fe0d14d52cffa72d3f1c281ff9f0f384968058d86ce24fdf9e736ce5b755/cftime-1.6.4.post1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0f64ca83acc4e3029f737bf3a32530ffa1fbf53124f5bee70b47548bc58671a7", size = 214458 }, + { url = "https://files.pythonhosted.org/packages/55/c6/72f8fb5ee057f33ab747ba361f1396d2839a4689669aabd6217bc38430f7/cftime-1.6.4.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7ebdfd81726b0cfb8b524309224fa952898dfa177c13d5f6af5b18cefbf497d", size = 1379075 }, + { url = "https://files.pythonhosted.org/packages/77/81/6b30815698ede50f89013f25e46d66ed3a290b8a2d6b97f95bacbbe1eb5c/cftime-1.6.4.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9ea0965a4c87739aebd84fe8eed966e5809d10065eeffd35c99c274b6f8da15", size = 1415218 }, + { url = "https://files.pythonhosted.org/packages/24/0d/73ab09a32da1478d3ef5f4ab6c59d42f2db2a2383b427c87e05ad81b71ad/cftime-1.6.4.post1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:800a18aea4e8cb2b206450397cb8a53b154798738af3cdd3c922ce1ca198b0e6", size = 1450704 }, + { url = "https://files.pythonhosted.org/packages/50/81/0bb28d54088a61592f61a11e7fcabcea6d261c47af79e18d0f9cbcd940ae/cftime-1.6.4.post1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a590f73506f4704ba5e154ef55bfbaed5e1b4ac170f3caeb8c58e4f2c619ee4e", size = 226615 }, + { url = "https://files.pythonhosted.org/packages/f3/1e/38dbbf8a828dfb5e0e6e5c912818b77aacf2e7bcb97b262ac6126beeb29f/cftime-1.6.4.post1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:933cb10e1af4e362e77f513e3eb92b34a688729ddbf938bbdfa5ac20a7f44ba0", size = 209193 }, + { url = "https://files.pythonhosted.org/packages/9b/60/0db884c76311ecaaf31f628aa9358beae5fcb0fbbdc2eb0b790a93aa258f/cftime-1.6.4.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf17a1b36f62e9e73c4c9363dd811e1bbf1170f5ac26d343fb26012ccf482908", size = 1320215 }, + { url = "https://files.pythonhosted.org/packages/8d/7d/2d5fc7af06da4f3bdea59a204f741bf7a30bc5019355991b2f083e557e4e/cftime-1.6.4.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e18021f421aa26527bad8688c1acf0c85fa72730beb6efce969c316743294f2", size = 1367426 }, + { url = "https://files.pythonhosted.org/packages/5d/ab/e8b26d05323fc5629356c82a7f64026248f121ea1361b49df441bbc8f2d7/cftime-1.6.4.post1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5835b9d622f9304d1c23a35603a0f068739f428d902860f25e6e7e5a1b7cd8ea", size = 1385593 }, + { url = "https://files.pythonhosted.org/packages/da/d8/81f086dbdc6f5a4e0bb068263471f1d12861b72562fe8c18df38268e4e29/cftime-1.6.4.post1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5c89766ebf088c097832ea618c24ed5075331f0b7bf8e9c2d4144aefbf2f1850", size = 223418 }, + { url = "https://files.pythonhosted.org/packages/4a/cc/60a825d92a4023655e330470758280a31e7b82665ef77d0e2a0fe71ea958/cftime-1.6.4.post1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f27113f7ccd1ca32881fdcb9a4bec806a5f54ae621fc1c374f1171f3ed98ef2", size = 207395 }, + { url = "https://files.pythonhosted.org/packages/ca/90/f5b26949899decce262fc76a1e64915b92050473114e0160cd6f7297f854/cftime-1.6.4.post1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da367b23eea7cf4df071c88e014a1600d6c5bbf22e3393a4af409903fa397e28", size = 1318113 }, + { url = "https://files.pythonhosted.org/packages/c3/f8/6f13d37abb7ade46e65a08acc31af776a96dde0eb569e05d4c4b01422ba6/cftime-1.6.4.post1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6579c5c83cdf09d73aa94c7bc34925edd93c5f2c7dd28e074f568f7e376271a0", size = 1366034 }, + { url = "https://files.pythonhosted.org/packages/fa/08/335cb17f3b708f9a24f96ca4abb00889c7aa20b0ae273313e7c11faf1f97/cftime-1.6.4.post1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6b731c7133d17b479ca0c3c46a7a04f96197f0a4d753f4c2284c3ff0447279b4", size = 1390156 }, +] + +[[package]] +name = "chardet" +version = "5.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7", size = 2069618 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385 }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", size = 106620 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/8b/825cc84cf13a28bfbcba7c416ec22bf85a9584971be15b21dd8300c65b7f/charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6", size = 196363 }, + { url = "https://files.pythonhosted.org/packages/23/81/d7eef6a99e42c77f444fdd7bc894b0ceca6c3a95c51239e74a722039521c/charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b", size = 125639 }, + { url = "https://files.pythonhosted.org/packages/21/67/b4564d81f48042f520c948abac7079356e94b30cb8ffb22e747532cf469d/charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99", size = 120451 }, + { url = "https://files.pythonhosted.org/packages/c2/72/12a7f0943dd71fb5b4e7b55c41327ac0a1663046a868ee4d0d8e9c369b85/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca", size = 140041 }, + { url = "https://files.pythonhosted.org/packages/67/56/fa28c2c3e31217c4c52158537a2cf5d98a6c1e89d31faf476c89391cd16b/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d", size = 150333 }, + { url = "https://files.pythonhosted.org/packages/f9/d2/466a9be1f32d89eb1554cf84073a5ed9262047acee1ab39cbaefc19635d2/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7", size = 142921 }, + { url = "https://files.pythonhosted.org/packages/f8/01/344ec40cf5d85c1da3c1f57566c59e0c9b56bcc5566c08804a95a6cc8257/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3", size = 144785 }, + { url = "https://files.pythonhosted.org/packages/73/8b/2102692cb6d7e9f03b9a33a710e0164cadfce312872e3efc7cfe22ed26b4/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907", size = 146631 }, + { url = "https://files.pythonhosted.org/packages/d8/96/cc2c1b5d994119ce9f088a9a0c3ebd489d360a2eb058e2c8049f27092847/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b", size = 140867 }, + { url = "https://files.pythonhosted.org/packages/c9/27/cde291783715b8ec30a61c810d0120411844bc4c23b50189b81188b273db/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912", size = 149273 }, + { url = "https://files.pythonhosted.org/packages/3a/a4/8633b0fc1a2d1834d5393dafecce4a1cc56727bfd82b4dc18fc92f0d3cc3/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95", size = 152437 }, + { url = "https://files.pythonhosted.org/packages/64/ea/69af161062166b5975ccbb0961fd2384853190c70786f288684490913bf5/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e", size = 150087 }, + { url = "https://files.pythonhosted.org/packages/3b/fd/e60a9d9fd967f4ad5a92810138192f825d77b4fa2a557990fd575a47695b/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe", size = 145142 }, + { url = "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", size = 193339 }, + { url = "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", size = 124366 }, + { url = "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", size = 118874 }, + { url = "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", size = 138243 }, + { url = "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", size = 148676 }, + { url = "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", size = 141289 }, + { url = "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", size = 142585 }, + { url = "https://files.pythonhosted.org/packages/3b/a0/a68980ab8a1f45a36d9745d35049c1af57d27255eff8c907e3add84cf68f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", size = 144408 }, + { url = "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", size = 139076 }, + { url = "https://files.pythonhosted.org/packages/fb/9d/9c13753a5a6e0db4a0a6edb1cef7aee39859177b64e1a1e748a6e3ba62c2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", size = 146874 }, + { url = "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", size = 150871 }, + { url = "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", size = 148546 }, + { url = "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", size = 143048 }, + { url = "https://files.pythonhosted.org/packages/d3/0b/4b7a70987abf9b8196845806198975b6aab4ce016632f817ad758a5aa056/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", size = 194445 }, + { url = "https://files.pythonhosted.org/packages/50/89/354cc56cf4dd2449715bc9a0f54f3aef3dc700d2d62d1fa5bbea53b13426/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", size = 125275 }, + { url = "https://files.pythonhosted.org/packages/fa/44/b730e2a2580110ced837ac083d8ad222343c96bb6b66e9e4e706e4d0b6df/charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", size = 119020 }, + { url = "https://files.pythonhosted.org/packages/9d/e4/9263b8240ed9472a2ae7ddc3e516e71ef46617fe40eaa51221ccd4ad9a27/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", size = 139128 }, + { url = "https://files.pythonhosted.org/packages/6b/e3/9f73e779315a54334240353eaea75854a9a690f3f580e4bd85d977cb2204/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", size = 149277 }, + { url = "https://files.pythonhosted.org/packages/1a/cf/f1f50c2f295312edb8a548d3fa56a5c923b146cd3f24114d5adb7e7be558/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", size = 142174 }, + { url = "https://files.pythonhosted.org/packages/16/92/92a76dc2ff3a12e69ba94e7e05168d37d0345fa08c87e1fe24d0c2a42223/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", size = 143838 }, + { url = "https://files.pythonhosted.org/packages/a4/01/2117ff2b1dfc61695daf2babe4a874bca328489afa85952440b59819e9d7/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", size = 146149 }, + { url = "https://files.pythonhosted.org/packages/f6/9b/93a332b8d25b347f6839ca0a61b7f0287b0930216994e8bf67a75d050255/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", size = 140043 }, + { url = "https://files.pythonhosted.org/packages/ab/f6/7ac4a01adcdecbc7a7587767c776d53d369b8b971382b91211489535acf0/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", size = 148229 }, + { url = "https://files.pythonhosted.org/packages/9d/be/5708ad18161dee7dc6a0f7e6cf3a88ea6279c3e8484844c0590e50e803ef/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", size = 151556 }, + { url = "https://files.pythonhosted.org/packages/5a/bb/3d8bc22bacb9eb89785e83e6723f9888265f3a0de3b9ce724d66bd49884e/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", size = 149772 }, + { url = "https://files.pythonhosted.org/packages/f7/fa/d3fc622de05a86f30beea5fc4e9ac46aead4731e73fd9055496732bcc0a4/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", size = 144800 }, + { url = "https://files.pythonhosted.org/packages/f3/89/68a4c86f1a0002810a27f12e9a7b22feb198c59b2f05231349fbce5c06f4/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", size = 194617 }, + { url = "https://files.pythonhosted.org/packages/4f/cd/8947fe425e2ab0aa57aceb7807af13a0e4162cd21eee42ef5b053447edf5/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", size = 125310 }, + { url = "https://files.pythonhosted.org/packages/5b/f0/b5263e8668a4ee9becc2b451ed909e9c27058337fda5b8c49588183c267a/charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", size = 119126 }, + { url = "https://files.pythonhosted.org/packages/ff/6e/e445afe4f7fda27a533f3234b627b3e515a1b9429bc981c9a5e2aa5d97b6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", size = 139342 }, + { url = "https://files.pythonhosted.org/packages/a1/b2/4af9993b532d93270538ad4926c8e37dc29f2111c36f9c629840c57cd9b3/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", size = 149383 }, + { url = "https://files.pythonhosted.org/packages/fb/6f/4e78c3b97686b871db9be6f31d64e9264e889f8c9d7ab33c771f847f79b7/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", size = 142214 }, + { url = "https://files.pythonhosted.org/packages/2b/c9/1c8fe3ce05d30c87eff498592c89015b19fade13df42850aafae09e94f35/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", size = 144104 }, + { url = "https://files.pythonhosted.org/packages/ee/68/efad5dcb306bf37db7db338338e7bb8ebd8cf38ee5bbd5ceaaaa46f257e6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", size = 146255 }, + { url = "https://files.pythonhosted.org/packages/0c/75/1ed813c3ffd200b1f3e71121c95da3f79e6d2a96120163443b3ad1057505/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", size = 140251 }, + { url = "https://files.pythonhosted.org/packages/7d/0d/6f32255c1979653b448d3c709583557a4d24ff97ac4f3a5be156b2e6a210/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", size = 148474 }, + { url = "https://files.pythonhosted.org/packages/ac/a0/c1b5298de4670d997101fef95b97ac440e8c8d8b4efa5a4d1ef44af82f0d/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", size = 151849 }, + { url = "https://files.pythonhosted.org/packages/04/4f/b3961ba0c664989ba63e30595a3ed0875d6790ff26671e2aae2fdc28a399/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", size = 149781 }, + { url = "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482", size = 144970 }, + { url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 }, +] + +[[package]] +name = "click" +version = "8.1.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "(platform_system == 'Windows' and sys_platform == 'darwin') or (platform_system == 'Windows' and sys_platform == 'linux')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941 }, +] + +[[package]] +name = "cloudpickle" +version = "3.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/97/c7/f746cadd08c4c08129215cf1b984b632f9e579fc781301e63da9e85c76c1/cloudpickle-3.1.0.tar.gz", hash = "sha256:81a929b6e3c7335c863c771d673d105f02efdb89dfaba0c90495d1c64796601b", size = 66155 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/41/e1d85ca3cab0b674e277c8c4f678cf66a91cd2cecf93df94353a606fe0db/cloudpickle-3.1.0-py3-none-any.whl", hash = "sha256:fe11acda67f61aaaec473e3afe030feb131d78a43461b718185363384f1ba12e", size = 22021 }, +] + +[[package]] +name = "cmake" +version = "3.31.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c2/74/d8e7802997f3c54dedc5393aad3b9d7732fea61b957bbebf039514a12037/cmake-3.31.1.tar.gz", hash = "sha256:45e09ef6fc5a0d3d4cac11bfee43ba3f9925f301660630d3d1e5457fbe12ecdf", size = 31744 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/82/beb13092dff074518fa0bd8a9af340829ba19825eacc09a1dac80ed67eac/cmake-3.31.1-py3-none-macosx_10_10_universal2.whl", hash = "sha256:b105b171b830de26422a1a2d3ed54540e90438b87bbd07e4d1c53b95766b9a77", size = 47183972 }, + { url = "https://files.pythonhosted.org/packages/d2/9b/b5ea93e4fba5d2404c2bd31dcdc503d6f60afe2f320c453b878a5e958bf9/cmake-3.31.1-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:167753a1c8c708a9462eb4b2dba9eb4a51a0dbb88a52fe4057b2f0d58cef33df", size = 27553493 }, + { url = "https://files.pythonhosted.org/packages/e3/d9/451bc0665ca467ee17bd3956783899625fcbf89a95e9ec46b22633ecbf25/cmake-3.31.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5a26673cdb1b6d3e5bdb799becd7e92bb64515f95e4aa70a137a2a5030c2e940", size = 26809876 }, + { url = "https://files.pythonhosted.org/packages/ec/9d/f5f010c59015e6c630989e0b725ccf8e15c808acfd95b8ec85b19b858722/cmake-3.31.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5d993fb9093061ffc3c4fd73297d7e4821e93be26c9fd6adf8b2b4116370084", size = 27124659 }, + { url = "https://files.pythonhosted.org/packages/c9/72/870771bc5db937b5062a7566cc066da056024c99ff45a6fa8bc1cdfe0a78/cmake-3.31.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c76ee41bf4a63e2d3a0ba96f8f1d226bde0d01bb7d5b8638c30a18de2518f74", size = 28863303 }, + { url = "https://files.pythonhosted.org/packages/d2/5d/174e4edfbfe377e7ec1398f8af34dd851afce1c8e74f0a4046f6ed0fdc3e/cmake-3.31.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb8c23ab0069c40676c4dd2e2ea39de6a18aae6e155dde6073427e11f92b2f3", size = 30728320 }, + { url = "https://files.pythonhosted.org/packages/65/46/119a3a3bf916d2975c9d210a70da6609ca8c4a2ff8e4ab90b0af8ecdb172/cmake-3.31.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:412ef66b056628d7fe40fc8ceff3d5e2c1123782f29f5dfcbd4f7587a5d03df0", size = 26908293 }, + { url = "https://files.pythonhosted.org/packages/b8/8d/a7cf7573df4c67de7cb4b2e36cfc790462b90813baa14604c3693a23d89b/cmake-3.31.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b5f390336617fe476d36415c33e40de61c7381cd3b3657450f03d2c2f99e99a5", size = 27783854 }, + { url = "https://files.pythonhosted.org/packages/d3/f6/3a4be5783d9b40a2449d8f0315a29bf0dc0d66e88bdb3b3a18f60b69fa16/cmake-3.31.1-py3-none-manylinux_2_31_armv7l.whl", hash = "sha256:c38a478d87280aaaf133f69dea507eefd6503584eda79b641c767d80add1e4fe", size = 24961017 }, + { url = "https://files.pythonhosted.org/packages/33/ca/19852821a5c68adb5c2d6c29509f6b08e86296e94ee09a954ef7323c4efc/cmake-3.31.1-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:8584be174494458cbd1c2fef3da6f721b975f70d181a898f0d028a807ca4ee1c", size = 27821185 }, + { url = "https://files.pythonhosted.org/packages/d3/1a/a7edcb52f107d126422b965c20197bdbaed2166b8a01660fdf980b189d9e/cmake-3.31.1-py3-none-musllinux_1_1_i686.whl", hash = "sha256:b67ba0f3e3e4391f0dc1d8f734c57a1532cf8e24605a8470bb90b4bf88789605", size = 31364530 }, + { url = "https://files.pythonhosted.org/packages/c9/42/f1b2679ebaa206d9983347ff5616e446e66b9427c8ccd1dc39be07284db2/cmake-3.31.1-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:ed9fb18f8a7ad7ca483a34c8d4d400d7465f602626fdb478fc086f488297ec8d", size = 32069947 }, + { url = "https://files.pythonhosted.org/packages/5f/43/4ee66e496e726457758710ab8b3b5349b74b80c60ffa7970cf65ab1c226b/cmake-3.31.1-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:995d72c96feb64790bfc13a54bde5bd783685441c1532e1da7402a3f4705d0d9", size = 27942166 }, + { url = "https://files.pythonhosted.org/packages/85/b1/5a1a4a93dc833b770d7bdaff92d0e6f33441317474d1c245b820b764c22c/cmake-3.31.1-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:585ef94540a99a7acbc7001721d5d897df2e80a549a05b17e660e8a813fc9cc1", size = 29465511 }, + { url = "https://files.pythonhosted.org/packages/ba/9a/dc0ad5735d4f784afbf5a64b99b9f36c9cc1e3a188886a9cf0542ca87c8e/cmake-3.31.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7882f58fd4e7d7d87c9afa43e3e2b68f0621d5ad77bef76d9d5de99bb3d5f0d3", size = 32968611 }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, +] + +[[package]] +name = "colorcet" +version = "3.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/c3/ae78e10b7139d6b7ce080d2e81d822715763336aa4229720f49cb3b3e15b/colorcet-3.1.0.tar.gz", hash = "sha256:2921b3cd81a2288aaf2d63dbc0ce3c26dcd882e8c389cc505d6886bf7aa9a4eb", size = 2183107 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/c6/9963d588cc3d75d766c819e0377a168ef83cf3316a92769971527a1ad1de/colorcet-3.1.0-py3-none-any.whl", hash = "sha256:2a7d59cc8d0f7938eeedd08aad3152b5319b4ba3bcb7a612398cc17a384cb296", size = 260286 }, +] + +[[package]] +name = "configargparse" +version = "1.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/70/8a/73f1008adfad01cb923255b924b1528727b8270e67cb4ef41eabdc7d783e/ConfigArgParse-1.7.tar.gz", hash = "sha256:e7067471884de5478c58a511e529f0f9bd1c66bfef1dea90935438d6c23306d1", size = 43817 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/b3/b4ac838711fd74a2b4e6f746703cf9dd2cf5462d17dac07e349234e21b97/ConfigArgParse-1.7-py3-none-any.whl", hash = "sha256:d249da6591465c6c26df64a9f73d2536e743be2f244eb3ebe61114af2f94f86b", size = 25489 }, +] + +[[package]] +name = "contourpy" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +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/b2/a3/80937fe3efe0edacf67c9a20b955139a1a622730042c1ea991956f2704ad/contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab", size = 268466 }, + { url = "https://files.pythonhosted.org/packages/82/1d/e3eaebb4aa2d7311528c048350ca8e99cdacfafd99da87bc0a5f8d81f2c2/contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124", size = 253314 }, + { url = "https://files.pythonhosted.org/packages/de/f3/d796b22d1a2b587acc8100ba8c07fb7b5e17fde265a7bb05ab967f4c935a/contourpy-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2f926efda994cdf3c8d3fdb40b9962f86edbc4457e739277b961eced3d0b4c1", size = 312003 }, + { url = "https://files.pythonhosted.org/packages/bf/f5/0e67902bc4394daee8daa39c81d4f00b50e063ee1a46cb3938cc65585d36/contourpy-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adce39d67c0edf383647a3a007de0a45fd1b08dedaa5318404f1a73059c2512b", size = 351896 }, + { url = "https://files.pythonhosted.org/packages/1f/d6/e766395723f6256d45d6e67c13bb638dd1fa9dc10ef912dc7dd3dcfc19de/contourpy-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abbb49fb7dac584e5abc6636b7b2a7227111c4f771005853e7d25176daaf8453", size = 320814 }, + { url = "https://files.pythonhosted.org/packages/a9/57/86c500d63b3e26e5b73a28b8291a67c5608d4aa87ebd17bd15bb33c178bc/contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3", size = 324969 }, + { url = "https://files.pythonhosted.org/packages/b8/62/bb146d1289d6b3450bccc4642e7f4413b92ebffd9bf2e91b0404323704a7/contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277", size = 1265162 }, + { url = "https://files.pythonhosted.org/packages/18/04/9f7d132ce49a212c8e767042cc80ae390f728060d2eea47058f55b9eff1c/contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595", size = 1324328 }, + { 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/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/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/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/3e/4f/e56862e64b52b55b5ddcff4090085521fc228ceb09a88390a2b103dccd1b/contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6", size = 265605 }, + { url = "https://files.pythonhosted.org/packages/b0/2e/52bfeeaa4541889f23d8eadc6386b442ee2470bd3cff9baa67deb2dd5c57/contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750", size = 315040 }, +] + +[[package]] +name = "coverage" +version = "7.6.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ab/75/aecfd0a3adbec6e45753976bc2a9fed62b42cea9a206d10fd29244a77953/coverage-7.6.8.tar.gz", hash = "sha256:8b2b8503edb06822c86d82fa64a4a5cb0760bb8f31f26e138ec743f422f37cfc", size = 801425 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/86/6ed22e101badc8eedf181f0c2f65500df5929c44c79991cf45b9bf741424/coverage-7.6.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b39e6011cd06822eb964d038d5dff5da5d98652b81f5ecd439277b32361a3a50", size = 206988 }, + { url = "https://files.pythonhosted.org/packages/3b/04/16853c58bacc02b3ff5405193dfc6c66632442d931b23dd7b9452dc55cf3/coverage-7.6.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:63c19702db10ad79151a059d2d6336fe0c470f2e18d0d4d1a57f7f9713875dcf", size = 207418 }, + { url = "https://files.pythonhosted.org/packages/f8/eb/8a91520d04215eb549d6a7d7d3a79cbb1d78b5dd0814f4b23bf97521d580/coverage-7.6.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3985b9be361d8fb6b2d1adc9924d01dec575a1d7453a14cccd73225cb79243ee", size = 235860 }, + { url = "https://files.pythonhosted.org/packages/00/10/bf1ede5b54ae1bbf39921a5dd4cc84aee79041ed301ec8955064785ddb90/coverage-7.6.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:644ec81edec0f4ad17d51c838a7d01e42811054543b76d4ba2c5d6af741ce2a6", size = 233766 }, + { url = "https://files.pythonhosted.org/packages/5c/ea/741d9233eb502906e0d18ccf4c15c4fb74ff0e85fd8ee967590194b889a1/coverage-7.6.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f188a2402f8359cf0c4b1fe89eea40dc13b52e7b4fd4812450da9fcd210181d", size = 234924 }, + { url = "https://files.pythonhosted.org/packages/18/43/b2cfd4413a5b64ab27c289228b0c45b4527d1b99381cc9d6a00bfd515da4/coverage-7.6.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e19122296822deafce89a0c5e8685704c067ae65d45e79718c92df7b3ec3d331", size = 234019 }, + { url = "https://files.pythonhosted.org/packages/8e/95/8b2fbb9d1a79277963b6095cd51a90fb7088cd3618faf75550038331f78b/coverage-7.6.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:13618bed0c38acc418896005732e565b317aa9e98d855a0e9f211a7ffc2d6638", size = 232481 }, + { url = "https://files.pythonhosted.org/packages/4d/d7/9e939508a39ef67605b715ca89c6522214aceb27c2db9152ae3ae1cf8626/coverage-7.6.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:193e3bffca48ad74b8c764fb4492dd875038a2f9925530cb094db92bb5e47bed", size = 233609 }, + { url = "https://files.pythonhosted.org/packages/ab/9f/e98211980f6e2f439e251737482aa77906c9b9c507824c71a2ce7eea0402/coverage-7.6.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:86cffe9c6dfcfe22e28027069725c7f57f4b868a3f86e81d1c62462764dc46d4", size = 207093 }, + { url = "https://files.pythonhosted.org/packages/fd/c7/8bab83fb9c20f7f8163c5a20dcb62d591b906a214a6dc6b07413074afc80/coverage-7.6.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d82ab6816c3277dc962cfcdc85b1efa0e5f50fb2c449432deaf2398a2928ab94", size = 207536 }, + { url = "https://files.pythonhosted.org/packages/1e/d6/00243df625f1b282bb25c83ce153ae2c06f8e7a796a8d833e7235337b4d9/coverage-7.6.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13690e923a3932e4fad4c0ebfb9cb5988e03d9dcb4c5150b5fcbf58fd8bddfc4", size = 239482 }, + { url = "https://files.pythonhosted.org/packages/1e/07/faf04b3eeb55ffc2a6f24b65dffe6e0359ec3b283e6efb5050ea0707446f/coverage-7.6.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4be32da0c3827ac9132bb488d331cb32e8d9638dd41a0557c5569d57cf22c9c1", size = 236886 }, + { url = "https://files.pythonhosted.org/packages/43/23/c79e497bf4d8fcacd316bebe1d559c765485b8ec23ac4e23025be6bfce09/coverage-7.6.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44e6c85bbdc809383b509d732b06419fb4544dca29ebe18480379633623baafb", size = 238749 }, + { url = "https://files.pythonhosted.org/packages/b5/e5/791bae13be3c6451e32ef7af1192e711c6a319f3c597e9b218d148fd0633/coverage-7.6.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:768939f7c4353c0fac2f7c37897e10b1414b571fd85dd9fc49e6a87e37a2e0d8", size = 237679 }, + { url = "https://files.pythonhosted.org/packages/05/c6/bbfdfb03aada601fb8993ced17468c8c8e0b4aafb3097026e680fabb7ce1/coverage-7.6.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e44961e36cb13c495806d4cac67640ac2866cb99044e210895b506c26ee63d3a", size = 236317 }, + { url = "https://files.pythonhosted.org/packages/67/f9/f8e5a4b2ce96d1b0e83ae6246369eb8437001dc80ec03bb51c87ff557cd8/coverage-7.6.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3ea8bb1ab9558374c0ab591783808511d135a833c3ca64a18ec927f20c4030f0", size = 237084 }, + { url = "https://files.pythonhosted.org/packages/76/ce/3edf581c8fe429ed8ced6e6d9ac693c25975ef9093413276dab6ed68a80a/coverage-7.6.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e683e6ecc587643f8cde8f5da6768e9d165cd31edf39ee90ed7034f9ca0eefee", size = 207285 }, + { url = "https://files.pythonhosted.org/packages/09/9c/cf102ab046c9cf8895c3f7aadcde6f489a4b2ec326757e8c6e6581829b5e/coverage-7.6.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1defe91d41ce1bd44b40fabf071e6a01a5aa14de4a31b986aa9dfd1b3e3e414a", size = 207522 }, + { url = "https://files.pythonhosted.org/packages/39/06/42aa6dd13dbfca72e1fd8ffccadbc921b6e75db34545ebab4d955d1e7ad3/coverage-7.6.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7ad66e8e50225ebf4236368cc43c37f59d5e6728f15f6e258c8639fa0dd8e6d", size = 240543 }, + { url = "https://files.pythonhosted.org/packages/a0/20/2932971dc215adeca8eeff446266a7fef17a0c238e881ffedebe7bfa0669/coverage-7.6.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fe47da3e4fda5f1abb5709c156eca207eacf8007304ce3019eb001e7a7204cb", size = 237577 }, + { url = "https://files.pythonhosted.org/packages/ac/85/4323ece0cd5452c9522f4b6e5cc461e6c7149a4b1887c9e7a8b1f4e51146/coverage-7.6.8-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:202a2d645c5a46b84992f55b0a3affe4f0ba6b4c611abec32ee88358db4bb649", size = 239646 }, + { url = "https://files.pythonhosted.org/packages/77/52/b2537487d8f36241e518e84db6f79e26bc3343b14844366e35b090fae0d4/coverage-7.6.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4674f0daa1823c295845b6a740d98a840d7a1c11df00d1fd62614545c1583787", size = 239128 }, + { url = "https://files.pythonhosted.org/packages/7c/99/7f007762012186547d0ecc3d328da6b6f31a8c99f05dc1e13dcd929918cd/coverage-7.6.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:74610105ebd6f33d7c10f8907afed696e79c59e3043c5f20eaa3a46fddf33b4c", size = 237434 }, + { url = "https://files.pythonhosted.org/packages/97/53/e9b5cf0682a1cab9352adfac73caae0d77ae1d65abc88975d510f7816389/coverage-7.6.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37cda8712145917105e07aab96388ae76e787270ec04bcb9d5cc786d7cbb8443", size = 239095 }, + { url = "https://files.pythonhosted.org/packages/9a/84/6f0ccf94a098ac3d6d6f236bd3905eeac049a9e0efcd9a63d4feca37ac4b/coverage-7.6.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0b0c69f4f724c64dfbfe79f5dfb503b42fe6127b8d479b2677f2b227478db2eb", size = 207313 }, + { url = "https://files.pythonhosted.org/packages/db/2b/e3b3a3a12ebec738c545897ac9f314620470fcbc368cdac88cf14974ba20/coverage-7.6.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c15b32a7aca8038ed7644f854bf17b663bc38e1671b5d6f43f9a2b2bd0c46f63", size = 207574 }, + { url = "https://files.pythonhosted.org/packages/db/c0/5bf95d42b6a8d21dfce5025ce187f15db57d6460a59b67a95fe8728162f1/coverage-7.6.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63068a11171e4276f6ece913bde059e77c713b48c3a848814a6537f35afb8365", size = 240090 }, + { url = "https://files.pythonhosted.org/packages/57/b8/d6fd17d1a8e2b0e1a4e8b9cb1f0f261afd422570735899759c0584236916/coverage-7.6.8-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f4548c5ead23ad13fb7a2c8ea541357474ec13c2b736feb02e19a3085fac002", size = 237237 }, + { url = "https://files.pythonhosted.org/packages/d4/e4/a91e9bb46809c8b63e68fc5db5c4d567d3423b6691d049a4f950e38fbe9d/coverage-7.6.8-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b4b4299dd0d2c67caaaf286d58aef5e75b125b95615dda4542561a5a566a1e3", size = 239225 }, + { url = "https://files.pythonhosted.org/packages/31/9c/9b99b0591ec4555b7292d271e005f27b465388ce166056c435b288db6a69/coverage-7.6.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c9ebfb2507751f7196995142f057d1324afdab56db1d9743aab7f50289abd022", size = 238888 }, + { url = "https://files.pythonhosted.org/packages/a6/85/285c2df9a04bc7c31f21fd9d4a24d19e040ec5e2ff06e572af1f6514c9e7/coverage-7.6.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c1b4474beee02ede1eef86c25ad4600a424fe36cff01a6103cb4533c6bf0169e", size = 236974 }, + { url = "https://files.pythonhosted.org/packages/cb/a1/95ec8522206f76cdca033bf8bb61fff56429fb414835fc4d34651dfd29fc/coverage-7.6.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d9fd2547e6decdbf985d579cf3fc78e4c1d662b9b0ff7cc7862baaab71c9cc5b", size = 238815 }, + { url = "https://files.pythonhosted.org/packages/ee/4b/891c8b9acf1b62c85e4a71dac142ab9284e8347409b7355de02e3f38306f/coverage-7.6.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:de38add67a0af869b0d79c525d3e4588ac1ffa92f39116dbe0ed9753f26eba7d", size = 208053 }, + { url = "https://files.pythonhosted.org/packages/18/a9/9e330409b291cc002723d339346452800e78df1ce50774ca439ade1d374f/coverage-7.6.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b07c25d52b1c16ce5de088046cd2432b30f9ad5e224ff17c8f496d9cb7d1d451", size = 208329 }, + { url = "https://files.pythonhosted.org/packages/9c/0d/33635fd429f6589c6e1cdfc7bf581aefe4c1792fbff06383f9d37f59db60/coverage-7.6.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62a66ff235e4c2e37ed3b6104d8b478d767ff73838d1222132a7a026aa548764", size = 251052 }, + { url = "https://files.pythonhosted.org/packages/23/32/8a08da0e46f3830bbb9a5b40614241b2e700f27a9c2889f53122486443ed/coverage-7.6.8-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09b9f848b28081e7b975a3626e9081574a7b9196cde26604540582da60235fdf", size = 246765 }, + { url = "https://files.pythonhosted.org/packages/56/3f/3b86303d2c14350fdb1c6c4dbf9bc76000af2382f42ca1d4d99c6317666e/coverage-7.6.8-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:093896e530c38c8e9c996901858ac63f3d4171268db2c9c8b373a228f459bbc5", size = 249125 }, + { url = "https://files.pythonhosted.org/packages/36/cb/c4f081b9023f9fd8646dbc4ef77be0df090263e8f66f4ea47681e0dc2cff/coverage-7.6.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9a7b8ac36fd688c8361cbc7bf1cb5866977ece6e0b17c34aa0df58bda4fa18a4", size = 248615 }, + { url = "https://files.pythonhosted.org/packages/32/ee/53bdbf67760928c44b57b2c28a8c0a4bf544f85a9ee129a63ba5c78fdee4/coverage-7.6.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:38c51297b35b3ed91670e1e4efb702b790002e3245a28c76e627478aa3c10d83", size = 246507 }, + { url = "https://files.pythonhosted.org/packages/57/49/5a57910bd0af6d8e802b4ca65292576d19b54b49f81577fd898505dee075/coverage-7.6.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2e4e0f60cb4bd7396108823548e82fdab72d4d8a65e58e2c19bbbc2f1e2bfa4b", size = 247785 }, + { url = "https://files.pythonhosted.org/packages/32/df/0d2476121cd0bfb9ca2413efe02289c474b82c4b134863bef4b89ec7bcfa/coverage-7.6.8-pp39.pp310-none-any.whl", hash = "sha256:5c52a036535d12590c32c49209e79cabaad9f9ad8aa4cbd875b68c4d67a9cbce", size = 199230 }, +] + +[package.optional-dependencies] +toml = [ + { name = "tomli", marker = "(python_full_version <= '3.11' and sys_platform == 'darwin') or (python_full_version <= '3.11' and sys_platform == 'linux')" }, +] + +[[package]] +name = "cssutils" +version = "2.11.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/33/9f/329d26121fe165be44b1dfff21aa0dc348f04633931f1d20ed6cf448a236/cssutils-2.11.1.tar.gz", hash = "sha256:0563a76513b6af6eebbe788c3bf3d01c920e46b3f90c8416738c5cfc773ff8e2", size = 711657 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/ec/bb273b7208c606890dc36540fe667d06ce840a6f62f9fae7e658fcdc90fb/cssutils-2.11.1-py3-none-any.whl", hash = "sha256:a67bfdfdff4f3867fab43698ec4897c1a828eca5973f4073321b3bccaf1199b1", size = 385747 }, +] + +[[package]] +name = "cupy-cuda11x" +version = "13.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastrlock", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/1b/3afbaea2b78114c82b33ecc9affc79b7d9f4899945940b9b50790c93fd33/cupy_cuda11x-13.3.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:ef854f0c63525d8163ab7af19f503d964de9dde0dd1cf9ea806a6ecb302cdce3", size = 109578634 }, + { url = "https://files.pythonhosted.org/packages/82/94/1da4205249baa861ac848dcbc36208a0b08f2ba2c414634525e53dabf818/cupy_cuda11x-13.3.0-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:54bf12a6663d0471e3e37e62972add348c5263ce803688f48bbfab1b20ebdb02", size = 96619611 }, + { url = "https://files.pythonhosted.org/packages/4d/2d/9f01f25a81535572050f77ca618a54d8ad08afc13963c9fc57c162931e42/cupy_cuda11x-13.3.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:766ef1558a3ed967d5f092829bfb99edbcfaf75224925e1fb1a9f531e1e79f36", size = 110899612 }, + { url = "https://files.pythonhosted.org/packages/96/8f/b92bbf066ed86ec9dbeb969a5d6e6b6597bf0bab730f9e8b4c589f7cf198/cupy_cuda11x-13.3.0-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:77a81fa48d1a392b731885555a53cf2febde39cc33db55f2d78ba64b5ef4689b", size = 97172154 }, + { url = "https://files.pythonhosted.org/packages/06/45/a7423cbd38c6f2f6a62498cbc26cfb46a772fc1757db3ccf649df193d4c8/cupy_cuda11x-13.3.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:199f1b24bcd568b41705cb46870ee7086088932c78d46037fdf05d195636ab70", size = 109872563 }, + { url = "https://files.pythonhosted.org/packages/63/dc/9e3b6854b97b91188f63331dc8b3fef7564c2ba414fe42339df88f23f551/cupy_cuda11x-13.3.0-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:ffe153d5c32bc033c1cd94460c04d90219367d7283fcaefa9f1cf7b461fbdd7d", size = 96988596 }, +] + +[[package]] +name = "cupy-cuda12x" +version = "13.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastrlock", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/60/dc268d1d9c5fdde4673a463feff5e9c70c59f477e647b54b501f65deef60/cupy_cuda12x-13.3.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:674488e990998042cc54d2486d3c37cae80a12ba3787636be5a10b9446dd6914", size = 103601326 }, + { url = "https://files.pythonhosted.org/packages/7a/a9/1e19ecf008011df2935d038f26f721f22f2804c00077fc024f088e0996e6/cupy_cuda12x-13.3.0-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:cf4a2a0864364715881b50012927e88bd7ec1e6f1de3987970870861ae5ed25e", size = 90619949 }, + { url = "https://files.pythonhosted.org/packages/95/c9/0b88c015e98aad808c18f938267585d79e6211fe08650e0de7132e235e40/cupy_cuda12x-13.3.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:c0cc095b9a3835fd5db66c45ed3c58ecdc5a3bb14e53e1defbfd4a0ce5c8ecdb", size = 104925909 }, + { url = "https://files.pythonhosted.org/packages/8c/1f/596803c35833c01a41da21c6a7bb552f1ed56d807090ddc6727c8f396d7d/cupy_cuda12x-13.3.0-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:a0e3bead04e502ebde515f0343444ca3f4f7aed09cbc3a316a946cba97f2ea66", size = 91172049 }, + { url = "https://files.pythonhosted.org/packages/0d/02/e94f7c26a5f446888d8753d4b6642e5107f9fde166d1ac23b7de95ccea7b/cupy_cuda12x-13.3.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:bbd0d916310391faf0d7dc9c58fff7a6dc996b67e5768199160bbceb5ebdda8c", size = 103894953 }, + { url = "https://files.pythonhosted.org/packages/90/dc/da09e5184d94146b8cbf240c2bef1c4851cbafd7e2d60cc71b1530c766ec/cupy_cuda12x-13.3.0-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:e206bd8664f0763732b6012431f484ee535bffd77a5ae95e9bfe1c7c72396625", size = 90980377 }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321 }, +] + +[[package]] +name = "cytoolz" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "toolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e2/4c/ca9b05bdfa28ddbb4a5365c27021a1d4be61db7d8f6b4e5d4e76aa4ba3b7/cytoolz-1.0.0.tar.gz", hash = "sha256:eb453b30182152f9917a5189b7d99046b6ce90cdf8aeb0feff4b2683e600defd", size = 626708 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/77/2afed35b93fdc38c4565ae79aca6b6149d0ea2fc4eeeca9b0adf9da04b9e/cytoolz-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ecf5a887acb8f079ab1b81612b1c889bcbe6611aa7804fd2df46ed310aa5a345", size = 403505 }, + { url = "https://files.pythonhosted.org/packages/a8/dc/6b5af6932b656213883557dcc6b1f843ec302dc02fec4b75bf1356b938f9/cytoolz-1.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ef0ef30c1e091d4d59d14d8108a16d50bd227be5d52a47da891da5019ac2f8e4", size = 383918 }, + { url = "https://files.pythonhosted.org/packages/2e/8c/d42dc240cda418b8241541c240c4696cf99475141c4d58fbe89b8c39bac1/cytoolz-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7df2dfd679f0517a96ced1cdd22f5c6c6aeeed28d928a82a02bf4c3fd6fd7ac4", size = 1934558 }, + { url = "https://files.pythonhosted.org/packages/ff/74/af7863cc407ebf535aec9adf0cb72bbac2f036ec2550726d4d8ab00eb41c/cytoolz-1.0.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c51452c938e610f57551aa96e34924169c9100c0448bac88c2fb395cbd3538c", size = 2015123 }, + { url = "https://files.pythonhosted.org/packages/01/98/83a0d9051e56e0b26a290439bd15b696c431c91d1dca384370cf9b23f04a/cytoolz-1.0.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6433f03910c5e5345d82d6299457c26bf33821224ebb837c6b09d9cdbc414a6c", size = 2000496 }, + { url = "https://files.pythonhosted.org/packages/d1/2d/ea68ba5d9c07f5d6cdb8ef85ec92f1a573deaad998807d035d2ef71aeb00/cytoolz-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:389ec328bb535f09e71dfe658bf0041f17194ca4cedaacd39bafe7893497a819", size = 1957529 }, + { url = "https://files.pythonhosted.org/packages/7d/f3/e5b6b7128412bcb8d58c5cbd5a785befdc2c633502653937be41a54b2037/cytoolz-1.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c64658e1209517ce4b54c1c9269a508b289d8d55fc742760e4b8579eacf09a33", size = 1863322 }, + { url = "https://files.pythonhosted.org/packages/ee/ff/534c227de78e9c45c6e764b46830640f73390b7fe5dd39556cd4de4fd3b8/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f6039a9bd5bb988762458b9ca82b39e60ca5e5baae2ba93913990dcc5d19fa88", size = 1849933 }, + { url = "https://files.pythonhosted.org/packages/ef/a9/7a51c084ceba8809f18aacb0bae86caf02aa5d5ebe5d5465819228a690d0/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85c9c8c4465ed1b2c8d67003809aec9627b129cb531d2f6cf0bbfe39952e7e4d", size = 1852341 }, + { url = "https://files.pythonhosted.org/packages/ae/01/9b00fa8956c6b76ffd72fc896b2ba4e06165d7f90e03cf4ff253a4282d01/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:49375aad431d76650f94877afb92f09f58b6ff9055079ef4f2cd55313f5a1b39", size = 1989871 }, + { url = "https://files.pythonhosted.org/packages/30/5a/3857a60ce3083d083fffcac13938ae045d22ee0a55f88b83a22443132e5d/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:4c45106171c824a61e755355520b646cb35a1987b34bbf5789443823ee137f63", size = 1994484 }, + { url = "https://files.pythonhosted.org/packages/6c/3d/8585a635ebeba67f234f7779926519fda732399dd875b7cdff2cb2a3bff7/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3b319a7f0fed5db07d189db4046162ebc183c108df3562a65ba6ebe862d1f634", size = 1896072 }, + { url = "https://files.pythonhosted.org/packages/bc/99/b489081777ad02c9bba294c757583416d0bdbd9403017145aba68145c16f/cytoolz-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dffc22fd2c91be64dbdbc462d0786f8e8ac9a275cfa1869a1084d1867d4f67e0", size = 406148 }, + { url = "https://files.pythonhosted.org/packages/b2/d3/a4d58bf89924dbca34e8dbb643b26935e08c16b4a2ee255d43a8b7489939/cytoolz-1.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a99e7e29274e293f4ffe20e07f76c2ac753a78f1b40c1828dfc54b2981b2f6c4", size = 384956 }, + { url = "https://files.pythonhosted.org/packages/81/d4/4d09e6571ef3b143f668c590a7a00c97ff24e6df6901f457ea7c782cd2ba/cytoolz-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c507a3e0a45c41d66b43f96797290d75d1e7a8549aa03a4a6b8854fdf3f7b8d8", size = 2091688 }, + { url = "https://files.pythonhosted.org/packages/8d/7b/68c89bed2e0490e9b946574c3bc79711179f35b1dc5eb31046c535f1bed2/cytoolz-1.0.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:643a593ec272ef7429099e1182a22f64ec2696c00d295d2a5be390db1b7ff176", size = 2188448 }, + { url = "https://files.pythonhosted.org/packages/56/a3/4e536fc7b72fd7495e19180463e8160a4fe1d50ab59a5854fc596621d5c3/cytoolz-1.0.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6ce38e2e42cbae30446190c59b92a8a9029e1806fd79eaf88f48b0fe33003893", size = 2174196 }, + { url = "https://files.pythonhosted.org/packages/5a/7f/0451778af9e22755a95ef4400ee7fc6e41387521ab0f17699593cb07169a/cytoolz-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810a6a168b8c5ecb412fbae3dd6f7ed6c6253a63caf4174ee9794ebd29b2224f", size = 2099823 }, + { url = "https://files.pythonhosted.org/packages/58/b7/8ffdef1ac8f74b0cc650b9d4a74d93d911a7e20fcf7cc0abac0f4bce225f/cytoolz-1.0.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ce8a2a85c0741c1b19b16e6782c4a5abc54c3caecda66793447112ab2fa9884", size = 1996733 }, + { url = "https://files.pythonhosted.org/packages/1c/ab/9c694c883f3038d167b797cc55c64c2bdb64146428000cea15f235f30a0f/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ea4ac72e6b830861035c4c7999af8e55813f57c6d1913a3d93cc4a6babc27bf7", size = 2013725 }, + { url = "https://files.pythonhosted.org/packages/6c/df/859faaee91c795dc969c79cd38159031f373828d44b0b18999feb7d9a44d/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a09cdfb21dfb38aa04df43e7546a41f673377eb5485da88ceb784e327ec7603b", size = 1994851 }, + { url = "https://files.pythonhosted.org/packages/34/2a/26ac5a34e859c5ba32351f5a74492f4ed12e7a7e75b6afccf11c4100aa70/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:658dd85deb375ff7af990a674e5c9058cef1c9d1f5dc89bc87b77be499348144", size = 2155343 }, + { url = "https://files.pythonhosted.org/packages/3d/41/f687d2e40407b29bfcce36a7d456dad368283ea543aa39da53bcc119974e/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9715d1ff5576919d10b68f17241375f6a1eec8961c25b78a83e6ef1487053f39", size = 2163507 }, + { url = "https://files.pythonhosted.org/packages/39/7c/70d529f909d97ea214d59923c19e3d05a3768fe8e2066542b72550a31ca4/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f370a1f1f1afc5c1c8cc5edc1cfe0ba444263a0772af7ce094be8e734f41769d", size = 2054428 }, + { url = "https://files.pythonhosted.org/packages/28/2e/a8b71f74ee75f33164bfbc6324ddd1e8d0f425255b1c930141516f51d539/cytoolz-1.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:10e3986066dc379e30e225b230754d9f5996aa8d84c2accc69c473c21d261e46", size = 414110 }, + { url = "https://files.pythonhosted.org/packages/c6/0a/999af6bb896375b0c687e292a3dcd4edb338a2764bbac40c0ce11eb21c64/cytoolz-1.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:16576f1bb143ee2cb9f719fcc4b845879fb121f9075c7c5e8a5ff4854bd02fc6", size = 390900 }, + { url = "https://files.pythonhosted.org/packages/30/04/02f0ee5339f8c6ef785f06caee85e17e8e0b406e7e553c8fd99a55ff8390/cytoolz-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3faa25a1840b984315e8b3ae517312375f4273ffc9a2f035f548b7f916884f37", size = 2090729 }, + { url = "https://files.pythonhosted.org/packages/04/de/296ded5f81ada90ae4db8c06cc34b142cf6c51fabb4c3c78583abba91c36/cytoolz-1.0.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:781fce70a277b20fd95dc66811d1a97bb07b611ceea9bda8b7dd3c6a4b05d59a", size = 2155926 }, + { url = "https://files.pythonhosted.org/packages/cc/ce/d5782bdd3d2fd16d87e83e70e14fcfa65ba67ba21cf7e1007505baef7d79/cytoolz-1.0.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7a562c25338eb24d419d1e80a7ae12133844ce6fdeb4ab54459daf250088a1b2", size = 2171893 }, + { url = "https://files.pythonhosted.org/packages/d0/02/22a8c74ff13f8a08e8cacd0a0aa34da3a6e3637cf477e376efc61f7567e5/cytoolz-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f29d8330aaf070304f7cd5cb7e73e198753624eb0aec278557cccd460c699b5b", size = 2125265 }, + { url = "https://files.pythonhosted.org/packages/50/d1/a3f2e2ced1fa7e2b5607d05ed4de9951491004a4804e96f78778d11bebd4/cytoolz-1.0.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:98a96c54aa55ed9c7cdb23c2f0df39a7b4ee518ac54888480b5bdb5ef69c7ef0", size = 1973962 }, + { url = "https://files.pythonhosted.org/packages/3e/10/174d9585e1011824e2e6e79380f8b1c6e49070c35a278d823d996d1c11e6/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:287d6d7f475882c2ddcbedf8da9a9b37d85b77690779a2d1cdceb5ae3998d52e", size = 2021691 }, + { url = "https://files.pythonhosted.org/packages/84/aa/bebdca3ae140698d3d4fe75ffd4c87a15ee999cee6b994e0831e5a24cdd7/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:05a871688df749b982839239fcd3f8ec3b3b4853775d575ff9cd335fa7c75035", size = 2010169 }, + { url = "https://files.pythonhosted.org/packages/2e/9f/8d5940c953534a4d2ae4419bb4fdc1eb5559345fed1f4838708073d7e6b4/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:28bb88e1e2f7d6d4b8e0890b06d292c568984d717de3e8381f2ca1dd12af6470", size = 2154314 }, + { url = "https://files.pythonhosted.org/packages/84/bf/a5414601c95afde30a0c038c5d6273c188f1da8ff25a057bd0c683679e5c/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:576a4f1fc73d8836b10458b583f915849da6e4f7914f4ecb623ad95c2508cad5", size = 2188368 }, + { url = "https://files.pythonhosted.org/packages/67/fe/990ea30d56b9b6602f3bf4af77a1bfd9233e6ffb761b11b8864619fed508/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:509ed3799c47e4ada14f63e41e8f540ac6e2dab97d5d7298934e6abb9d3830ec", size = 2077906 }, + { url = "https://files.pythonhosted.org/packages/16/7c/8b9fc006925b08579ae35293ad7d14fea4ee94edf1efaaa17e1bdde85b9a/cytoolz-1.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e672712d5dc3094afc6fb346dd4e9c18c1f3c69608ddb8cf3b9f8428f9c26a5c", size = 345694 }, + { url = "https://files.pythonhosted.org/packages/76/d1/159cc7c0c86d6fb8177be437dd6112d90c7f40ef0ceda2102472242b0ccf/cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86fb208bfb7420e1d0d20065d661310e4a8a6884851d4044f47d37ed4cd7410e", size = 385691 }, + { url = "https://files.pythonhosted.org/packages/43/99/21361970f2d7cce241f116d84e8f5c21f1440414be96d0c8cad7832d35cb/cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6dbe5fe3b835859fc559eb59bf2775b5a108f7f2cfab0966f3202859d787d8fd", size = 406251 }, + { url = "https://files.pythonhosted.org/packages/d8/98/bc3d6eadb495de0d48c4d738e5ee6f011d8adbf6a3fcc1f7c17d05bc49d3/cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cace092dfda174eed09ed871793beb5b65633963bcda5b1632c73a5aceea1ce", size = 397203 }, +] + +[[package]] +name = "dace" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aenum", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "astunparse", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "dill", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "fparser", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "networkx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "ply", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyreadline", marker = "(platform_system == 'Windows' and sys_platform == 'darwin') or (platform_system == 'Windows' and sys_platform == 'linux')" }, + { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sympy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/50/ded7cbbe9eccba2b5a27444bf8951117c80d803c4741def6380fb6f063a1/dace-1.0.0.tar.gz", hash = "sha256:7accc68139898ab788d8126c2051ef1559ab56aa4d19439b89632d843cbe2ed7", size = 5801178 } + +[[package]] +name = "dask" +version = "2024.11.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cloudpickle", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "fsspec", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "importlib-metadata", marker = "(python_full_version < '3.12' and sys_platform == 'darwin') or (python_full_version < '3.12' and sys_platform == 'linux')" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "partd", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "toolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/a1/6d06c4cc93349377a9f318f2ebff5b637e6ffee373e38f363123b4b1afa7/dask-2024.11.2.tar.gz", hash = "sha256:9a72bee3f149ff89bc492340d4bcba33d5dd3e3a9d471d2b4b3872f2d71ddaae", size = 10688567 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/72/33ff765a07913cb5061baa94718f3a17003aa29adc89642a68c295d47582/dask-2024.11.2-py3-none-any.whl", hash = "sha256:6115c4b76015e8d9d9c2922b6a0a1c850e283fb7fee74eebbd2e28e9c117c30d", size = 1265299 }, +] + +[package.optional-dependencies] +complete = [ + { name = "bokeh", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "dask-expr", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "distributed", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "lz4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyarrow", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[[package]] +name = "dask-expr" +version = "1.1.19" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dask", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyarrow", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/b0/a0c1050ee70be7a0274529b15edacea769c395b392edb1925118937fdb7c/dask_expr-1.1.19.tar.gz", hash = "sha256:5c8a50924bf6718bb630d58f11311e3d928c7037af913e096fa0eb3f0a493b9f", size = 223876 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/57/e7996529256b13009fa8f4c34d1d7229755cc7d2b054aa43edb6ca655578/dask_expr-1.1.19-py3-none-any.whl", hash = "sha256:b2931c20241a3bc1978ccccc4b8a2f7b27b15bb85ce89fec04595bc5bcf20cf5", size = 244456 }, +] + +[[package]] +name = "datashader" +version = "0.16.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorcet", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "dask", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "multipledispatch", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numba", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "param", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pillow", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyct", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "requests", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "scipy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "toolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "xarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a0/15/3e28732b7ea0985929dd31612c073d5e49b99d67f6974de334ff81f22fb1/datashader-0.16.3.tar.gz", hash = "sha256:9d0040c7887f7a5a5edd374c297402fd208a62bf6845e87631b54f03b9ae479d", size = 35716446 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/09/949d6096c7fd3f2014082d6174c864114148c70973c3dd208fe05b0e7610/datashader-0.16.3-py2.py3-none-any.whl", hash = "sha256:90e7425f17b5dc597ab50facca1d16df53c4893708500ad89d4e64b6eb7238aa", size = 18332952 }, +] + +[[package]] +name = "deepdiff" +version = "8.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "orderly-set", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/62/ba/aced1d6a7d988ca1b6f9b274faed7dafc7356a733e45a457819bddcf2dbc/deepdiff-8.0.1.tar.gz", hash = "sha256:245599a4586ab59bb599ca3517a9c42f3318ff600ded5e80a3432693c8ec3c4b", size = 427721 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/46/01673060e83277a863baf0909b387cd809865cba2d5e7213db76516bedd9/deepdiff-8.0.1-py3-none-any.whl", hash = "sha256:42e99004ce603f9a53934c634a57b04ad5900e0d8ed0abb15e635767489cbc05", size = 82741 }, +] + +[[package]] +name = "devtools" +version = "0.12.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "executing", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pygments", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/84/75/b78198620640d394bc435c17bb49db18419afdd6cfa3ed8bcfe14034ec80/devtools-0.12.2.tar.gz", hash = "sha256:efceab184cb35e3a11fa8e602cc4fadacaa2e859e920fc6f87bf130b69885507", size = 75005 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/ae/afb1487556e2dc827a17097aac8158a25b433a345386f0e249f6d2694ccb/devtools-0.12.2-py3-none-any.whl", hash = "sha256:c366e3de1df4cdd635f1ad8cbcd3af01a384d7abda71900e68d43b04eb6aaca7", size = 19411 }, +] + +[[package]] +name = "dict2css" +version = "0.3.0.post1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cssutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "domdf-python-tools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/24/eb/776eef1f1aa0188c0fc165c3a60b71027539f71f2eedc43ad21b060e9c39/dict2css-0.3.0.post1.tar.gz", hash = "sha256:89c544c21c4ca7472c3fffb9d37d3d926f606329afdb751dc1de67a411b70719", size = 7845 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/47/290daabcf91628f4fc0e17c75a1690b354ba067066cd14407712600e609f/dict2css-0.3.0.post1-py3-none-any.whl", hash = "sha256:f006a6b774c3e31869015122ae82c491fd25e7de4a75607a62aa3e798f837e0d", size = 25647 }, +] + +[[package]] +name = "dill" +version = "0.3.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/70/43/86fe3f9e130c4137b0f1b50784dd70a5087b911fe07fa81e53e0c4c47fea/dill-0.3.9.tar.gz", hash = "sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c", size = 187000 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl", hash = "sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a", size = 119418 }, +] + +[[package]] +name = "diskcache" +version = "5.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3f/21/1c1ffc1a039ddcc459db43cc108658f32c57d271d7289a2794e401d0fdb6/diskcache-5.6.3.tar.gz", hash = "sha256:2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc", size = 67916 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/27/4570e78fc0bf5ea0ca45eb1de3818a23787af9b390c0b0a0033a1b8236f9/diskcache-5.6.3-py3-none-any.whl", hash = "sha256:5e31b2d5fbad117cc363ebaf6b689474db18a1f6438bc82358b024abd4c2ca19", size = 45550 }, +] + +[[package]] +name = "distlib" +version = "0.3.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0d/dd/1bec4c5ddb504ca60fc29472f3d27e8d4da1257a854e1d96742f15c1d02d/distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403", size = 613923 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/a1/cf2472db20f7ce4a6be1253a81cfdf85ad9c7885ffbed7047fb72c24cf87/distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87", size = 468973 }, +] + +[[package]] +name = "distributed" +version = "2024.11.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cloudpickle", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "dask", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "locket", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "msgpack", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "psutil", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sortedcontainers", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tblib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "toolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tornado", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "urllib3", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "zict", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ea/b5/f8b27f48694c11721e2bbed4eadfcc5fe399a083ee449113b2a2fcd962b6/distributed-2024.11.2.tar.gz", hash = "sha256:60e430ab9d438102535f342521bc2673db08fcd373a4474b042caf9fe9fcf990", size = 1113817 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f0/24/312287ead487290c13e62f6d987e59eb0e22b8088b3539dfe6f4062a8370/distributed-2024.11.2-py3-none-any.whl", hash = "sha256:a455ae031689aee151172b3492de5dd637b67531720619c171df988974985cdf", size = 1022680 }, +] + +[[package]] +name = "docutils" +version = "0.21.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", size = 2204444 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", size = 587408 }, +] + +[[package]] +name = "domdf-python-tools" +version = "3.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "natsort", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6b/78/974e10c583ba9d2302e748c9585313a7f2c7ba00e4f600324f432e38fe68/domdf_python_tools-3.9.0.tar.gz", hash = "sha256:1f8a96971178333a55e083e35610d7688cd7620ad2b99790164e1fc1a3614c18", size = 103792 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/e9/7447a88b217650a74927d3444a89507986479a69b83741900eddd34167fe/domdf_python_tools-3.9.0-py3-none-any.whl", hash = "sha256:4e1ef365cbc24627d6d1e90cf7d46d8ab8df967e1237f4a26885f6986c78872e", size = 127106 }, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/09/35/2495c4ac46b980e4ca1f6ad6db102322ef3ad2410b79fdde159a4b0f3b92/exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc", size = 28883 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/cc/b7e31358aac6ed1ef2bb790a9746ac2c69bcb3c8588b41616914eb106eaf/exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b", size = 16453 }, +] + +[[package]] +name = "execnet" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/ff/b4c0dc78fbe20c3e59c0c7334de0c27eb4001a2b2017999af398bf730817/execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3", size = 166524 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/09/2aea36ff60d16dd8879bdb2f5b3ee0ba8d08cbbdcdfe870e695ce3784385/execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc", size = 40612 }, +] + +[[package]] +name = "executing" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/e3/7d45f492c2c4a0e8e0fad57d081a7c8a0286cdd86372b070cca1ec0caa1e/executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab", size = 977485 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/fd/afcd0496feca3276f509df3dbd5dae726fcc756f1a08d9e25abe1733f962/executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf", size = 25805 }, +] + +[[package]] +name = "factory-boy" +version = "3.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "faker", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/3d/8070dde623341401b1c80156583d4c793058fe250450178218bb6e45526c/factory_boy-3.3.1.tar.gz", hash = "sha256:8317aa5289cdfc45f9cae570feb07a6177316c82e34d14df3c2e1f22f26abef0", size = 163924 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/cf/44ec67152f3129d0114c1499dd34f0a0a0faf43d9c2af05bc535746ca482/factory_boy-3.3.1-py2.py3-none-any.whl", hash = "sha256:7b1113c49736e1e9995bc2a18f4dbf2c52cf0f841103517010b1d825712ce3ca", size = 36878 }, +] + +[[package]] +name = "faker" +version = "33.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/c7/0782eb872b96ee571701237be0dd85aef3713a15045ba42752a8aac7c8ce/faker-33.0.0.tar.gz", hash = "sha256:9b01019c1ddaf2253ca2308c0472116e993f4ad8fc9905f82fa965e0c6f932e9", size = 1850076 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/c3/0451555e7a9a233bc17f128cff7654ec60036d4ccbb8397dd949f28df176/Faker-33.0.0-py3-none-any.whl", hash = "sha256:68e5580cb6b4226710886e595eabc13127149d6e71e9d1db65506a7fbe2c7fce", size = 1889118 }, +] + +[[package]] +name = "fasteners" +version = "0.19" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/d4/e834d929be54bfadb1f3e3b931c38e956aaa3b235a46a3c764c26c774902/fasteners-0.19.tar.gz", hash = "sha256:b4f37c3ac52d8a445af3a66bce57b33b5e90b97c696b7b984f530cf8f0ded09c", size = 24832 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/bf/fd60001b3abc5222d8eaa4a204cd8c0ae78e75adc688f33ce4bf25b7fafa/fasteners-0.19-py3-none-any.whl", hash = "sha256:758819cb5d94cdedf4e836988b74de396ceacb8e2794d21f82d131fd9ee77237", size = 18679 }, +] + +[[package]] +name = "fastrlock" +version = "0.8.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/89/4b/26357c444b48f3f4e3c17b999274e6c60f2367f7e9d454ca2280d8b463e1/fastrlock-0.8.2.tar.gz", hash = "sha256:644ec9215cf9c4df8028d8511379a15d9c1af3e16d80e47f1b6fdc6ba118356a", size = 79508 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/d7/05d9a697abf348bf73b5260fb1b89f539376b2bdec97d423fd20bf1e783a/fastrlock-0.8.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:e9904b5b37c3e5bb4a245c56bc4b7e497da57ffb8528f4fc39af9dcb168ee2e1", size = 30532 }, + { url = "https://files.pythonhosted.org/packages/2b/7a/519dda6365ceb81f35be4e3b26187ebc8aa8865679675b92a1547f3ca9f2/fastrlock-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:43a241655e83e4603a152192cf022d5ca348c2f4e56dfb02e5c9c4c1a32f9cdb", size = 47364 }, + { url = "https://files.pythonhosted.org/packages/12/92/ced328dd5ee079823c95d199c311eaa3b9eb44807832d8e5370ae9224894/fastrlock-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9121a894d74e65557e47e777060a495ab85f4b903e80dd73a3c940ba042920d7", size = 50200 }, + { url = "https://files.pythonhosted.org/packages/39/c1/29cbea3399fe108007df72198e9e0cba8f081eefdba10edbd5bc208fe5ac/fastrlock-0.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl", hash = "sha256:11bbbbc526363955aeddb9eec4cee2a0012322b7b2f15b54f44454fcf4fd398a", size = 48580 }, + { url = "https://files.pythonhosted.org/packages/52/66/15aa713925023b3eb8970f46acd3b2f02ec0b5137a418cad5250cbe8cfdc/fastrlock-0.8.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:27786c62a400e282756ae1b090bcd7cfa35f28270cff65a9e7b27a5327a32561", size = 48494 }, + { url = "https://files.pythonhosted.org/packages/bc/5d/d1f89b59f5b4b4710fd126e0df31ca4c58f46fc0a831058fc49010972d3d/fastrlock-0.8.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:08315bde19d0c2e6b06593d5a418be3dc8f9b1ee721afa96867b9853fceb45cf", size = 51280 }, + { url = "https://files.pythonhosted.org/packages/d7/2d/99707885ce625d2a5deb0fcba3eaee86462914d05009ce04cf1cfa5bacd3/fastrlock-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e8b49b5743ede51e0bcf6805741f39f5e0e0fd6a172ba460cb39e3097ba803bb", size = 51646 }, + { url = "https://files.pythonhosted.org/packages/3d/a3/cc2412acb468e0c59f966de22ea90e8b51f6e6e305251a2d94432a437575/fastrlock-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b443e73a4dfc7b6e0800ea4c13567b9694358e86f53bb2612a51c9e727cac67b", size = 51105 }, + { url = "https://files.pythonhosted.org/packages/1c/0e/2324d71832db47e2949f846e80f79a1391a5cb79661cb1111eb23c27c8d4/fastrlock-0.8.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:790fc19bccbd39426060047e53629f171a44745613bf360a045e9f9c8c4a2cea", size = 54924 }, + { url = "https://files.pythonhosted.org/packages/92/d3/3fce38d4ed16db0936cc39fc7ea06ea0c2398d7033a37e49880edd0a8ca6/fastrlock-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:dbdce852e6bb66e1b8c36679d482971d69d93acf1785657522e51b7de30c3356", size = 48232 }, + { url = "https://files.pythonhosted.org/packages/ba/51/d66763b993d4f2bbd816fc37f42b78e9b45e98fc0c141bc8605ce0a21c9d/fastrlock-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d47713ffe6d4a627fbf078be9836a95ac106b4a0543e3841572c91e292a5d885", size = 51531 }, + { url = "https://files.pythonhosted.org/packages/58/ff/653b5b507aa75a962b2fc93bf055d45aa1015b1581b52883052e19abf31b/fastrlock-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl", hash = "sha256:ea96503b918fceaf40443182742b8964d47b65c5ebdea532893cb9479620000c", size = 49654 }, + { url = "https://files.pythonhosted.org/packages/49/82/df877710dd30860c5e858098fa56ce7b6d4ec82f552bfb384e4cd9eadf95/fastrlock-0.8.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:c6bffa978793bea5e1b00e677062e53a62255439339591b70e209fa1552d5ee0", size = 49536 }, + { url = "https://files.pythonhosted.org/packages/7f/8a/24067b0c3e5a0896dbe5e1e547ae176f25b94ce38e21020d1bf78d18d3ba/fastrlock-0.8.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:75c07726c8b1a52147fd7987d6baaa318c5dced1416c3f25593e40f56e10755b", size = 52581 }, + { url = "https://files.pythonhosted.org/packages/36/af/0f0dd7cfc7b202870a6d520b19f8d378ee638cd2b732a330bb16bcc8bc4b/fastrlock-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:88f079335e9da631efa64486c8207564a7bcd0c00526bb9e842e9d5b7e50a6cc", size = 52779 }, + { url = "https://files.pythonhosted.org/packages/8e/ee/1ad545f904ad8cd1ce7598b5af501148749a65dff8b9a7498cf7ceedafbb/fastrlock-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4fb2e77ff04bc4beb71d63c8e064f052ce5a6ea1e001d528d4d7f4b37d736f2e", size = 52185 }, + { url = "https://files.pythonhosted.org/packages/0d/54/b7c516be2039a4aabc4fbbc5d0346b9c4d878222346f7b37b85ae3624590/fastrlock-0.8.2-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:98195866d3a9949915935d40a88e4f1c166e82e378f622c88025f2938624a90a", size = 55286 }, + { url = "https://files.pythonhosted.org/packages/21/02/fe8f8e38cb875d1a882ef44bbc181310fde55cdb9046058f150d09c2af9b/fastrlock-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b22ea9bf5f9fad2b0077e944a7813f91593a4f61adf8faf734a70aed3f2b3a40", size = 50652 }, + { url = "https://files.pythonhosted.org/packages/3e/ca/16355012a2a5a029a524fd1eb8496eb43190f0e35f623a793ef73e16eb40/fastrlock-0.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc1bf0ac8a194313cf6e645e300a8a379674ceed8e0b1e910a2de3e3c28989e", size = 52435 }, + { url = "https://files.pythonhosted.org/packages/e1/a5/a853ca4c0da19d98664ecc36e8104931f63a67e33dd187cb91848783ca94/fastrlock-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a3dcc876050b8f5cbc0ee84ef1e7f0c1dfe7c148f10098828bc4403683c33f10", size = 51501 }, + { url = "https://files.pythonhosted.org/packages/10/84/7ee1705e4079f5eb54bf46d3a7eadf5b684fc2a8dce18a1df013c2d41c55/fastrlock-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:685e656048b59d8dfde8c601f188ad53a4d719eb97080cafc8696cda6d75865e", size = 52527 }, +] + +[[package]] +name = "filelock" +version = "3.16.1" +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 } +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 = "flox" +version = "0.9.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy-groupies", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "scipy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "toolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f0/25/de8d971737b1819a97f8867c1346f89c6cadd06979bbd35a22e0b2628b23/flox-0.9.15.tar.gz", hash = "sha256:99befd8bb26951e88db993649d577ac27009f5a1e31a8c1aab5d794fab55d75a", size = 704669 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/70/3c6f7449e1ab8a606d4bef1cf07fe4f8e7cadf53d03e5ab667c383ddb8d6/flox-0.9.15-py3-none-any.whl", hash = "sha256:814c489f0f391ed61c6fdcf1745468b79997708940984541fc7ef43ccf369509", size = 70012 }, +] + +[[package]] +name = "fonttools" +version = "4.55.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/4e/053fe1b5c0ce346c0a9d0557492c654362bafb14f026eae0d3ee98009152/fonttools-4.55.0.tar.gz", hash = "sha256:7636acc6ab733572d5e7eec922b254ead611f1cdad17be3f0be7418e8bfaca71", size = 3490431 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d8/8c/57600ebff0b2119b725bc11eeea32b17b0220f3fae71b5fff082a1891270/fonttools-4.55.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:51c029d4c0608a21a3d3d169dfc3fb776fde38f00b35ca11fdab63ba10a16f61", size = 2770301 }, + { url = "https://files.pythonhosted.org/packages/02/94/dff7e57a751918b133a303418202b4f43e3dc3c887e2a648089e0463b1a7/fonttools-4.55.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bca35b4e411362feab28e576ea10f11268b1aeed883b9f22ed05675b1e06ac69", size = 2295806 }, + { url = "https://files.pythonhosted.org/packages/09/31/ff18d79d449510850fe4a96c0ba50ee6d0b9b815a6b5a2489d809e9a8db5/fonttools-4.55.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ce4ba6981e10f7e0ccff6348e9775ce25ffadbee70c9fd1a3737e3e9f5fa74f", size = 4577709 }, + { url = "https://files.pythonhosted.org/packages/c4/03/8136887d1b0b7a9831c7e8e2598c0e5851e31cc2231295769350349a236b/fonttools-4.55.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31d00f9852a6051dac23294a4cf2df80ced85d1d173a61ba90a3d8f5abc63c60", size = 4633411 }, + { url = "https://files.pythonhosted.org/packages/a7/37/86ac06a7505e57de2daaf0a1cc885b7767c74d376ef2cf82933e8ef79399/fonttools-4.55.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e198e494ca6e11f254bac37a680473a311a88cd40e58f9cc4dc4911dfb686ec6", size = 4572887 }, + { url = "https://files.pythonhosted.org/packages/0d/85/1e429359d1842a104b638433587ff62d9dc8339a8c467787087962502a53/fonttools-4.55.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7208856f61770895e79732e1dcbe49d77bd5783adf73ae35f87fcc267df9db81", size = 4745036 }, + { url = "https://files.pythonhosted.org/packages/17/50/75461e050ded02b9eaa8097df52c2a8752cf4c24db8b44b150755b76c8f1/fonttools-4.55.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fa34aa175c91477485c44ddfbb51827d470011e558dfd5c7309eb31bef19ec51", size = 2771444 }, + { url = "https://files.pythonhosted.org/packages/de/5e/98130db3770e8d12f70aa61f2555c32284d4e9c592862469d32b7ee48626/fonttools-4.55.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:37dbb3fdc2ef7302d3199fb12468481cbebaee849e4b04bc55b77c24e3c49189", size = 2296439 }, + { url = "https://files.pythonhosted.org/packages/17/35/36fe271296fe7624811f5261a0662155e075b43b79ffacea85a03f36593d/fonttools-4.55.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5263d8e7ef3c0ae87fbce7f3ec2f546dc898d44a337e95695af2cd5ea21a967", size = 4883141 }, + { url = "https://files.pythonhosted.org/packages/47/2b/9bf7527260d265281dd812951aa22f3d1c331bcc91e86e7038dc6b9737cb/fonttools-4.55.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f307f6b5bf9e86891213b293e538d292cd1677e06d9faaa4bf9c086ad5f132f6", size = 4931050 }, + { url = "https://files.pythonhosted.org/packages/0b/7b/7324d3aa8424c71b63ba2e76eb4a46d6947e23065996e755c1682e666f42/fonttools-4.55.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f0a4b52238e7b54f998d6a56b46a2c56b59c74d4f8a6747fb9d4042190f37cd3", size = 4894154 }, + { url = "https://files.pythonhosted.org/packages/2c/53/a54926be69e43d277877106a6cbfab467cb02f9c756258c7c9932e8eb382/fonttools-4.55.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3e569711464f777a5d4ef522e781dc33f8095ab5efd7548958b36079a9f2f88c", size = 5064715 }, + { url = "https://files.pythonhosted.org/packages/ec/79/38209f8f6235021b6209147ec7b2f748afde65c59c6274ac96fef3912094/fonttools-4.55.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:838d2d8870f84fc785528a692e724f2379d5abd3fc9dad4d32f91cf99b41e4a7", size = 2765205 }, + { url = "https://files.pythonhosted.org/packages/e3/07/434a21eab80524613c9753db2ff21d6bc3cf264412d8833a85022fd39088/fonttools-4.55.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f46b863d74bab7bb0d395f3b68d3f52a03444964e67ce5c43ce43a75efce9246", size = 2293908 }, + { url = "https://files.pythonhosted.org/packages/c8/63/aa3274d9be36aaaef8c087e413cbc1dd682ff94776a82c111bad88482947/fonttools-4.55.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33b52a9cfe4e658e21b1f669f7309b4067910321757fec53802ca8f6eae96a5a", size = 4795901 }, + { url = "https://files.pythonhosted.org/packages/fc/0b/dbe13f2c8d745ffdf5c2bc25391263927d4ec2b927e44d5d5f70cd372873/fonttools-4.55.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:732a9a63d6ea4a81b1b25a1f2e5e143761b40c2e1b79bb2b68e4893f45139a40", size = 4879252 }, + { url = "https://files.pythonhosted.org/packages/46/85/eefb400ec66e9e7c159d13c72aba473d9c2a0c556d812b0916418aa9019e/fonttools-4.55.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7dd91ac3fcb4c491bb4763b820bcab6c41c784111c24172616f02f4bc227c17d", size = 4773177 }, + { url = "https://files.pythonhosted.org/packages/93/75/f06d175df4d7dbad97061c8698210ce4231cce9aa56cc263f3b6b5340540/fonttools-4.55.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1f0e115281a32ff532118aa851ef497a1b7cda617f4621c1cdf81ace3e36fb0c", size = 5032809 }, + { url = "https://files.pythonhosted.org/packages/c3/87/a669ac26c6077e37ffb06abf29c5571789eefe518d06c52df392181ee694/fonttools-4.55.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8118dc571921dc9e4b288d9cb423ceaf886d195a2e5329cc427df82bba872cd9", size = 2752519 }, + { url = "https://files.pythonhosted.org/packages/0c/e9/4822ad238fe215133c7df20f1cdb1a58cfb634a31523e77ff0fb2033970a/fonttools-4.55.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01124f2ca6c29fad4132d930da69158d3f49b2350e4a779e1efbe0e82bd63f6c", size = 2286819 }, + { url = "https://files.pythonhosted.org/packages/3e/a4/d7941c3897129e60fe68d20e4819fda4d0c4858d77badae0e80ca6440b36/fonttools-4.55.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ffd58d2691f11f7c8438796e9f21c374828805d33e83ff4b76e4635633674c", size = 4770382 }, + { url = "https://files.pythonhosted.org/packages/31/cf/c51ea1348f9fba9c627439afad9dee0090040809ab431f4422b5bfdda34c/fonttools-4.55.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5435e5f1eb893c35c2bc2b9cd3c9596b0fcb0a59e7a14121562986dd4c47b8dd", size = 4858336 }, + { url = "https://files.pythonhosted.org/packages/73/be/36c1fe0e5c9a96b068ddd7e82001243bbe7fe12549c8d14e1bd025bf40c9/fonttools-4.55.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d12081729280c39d001edd0f4f06d696014c26e6e9a0a55488fabc37c28945e4", size = 4756072 }, + { url = "https://files.pythonhosted.org/packages/5c/18/6dd381c29f215a017f79aa9fea0722424a0046b47991c4390a78ff87ce0c/fonttools-4.55.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7ad1f1b98ab6cb927ab924a38a8649f1ffd7525c75fe5b594f5dab17af70e18", size = 5008668 }, + { url = "https://files.pythonhosted.org/packages/b4/4a/786589606d4989cb34d8bc766cd687d955aaf3039c367fe7104bcf82dc98/fonttools-4.55.0-py3-none-any.whl", hash = "sha256:12db5888cd4dd3fcc9f0ee60c6edd3c7e1fd44b7dd0f31381ea03df68f8a153f", size = 1100249 }, +] + +[[package]] +name = "fparser" +version = "0.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "setuptools-scm", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f6/af/570c36d7bc374646ab82f579e2bf9d24a619cc53d83f95b38b0992de3492/fparser-0.2.0.tar.gz", hash = "sha256:3901d31c104062c4e532248286929e7405e43b79a6a85815146a176673e69c82", size = 433559 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/91/03999b30650f5621dd5ec9e8245024dea1b71c4e28e52e0c7300aa0c769d/fparser-0.2.0-py3-none-any.whl", hash = "sha256:49fab105e3a977b9b9d5d4489649287c5060e94c688f9936f3d5af3a45d6f4eb", size = 639408 }, +] + +[[package]] +name = "fprettify" +version = "0.3.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "configargparse", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/39/15/d88681bd2be4a375a78b52443b8e87608240913623d9be5c47e3c328b068/fprettify-0.3.7.tar.gz", hash = "sha256:1488a813f7e60a9e86c56fd0b82bd9df1b75bfb4bf2ee8e433c12f63b7e54057", size = 29639 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/13/2c32d63574e116f8c933f56315df9135bf2fae7a88e9e7c6c4d37f48f4ef/fprettify-0.3.7-py3-none-any.whl", hash = "sha256:56f0a64c43dc47134ce32af2e5da8cd7a1584897be29d19289ec5d87510d1daf", size = 28095 }, +] + +[[package]] +name = "frozendict" +version = "2.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/59/19eb300ba28e7547538bdf603f1c6c34793240a90e1a7b61b65d8517e35e/frozendict-2.4.6.tar.gz", hash = "sha256:df7cd16470fbd26fc4969a208efadc46319334eb97def1ddf48919b351192b8e", size = 316416 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/7f/e80cdbe0db930b2ba9d46ca35a41b0150156da16dfb79edcc05642690c3b/frozendict-2.4.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c3a05c0a50cab96b4bb0ea25aa752efbfceed5ccb24c007612bc63e51299336f", size = 37927 }, + { url = "https://files.pythonhosted.org/packages/29/98/27e145ff7e8e63caa95fb8ee4fc56c68acb208bef01a89c3678a66f9a34d/frozendict-2.4.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f5b94d5b07c00986f9e37a38dd83c13f5fe3bf3f1ccc8e88edea8fe15d6cd88c", size = 37945 }, + { url = "https://files.pythonhosted.org/packages/ac/f1/a10be024a9d53441c997b3661ea80ecba6e3130adc53812a4b95b607cdd1/frozendict-2.4.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4c789fd70879ccb6289a603cdebdc4953e7e5dea047d30c1b180529b28257b5", size = 117656 }, + { url = "https://files.pythonhosted.org/packages/46/a6/34c760975e6f1cb4db59a990d58dcf22287e10241c851804670c74c6a27a/frozendict-2.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da6a10164c8a50b34b9ab508a9420df38f4edf286b9ca7b7df8a91767baecb34", size = 117444 }, + { url = "https://files.pythonhosted.org/packages/62/dd/64bddd1ffa9617f50e7e63656b2a7ad7f0a46c86b5f4a3d2c714d0006277/frozendict-2.4.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9a8a43036754a941601635ea9c788ebd7a7efbed2becba01b54a887b41b175b9", size = 116801 }, + { url = "https://files.pythonhosted.org/packages/45/ae/af06a8bde1947277aad895c2f26c3b8b8b6ee9c0c2ad988fb58a9d1dde3f/frozendict-2.4.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c9905dcf7aa659e6a11b8051114c9fa76dfde3a6e50e6dc129d5aece75b449a2", size = 117329 }, + { url = "https://files.pythonhosted.org/packages/04/13/d9839089b900fa7b479cce495d62110cddc4bd5630a04d8469916c0e79c5/frozendict-2.4.6-py311-none-any.whl", hash = "sha256:d065db6a44db2e2375c23eac816f1a022feb2fa98cbb50df44a9e83700accbea", size = 16148 }, + { url = "https://files.pythonhosted.org/packages/ba/d0/d482c39cee2ab2978a892558cf130681d4574ea208e162da8958b31e9250/frozendict-2.4.6-py312-none-any.whl", hash = "sha256:49344abe90fb75f0f9fdefe6d4ef6d4894e640fadab71f11009d52ad97f370b9", size = 16146 }, + { url = "https://files.pythonhosted.org/packages/a5/8e/b6bf6a0de482d7d7d7a2aaac8fdc4a4d0bb24a809f5ddd422aa7060eb3d2/frozendict-2.4.6-py313-none-any.whl", hash = "sha256:7134a2bb95d4a16556bb5f2b9736dceb6ea848fa5b6f3f6c2d6dba93b44b4757", size = 16146 }, +] + +[[package]] +name = "fsspec" +version = "2024.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a0/52/f16a068ebadae42526484c31f4398e62962504e5724a8ba5dc3409483df2/fsspec-2024.10.0.tar.gz", hash = "sha256:eda2d8a4116d4f2429db8550f2457da57279247dd930bb12f821b58391359493", size = 286853 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/b2/454d6e7f0158951d8a78c2e1eb4f69ae81beb8dca5fee9809c6c99e9d0d0/fsspec-2024.10.0-py3-none-any.whl", hash = "sha256:03b9a6785766a4de40368b88906366755e2819e758b83705c88cd7cb5fe81871", size = 179641 }, +] + +[[package]] +name = "ghex" +version = "0.3.0" +source = { git = "https://github.com/ghex-org/GHEX.git?subdirectory=bindings%2Fpython&branch=master#a078eb3a5e6baabed6202a94848d91a047ce142d" } +dependencies = [ + { name = "mpi4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[[package]] +name = "gitdb" +version = "4.0.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "smmap", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/0d/bbb5b5ee188dec84647a4664f3e11b06ade2bde568dbd489d9d64adef8ed/gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b", size = 394469 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/5b/8f0c4a5bb9fd491c277c21eff7ccae71b47d43c4446c9d0c6cff2fe8c2c4/gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4", size = 62721 }, +] + +[[package]] +name = "gitpython" +version = "3.1.43" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitdb", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b6/a1/106fd9fa2dd989b6fb36e5893961f82992cf676381707253e0bf93eb1662/GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c", size = 214149 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/bd/cc3a402a6439c15c3d4294333e13042b915bbeab54edc457c723931fed3f/GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff", size = 207337 }, +] + +[[package]] +name = "gridtools-cpp" +version = "2.3.8" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/b8/352120417da7a3e16cc822e95668e1843d0cd9ee7f0269b9a098893471cc/gridtools_cpp-2.3.8-py3-none-any.whl", hash = "sha256:d9cb8aadc5dca7e864677072de15596feb883844eee2158ab108d04f2f17f355", size = 420716 }, +] + +[[package]] +name = "gt4py" +version = "1.0.4" +source = { git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113#5ce0d9d9c569c7172dd2284a45bf67ff1ba68b31" } +dependencies = [ + { name = "attrs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "black", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "boltons", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cached-property", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cmake", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cytoolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "deepdiff", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "devtools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "diskcache", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "factory-boy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "frozendict", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gridtools-cpp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "lark", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mako", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "nanobind", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "ninja", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pybind11", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "setuptools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tabulate", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "xxhash", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[[package]] +name = "h5netcdf" +version = "1.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "h5py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d7/5d/d2ec815d797cd9f060f9791cc71223814f2830abcb2f7854a574c26225fb/h5netcdf-1.4.1.tar.gz", hash = "sha256:7c8401ab807ff37c9798edc90d99467595892e6c541a5d5abeb8f53aab5335fe", size = 64647 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/bd/7f13482400f0cab61f8daff9048b040899010002ae705532cce8fc8c948d/h5netcdf-1.4.1-py3-none-any.whl", hash = "sha256:dd86c78ae69b92b16aa8a3c1ff3a14e7622571b5788dcf6d8b68569035bf71ce", size = 50072 }, +] + +[[package]] +name = "h5py" +version = "3.12.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cc/0c/5c2b0a88158682aeafb10c1c2b735df5bc31f165bfe192f2ee9f2a23b5f1/h5py-3.12.1.tar.gz", hash = "sha256:326d70b53d31baa61f00b8aa5f95c2fcb9621a3ee8365d770c551a13dbbcbfdf", size = 411457 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/7d/b21045fbb004ad8bb6fb3be4e6ca903841722706f7130b9bba31ef2f88e3/h5py-3.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f0f1a382cbf494679c07b4371f90c70391dedb027d517ac94fa2c05299dacda", size = 3402133 }, + { url = "https://files.pythonhosted.org/packages/29/a7/3c2a33fba1da64a0846744726fd067a92fb8abb887875a0dd8e3bac8b45d/h5py-3.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cb65f619dfbdd15e662423e8d257780f9a66677eae5b4b3fc9dca70b5fd2d2a3", size = 2866436 }, + { url = "https://files.pythonhosted.org/packages/1e/d0/4bf67c3937a2437c20844165766ddd1a1817ae6b9544c3743050d8e0f403/h5py-3.12.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b15d8dbd912c97541312c0e07438864d27dbca857c5ad634de68110c6beb1c2", size = 5168596 }, + { url = "https://files.pythonhosted.org/packages/85/bc/e76f4b2096e0859225f5441d1b7f5e2041fffa19fc2c16756c67078417aa/h5py-3.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59685fe40d8c1fbbee088c88cd4da415a2f8bee5c270337dc5a1c4aa634e3307", size = 5341537 }, + { url = "https://files.pythonhosted.org/packages/33/61/c463dc5fc02fbe019566d067a9d18746cd3c664f29c9b8b3c3f9ed025365/h5py-3.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ccd9006d92232727d23f784795191bfd02294a4f2ba68708825cb1da39511a93", size = 3410828 }, + { url = "https://files.pythonhosted.org/packages/95/9d/eb91a9076aa998bb2179d6b1788055ea09cdf9d6619cd967f1d3321ed056/h5py-3.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ad8a76557880aed5234cfe7279805f4ab5ce16b17954606cca90d578d3e713ef", size = 2872586 }, + { url = "https://files.pythonhosted.org/packages/b0/62/e2b1f9723ff713e3bd3c16dfeceec7017eadc21ef063d8b7080c0fcdc58a/h5py-3.12.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1473348139b885393125126258ae2d70753ef7e9cec8e7848434f385ae72069e", size = 5273038 }, + { url = "https://files.pythonhosted.org/packages/e1/89/118c3255d6ff2db33b062ec996a762d99ae50c21f54a8a6047ae8eda1b9f/h5py-3.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:018a4597f35092ae3fb28ee851fdc756d2b88c96336b8480e124ce1ac6fb9166", size = 5452688 }, + { url = "https://files.pythonhosted.org/packages/d4/e1/ea9bfe18a3075cdc873f0588ff26ce394726047653557876d7101bf0c74e/h5py-3.12.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:06a903a4e4e9e3ebbc8b548959c3c2552ca2d70dac14fcfa650d9261c66939ed", size = 3372538 }, + { url = "https://files.pythonhosted.org/packages/0d/74/1009b663387c025e8fa5f3ee3cf3cd0d99b1ad5c72eeb70e75366b1ce878/h5py-3.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7b3b8f3b48717e46c6a790e3128d39c61ab595ae0a7237f06dfad6a3b51d5351", size = 2868104 }, + { url = "https://files.pythonhosted.org/packages/af/52/c604adc06280c15a29037d4aa79a24fe54d8d0b51085e81ed24b2fa995f7/h5py-3.12.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:050a4f2c9126054515169c49cb900949814987f0c7ae74c341b0c9f9b5056834", size = 5194606 }, + { url = "https://files.pythonhosted.org/packages/fa/63/eeaacff417b393491beebabb8a3dc5342950409eb6d7b39d437289abdbae/h5py-3.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c4b41d1019322a5afc5082864dfd6359f8935ecd37c11ac0029be78c5d112c9", size = 5413256 }, + { url = "https://files.pythonhosted.org/packages/23/1c/ecdd0efab52c24f2a9bf2324289828b860e8dd1e3c5ada3cf0889e14fdc1/h5py-3.12.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:513171e90ed92236fc2ca363ce7a2fc6f2827375efcbb0cc7fbdd7fe11fecafc", size = 3346239 }, + { url = "https://files.pythonhosted.org/packages/93/cd/5b6f574bf3e318bbe305bc93ba45181676550eb44ba35e006d2e98004eaa/h5py-3.12.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:59400f88343b79655a242068a9c900001a34b63e3afb040bd7cdf717e440f653", size = 2843416 }, + { url = "https://files.pythonhosted.org/packages/8a/4f/b74332f313bfbe94ba03fff784219b9db385e6139708e55b11490149f90a/h5py-3.12.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3e465aee0ec353949f0f46bf6c6f9790a2006af896cee7c178a8c3e5090aa32", size = 5154390 }, + { url = "https://files.pythonhosted.org/packages/1a/57/93ea9e10a6457ea8d3b867207deb29a527e966a08a84c57ffd954e32152a/h5py-3.12.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba51c0c5e029bb5420a343586ff79d56e7455d496d18a30309616fdbeed1068f", size = 5378244 }, +] + +[[package]] +name = "holoviews" +version = "1.20.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bokeh", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "colorcet", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "panel", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "param", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyviz-comms", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9b/6d/460e318557121a3d22fa1dd60db44cac7357cf83a2890b2f781a91b5be25/holoviews-1.20.0.tar.gz", hash = "sha256:29d183045fafa3d846deda999d9687b99b8abdc1a8c06712e54afa576bb02b3e", size = 4590760 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/89/8df4efa78df8b129847c8a7c0e492376cca62ab68453e5a20375a1c6291b/holoviews-1.20.0-py3-none-any.whl", hash = "sha256:dc810b6790e1dd2c90f16406b292e08db10efa377b2554e46755a130e12044c5", size = 5016222 }, +] + +[[package]] +name = "html5lib" +version = "1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "webencodings", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/b6/b55c3f49042f1df3dcd422b7f224f939892ee94f22abcf503a9b7339eaf2/html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f", size = 272215 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/dd/a834df6482147d48e225a49515aabc28974ad5a4ca3215c18a882565b028/html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d", size = 112173 }, +] + +[[package]] +name = "icon4py-atmosphere-advection" +version = "0.0.6" +source = { editable = "model/atmosphere/advection" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-common", editable = "model/common" }, +] + +[[package]] +name = "icon4py-atmosphere-diffusion" +version = "0.0.6" +source = { editable = "model/atmosphere/diffusion" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-common", editable = "model/common" }, +] + +[[package]] +name = "icon4py-atmosphere-dycore" +version = "0.0.6" +source = { editable = "model/atmosphere/dycore" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-common", editable = "model/common" }, +] + +[[package]] +name = "icon4py-atmosphere-subgrid-scale-physics-microphysics" +version = "0.0.6" +source = { editable = "model/atmosphere/subgrid_scale_physics/microphysics" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-common", editable = "model/common" }, +] + +[[package]] +name = "icon4py-common" +version = "0.0.6" +source = { editable = "model/common" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.optional-dependencies] +all = [ + { name = "cartopy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "dace", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "datashader", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "ghex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "holoviews", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mpi4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "scikit-learn", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "uxarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "xarray", extra = ["complete"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +dace = [ + { name = "dace", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +ghex = [ + { name = "ghex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mpi4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +io = [ + { name = "cartopy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "datashader", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "holoviews", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "scikit-learn", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "uxarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "xarray", extra = ["complete"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +netcdf = [ + { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "cartopy", marker = "extra == 'io'", specifier = ">=0.22.0" }, + { name = "dace", marker = "extra == 'dace'", specifier = ">=0.16.1" }, + { name = "datashader", marker = "extra == 'io'", specifier = ">=0.16.0" }, + { name = "ghex", marker = "extra == 'ghex'", git = "https://github.com/ghex-org/GHEX.git?subdirectory=bindings%2Fpython&branch=master" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "holoviews", marker = "extra == 'io'", specifier = ">=1.8.0" }, + { name = "icon4py-common", extras = ["dace", "ghex", "io"], marker = "extra == 'all'", editable = "model/common" }, + { name = "icon4py-common", extras = ["netcdf"], marker = "extra == 'io'", editable = "model/common" }, + { name = "mpi4py", marker = "extra == 'ghex'", specifier = ">=3.1.5" }, + { name = "netcdf4", marker = "extra == 'netcdf'", specifier = ">=1.6.0" }, + { name = "scikit-learn", marker = "extra == 'io'", specifier = ">=1.4.0" }, + { name = "uxarray", marker = "extra == 'io'", specifier = "==2024.3.0" }, + { name = "xarray", extras = ["complete"], marker = "extra == 'io'", specifier = ">=2024.3.0" }, +] + +[[package]] +name = "icon4py-driver" +version = "0.0.6" +source = { editable = "model/driver" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-atmosphere-diffusion", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-atmosphere-dycore", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, + { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, + { name = "icon4py-common", editable = "model/common" }, +] + +[[package]] +name = "icon4py-workspace" +version = "0.0.1" +source = { virtual = "." } +dependencies = [ + { name = "ghex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-atmosphere-advection", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-atmosphere-diffusion", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-atmosphere-dycore", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-atmosphere-subgrid-scale-physics-microphysics", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-driver", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4pytools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "serialbox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.optional-dependencies] +all = [ + { name = "icon4py-common", extra = ["dace", "ghex", "io"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +dace = [ + { name = "icon4py-common", extra = ["dace"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +ghex = [ + { name = "icon4py-common", extra = ["ghex"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +io = [ + { name = "icon4py-common", extra = ["io"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.dev-dependencies] +build = [ + { name = "bump2version", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "setuptools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "wheel", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +dev = [ + { name = "bump2version", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "coverage", extra = ["toml"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mypy", extra = ["faster-cache"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "myst-parser", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pre-commit", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest-benchmark", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest-cache", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest-cov", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest-factoryboy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest-mpi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest-xdist", extra = ["psutil"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "ruff", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "setuptools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx-math-dollar", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx-rtd-theme", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx-toolbox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tach", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "texsoup", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "types-cffi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "wget", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "wheel", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +docs = [ + { name = "myst-parser", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx-math-dollar", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx-rtd-theme", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx-toolbox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "texsoup", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +lint = [ + { name = "pre-commit", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "ruff", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tach", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +test = [ + { name = "coverage", extra = ["toml"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest-benchmark", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest-cache", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest-cov", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest-factoryboy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest-mpi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest-xdist", extra = ["psutil"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +typing = [ + { name = "mypy", extra = ["faster-cache"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "types-cffi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "ghex", git = "https://github.com/ghex-org/GHEX.git?subdirectory=bindings%2Fpython&branch=master" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, + { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, + { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, + { name = "icon4py-atmosphere-subgrid-scale-physics-microphysics", editable = "model/atmosphere/subgrid_scale_physics/microphysics" }, + { name = "icon4py-common", editable = "model/common" }, + { name = "icon4py-common", extras = ["dace"], marker = "extra == 'dace'", editable = "model/common" }, + { name = "icon4py-common", extras = ["ghex"], marker = "extra == 'ghex'", editable = "model/common" }, + { name = "icon4py-common", extras = ["io"], marker = "extra == 'io'", editable = "model/common" }, + { name = "icon4py-driver", editable = "model/driver" }, + { name = "icon4py-workspace", extras = ["dace", "ghex", "io"], marker = "extra == 'all'" }, + { name = "icon4pytools", editable = "tools" }, + { name = "serialbox", git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python" }, +] + +[package.metadata.requires-dev] +build = [ + { name = "bump2version", specifier = ">=1.0.1" }, + { name = "setuptools", specifier = ">=70.1.1" }, + { name = "wheel", specifier = ">=0.45.0" }, +] +dev = [ + { name = "bump2version", specifier = ">=1.0.1" }, + { name = "coverage", extras = ["toml"], specifier = ">=7.5.0" }, + { name = "mypy", extras = ["faster-cache"], specifier = ">=1.12.0" }, + { name = "myst-parser", specifier = ">=4.0.0" }, + { name = "pre-commit", specifier = ">=4.0.1" }, + { name = "pytest", specifier = ">=8.0.1" }, + { name = "pytest-benchmark", specifier = ">=5.0.0" }, + { name = "pytest-cache", specifier = ">=1.0" }, + { name = "pytest-cov", specifier = ">=5.0.0" }, + { name = "pytest-factoryboy", specifier = ">=2.6.1" }, + { name = "pytest-mpi", specifier = ">=0.6" }, + { name = "pytest-xdist", extras = ["psutil"], specifier = ">=3.5.0" }, + { name = "ruff", specifier = ">=0.7.1" }, + { name = "setuptools", specifier = ">=70.1.1" }, + { name = "sphinx", specifier = "==7.3.7" }, + { name = "sphinx-math-dollar", specifier = ">=1.2.1" }, + { name = "sphinx-rtd-theme", specifier = ">=3.0.1" }, + { name = "sphinx-toolbox", specifier = ">=3.8.1" }, + { name = "tach", specifier = ">=0.15.0" }, + { name = "texsoup", specifier = ">=0.3.1" }, + { name = "tox", specifier = ">=3.25" }, + { name = "types-cffi", specifier = ">=1.16.0" }, + { name = "typing-extensions", specifier = ">=4.11.0" }, + { name = "wget", specifier = ">=3.2" }, + { name = "wheel", specifier = ">=0.45.0" }, +] +docs = [ + { name = "myst-parser", specifier = ">=4.0.0" }, + { name = "sphinx", specifier = "==7.3.7" }, + { name = "sphinx-math-dollar", specifier = ">=1.2.1" }, + { name = "sphinx-rtd-theme", specifier = ">=3.0.1" }, + { name = "sphinx-toolbox", specifier = ">=3.8.1" }, + { name = "texsoup", specifier = ">=0.3.1" }, +] +lint = [ + { name = "pre-commit", specifier = ">=4.0.1" }, + { name = "ruff", specifier = ">=0.7.1" }, + { name = "tach", specifier = ">=0.15.0" }, +] +test = [ + { name = "coverage", extras = ["toml"], specifier = ">=7.5.0" }, + { name = "pytest", specifier = ">=8.0.1" }, + { name = "pytest-benchmark", specifier = ">=5.0.0" }, + { name = "pytest-cache", specifier = ">=1.0" }, + { name = "pytest-cov", specifier = ">=5.0.0" }, + { name = "pytest-factoryboy", specifier = ">=2.6.1" }, + { name = "pytest-mpi", specifier = ">=0.6" }, + { name = "pytest-xdist", extras = ["psutil"], specifier = ">=3.5.0" }, + { name = "tox", specifier = ">=3.25" }, +] +typing = [ + { name = "mypy", extras = ["faster-cache"], specifier = ">=1.12.0" }, + { name = "types-cffi", specifier = ">=1.16.0" }, + { name = "typing-extensions", specifier = ">=4.11.0" }, +] + +[[package]] +name = "icon4pytools" +version = "0.0.6" +source = { editable = "tools" } +dependencies = [ + { name = "cffi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "fprettify", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-atmosphere-advection", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-atmosphere-diffusion", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-atmosphere-dycore", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tabulate", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.optional-dependencies] +cupy11 = [ + { name = "cupy-cuda11x", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +cupy12 = [ + { name = "cupy-cuda12x", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "cffi", specifier = ">=1.5" }, + { name = "cupy-cuda11x", marker = "extra == 'cupy11'", specifier = ">13.0" }, + { name = "cupy-cuda12x", marker = "extra == 'cupy12'", specifier = ">13.0" }, + { name = "fprettify", specifier = ">=0.3.7" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, + { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, + { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, + { name = "icon4py-common", editable = "model/common" }, + { name = "tabulate", specifier = ">=0.8.9" }, +] + +[[package]] +name = "identify" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1a/5f/05f0d167be94585d502b4adf8c7af31f1dc0b1c7e14f9938a88fdbbcf4a7/identify-2.6.3.tar.gz", hash = "sha256:62f5dae9b5fef52c84cc188514e9ea4f3f636b1d8799ab5ebc475471f9e47a02", size = 99179 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/f5/09644a3ad803fae9eca8efa17e1f2aef380c7f0b02f7ec4e8d446e51d64a/identify-2.6.3-py2.py3-none-any.whl", hash = "sha256:9edba65473324c2ea9684b1f944fe3191db3345e50b6d04571d10ed164f8d7bd", size = 99049 }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, +] + +[[package]] +name = "imagesize" +version = "1.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/84/62473fb57d61e31fef6e36d64a179c8781605429fd927b5dd608c997be31/imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a", size = 1280026 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b", size = 8769 }, +] + +[[package]] +name = "importlib-metadata" +version = "8.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp", marker = "(python_full_version < '3.12' and sys_platform == 'darwin') or (python_full_version < '3.12' and sys_platform == 'linux')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/d9/a1e041c5e7caa9a05c925f4bdbdfb7f006d1f74996af53467bc394c97be7/importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b", size = 26514 }, +] + +[[package]] +name = "inflection" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/7e/691d061b7329bc8d54edbf0ec22fbfb2afe61facb681f9aaa9bff7a27d04/inflection-0.5.1.tar.gz", hash = "sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417", size = 15091 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/91/aa6bde563e0085a02a435aa99b49ef75b0a4b062635e606dab23ce18d720/inflection-0.5.1-py2.py3-none-any.whl", hash = "sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2", size = 9454 }, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, +] + +[[package]] +name = "jinja2" +version = "3.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", size = 240245 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", size = 133271 }, +] + +[[package]] +name = "joblib" +version = "1.4.2" +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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6", size = 301817 }, +] + +[[package]] +name = "kiwisolver" +version = "1.4.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/4d/2255e1c76304cbd60b48cee302b66d1dde4468dc5b1160e4b7cb43778f2a/kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60", size = 97286 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/14/fc943dd65268a96347472b4fbe5dcc2f6f55034516f80576cd0dd3a8930f/kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6", size = 122440 }, + { url = "https://files.pythonhosted.org/packages/1e/46/e68fed66236b69dd02fcdb506218c05ac0e39745d696d22709498896875d/kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17", size = 65758 }, + { url = "https://files.pythonhosted.org/packages/ef/fa/65de49c85838681fc9cb05de2a68067a683717321e01ddafb5b8024286f0/kiwisolver-1.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa0abdf853e09aff551db11fce173e2177d00786c688203f52c87ad7fcd91ef9", size = 64311 }, + { url = "https://files.pythonhosted.org/packages/42/9c/cc8d90f6ef550f65443bad5872ffa68f3dee36de4974768628bea7c14979/kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8d53103597a252fb3ab8b5845af04c7a26d5e7ea8122303dd7a021176a87e8b9", size = 1637109 }, + { url = "https://files.pythonhosted.org/packages/55/91/0a57ce324caf2ff5403edab71c508dd8f648094b18cfbb4c8cc0fde4a6ac/kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88f17c5ffa8e9462fb79f62746428dd57b46eb931698e42e990ad63103f35e6c", size = 1617814 }, + { url = "https://files.pythonhosted.org/packages/12/5d/c36140313f2510e20207708adf36ae4919416d697ee0236b0ddfb6fd1050/kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a9ca9c710d598fd75ee5de59d5bda2684d9db36a9f50b6125eaea3969c2599", size = 1400881 }, + { url = "https://files.pythonhosted.org/packages/56/d0/786e524f9ed648324a466ca8df86298780ef2b29c25313d9a4f16992d3cf/kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4d742cb7af1c28303a51b7a27aaee540e71bb8e24f68c736f6f2ffc82f2bf05", size = 1512972 }, + { url = "https://files.pythonhosted.org/packages/67/5a/77851f2f201e6141d63c10a0708e996a1363efaf9e1609ad0441b343763b/kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28c7fea2196bf4c2f8d46a0415c77a1c480cc0724722f23d7410ffe9842c407", size = 1444787 }, + { url = "https://files.pythonhosted.org/packages/06/5f/1f5eaab84355885e224a6fc8d73089e8713dc7e91c121f00b9a1c58a2195/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e968b84db54f9d42046cf154e02911e39c0435c9801681e3fc9ce8a3c4130278", size = 2199212 }, + { url = "https://files.pythonhosted.org/packages/b5/28/9152a3bfe976a0ae21d445415defc9d1cd8614b2910b7614b30b27a47270/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0c18ec74c0472de033e1bebb2911c3c310eef5649133dd0bedf2a169a1b269e5", size = 2346399 }, + { url = "https://files.pythonhosted.org/packages/26/f6/453d1904c52ac3b400f4d5e240ac5fec25263716723e44be65f4d7149d13/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8f0ea6da6d393d8b2e187e6a5e3fb81f5862010a40c3945e2c6d12ae45cfb2ad", size = 2308688 }, + { url = "https://files.pythonhosted.org/packages/5a/9a/d4968499441b9ae187e81745e3277a8b4d7c60840a52dc9d535a7909fac3/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f106407dda69ae456dd1227966bf445b157ccc80ba0dff3802bb63f30b74e895", size = 2445493 }, + { url = "https://files.pythonhosted.org/packages/07/c9/032267192e7828520dacb64dfdb1d74f292765f179e467c1cba97687f17d/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84ec80df401cfee1457063732d90022f93951944b5b58975d34ab56bb150dfb3", size = 2262191 }, + { url = "https://files.pythonhosted.org/packages/e9/44/77429fa0a58f941d6e1c58da9efe08597d2e86bf2b2cce6626834f49d07b/kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54", size = 122442 }, + { url = "https://files.pythonhosted.org/packages/e5/20/8c75caed8f2462d63c7fd65e16c832b8f76cda331ac9e615e914ee80bac9/kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95", size = 65762 }, + { url = "https://files.pythonhosted.org/packages/f4/98/fe010f15dc7230f45bc4cf367b012d651367fd203caaa992fd1f5963560e/kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935", size = 64319 }, + { url = "https://files.pythonhosted.org/packages/8b/1b/b5d618f4e58c0675654c1e5051bcf42c776703edb21c02b8c74135541f60/kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb", size = 1334260 }, + { url = "https://files.pythonhosted.org/packages/b8/01/946852b13057a162a8c32c4c8d2e9ed79f0bb5d86569a40c0b5fb103e373/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02", size = 1426589 }, + { url = "https://files.pythonhosted.org/packages/70/d1/c9f96df26b459e15cf8a965304e6e6f4eb291e0f7a9460b4ad97b047561e/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51", size = 1541080 }, + { url = "https://files.pythonhosted.org/packages/d3/73/2686990eb8b02d05f3de759d6a23a4ee7d491e659007dd4c075fede4b5d0/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052", size = 1470049 }, + { url = "https://files.pythonhosted.org/packages/a7/4b/2db7af3ed3af7c35f388d5f53c28e155cd402a55432d800c543dc6deb731/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18", size = 1426376 }, + { url = "https://files.pythonhosted.org/packages/05/83/2857317d04ea46dc5d115f0df7e676997bbd968ced8e2bd6f7f19cfc8d7f/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545", size = 2222231 }, + { url = "https://files.pythonhosted.org/packages/0d/b5/866f86f5897cd4ab6d25d22e403404766a123f138bd6a02ecb2cdde52c18/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b", size = 2368634 }, + { url = "https://files.pythonhosted.org/packages/c1/ee/73de8385403faba55f782a41260210528fe3273d0cddcf6d51648202d6d0/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36", size = 2329024 }, + { url = "https://files.pythonhosted.org/packages/a1/e7/cd101d8cd2cdfaa42dc06c433df17c8303d31129c9fdd16c0ea37672af91/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3", size = 2468484 }, + { url = "https://files.pythonhosted.org/packages/e1/72/84f09d45a10bc57a40bb58b81b99d8f22b58b2040c912b7eb97ebf625bf2/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523", size = 2284078 }, + { url = "https://files.pythonhosted.org/packages/97/9c/0a11c714cf8b6ef91001c8212c4ef207f772dd84540104952c45c1f0a249/kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2", size = 121808 }, + { url = "https://files.pythonhosted.org/packages/f2/d8/0fe8c5f5d35878ddd135f44f2af0e4e1d379e1c7b0716f97cdcb88d4fd27/kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a", size = 65531 }, + { url = "https://files.pythonhosted.org/packages/80/c5/57fa58276dfdfa612241d640a64ca2f76adc6ffcebdbd135b4ef60095098/kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee", size = 63894 }, + { url = "https://files.pythonhosted.org/packages/8b/e9/26d3edd4c4ad1c5b891d8747a4f81b1b0aba9fb9721de6600a4adc09773b/kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640", size = 1369296 }, + { url = "https://files.pythonhosted.org/packages/b6/67/3f4850b5e6cffb75ec40577ddf54f7b82b15269cc5097ff2e968ee32ea7d/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f", size = 1461450 }, + { url = "https://files.pythonhosted.org/packages/52/be/86cbb9c9a315e98a8dc6b1d23c43cffd91d97d49318854f9c37b0e41cd68/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483", size = 1579168 }, + { url = "https://files.pythonhosted.org/packages/0f/00/65061acf64bd5fd34c1f4ae53f20b43b0a017a541f242a60b135b9d1e301/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258", size = 1507308 }, + { url = "https://files.pythonhosted.org/packages/21/e4/c0b6746fd2eb62fe702118b3ca0cb384ce95e1261cfada58ff693aeec08a/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e", size = 1464186 }, + { url = "https://files.pythonhosted.org/packages/0a/0f/529d0a9fffb4d514f2782c829b0b4b371f7f441d61aa55f1de1c614c4ef3/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107", size = 2247877 }, + { url = "https://files.pythonhosted.org/packages/d1/e1/66603ad779258843036d45adcbe1af0d1a889a07af4635f8b4ec7dccda35/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948", size = 2404204 }, + { url = "https://files.pythonhosted.org/packages/8d/61/de5fb1ca7ad1f9ab7970e340a5b833d735df24689047de6ae71ab9d8d0e7/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038", size = 2352461 }, + { url = "https://files.pythonhosted.org/packages/ba/d2/0edc00a852e369827f7e05fd008275f550353f1f9bcd55db9363d779fc63/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383", size = 2501358 }, + { url = "https://files.pythonhosted.org/packages/84/15/adc15a483506aec6986c01fb7f237c3aec4d9ed4ac10b756e98a76835933/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520", size = 2314119 }, + { url = "https://files.pythonhosted.org/packages/c4/06/7da99b04259b0f18b557a4effd1b9c901a747f7fdd84cf834ccf520cb0b2/kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e", size = 121913 }, + { url = "https://files.pythonhosted.org/packages/97/f5/b8a370d1aa593c17882af0a6f6755aaecd643640c0ed72dcfd2eafc388b9/kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6", size = 65627 }, + { url = "https://files.pythonhosted.org/packages/2a/fc/6c0374f7503522539e2d4d1b497f5ebad3f8ed07ab51aed2af988dd0fb65/kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750", size = 63888 }, + { url = "https://files.pythonhosted.org/packages/bf/3e/0b7172793d0f41cae5c923492da89a2ffcd1adf764c16159ca047463ebd3/kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d", size = 1369145 }, + { url = "https://files.pythonhosted.org/packages/77/92/47d050d6f6aced2d634258123f2688fbfef8ded3c5baf2c79d94d91f1f58/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379", size = 1461448 }, + { url = "https://files.pythonhosted.org/packages/9c/1b/8f80b18e20b3b294546a1adb41701e79ae21915f4175f311a90d042301cf/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c", size = 1578750 }, + { url = "https://files.pythonhosted.org/packages/a4/fe/fe8e72f3be0a844f257cadd72689c0848c6d5c51bc1d60429e2d14ad776e/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34", size = 1507175 }, + { url = "https://files.pythonhosted.org/packages/39/fa/cdc0b6105d90eadc3bee525fecc9179e2b41e1ce0293caaf49cb631a6aaf/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1", size = 1463963 }, + { url = "https://files.pythonhosted.org/packages/6e/5c/0c03c4e542720c6177d4f408e56d1c8315899db72d46261a4e15b8b33a41/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f", size = 2248220 }, + { url = "https://files.pythonhosted.org/packages/3d/ee/55ef86d5a574f4e767df7da3a3a7ff4954c996e12d4fbe9c408170cd7dcc/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b", size = 2404463 }, + { url = "https://files.pythonhosted.org/packages/0f/6d/73ad36170b4bff4825dc588acf4f3e6319cb97cd1fb3eb04d9faa6b6f212/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27", size = 2352842 }, + { url = "https://files.pythonhosted.org/packages/0b/16/fa531ff9199d3b6473bb4d0f47416cdb08d556c03b8bc1cccf04e756b56d/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a", size = 2501635 }, + { url = "https://files.pythonhosted.org/packages/78/7e/aa9422e78419db0cbe75fb86d8e72b433818f2e62e2e394992d23d23a583/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee", size = 2314556 }, + { url = "https://files.pythonhosted.org/packages/ac/59/741b79775d67ab67ced9bb38552da688c0305c16e7ee24bba7a2be253fb7/kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94252291e3fe68001b1dd747b4c0b3be12582839b95ad4d1b641924d68fd4643", size = 59491 }, + { url = "https://files.pythonhosted.org/packages/58/cc/fb239294c29a5656e99e3527f7369b174dd9cc7c3ef2dea7cb3c54a8737b/kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b7dfa3b546da08a9f622bb6becdb14b3e24aaa30adba66749d38f3cc7ea9706", size = 57648 }, + { url = "https://files.pythonhosted.org/packages/3b/ef/2f009ac1f7aab9f81efb2d837301d255279d618d27b6015780115ac64bdd/kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3de6481f4ed8b734da5df134cd5a6a64fe32124fe83dde1e5b5f29fe30b1e6", size = 84257 }, + { url = "https://files.pythonhosted.org/packages/81/e1/c64f50987f85b68b1c52b464bb5bf73e71570c0f7782d626d1eb283ad620/kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91b5f9f1205845d488c928e8570dcb62b893372f63b8b6e98b863ebd2368ff2", size = 80906 }, + { url = "https://files.pythonhosted.org/packages/fd/71/1687c5c0a0be2cee39a5c9c389e546f9c6e215e46b691d00d9f646892083/kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fa14dbd66b8b8f470d5fc79c089a66185619d31645f9b0773b88b19f7223c4", size = 79951 }, +] + +[[package]] +name = "lark" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/60/bc7622aefb2aee1c0b4ba23c1446d3e30225c8770b38d7aedbfb65ca9d5a/lark-1.2.2.tar.gz", hash = "sha256:ca807d0162cd16cef15a8feecb862d7319e7a09bdb13aef927968e45040fed80", size = 252132 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2d/00/d90b10b962b4277f5e64a78b6609968859ff86889f5b898c1a778c06ec00/lark-1.2.2-py3-none-any.whl", hash = "sha256:c2276486b02f0f1b90be155f2c8ba4a8e194d42775786db622faccd652d8e80c", size = 111036 }, +] + +[[package]] +name = "linkify-it-py" +version = "2.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "uc-micro-py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2a/ae/bb56c6828e4797ba5a4821eec7c43b8bf40f69cda4d4f5f8c8a2810ec96a/linkify-it-py-2.0.3.tar.gz", hash = "sha256:68cda27e162e9215c17d786649d1da0021a451bdc436ef9e0fa0ba5234b9b048", size = 27946 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/1e/b832de447dee8b582cac175871d2f6c3d5077cc56d5575cadba1fd1cccfa/linkify_it_py-2.0.3-py3-none-any.whl", hash = "sha256:6bcbc417b0ac14323382aef5c5192c0075bf8a9d6b41820a2b66371eac6b6d79", size = 19820 }, +] + +[[package]] +name = "llvmlite" +version = "0.43.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/3d/f513755f285db51ab363a53e898b85562e950f79a2e6767a364530c2f645/llvmlite-0.43.0.tar.gz", hash = "sha256:ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5", size = 157069 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/23/ff/6ca7e98998b573b4bd6566f15c35e5c8bea829663a6df0c7aa55ab559da9/llvmlite-0.43.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a289af9a1687c6cf463478f0fa8e8aa3b6fb813317b0d70bf1ed0759eab6f761", size = 31064408 }, + { url = "https://files.pythonhosted.org/packages/ca/5c/a27f9257f86f0cda3f764ff21d9f4217b9f6a0d45e7a39ecfa7905f524ce/llvmlite-0.43.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d4fd101f571a31acb1559ae1af30f30b1dc4b3186669f92ad780e17c81e91bc", size = 28793153 }, + { url = "https://files.pythonhosted.org/packages/7e/3c/4410f670ad0a911227ea2ecfcba9f672a77cf1924df5280c4562032ec32d/llvmlite-0.43.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d434ec7e2ce3cc8f452d1cd9a28591745de022f931d67be688a737320dfcead", size = 42857276 }, + { url = "https://files.pythonhosted.org/packages/c6/21/2ffbab5714e72f2483207b4a1de79b2eecd9debbf666ff4e7067bcc5c134/llvmlite-0.43.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6912a87782acdff6eb8bf01675ed01d60ca1f2551f8176a300a886f09e836a6a", size = 43871781 }, + { url = "https://files.pythonhosted.org/packages/95/8c/de3276d773ab6ce3ad676df5fab5aac19696b2956319d65d7dd88fb10f19/llvmlite-0.43.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8d0618cb9bfe40ac38a9633f2493d4d4e9fcc2f438d39a4e854f39cc0f5f98", size = 31064409 }, + { url = "https://files.pythonhosted.org/packages/ee/e1/38deed89ced4cf378c61e232265cfe933ccde56ae83c901aa68b477d14b1/llvmlite-0.43.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0a9a1a39d4bf3517f2af9d23d479b4175ead205c592ceeb8b89af48a327ea57", size = 28793149 }, + { url = "https://files.pythonhosted.org/packages/2f/b2/4429433eb2dc8379e2cb582502dca074c23837f8fd009907f78a24de4c25/llvmlite-0.43.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1da416ab53e4f7f3bc8d4eeba36d801cc1894b9fbfbf2022b29b6bad34a7df2", size = 42857277 }, + { url = "https://files.pythonhosted.org/packages/6b/99/5d00a7d671b1ba1751fc9f19d3b36f3300774c6eebe2bcdb5f6191763eb4/llvmlite-0.43.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:977525a1e5f4059316b183fb4fd34fa858c9eade31f165427a3977c95e3ee749", size = 43871781 }, + { url = "https://files.pythonhosted.org/packages/0b/67/9443509e5d2b6d8587bae3ede5598fa8bd586b1c7701696663ea8af15b5b/llvmlite-0.43.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f99b600aa7f65235a5a05d0b9a9f31150c390f31261f2a0ba678e26823ec38f7", size = 31064409 }, + { url = "https://files.pythonhosted.org/packages/a2/9c/24139d3712d2d352e300c39c0e00d167472c08b3bd350c3c33d72c88ff8d/llvmlite-0.43.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:35d80d61d0cda2d767f72de99450766250560399edc309da16937b93d3b676e7", size = 28793145 }, + { url = "https://files.pythonhosted.org/packages/bf/f1/4c205a48488e574ee9f6505d50e84370a978c90f08dab41a42d8f2c576b6/llvmlite-0.43.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eccce86bba940bae0d8d48ed925f21dbb813519169246e2ab292b5092aba121f", size = 42857276 }, + { url = "https://files.pythonhosted.org/packages/00/5f/323c4d56e8401c50185fd0e875fcf06b71bf825a863699be1eb10aa2a9cb/llvmlite-0.43.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df6509e1507ca0760787a199d19439cc887bfd82226f5af746d6977bd9f66844", size = 43871781 }, +] + +[[package]] +name = "locket" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2f/83/97b29fe05cb6ae28d2dbd30b81e2e402a3eed5f460c26e9eaa5895ceacf5/locket-1.0.0.tar.gz", hash = "sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632", size = 4350 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl", hash = "sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3", size = 4398 }, +] + +[[package]] +name = "lz4" +version = "4.3.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a4/31/ec1259ca8ad11568abaf090a7da719616ca96b60d097ccc5799cd0ff599c/lz4-4.3.3.tar.gz", hash = "sha256:01fe674ef2889dbb9899d8a67361e0c4a2c833af5aeb37dd505727cf5d2a131e", size = 171509 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/53/61258b5effac76dea5768b07042b2c3c56e15a91194cef92284a0dc0f5e7/lz4-4.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b891880c187e96339474af2a3b2bfb11a8e4732ff5034be919aa9029484cd201", size = 254266 }, + { url = "https://files.pythonhosted.org/packages/92/84/c243a5515950d72ff04220fd49903801825e4ac23691e19e7082d9d9f94b/lz4-4.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:222a7e35137d7539c9c33bb53fcbb26510c5748779364014235afc62b0ec797f", size = 212359 }, + { url = "https://files.pythonhosted.org/packages/10/26/5287564a909d069fdd6c25f2f420c58c5758993fa3ad2e064a7b610e6e5f/lz4-4.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f76176492ff082657ada0d0f10c794b6da5800249ef1692b35cf49b1e93e8ef7", size = 1237799 }, + { url = "https://files.pythonhosted.org/packages/cf/50/75c8f966dbcc524e7253f99b8e04c6cad7328f517eb0323abf8b4068f5bb/lz4-4.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1d18718f9d78182c6b60f568c9a9cec8a7204d7cb6fad4e511a2ef279e4cb05", size = 1263957 }, + { url = "https://files.pythonhosted.org/packages/91/54/0f61c77a9599beb14ac5b828e8da20a04c6eaadb4f3fdbd79a817c66eb74/lz4-4.3.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6cdc60e21ec70266947a48839b437d46025076eb4b12c76bd47f8e5eb8a75dcc", size = 1184035 }, + { url = "https://files.pythonhosted.org/packages/f9/f7/cfb942edd53c8a6aba168720ccf3d6a0cac3e891a7feba97d5823b5dd047/lz4-4.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:30e8c20b8857adef7be045c65f47ab1e2c4fabba86a9fa9a997d7674a31ea6b6", size = 254267 }, + { url = "https://files.pythonhosted.org/packages/71/ca/046bd7e7e1ed4639eb398192374bc3fbf5010d3c168361fec161b63e8bfa/lz4-4.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2f7b1839f795315e480fb87d9bc60b186a98e3e5d17203c6e757611ef7dcef61", size = 212353 }, + { url = "https://files.pythonhosted.org/packages/0c/c2/5beb6a7bb7fd27cd5fe5bb93c15636d30987794b161e4609fbf20dc3b5c7/lz4-4.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edfd858985c23523f4e5a7526ca6ee65ff930207a7ec8a8f57a01eae506aaee7", size = 1239095 }, + { url = "https://files.pythonhosted.org/packages/cf/d4/12915eb3083dfd1746d50b71b73334030b129cd25abbed9133dd2d413c21/lz4-4.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e9c410b11a31dbdc94c05ac3c480cb4b222460faf9231f12538d0074e56c563", size = 1265760 }, + { url = "https://files.pythonhosted.org/packages/94/7b/5e72b7504d7675b484812bfc65fe958f7649a64e0d6fe35c11812511f0b5/lz4-4.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d2507ee9c99dbddd191c86f0e0c8b724c76d26b0602db9ea23232304382e1f21", size = 1185451 }, + { url = "https://files.pythonhosted.org/packages/4d/6f/081811b17ccaec5f06b3030756af2737841447849118a6e1078481a78c6c/lz4-4.3.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e36cd7b9d4d920d3bfc2369840da506fa68258f7bb176b8743189793c055e43d", size = 254213 }, + { url = "https://files.pythonhosted.org/packages/53/4d/8e04ef75feff8848ba3c624ce81c7732bdcea5f8f994758afa88cd3d7764/lz4-4.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:31ea4be9d0059c00b2572d700bf2c1bc82f241f2c3282034a759c9a4d6ca4dc2", size = 212354 }, + { url = "https://files.pythonhosted.org/packages/a3/04/257a72d6a879dbc8c669018989f776fcdd5b4bf3c2c51c09a54f1ca31721/lz4-4.3.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33c9a6fd20767ccaf70649982f8f3eeb0884035c150c0b818ea660152cf3c809", size = 1238643 }, + { url = "https://files.pythonhosted.org/packages/d9/93/4a7e489156fa7ded03ba9cde4a8ca7f373672b5787cac9a0391befa752a1/lz4-4.3.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca8fccc15e3add173da91be8f34121578dc777711ffd98d399be35487c934bf", size = 1265014 }, + { url = "https://files.pythonhosted.org/packages/fd/a4/f84ebc23bc7602623b1b003b4e1120cbf86fb03a35c595c226be1985449b/lz4-4.3.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d84b479ddf39fe3ea05387f10b779155fc0990125f4fb35d636114e1c63a2e", size = 1184881 }, +] + +[[package]] +name = "mako" +version = "1.3.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fa/0b/29bc5a230948bf209d3ed3165006d257e547c02c3c2a96f6286320dfe8dc/mako-1.3.6.tar.gz", hash = "sha256:9ec3a1583713479fae654f83ed9fa8c9a4c16b7bb0daba0e6bbebff50c0d983d", size = 390206 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/22/bc14c6f02e6dccaafb3eba95764c8f096714260c2aa5f76f654fd16a23dd/Mako-1.3.6-py3-none-any.whl", hash = "sha256:a91198468092a2f1a0de86ca92690fb0cfc43ca90ee17e15d93662b4c04b241a", size = 78557 }, +] + +[[package]] +name = "markdown" +version = "3.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/28/3af612670f82f4c056911fbbbb42760255801b3068c48de792d354ff4472/markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2", size = 357086 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/08/83871f3c50fc983b88547c196d11cf8c3340e37c32d2e9d6152abe2c61f7/Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803", size = 106349 }, +] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 }, +] + +[[package]] +name = "markupsafe" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/90/d08277ce111dd22f77149fd1a5d4653eeb3b3eaacbdfcbae5afb2600eebd/MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8", size = 14357 }, + { url = "https://files.pythonhosted.org/packages/04/e1/6e2194baeae0bca1fae6629dc0cbbb968d4d941469cbab11a3872edff374/MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158", size = 12393 }, + { url = "https://files.pythonhosted.org/packages/1d/69/35fa85a8ece0a437493dc61ce0bb6d459dcba482c34197e3efc829aa357f/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579", size = 21732 }, + { url = "https://files.pythonhosted.org/packages/22/35/137da042dfb4720b638d2937c38a9c2df83fe32d20e8c8f3185dbfef05f7/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d", size = 20866 }, + { url = "https://files.pythonhosted.org/packages/29/28/6d029a903727a1b62edb51863232152fd335d602def598dade38996887f0/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb", size = 20964 }, + { url = "https://files.pythonhosted.org/packages/cc/cd/07438f95f83e8bc028279909d9c9bd39e24149b0d60053a97b2bc4f8aa51/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b", size = 21977 }, + { url = "https://files.pythonhosted.org/packages/29/01/84b57395b4cc062f9c4c55ce0df7d3108ca32397299d9df00fedd9117d3d/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c", size = 21366 }, + { url = "https://files.pythonhosted.org/packages/bd/6e/61ebf08d8940553afff20d1fb1ba7294b6f8d279df9fd0c0db911b4bbcfd/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171", size = 21091 }, + { url = "https://files.pythonhosted.org/packages/6b/28/bbf83e3f76936960b850435576dd5e67034e200469571be53f69174a2dfd/MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", size = 14353 }, + { url = "https://files.pythonhosted.org/packages/6c/30/316d194b093cde57d448a4c3209f22e3046c5bb2fb0820b118292b334be7/MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", size = 12392 }, + { url = "https://files.pythonhosted.org/packages/f2/96/9cdafba8445d3a53cae530aaf83c38ec64c4d5427d975c974084af5bc5d2/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", size = 23984 }, + { url = "https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", size = 23120 }, + { url = "https://files.pythonhosted.org/packages/8d/21/5e4851379f88f3fad1de30361db501300d4f07bcad047d3cb0449fc51f8c/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", size = 23032 }, + { url = "https://files.pythonhosted.org/packages/00/7b/e92c64e079b2d0d7ddf69899c98842f3f9a60a1ae72657c89ce2655c999d/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", size = 24057 }, + { url = "https://files.pythonhosted.org/packages/f9/ac/46f960ca323037caa0a10662ef97d0a4728e890334fc156b9f9e52bcc4ca/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", size = 23359 }, + { url = "https://files.pythonhosted.org/packages/69/84/83439e16197337b8b14b6a5b9c2105fff81d42c2a7c5b58ac7b62ee2c3b1/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", size = 23306 }, + { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348 }, + { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149 }, + { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118 }, + { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993 }, + { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178 }, + { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319 }, + { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352 }, + { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352 }, + { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122 }, + { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085 }, + { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978 }, + { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208 }, + { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357 }, + { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344 }, + { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510 }, + { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486 }, + { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480 }, + { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914 }, + { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796 }, + { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473 }, + { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114 }, + { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 }, +] + +[[package]] +name = "matplotlib" +version = "3.9.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cycler", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "fonttools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "kiwisolver", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pillow", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyparsing", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "python-dateutil", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9e/d8/3d7f706c69e024d4287c1110d74f7dabac91d9843b99eadc90de9efc8869/matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92", size = 36088381 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/9d/84eeb82ecdd3ba71b12dd6ab5c820c5cc1e868003ecb3717d41b589ec02a/matplotlib-3.9.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9d78bbc0cbc891ad55b4f39a48c22182e9bdaea7fc0e5dbd364f49f729ca1bbb", size = 7893310 }, + { url = "https://files.pythonhosted.org/packages/36/98/cbacbd30241369d099f9c13a2b6bc3b7068d85214f5b5795e583ac3d8aba/matplotlib-3.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c375cc72229614632c87355366bdf2570c2dac01ac66b8ad048d2dabadf2d0d4", size = 7764089 }, + { url = "https://files.pythonhosted.org/packages/a8/a0/917f3c6d3a8774a3a1502d9f3dfc1456e07c1fa0c211a23b75a69e154180/matplotlib-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d94ff717eb2bd0b58fe66380bd8b14ac35f48a98e7c6765117fe67fb7684e64", size = 8192377 }, + { url = "https://files.pythonhosted.org/packages/8d/9d/d06860390f9d154fa884f1740a5456378fb153ff57443c91a4a32bab7092/matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab68d50c06938ef28681073327795c5db99bb4666214d2d5f880ed11aeaded66", size = 8303983 }, + { url = "https://files.pythonhosted.org/packages/9e/a7/c0e848ed7de0766c605af62d8097472a37f1a81d93e9afe94faa5890f24d/matplotlib-3.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:65aacf95b62272d568044531e41de26285d54aec8cb859031f511f84bd8b495a", size = 9083318 }, + { url = "https://files.pythonhosted.org/packages/77/c2/f9d7fe80a8fcce9bb128d1381c6fe41a8d286d7e18395e273002e8e0fa34/matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772", size = 7902925 }, + { url = "https://files.pythonhosted.org/packages/28/ba/8be09886eb56ac04a218a1dc3fa728a5c4cac60b019b4f1687885166da00/matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41", size = 7773193 }, + { url = "https://files.pythonhosted.org/packages/e6/9a/5991972a560db3ab621312a7ca5efec339ae2122f25901c0846865c4b72f/matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f", size = 8202378 }, + { url = "https://files.pythonhosted.org/packages/01/75/6c7ce560e95714a10fcbb3367d1304975a1a3e620f72af28921b796403f3/matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447", size = 8314361 }, + { url = "https://files.pythonhosted.org/packages/6e/49/dc7384c6c092958e0b75e754efbd9e52500154939c3d715789cee9fb8a53/matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e", size = 9091428 }, + { url = "https://files.pythonhosted.org/packages/82/de/54f7f38ce6de79cb77d513bb3eaa4e0b1031e9fd6022214f47943fa53a88/matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9", size = 7892511 }, + { url = "https://files.pythonhosted.org/packages/35/3e/5713b84a02b24b2a4bd4d6673bfc03017e6654e1d8793ece783b7ed4d484/matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d", size = 7769370 }, + { url = "https://files.pythonhosted.org/packages/5b/bd/c404502aa1824456d2862dd6b9b0c1917761a51a32f7f83ff8cf94b6d117/matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7", size = 8193260 }, + { url = "https://files.pythonhosted.org/packages/27/75/de5b9cd67648051cae40039da0c8cbc497a0d99acb1a1f3d087cd66d27b7/matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c", size = 8306310 }, + { url = "https://files.pythonhosted.org/packages/de/e3/2976e4e54d7ee76eaf54b7639fdc10a223d05c2bdded7045233e9871e469/matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e", size = 9086717 }, + { url = "https://files.pythonhosted.org/packages/5c/7f/8932eac316b32f464b8f9069f151294dcd892c8fbde61fe8bcd7ba7f7f7e/matplotlib-3.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:18128cc08f0d3cfff10b76baa2f296fc28c4607368a8402de61bb3f2eb33c7d9", size = 7893012 }, + { url = "https://files.pythonhosted.org/packages/90/89/9db9db3dd0ff3e2c49e452236dfe29e60b5586a88f8928ca1d153d0da8b5/matplotlib-3.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4876d7d40219e8ae8bb70f9263bcbe5714415acfdf781086601211335e24f8aa", size = 7769810 }, + { url = "https://files.pythonhosted.org/packages/67/26/d2661cdc2e1410b8929c5f12dfd521e4528abfed1b3c3d5a28ac48258b43/matplotlib-3.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d9f07a80deab4bb0b82858a9e9ad53d1382fd122be8cde11080f4e7dfedb38b", size = 8193779 }, + { url = "https://files.pythonhosted.org/packages/95/70/4839eaa672bf4eacc98ebc8d23633e02b6daf39e294e7433c4ab11a689be/matplotlib-3.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7c0410f181a531ec4e93bbc27692f2c71a15c2da16766f5ba9761e7ae518413", size = 8306260 }, + { url = "https://files.pythonhosted.org/packages/88/62/7b263b2cb2724b45d3a4f9c8c6137696cc3ef037d44383fb01ac2a9555c2/matplotlib-3.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:909645cce2dc28b735674ce0931a4ac94e12f5b13f6bb0b5a5e65e7cea2c192b", size = 9086073 }, + { url = "https://files.pythonhosted.org/packages/03/8f/9d505be3eb2f40ec731674fb6b47d10cc3147bbd6a9ea7a08c8da55415c6/matplotlib-3.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:37e51dd1c2db16ede9cfd7b5cabdfc818b2c6397c83f8b10e0e797501c963a03", size = 7933657 }, + { url = "https://files.pythonhosted.org/packages/5d/68/44b458b9794bcff2a66921f8c9a8110a50a0bb099bd5f7cabb428a1dc765/matplotlib-3.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b82c5045cebcecd8496a4d694d43f9cc84aeeb49fe2133e036b207abe73f4d30", size = 7799276 }, + { url = "https://files.pythonhosted.org/packages/47/79/8486d4ddcaaf676314b5fb58e8fe19d1a6210a443a7c31fa72d4215fcb87/matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f053c40f94bc51bc03832a41b4f153d83f2062d88c72b5e79997072594e97e51", size = 8221027 }, + { url = "https://files.pythonhosted.org/packages/56/62/72a472181578c3d035dcda0d0fa2e259ba2c4cb91132588a348bb705b70d/matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbe196377a8248972f5cede786d4c5508ed5f5ca4a1e09b44bda889958b33f8c", size = 8329097 }, + { url = "https://files.pythonhosted.org/packages/01/8a/760f7fce66b39f447ad160800619d0bd5d0936d2b4633587116534a4afe0/matplotlib-3.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5816b1e1fe8c192cbc013f8f3e3368ac56fbecf02fb41b8f8559303f24c5015e", size = 9093770 }, +] + +[[package]] +name = "mdit-py-plugins" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/03/a2ecab526543b152300717cf232bb4bb8605b6edb946c845016fa9c9c9fd/mdit_py_plugins-0.4.2.tar.gz", hash = "sha256:5f2cd1fdb606ddf152d37ec30e46101a60512bc0e5fa1a7002c36647b09e26b5", size = 43542 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/f7/7782a043553ee469c1ff49cfa1cdace2d6bf99a1f333cf38676b3ddf30da/mdit_py_plugins-0.4.2-py3-none-any.whl", hash = "sha256:0c673c3f889399a33b95e88d2f0d111b4447bdfea7f237dab2d488f459835636", size = 55316 }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, +] + +[[package]] +name = "more-itertools" +version = "10.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/51/78/65922308c4248e0eb08ebcbe67c95d48615cc6f27854b6f2e57143e9178f/more-itertools-10.5.0.tar.gz", hash = "sha256:5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6", size = 121020 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/7e/3a64597054a70f7c86eb0a7d4fc315b8c1ab932f64883a297bdffeb5f967/more_itertools-10.5.0-py3-none-any.whl", hash = "sha256:037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef", size = 60952 }, +] + +[[package]] +name = "mpi4py" +version = "4.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/08/34/8499a92a387d24d0092c38089f8195f13c5c76f0f814126af3fe363e5636/mpi4py-4.0.1.tar.gz", hash = "sha256:f3174b245775d556f4fddb32519a2066ef0592edc810c5b5a59238f9a0a40c89", size = 466179 } + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198 }, +] + +[[package]] +name = "msgpack" +version = "1.1.0" +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/4b/f9/a892a6038c861fa849b11a2bb0502c07bc698ab6ea53359e5771397d883b/msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd", size = 150428 }, + { url = "https://files.pythonhosted.org/packages/df/7a/d174cc6a3b6bb85556e6a046d3193294a92f9a8e583cdbd46dc8a1d7e7f4/msgpack-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d", size = 84131 }, + { url = "https://files.pythonhosted.org/packages/08/52/bf4fbf72f897a23a56b822997a72c16de07d8d56d7bf273242f884055682/msgpack-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5", size = 81215 }, + { url = "https://files.pythonhosted.org/packages/02/95/dc0044b439b518236aaf012da4677c1b8183ce388411ad1b1e63c32d8979/msgpack-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5", size = 371229 }, + { url = "https://files.pythonhosted.org/packages/ff/75/09081792db60470bef19d9c2be89f024d366b1e1973c197bb59e6aabc647/msgpack-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e", size = 378034 }, + { url = "https://files.pythonhosted.org/packages/32/d3/c152e0c55fead87dd948d4b29879b0f14feeeec92ef1fd2ec21b107c3f49/msgpack-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b", size = 363070 }, + { url = "https://files.pythonhosted.org/packages/d9/2c/82e73506dd55f9e43ac8aa007c9dd088c6f0de2aa19e8f7330e6a65879fc/msgpack-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f", size = 359863 }, + { url = "https://files.pythonhosted.org/packages/cb/a0/3d093b248837094220e1edc9ec4337de3443b1cfeeb6e0896af8ccc4cc7a/msgpack-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68", size = 368166 }, + { url = "https://files.pythonhosted.org/packages/e4/13/7646f14f06838b406cf5a6ddbb7e8dc78b4996d891ab3b93c33d1ccc8678/msgpack-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b", size = 370105 }, + { 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/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/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 }, +] + +[[package]] +name = "multipledispatch" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/3e/a62c3b824c7dec33c4a1578bcc842e6c30300051033a4e5975ed86cc2536/multipledispatch-1.0.0.tar.gz", hash = "sha256:5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0", size = 12385 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/c0/00c9809d8b9346eb238a6bbd5f83e846a4ce4503da94a4c08cb7284c325b/multipledispatch-1.0.0-py3-none-any.whl", hash = "sha256:0c53cd8b077546da4e48869f49b13164bebafd0c2a5afceb6bb6a316e7fb46e4", size = 12818 }, +] + +[[package]] +name = "mypy" +version = "1.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e8/21/7e9e523537991d145ab8a0a2fd98548d67646dc2aaaf6091c31ad883e7c1/mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e", size = 3152532 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5e/8c/206de95a27722b5b5a8c85ba3100467bd86299d92a4f71c6b9aa448bfa2f/mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a", size = 11020731 }, + { url = "https://files.pythonhosted.org/packages/ab/bb/b31695a29eea76b1569fd28b4ab141a1adc9842edde080d1e8e1776862c7/mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80", size = 10184276 }, + { url = "https://files.pythonhosted.org/packages/a5/2d/4a23849729bb27934a0e079c9c1aad912167d875c7b070382a408d459651/mypy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b2353a44d2179846a096e25691d54d59904559f4232519d420d64da6828a3a7", size = 12587706 }, + { url = "https://files.pythonhosted.org/packages/5c/c3/d318e38ada50255e22e23353a469c791379825240e71b0ad03e76ca07ae6/mypy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0730d1c6a2739d4511dc4253f8274cdd140c55c32dfb0a4cf8b7a43f40abfa6f", size = 13105586 }, + { url = "https://files.pythonhosted.org/packages/d0/19/de0822609e5b93d02579075248c7aa6ceaddcea92f00bf4ea8e4c22e3598/mypy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:581665e6f3a8a9078f28d5502f4c334c0c8d802ef55ea0e7276a6e409bc0d82d", size = 10939027 }, + { url = "https://files.pythonhosted.org/packages/c8/71/6950fcc6ca84179137e4cbf7cf41e6b68b4a339a1f5d3e954f8c34e02d66/mypy-1.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3ddb5b9bf82e05cc9a627e84707b528e5c7caaa1c55c69e175abb15a761cec2d", size = 10108699 }, + { url = "https://files.pythonhosted.org/packages/26/50/29d3e7dd166e74dc13d46050b23f7d6d7533acf48f5217663a3719db024e/mypy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20c7ee0bc0d5a9595c46f38beb04201f2620065a93755704e141fcac9f59db2b", size = 12506263 }, + { url = "https://files.pythonhosted.org/packages/3f/1d/676e76f07f7d5ddcd4227af3938a9c9640f293b7d8a44dd4ff41d4db25c1/mypy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3790ded76f0b34bc9c8ba4def8f919dd6a46db0f5a6610fb994fe8efdd447f73", size = 12984688 }, + { url = "https://files.pythonhosted.org/packages/fb/31/c526a7bd2e5c710ae47717c7a5f53f616db6d9097caf48ad650581e81748/mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5", size = 11077900 }, + { url = "https://files.pythonhosted.org/packages/83/67/b7419c6b503679d10bd26fc67529bc6a1f7a5f220bbb9f292dc10d33352f/mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e", size = 10074818 }, + { url = "https://files.pythonhosted.org/packages/ba/07/37d67048786ae84e6612575e173d713c9a05d0ae495dde1e68d972207d98/mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2", size = 12589275 }, + { url = "https://files.pythonhosted.org/packages/1f/17/b1018c6bb3e9f1ce3956722b3bf91bff86c1cefccca71cec05eae49d6d41/mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0", size = 13037783 }, + { url = "https://files.pythonhosted.org/packages/11/bb/ab4cfdc562cad80418f077d8be9b4491ee4fb257440da951b85cbb0a639e/mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7", size = 11069721 }, + { url = "https://files.pythonhosted.org/packages/59/3b/a393b1607cb749ea2c621def5ba8c58308ff05e30d9dbdc7c15028bca111/mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62", size = 10063996 }, + { url = "https://files.pythonhosted.org/packages/d1/1f/6b76be289a5a521bb1caedc1f08e76ff17ab59061007f201a8a18cc514d1/mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8", size = 12584043 }, + { url = "https://files.pythonhosted.org/packages/a6/83/5a85c9a5976c6f96e3a5a7591aa28b4a6ca3a07e9e5ba0cec090c8b596d6/mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7", size = 13036996 }, + { url = "https://files.pythonhosted.org/packages/3b/86/72ce7f57431d87a7ff17d442f521146a6585019eb8f4f31b7c02801f78ad/mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a", size = 2647043 }, +] + +[package.optional-dependencies] +faster-cache = [ + { name = "orjson", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", size = 4695 }, +] + +[[package]] +name = "myst-parser" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "markdown-it-py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mdit-py-plugins", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/85/55/6d1741a1780e5e65038b74bce6689da15f620261c490c3511eb4c12bac4b/myst_parser-4.0.0.tar.gz", hash = "sha256:851c9dfb44e36e56d15d05e72f02b80da21a9e0d07cba96baf5e2d476bb91531", size = 93858 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/b4/b036f8fdb667587bb37df29dc6644681dd78b7a2a6321a34684b79412b28/myst_parser-4.0.0-py3-none-any.whl", hash = "sha256:b9317997552424448c6096c2558872fdb6f81d3ecb3a40ce84a7518798f3f28d", size = 84563 }, +] + +[[package]] +name = "nanobind" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c5/f2/f1e6c86edf90caf04a4c28e789b15a6a5aa87a5e037e0bf03bbfcc4937b6/nanobind-2.2.0.tar.gz", hash = "sha256:53fa7a6227bddecaa4a0710e0b8dc18fad4c8ded7a0a31d6eddcf68009ead603", size = 944277 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/af/7032b05a35284e741666acbf3eac3a14b5e81cd92264ac775426884ed460/nanobind-2.2.0-py3-none-any.whl", hash = "sha256:138685ec9c5de4f57dd02d715b89ffcbcabae39c4e36b8b2c40eea2f1aa2f0d7", size = 231618 }, +] + +[[package]] +name = "natsort" +version = "8.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e2/a9/a0c57aee75f77794adaf35322f8b6404cbd0f89ad45c87197a937764b7d0/natsort-8.4.0.tar.gz", hash = "sha256:45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581", size = 76575 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/82/7a9d0550484a62c6da82858ee9419f3dd1ccc9aa1c26a1e43da3ecd20b0d/natsort-8.4.0-py3-none-any.whl", hash = "sha256:4732914fb471f56b5cce04d7bae6f164a592c7712e1c85f9ef585e197299521c", size = 38268 }, +] + +[[package]] +name = "nc-time-axis" +version = "1.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cftime", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "matplotlib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/39/c7/ceaba2047ef4e08660a5a89a71cea30547bddb0e51236dab2dcb771a6fe1/nc-time-axis-1.4.1.tar.gz", hash = "sha256:72d80f492f34bbf59490838d8cb3d92f14e88900b0ee35498b2b33c82795eb81", size = 66231 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/89/dbeab77a217f8fbda97a637acf1e3f0ce8c9c9fb3f5e5d1ff843da859520/nc_time_axis-1.4.1-py3-none-any.whl", hash = "sha256:96a6fb28cede0d07998fcd666599f76e51a086e1929fbcbfb758c1d0f3e7b0d1", size = 17757 }, +] + +[[package]] +name = "netcdf4" +version = "1.7.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cftime", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/ed/4d27fcfa40ebfdad3d2088a3de7ee48dbff7f35163e815ec1870d2a7398c/netcdf4-1.7.2.tar.gz", hash = "sha256:a4c6375540b19989896136943abb6d44850ff6f1fa7d3f063253b1ad3f8b7fce", size = 835064 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/53/00/2b1fb43e46e3d986e961e420046453796d67200b58639bd29f18657a39b7/netCDF4-1.7.2-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:5e9b485e3bd9294d25ff7dc9addefce42b3d23c1ee7e3627605277d159819392", size = 2977508 }, + { url = "https://files.pythonhosted.org/packages/81/c2/a5001f25de53b7312609d2733ac887a5051c1ce196288af4b9777ead5a75/netCDF4-1.7.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:118b476fd00d7e3ab9aa7771186d547da645ae3b49c0c7bdab866793ebf22f07", size = 2461128 }, + { url = "https://files.pythonhosted.org/packages/da/33/ecb4790d053c58ec03f940ab55aacb59a207e356e57792cfd4b4eedbcc4d/netCDF4-1.7.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abe5b1837ff209185ecfe50bd71884c866b3ee69691051833e410e57f177e059", size = 9210818 }, + { url = "https://files.pythonhosted.org/packages/db/a6/54f0f335b28228b89e1598fda950382c83b1d7b1f75d28c5eebbcb7f113e/netCDF4-1.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28021c7e886e5bccf9a8ce504c032d1d7f98d86f67495fb7cf2c9564eba04510", size = 9059470 }, + { url = "https://files.pythonhosted.org/packages/a0/d8/b7079ecbab35f7c95ab27e5146fa91daf0e39ba76093f0fc1187fc748749/netCDF4-1.7.2-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:09d61c2ddb6011afb51e77ea0f25cd0bdc28887fb426ffbbc661d920f20c9749", size = 2981078 }, + { url = "https://files.pythonhosted.org/packages/4b/c1/ae83fdcc05d1db00a340f5f3e252247d73f11f8eaa890c59e7b5c8e35b56/netCDF4-1.7.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:fd2a16dbddeb8fa7cf48c37bfc1967290332f2862bb82f984eec2007bb120aeb", size = 2462104 }, + { url = "https://files.pythonhosted.org/packages/f2/bd/6f76916fae5d375eedd0cb48acd713d8d8db267d0c3cf3d209a4631923a5/netCDF4-1.7.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f54f5d39ffbcf1726a1e6fd90cb5fa74277ecea739a5fa0f424636d71beafe24", size = 9451498 }, + { url = "https://files.pythonhosted.org/packages/18/c1/7e564dbd28228ba4a35a272bf53b9a2e8b0ba9ac06b2c84b57c03c84e87b/netCDF4-1.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:902aa50d70f49d002d896212a171d344c38f7b8ca520837c56c922ac1535c4a3", size = 9283073 }, + { url = "https://files.pythonhosted.org/packages/52/7f/3a0f18a39efca0e093b54d634b66573c25ecab5c482d73138ae14aa55c6d/netCDF4-1.7.2-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:e73e3baa0b74afc414e53ff5095748fdbec7fb346eda351e567c23f2f0d247f1", size = 2952127 }, + { url = "https://files.pythonhosted.org/packages/ed/c4/8aac0f8ca95a41bdf1364d34ff4e9bcc24494bfe69a1157301d884c2e392/netCDF4-1.7.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a51da09258b31776f474c1d47e484fc7214914cdc59edf4cee789ba632184591", size = 2460781 }, + { url = "https://files.pythonhosted.org/packages/2d/1a/32b7427aaf62fed3d4e4456f874b25ce39373dbddf6cfde9edbcfc2417fc/netCDF4-1.7.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb95b11804fe051897d1f2044b05d82a1847bc2549631cdd2f655dde7de77a9c", size = 9377415 }, + { url = "https://files.pythonhosted.org/packages/fd/bf/5e671495c8bdf6b628e091aa8980793579474a10e51bc6ba302a3af6a778/netCDF4-1.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9d8a848373723f41ef662590b4f5e1832227501c9fd4513e8ad8da58c269977", size = 9260579 }, + { url = "https://files.pythonhosted.org/packages/e6/7a/ce4f9038d8726c9c90e07b2d3a404ae111a27720d712cfcded0c8ef160e8/netCDF4-1.7.2-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:205a5f1de3ddb993c7c97fb204a923a22408cc2e5facf08d75a8eb89b3e7e1a8", size = 2948911 }, + { url = "https://files.pythonhosted.org/packages/58/3e/5736880a607edabca4c4fc49f1ccf9a2bb2485f84478e4cd19ba11c3b803/netCDF4-1.7.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:96653fc75057df196010818367c63ba6d7e9af603df0a7fe43fcdad3fe0e9e56", size = 2455078 }, + { url = "https://files.pythonhosted.org/packages/71/96/d5d8859a6dac29f8ebc815ff8e75770bd513db9f08d7a711e21ae562a948/netCDF4-1.7.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30d20e56b9ba2c48884eb89c91b63e6c0612b4927881707e34402719153ef17f", size = 9378149 }, + { url = "https://files.pythonhosted.org/packages/d1/80/b9c19f1bb4ac6c5fa6f94a4f278bc68a778473d1814a86a375d7cffa193a/netCDF4-1.7.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d6bfd38ba0bde04d56f06c1554714a2ea9dab75811c89450dc3ec57a9d36b80", size = 9254471 }, +] + +[[package]] +name = "networkx" +version = "3.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263 }, +] + +[[package]] +name = "ninja" +version = "1.11.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b4/49/4f1a79f99f4c3eb5d22f943bba14832923bb44423254d5089d38a9f6da63/ninja-1.11.1.2.tar.gz", hash = "sha256:4fbd07b2b4232543726abafdd350453a2fabef4527664ca0e491c578aee5f857", size = 129009 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/e6/097a441e1910399ed536d36258f6d1b5fce6c5caf6c4f0611b41e7a18c3e/ninja-1.11.1.2-py3-none-macosx_10_9_universal2.whl", hash = "sha256:1cfbb845095ea09da8c089375a8f999e75f4817d01506297c66181b533175647", size = 279133 }, + { url = "https://files.pythonhosted.org/packages/7b/87/d33b00c6168915b343fde8877a6852692ba6f7d3ebee07f251a2dc338563/ninja-1.11.1.2-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ab4068ff7ff1f895485ad604116165b05d6810c802170a7f22c09dd678d5587d", size = 472101 }, + { url = "https://files.pythonhosted.org/packages/62/54/787bb70e6af2f1b1853af9bab62a5e7cb35b957d72daf253b7f3c653c005/ninja-1.11.1.2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:33d258809c8eda81f9d80e18a081a6eef3215e5fd1ba8902400d786641994e89", size = 422889 }, + { url = "https://files.pythonhosted.org/packages/27/9f/1a021b766134f4ea91346fbbf7653e17a483242929c9c579b769830bdcd6/ninja-1.11.1.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed25892c16e49e66383a8db6a67a9f33b41230fc485426094d7da51e2255ec2b", size = 157046 }, + { url = "https://files.pythonhosted.org/packages/a8/e3/e05286d374e69272bd0a00517f76effe026207cb07a9d269cc3abdfe4bdd/ninja-1.11.1.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:232767144401847db62e8392047866698bb3678158a1ae4400a97111110e90f2", size = 180014 }, + { url = "https://files.pythonhosted.org/packages/22/b4/0fb29155c05685a8a4d20489b90c340dd781db5c14b5586075fcbdf748e4/ninja-1.11.1.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9200247cf4c1643a67d079836b8dd31a362e34e618b50b5e3a5c0d0171efc442", size = 157099 }, + { url = "https://files.pythonhosted.org/packages/e7/85/d67805c3d47c902f7b1a1a5b75317f4d45af7bb7132c342adf47eafc66b8/ninja-1.11.1.2-py3-none-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0c9c36f6e6f8946c7271b0ed14d98fc3ea467a0c0954fb73f5f656c42667d943", size = 130093 }, + { url = "https://files.pythonhosted.org/packages/eb/40/9a7fc0e417b1aab20f91be957418d2e5952db9f9b72f4396a8a097310964/ninja-1.11.1.2-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:3e815e4147832b17ec38417efcb31df51671ae273f083409304c7cc32a14dd1a", size = 372508 }, + { url = "https://files.pythonhosted.org/packages/0e/db/8c4843e8454e1ec2e6651b5caef31762e46fbaf3a71e6817e7d9cd28b5cb/ninja-1.11.1.2-py3-none-musllinux_1_1_i686.whl", hash = "sha256:ecf3df324b56fdfb0872990a71e706efdae286e010310816c72b6bf24431711b", size = 419368 }, + { url = "https://files.pythonhosted.org/packages/c3/e0/17ccb830c1638966d75a19a59e0ce55aadb4cf5c2cae5bcf97f74511c33e/ninja-1.11.1.2-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:cb6b476eb4e84c0efcfd3ab04f660dedce8adb854b56b043639312f3af176df6", size = 420305 }, + { url = "https://files.pythonhosted.org/packages/30/e4/7d02c7a633c36a9aa7433fb742931a62f0a3aa72b484ed23d73cc6415286/ninja-1.11.1.2-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:508fb93395a5c82a4d99d30fce0cbaf5cb2bd33e5c1dc9faaa080e199802dbc9", size = 416060 }, + { url = "https://files.pythonhosted.org/packages/0d/11/4dc053f20c64f5a340d72f948bbad22818d242afd54e826e0c95ca3779fe/ninja-1.11.1.2-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:52af7f45750c5c288d566fd0c927ed9bb0d8f2e50803709f582a42bcc4ec167b", size = 379729 }, + { url = "https://files.pythonhosted.org/packages/ab/57/adaa8052ae4854c5f8e228baa1a77aad68093bc1aedf32597fa5e7714118/ninja-1.11.1.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:99fc4b87299242e10d7edd1c7737fdfb1269019e32f9f4267630887f6183a49e", size = 434886 }, +] + +[[package]] +name = "nodeenv" +version = "1.9.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f", size = 47437 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314 }, +] + +[[package]] +name = "numba" +version = "0.60.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "llvmlite", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/93/2849300a9184775ba274aba6f82f303343669b0592b7bb0849ea713dabb0/numba-0.60.0.tar.gz", hash = "sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16", size = 2702171 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/cf/baa13a7e3556d73d9e38021e6d6aa4aeb30d8b94545aa8b70d0f24a1ccc4/numba-0.60.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d761de835cd38fb400d2c26bb103a2726f548dc30368853121d66201672e651", size = 2647627 }, + { url = "https://files.pythonhosted.org/packages/ac/ba/4b57fa498564457c3cc9fc9e570a6b08e6086c74220f24baaf04e54b995f/numba-0.60.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:159e618ef213fba758837f9837fb402bbe65326e60ba0633dbe6c7f274d42c1b", size = 2650322 }, + { url = "https://files.pythonhosted.org/packages/28/98/7ea97ee75870a54f938a8c70f7e0be4495ba5349c5f9db09d467c4a5d5b7/numba-0.60.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1527dc578b95c7c4ff248792ec33d097ba6bef9eda466c948b68dfc995c25781", size = 3407390 }, + { url = "https://files.pythonhosted.org/packages/79/58/cb4ac5b8f7ec64200460aef1fed88258fb872ceef504ab1f989d2ff0f684/numba-0.60.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe0b28abb8d70f8160798f4de9d486143200f34458d34c4a214114e445d7124e", size = 3699694 }, + { url = "https://files.pythonhosted.org/packages/98/ad/df18d492a8f00d29a30db307904b9b296e37507034eedb523876f3a2e13e/numba-0.60.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a17b70fc9e380ee29c42717e8cc0bfaa5556c416d94f9aa96ba13acb41bdece8", size = 2647254 }, + { url = "https://files.pythonhosted.org/packages/9a/51/a4dc2c01ce7a850b8e56ff6d5381d047a5daea83d12bad08aa071d34b2ee/numba-0.60.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3fb02b344a2a80efa6f677aa5c40cd5dd452e1b35f8d1c2af0dfd9ada9978e4b", size = 2649970 }, + { url = "https://files.pythonhosted.org/packages/f9/4c/8889ac94c0b33dca80bed11564b8c6d9ea14d7f094e674c58e5c5b05859b/numba-0.60.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5f4fde652ea604ea3c86508a3fb31556a6157b2c76c8b51b1d45eb40c8598703", size = 3412492 }, + { url = "https://files.pythonhosted.org/packages/57/03/2b4245b05b71c0cee667e6a0b51606dfa7f4157c9093d71c6b208385a611/numba-0.60.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4142d7ac0210cc86432b818338a2bc368dc773a2f5cf1e32ff7c5b378bd63ee8", size = 3705018 }, + { url = "https://files.pythonhosted.org/packages/eb/5c/b5ec752c475e78a6c3676b67c514220dbde2725896bbb0b6ec6ea54b2738/numba-0.60.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7da4098db31182fc5ffe4bc42c6f24cd7d1cb8a14b59fd755bfee32e34b8404", size = 2647866 }, + { url = "https://files.pythonhosted.org/packages/65/42/39559664b2e7c15689a638c2a38b3b74c6e69a04e2b3019b9f7742479188/numba-0.60.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38d6ea4c1f56417076ecf8fc327c831ae793282e0ff51080c5094cb726507b1c", size = 2650208 }, + { url = "https://files.pythonhosted.org/packages/67/88/c4459ccc05674ef02119abf2888ccd3e2fed12a323f52255f4982fc95876/numba-0.60.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:62908d29fb6a3229c242e981ca27e32a6e606cc253fc9e8faeb0e48760de241e", size = 3466946 }, + { url = "https://files.pythonhosted.org/packages/8b/41/ac11cf33524def12aa5bd698226ae196a1185831c05ed29dc0c56eaa308b/numba-0.60.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0ebaa91538e996f708f1ab30ef4d3ddc344b64b5227b67a57aa74f401bb68b9d", size = 3761463 }, +] + +[[package]] +name = "numbagg" +version = "0.8.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numba", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/f1/c10725336d4cf9704d83921bdbec72849691b271e0a250d8d3cae4ee79e0/numbagg-0.8.2.tar.gz", hash = "sha256:636fc6756b8ca9adca730512dd15c5dcc9b28a93ffc003f0258dec72ee90937a", size = 56491 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/d2/2391c7db0b1a56d466bc40f70dd2631aaaa9d487b90010640d064d7d923b/numbagg-0.8.2-py3-none-any.whl", hash = "sha256:6a1be69dddb23551396fd9847b3ba390c8283a2819ae5777f7de1a49e59a90f1", size = 49173 }, +] + +[[package]] +name = "numcodecs" +version = "0.13.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/85/56/8895a76abe4ec94ebd01eeb6d74f587bc4cddd46569670e1402852a5da13/numcodecs-0.13.1.tar.gz", hash = "sha256:a3cf37881df0898f3a9c0d4477df88133fe85185bffe57ba31bcc2fa207709bc", size = 5955215 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/c0/6d72cde772bcec196b7188731d41282993b2958440f77fdf0db216f722da/numcodecs-0.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:96add4f783c5ce57cc7e650b6cac79dd101daf887c479a00a29bc1487ced180b", size = 1580012 }, + { url = "https://files.pythonhosted.org/packages/94/1d/f81fc1fa9210bbea97258242393a1f9feab4f6d8fb201f81f76003005e4b/numcodecs-0.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:237b7171609e868a20fd313748494444458ccd696062f67e198f7f8f52000c15", size = 1176919 }, + { url = "https://files.pythonhosted.org/packages/16/e4/b9ec2f4dfc34ecf724bc1beb96a9f6fa9b91801645688ffadacd485089da/numcodecs-0.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96e42f73c31b8c24259c5fac6adba0c3ebf95536e37749dc6c62ade2989dca28", size = 8625842 }, + { url = "https://files.pythonhosted.org/packages/f0/78/34b8e869ef143e88d62e8231f4dbfcad85e5c41302a11fc5bd2228a13df5/numcodecs-0.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2eda97dd2f90add98df6d295f2c6ae846043396e3d51a739ca5db6c03b5eb666", size = 1580199 }, + { url = "https://files.pythonhosted.org/packages/3b/cf/f70797d86bb585d258d1e6993dced30396f2044725b96ce8bcf87a02be9c/numcodecs-0.13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2a86f5367af9168e30f99727ff03b27d849c31ad4522060dde0bce2923b3a8bc", size = 1177203 }, + { url = "https://files.pythonhosted.org/packages/a8/b5/d14ad69b63fde041153dfd05d7181a49c0d4864de31a7a1093c8370da957/numcodecs-0.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233bc7f26abce24d57e44ea8ebeb5cd17084690b4e7409dd470fdb75528d615f", size = 8868743 }, + { url = "https://files.pythonhosted.org/packages/37/3a/bc09808425e7d3df41e5fc73fc7a802c429ba8c6b05e55f133654ade019d/numcodecs-0.13.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5195bea384a6428f8afcece793860b1ab0ae28143c853f0b2b20d55a8947c917", size = 1575806 }, + { url = "https://files.pythonhosted.org/packages/3a/cc/dc74d0bfdf9ec192332a089d199f1e543e747c556b5659118db7a437dcca/numcodecs-0.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3501a848adaddce98a71a262fee15cd3618312692aa419da77acd18af4a6a3f6", size = 1178233 }, + { url = "https://files.pythonhosted.org/packages/d4/ce/434e8e3970b8e92ae9ab6d9db16cb9bc7aa1cd02e17c11de6848224100a1/numcodecs-0.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2230484e6102e5fa3cc1a5dd37ca1f92dfbd183d91662074d6f7574e3e8f53", size = 8857827 }, + { url = "https://files.pythonhosted.org/packages/83/8b/06771dead2cc4a8ae1ea9907737cf1c8d37a323392fa28f938a586373468/numcodecs-0.13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a60d75179fd6692e301ddfb3b266d51eb598606dcae7b9fc57f986e8d65cb43", size = 1571660 }, + { url = "https://files.pythonhosted.org/packages/f9/ea/d925bf85f92dfe4635356018da9fe4bfecb07b1c72f62b01c1bc47f936b1/numcodecs-0.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f593c7506b0ab248961a3b13cb148cc6e8355662ff124ac591822310bc55ecf", size = 1169925 }, + { url = "https://files.pythonhosted.org/packages/0f/d6/643a3839d571d8e439a2c77dc4b0b8cab18d96ac808e4a81dbe88e959ab6/numcodecs-0.13.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80d3071465f03522e776a31045ddf2cfee7f52df468b977ed3afdd7fe5869701", size = 8814257 }, +] + +[[package]] +name = "numpy" +version = "1.26.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/6e/09db70a523a96d25e115e71cc56a6f9031e7b8cd166c1ac8438307c14058/numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010", size = 15786129 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/94/ace0fdea5241a27d13543ee117cbc65868e82213fb31a8eb7fe9ff23f313/numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0", size = 20631468 }, + { url = "https://files.pythonhosted.org/packages/20/f7/b24208eba89f9d1b58c1668bc6c8c4fd472b20c45573cb767f59d49fb0f6/numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a", size = 13966411 }, + { url = "https://files.pythonhosted.org/packages/fc/a5/4beee6488160798683eed5bdb7eead455892c3b4e1f78d79d8d3f3b084ac/numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4", size = 14219016 }, + { url = "https://files.pythonhosted.org/packages/4b/d7/ecf66c1cd12dc28b4040b15ab4d17b773b87fa9d29ca16125de01adb36cd/numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f", size = 18240889 }, + { url = "https://files.pythonhosted.org/packages/24/03/6f229fe3187546435c4f6f89f6d26c129d4f5bed40552899fcf1f0bf9e50/numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a", size = 13876746 }, + { url = "https://files.pythonhosted.org/packages/39/fe/39ada9b094f01f5a35486577c848fe274e374bbf8d8f472e1423a0bbd26d/numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2", size = 18078620 }, + { url = "https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71", size = 20630554 }, + { url = "https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef", size = 13997127 }, + { url = "https://files.pythonhosted.org/packages/79/ae/7e5b85136806f9dadf4878bf73cf223fe5c2636818ba3ab1c585d0403164/numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e", size = 14222994 }, + { url = "https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5", size = 18252005 }, + { url = "https://files.pythonhosted.org/packages/09/bf/2b1aaf8f525f2923ff6cfcf134ae5e750e279ac65ebf386c75a0cf6da06a/numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a", size = 13885297 }, + { url = "https://files.pythonhosted.org/packages/df/a0/4e0f14d847cfc2a633a1c8621d00724f3206cfeddeb66d35698c4e2cf3d2/numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a", size = 18093567 }, + { url = "https://files.pythonhosted.org/packages/95/12/8f2020a8e8b8383ac0177dc9570aad031a3beb12e38847f7129bacd96228/numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218", size = 20335901 }, + { url = "https://files.pythonhosted.org/packages/75/5b/ca6c8bd14007e5ca171c7c03102d17b4f4e0ceb53957e8c44343a9546dcc/numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b", size = 13685868 }, + { url = "https://files.pythonhosted.org/packages/79/f8/97f10e6755e2a7d027ca783f63044d5b1bc1ae7acb12afe6a9b4286eac17/numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b", size = 13925109 }, + { url = "https://files.pythonhosted.org/packages/0f/50/de23fde84e45f5c4fda2488c759b69990fd4512387a8632860f3ac9cd225/numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed", size = 17950613 }, + { url = "https://files.pythonhosted.org/packages/4c/0c/9c603826b6465e82591e05ca230dfc13376da512b25ccd0894709b054ed0/numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a", size = 13572172 }, + { url = "https://files.pythonhosted.org/packages/76/8c/2ba3902e1a0fc1c74962ea9bb33a534bb05984ad7ff9515bf8d07527cadd/numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0", size = 17786643 }, +] + +[[package]] +name = "numpy-groupies" +version = "0.11.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/56/4fdd73388ec13a1ac3d4b27856a67b098eac6c120bbb43b42b2822e20f6c/numpy_groupies-0.11.2.tar.gz", hash = "sha256:2fda978c4d28d2f1633a63972f425d0a7f2f12a75505d215b41b6de712e2ec4b", size = 159015 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/42/230a3fc58aa50ce28649f3f9162d83bbf3d77e29fdd397a4766d8a88409f/numpy_groupies-0.11.2-py3-none-any.whl", hash = "sha256:8d0d686160f860c12d97f12f457116f8b8bebfa33a68b8efcd24dcfedc2837f1", size = 40634 }, +] + +[[package]] +name = "opt-einsum" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/b9/2ac072041e899a52f20cf9510850ff58295003aa75525e58343591b0cbfb/opt_einsum-3.4.0.tar.gz", hash = "sha256:96ca72f1b886d148241348783498194c577fa30a8faac108586b14f1ba4473ac", size = 63004 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/23/cd/066e86230ae37ed0be70aae89aabf03ca8d9f39c8aea0dec8029455b5540/opt_einsum-3.4.0-py3-none-any.whl", hash = "sha256:69bb92469f86a1565195ece4ac0323943e83477171b91d24c35afe028a90d7cd", size = 71932 }, +] + +[[package]] +name = "orderly-set" +version = "5.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c8/71/5408fee86ce5408132a3ece6eff61afa2c25d5b37cd76bc100a9a4a4d8dd/orderly_set-5.2.2.tar.gz", hash = "sha256:52a18b86aaf3f5d5a498bbdb27bf3253a4e5c57ab38e5b7a56fa00115cd28448", size = 19103 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/71/6f9554919da608cb5bcf709822a9644ba4785cc7856e01ea375f6d808774/orderly_set-5.2.2-py3-none-any.whl", hash = "sha256:f7a37c95a38c01cdfe41c3ffb62925a318a2286ea0a41790c057fc802aec54da", size = 11621 }, +] + +[[package]] +name = "orjson" +version = "3.10.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/04/bb9f72987e7f62fb591d6c880c0caaa16238e4e530cbc3bdc84a7372d75f/orjson-3.10.12.tar.gz", hash = "sha256:0a78bbda3aea0f9f079057ee1ee8a1ecf790d4f1af88dd67493c6b8ee52506ff", size = 5438647 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/72/d2/78652b67f86d093dca984ce3fa5bf819ee1462627da83e7d0b784a9a7c45/orjson-3.10.12-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ece01a7ec71d9940cc654c482907a6b65df27251255097629d0dea781f255c6d", size = 248688 }, + { url = "https://files.pythonhosted.org/packages/70/cb/f8b6a52f3bc724edf8a62d8d1d8ee17cf19d6ae1cac89f077f0e7c30f396/orjson-3.10.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c34ec9aebc04f11f4b978dd6caf697a2df2dd9b47d35aa4cc606cabcb9df69d7", size = 136952 }, + { url = "https://files.pythonhosted.org/packages/a6/43/c55700df9814545bc8c35d87395ec4b9ee473a3c1f5ed72f8d3ad0298ee9/orjson-3.10.12-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd6ec8658da3480939c79b9e9e27e0db31dffcd4ba69c334e98c9976ac29140e", size = 149089 }, + { url = "https://files.pythonhosted.org/packages/07/da/e7e7d73bd971710b736fbd8330b8830c5fa4fc0ac003b31af61f03b26dfc/orjson-3.10.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f17e6baf4cf01534c9de8a16c0c611f3d94925d1701bf5f4aff17003677d8ced", size = 140479 }, + { url = "https://files.pythonhosted.org/packages/08/49/c9dfddba56ff24eecfacf2f01a76cae4d249ac2995b1359bf63a74b1b318/orjson-3.10.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6402ebb74a14ef96f94a868569f5dccf70d791de49feb73180eb3c6fda2ade56", size = 156564 }, + { url = "https://files.pythonhosted.org/packages/96/df/174d2eff227dc23b4540a0c2efa6ec8fe406c442c4b7f0f556242f026d1f/orjson-3.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0000758ae7c7853e0a4a6063f534c61656ebff644391e1f81698c1b2d2fc8cd2", size = 131282 }, + { url = "https://files.pythonhosted.org/packages/6a/96/8628c53a52e2a0a1ee861d809092df72aabbd312c71de9ad6d49e2c039ab/orjson-3.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:888442dcee99fd1e5bd37a4abb94930915ca6af4db50e23e746cdf4d1e63db13", size = 139764 }, + { url = "https://files.pythonhosted.org/packages/38/17/08becb49e59e7bb7b29dc1dad19bc0c48635e627ee27e60eb5b64efcf7b1/orjson-3.10.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c1f7a3ce79246aa0e92f5458d86c54f257fb5dfdc14a192651ba7ec2c00f8a05", size = 131913 }, + { url = "https://files.pythonhosted.org/packages/2a/05/f32acc2500e3fafee9445eb8b2a6ff19c4641035e6059c6c8d7bdb3abc9e/orjson-3.10.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:802a3935f45605c66fb4a586488a38af63cb37aaad1c1d94c982c40dcc452e85", size = 415782 }, + { url = "https://files.pythonhosted.org/packages/06/03/6cc740d998d8bb60e75d4b7e228d18964475239ac842cc1865d49d092545/orjson-3.10.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1da1ef0113a2be19bb6c557fb0ec2d79c92ebd2fed4cfb1b26bab93f021fb885", size = 142383 }, + { url = "https://files.pythonhosted.org/packages/f8/30/39cac82547fe021615376245c558b216d3ae8c99bd6b2274f312e49f1c94/orjson-3.10.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a3273e99f367f137d5b3fecb5e9f45bcdbfac2a8b2f32fbc72129bbd48789c2", size = 130661 }, + { url = "https://files.pythonhosted.org/packages/d3/48/7c3cd094488f5a3bc58488555244609a8c4d105bc02f2b77e509debf0450/orjson-3.10.12-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a734c62efa42e7df94926d70fe7d37621c783dea9f707a98cdea796964d4cf74", size = 248687 }, + { url = "https://files.pythonhosted.org/packages/ff/90/e55f0e25c7fdd1f82551fe787f85df6f378170caca863c04c810cd8f2730/orjson-3.10.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:750f8b27259d3409eda8350c2919a58b0cfcd2054ddc1bd317a643afc646ef23", size = 136953 }, + { url = "https://files.pythonhosted.org/packages/2a/b3/109c020cf7fee747d400de53b43b183ca9d3ebda3906ad0b858eb5479718/orjson-3.10.12-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb52c22bfffe2857e7aa13b4622afd0dd9d16ea7cc65fd2bf318d3223b1b6252", size = 149090 }, + { url = "https://files.pythonhosted.org/packages/96/d4/35c0275dc1350707d182a1b5da16d1184b9439848060af541285407f18f9/orjson-3.10.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:440d9a337ac8c199ff8251e100c62e9488924c92852362cd27af0e67308c16ef", size = 140480 }, + { url = "https://files.pythonhosted.org/packages/3b/79/f863ff460c291ad2d882cc3b580cc444bd4ec60c9df55f6901e6c9a3f519/orjson-3.10.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9e15c06491c69997dfa067369baab3bf094ecb74be9912bdc4339972323f252", size = 156564 }, + { url = "https://files.pythonhosted.org/packages/98/7e/8d5835449ddd873424ee7b1c4ba73a0369c1055750990d824081652874d6/orjson-3.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:362d204ad4b0b8724cf370d0cd917bb2dc913c394030da748a3bb632445ce7c4", size = 131279 }, + { url = "https://files.pythonhosted.org/packages/46/f5/d34595b6d7f4f984c6fef289269a7f98abcdc2445ebdf90e9273487dda6b/orjson-3.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b57cbb4031153db37b41622eac67329c7810e5f480fda4cfd30542186f006ae", size = 139764 }, + { url = "https://files.pythonhosted.org/packages/b3/5b/ee6e9ddeab54a7b7806768151c2090a2d36025bc346a944f51cf172ef7f7/orjson-3.10.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:165c89b53ef03ce0d7c59ca5c82fa65fe13ddf52eeb22e859e58c237d4e33b9b", size = 131915 }, + { url = "https://files.pythonhosted.org/packages/c4/45/febee5951aef6db5cd8cdb260548101d7ece0ca9d4ddadadf1766306b7a4/orjson-3.10.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5dee91b8dfd54557c1a1596eb90bcd47dbcd26b0baaed919e6861f076583e9da", size = 415783 }, + { url = "https://files.pythonhosted.org/packages/27/a5/5a8569e49f3a6c093bee954a3de95062a231196f59e59df13a48e2420081/orjson-3.10.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a4e1cfb72de6f905bdff061172adfb3caf7a4578ebf481d8f0530879476c07", size = 142387 }, + { url = "https://files.pythonhosted.org/packages/6e/05/02550fb38c5bf758f3994f55401233a2ef304e175f473f2ac6dbf464cc8b/orjson-3.10.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:038d42c7bc0606443459b8fe2d1f121db474c49067d8d14c6a075bbea8bf14dd", size = 130664 }, + { url = "https://files.pythonhosted.org/packages/a1/2f/989adcafad49afb535da56b95d8f87d82e748548b2a86003ac129314079c/orjson-3.10.12-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53206d72eb656ca5ac7d3a7141e83c5bbd3ac30d5eccfe019409177a57634b0d", size = 248678 }, + { url = "https://files.pythonhosted.org/packages/69/b9/8c075e21a50c387649db262b618ebb7e4d40f4197b949c146fc225dd23da/orjson-3.10.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac8010afc2150d417ebda810e8df08dd3f544e0dd2acab5370cfa6bcc0662f8f", size = 136763 }, + { url = "https://files.pythonhosted.org/packages/87/d3/78edf10b4ab14c19f6d918cf46a145818f4aca2b5a1773c894c5490d3a4c/orjson-3.10.12-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed459b46012ae950dd2e17150e838ab08215421487371fa79d0eced8d1461d70", size = 149137 }, + { url = "https://files.pythonhosted.org/packages/16/81/5db8852bdf990a0ddc997fa8f16b80895b8cc77c0fe3701569ed2b4b9e78/orjson-3.10.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dcb9673f108a93c1b52bfc51b0af422c2d08d4fc710ce9c839faad25020bb69", size = 140567 }, + { url = "https://files.pythonhosted.org/packages/fa/a6/9ce1e3e3db918512efadad489630c25841eb148513d21dab96f6b4157fa1/orjson-3.10.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22a51ae77680c5c4652ebc63a83d5255ac7d65582891d9424b566fb3b5375ee9", size = 156620 }, + { url = "https://files.pythonhosted.org/packages/47/d4/05133d6bea24e292d2f7628b1e19986554f7d97b6412b3e51d812e38db2d/orjson-3.10.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910fdf2ac0637b9a77d1aad65f803bac414f0b06f720073438a7bd8906298192", size = 131555 }, + { url = "https://files.pythonhosted.org/packages/b9/7a/b3fbffda8743135c7811e95dc2ab7cdbc5f04999b83c2957d046f1b3fac9/orjson-3.10.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24ce85f7100160936bc2116c09d1a8492639418633119a2224114f67f63a4559", size = 139743 }, + { url = "https://files.pythonhosted.org/packages/b5/13/95bbcc9a6584aa083da5ce5004ce3d59ea362a542a0b0938d884fd8790b6/orjson-3.10.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a76ba5fc8dd9c913640292df27bff80a685bed3a3c990d59aa6ce24c352f8fc", size = 131733 }, + { url = "https://files.pythonhosted.org/packages/e8/29/dddbb2ea6e7af426fcc3da65a370618a88141de75c6603313d70768d1df1/orjson-3.10.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ff70ef093895fd53f4055ca75f93f047e088d1430888ca1229393a7c0521100f", size = 415788 }, + { url = "https://files.pythonhosted.org/packages/53/df/4aea59324ac539975919b4705ee086aced38e351a6eb3eea0f5071dd5661/orjson-3.10.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f4244b7018b5753ecd10a6d324ec1f347da130c953a9c88432c7fbc8875d13be", size = 142347 }, + { url = "https://files.pythonhosted.org/packages/55/55/a52d83d7c49f8ff44e0daab10554490447d6c658771569e1c662aa7057fe/orjson-3.10.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:16135ccca03445f37921fa4b585cff9a58aa8d81ebcb27622e69bfadd220b32c", size = 130829 }, + { url = "https://files.pythonhosted.org/packages/1b/bb/3f560735f46fa6f875a9d7c4c2171a58cfb19f56a633d5ad5037a924f35f/orjson-3.10.12-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:47962841b2a8aa9a258b377f5188db31ba49af47d4003a32f55d6f8b19006543", size = 248662 }, + { url = "https://files.pythonhosted.org/packages/a3/df/54817902350636cc9270db20486442ab0e4db33b38555300a1159b439d16/orjson-3.10.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6334730e2532e77b6054e87ca84f3072bee308a45a452ea0bffbbbc40a67e296", size = 126055 }, + { url = "https://files.pythonhosted.org/packages/2e/77/55835914894e00332601a74540840f7665e81f20b3e2b9a97614af8565ed/orjson-3.10.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:accfe93f42713c899fdac2747e8d0d5c659592df2792888c6c5f829472e4f85e", size = 131507 }, + { url = "https://files.pythonhosted.org/packages/33/9e/b91288361898e3158062a876b5013c519a5d13e692ac7686e3486c4133ab/orjson-3.10.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7974c490c014c48810d1dede6c754c3cc46598da758c25ca3b4001ac45b703f", size = 131686 }, + { url = "https://files.pythonhosted.org/packages/b2/15/08ce117d60a4d2d3fd24e6b21db463139a658e9f52d22c9c30af279b4187/orjson-3.10.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3f250ce7727b0b2682f834a3facff88e310f52f07a5dcfd852d99637d386e79e", size = 415710 }, + { url = "https://files.pythonhosted.org/packages/71/af/c09da5ed58f9c002cf83adff7a4cdf3e6cee742aa9723395f8dcdb397233/orjson-3.10.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f31422ff9486ae484f10ffc51b5ab2a60359e92d0716fcce1b3593d7bb8a9af6", size = 142305 }, + { url = "https://files.pythonhosted.org/packages/17/d1/8612038d44f33fae231e9ba480d273bac2b0383ce9e77cb06bede1224ae3/orjson-3.10.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5f29c5d282bb2d577c2a6bbde88d8fdcc4919c593f806aac50133f01b733846e", size = 130815 }, +] + +[[package]] +name = "packaging" +version = "24.2" +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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, +] + +[[package]] +name = "pandas" +version = "2.2.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "python-dateutil", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tzdata", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +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/aa/70/c853aec59839bceed032d52010ff5f1b8d87dc3114b762e4ba2727661a3b/pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5", size = 12580827 }, + { url = "https://files.pythonhosted.org/packages/99/f2/c4527768739ffa4469b2b4fff05aa3768a478aed89a2f271a79a40eee984/pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348", size = 11303897 }, + { url = "https://files.pythonhosted.org/packages/ed/12/86c1747ea27989d7a4064f806ce2bae2c6d575b950be087837bdfcabacc9/pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed", size = 66480908 }, + { url = "https://files.pythonhosted.org/packages/44/50/7db2cd5e6373ae796f0ddad3675268c8d59fb6076e66f0c339d61cea886b/pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57", size = 13064210 }, + { url = "https://files.pythonhosted.org/packages/61/61/a89015a6d5536cb0d6c3ba02cebed51a95538cf83472975275e28ebf7d0c/pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42", size = 16754292 }, + { url = "https://files.pythonhosted.org/packages/ce/0d/4cc7b69ce37fac07645a94e1d4b0880b15999494372c1523508511b09e40/pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f", size = 14416379 }, + { 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/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/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/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 }, +] + +[[package]] +name = "panel" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bleach", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "bokeh", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "linkify-it-py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "markdown", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "markdown-it-py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mdit-py-plugins", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "param", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyviz-comms", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "requests", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tqdm", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/66/7f13691d577c3096d8605c307cfc6f662014896086a0c53778cf6e5828ea/panel-1.5.4.tar.gz", hash = "sha256:7644e87afe9b94c32b4fca939d645c5b958d671691bd841d3391e31941090092", size = 29378323 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/9e/6bdbdc6c5ce7d0ba901d8599f6338cd8d945f425348629cd53560d8c05c1/panel-1.5.4-py3-none-any.whl", hash = "sha256:98521ff61dfe2ef684181213842521674d2db95f692c7942ab9103a2c0e882b9", size = 63137025 }, +] + +[[package]] +name = "param" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/15/39/75203d36ddd59f3819ef930451d4436e60248a674fb1136d9cf126cb9859/param-2.1.1.tar.gz", hash = "sha256:3b1da14abafa75bfd908572378a58696826b3719a723bc31b40ffff2e9a5c852", size = 174619 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c5/7b/5593a40fcd0981bda85274bb3e622ac433a94ae1e11ef8639de362cfa7de/param-2.1.1-py3-none-any.whl", hash = "sha256:81066d040526fbaa44b6419f3e92348fa8856ea44c8d3915e9245937ddabe2d6", size = 116757 }, +] + +[[package]] +name = "partd" +version = "1.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "locket", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "toolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b2/3a/3f06f34820a31257ddcabdfafc2672c5816be79c7e353b02c1f318daa7d4/partd-1.4.2.tar.gz", hash = "sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c", size = 21029 } +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 = "pillow" +version = "11.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/26/0d95c04c868f6bdb0c447e3ee2de5564411845e36a858cfd63766bc7b563/pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739", size = 46737780 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/fb/a6ce6836bd7fd93fbf9144bf54789e02babc27403b50a9e1583ee877d6da/pillow-11.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947", size = 3154708 }, + { url = "https://files.pythonhosted.org/packages/6a/1d/1f51e6e912d8ff316bb3935a8cda617c801783e0b998bf7a894e91d3bd4c/pillow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba", size = 2979223 }, + { url = "https://files.pythonhosted.org/packages/90/83/e2077b0192ca8a9ef794dbb74700c7e48384706467067976c2a95a0f40a1/pillow-11.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086", size = 4183167 }, + { url = "https://files.pythonhosted.org/packages/0e/74/467af0146970a98349cdf39e9b79a6cc8a2e7558f2c01c28a7b6b85c5bda/pillow-11.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9", size = 4283912 }, + { url = "https://files.pythonhosted.org/packages/85/b1/d95d4f7ca3a6c1ae120959605875a31a3c209c4e50f0029dc1a87566cf46/pillow-11.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488", size = 4195815 }, + { url = "https://files.pythonhosted.org/packages/41/c3/94f33af0762ed76b5a237c5797e088aa57f2b7fa8ee7932d399087be66a8/pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f", size = 4366117 }, + { url = "https://files.pythonhosted.org/packages/ba/3c/443e7ef01f597497268899e1cca95c0de947c9bbf77a8f18b3c126681e5d/pillow-11.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb", size = 4278607 }, + { url = "https://files.pythonhosted.org/packages/26/95/1495304448b0081e60c0c5d63f928ef48bb290acee7385804426fa395a21/pillow-11.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97", size = 4410685 }, + { url = "https://files.pythonhosted.org/packages/f0/eb/f7e21b113dd48a9c97d364e0915b3988c6a0b6207652f5a92372871b7aa4/pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc", size = 3154705 }, + { url = "https://files.pythonhosted.org/packages/25/b3/2b54a1d541accebe6bd8b1358b34ceb2c509f51cb7dcda8687362490da5b/pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a", size = 2979222 }, + { url = "https://files.pythonhosted.org/packages/20/12/1a41eddad8265c5c19dda8fb6c269ce15ee25e0b9f8f26286e6202df6693/pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3", size = 4190220 }, + { url = "https://files.pythonhosted.org/packages/a9/9b/8a8c4d07d77447b7457164b861d18f5a31ae6418ef5c07f6f878fa09039a/pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5", size = 4291399 }, + { url = "https://files.pythonhosted.org/packages/fc/e4/130c5fab4a54d3991129800dd2801feeb4b118d7630148cd67f0e6269d4c/pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b", size = 4202709 }, + { url = "https://files.pythonhosted.org/packages/39/63/b3fc299528d7df1f678b0666002b37affe6b8751225c3d9c12cf530e73ed/pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa", size = 4372556 }, + { url = "https://files.pythonhosted.org/packages/c6/a6/694122c55b855b586c26c694937d36bb8d3b09c735ff41b2f315c6e66a10/pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306", size = 4287187 }, + { url = "https://files.pythonhosted.org/packages/ba/a9/f9d763e2671a8acd53d29b1e284ca298bc10a595527f6be30233cdb9659d/pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9", size = 4418468 }, + { url = "https://files.pythonhosted.org/packages/1c/a3/26e606ff0b2daaf120543e537311fa3ae2eb6bf061490e4fea51771540be/pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923", size = 3147642 }, + { url = "https://files.pythonhosted.org/packages/4f/d5/1caabedd8863526a6cfa44ee7a833bd97f945dc1d56824d6d76e11731939/pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903", size = 2978999 }, + { url = "https://files.pythonhosted.org/packages/d9/ff/5a45000826a1aa1ac6874b3ec5a856474821a1b59d838c4f6ce2ee518fe9/pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4", size = 4196794 }, + { url = "https://files.pythonhosted.org/packages/9d/21/84c9f287d17180f26263b5f5c8fb201de0f88b1afddf8a2597a5c9fe787f/pillow-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f", size = 4300762 }, + { url = "https://files.pythonhosted.org/packages/84/39/63fb87cd07cc541438b448b1fed467c4d687ad18aa786a7f8e67b255d1aa/pillow-11.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9", size = 4210468 }, + { url = "https://files.pythonhosted.org/packages/7f/42/6e0f2c2d5c60f499aa29be14f860dd4539de322cd8fb84ee01553493fb4d/pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7", size = 4381824 }, + { url = "https://files.pythonhosted.org/packages/31/69/1ef0fb9d2f8d2d114db982b78ca4eeb9db9a29f7477821e160b8c1253f67/pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6", size = 4296436 }, + { url = "https://files.pythonhosted.org/packages/44/ea/dad2818c675c44f6012289a7c4f46068c548768bc6c7f4e8c4ae5bbbc811/pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc", size = 4429714 }, + { url = "https://files.pythonhosted.org/packages/63/24/e2e15e392d00fcf4215907465d8ec2a2f23bcec1481a8ebe4ae760459995/pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699", size = 3147300 }, + { url = "https://files.pythonhosted.org/packages/43/72/92ad4afaa2afc233dc44184adff289c2e77e8cd916b3ddb72ac69495bda3/pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38", size = 2978742 }, + { url = "https://files.pythonhosted.org/packages/9e/da/c8d69c5bc85d72a8523fe862f05ababdc52c0a755cfe3d362656bb86552b/pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2", size = 4194349 }, + { url = "https://files.pythonhosted.org/packages/cd/e8/686d0caeed6b998351d57796496a70185376ed9c8ec7d99e1d19ad591fc6/pillow-11.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2", size = 4298714 }, + { url = "https://files.pythonhosted.org/packages/ec/da/430015cec620d622f06854be67fd2f6721f52fc17fca8ac34b32e2d60739/pillow-11.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527", size = 4208514 }, + { url = "https://files.pythonhosted.org/packages/44/ae/7e4f6662a9b1cb5f92b9cc9cab8321c381ffbee309210940e57432a4063a/pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa", size = 4380055 }, + { url = "https://files.pythonhosted.org/packages/74/d5/1a807779ac8a0eeed57f2b92a3c32ea1b696e6140c15bd42eaf908a261cd/pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f", size = 4296751 }, + { url = "https://files.pythonhosted.org/packages/38/8c/5fa3385163ee7080bc13026d59656267daaaaf3c728c233d530e2c2757c8/pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb", size = 4430378 }, + { url = "https://files.pythonhosted.org/packages/eb/38/998b04cc6f474e78b563716b20eecf42a2fa16a84589d23c8898e64b0ffd/pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b", size = 3150854 }, + { url = "https://files.pythonhosted.org/packages/13/8e/be23a96292113c6cb26b2aa3c8b3681ec62b44ed5c2bd0b258bd59503d3c/pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003", size = 2982369 }, + { url = "https://files.pythonhosted.org/packages/97/8a/3db4eaabb7a2ae8203cd3a332a005e4aba00067fc514aaaf3e9721be31f1/pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2", size = 4333703 }, + { url = "https://files.pythonhosted.org/packages/28/ac/629ffc84ff67b9228fe87a97272ab125bbd4dc462745f35f192d37b822f1/pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a", size = 4412550 }, + { url = "https://files.pythonhosted.org/packages/d6/07/a505921d36bb2df6868806eaf56ef58699c16c388e378b0dcdb6e5b2fb36/pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8", size = 4461038 }, + { url = "https://files.pythonhosted.org/packages/36/57/42a4dd825eab762ba9e690d696d894ba366e06791936056e26e099398cda/pillow-11.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2", size = 3119239 }, + { url = "https://files.pythonhosted.org/packages/98/f7/25f9f9e368226a1d6cf3507081a1a7944eddd3ca7821023377043f5a83c8/pillow-11.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2", size = 2950803 }, + { url = "https://files.pythonhosted.org/packages/59/01/98ead48a6c2e31e6185d4c16c978a67fe3ccb5da5c2ff2ba8475379bb693/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b", size = 3281098 }, + { url = "https://files.pythonhosted.org/packages/51/c0/570255b2866a0e4d500a14f950803a2ec273bac7badc43320120b9262450/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2", size = 3323665 }, + { url = "https://files.pythonhosted.org/packages/0e/75/689b4ec0483c42bfc7d1aacd32ade7a226db4f4fac57c6fdcdf90c0731e3/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830", size = 3310533 }, + { url = "https://files.pythonhosted.org/packages/3d/30/38bd6149cf53da1db4bad304c543ade775d225961c4310f30425995cb9ec/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734", size = 3414886 }, +] + +[[package]] +name = "platformdirs" +version = "4.3.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907", size = 21302 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439 }, +] + +[[package]] +name = "pluggy" +version = "1.5.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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556 }, +] + +[[package]] +name = "ply" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e5/69/882ee5c9d017149285cab114ebeab373308ef0f874fcdac9beb90e0ac4da/ply-3.11.tar.gz", hash = "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3", size = 159130 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/58/35da89ee790598a0700ea49b2a66594140f44dec458c07e8e3d4979137fc/ply-3.11-py2.py3-none-any.whl", hash = "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce", size = 49567 }, +] + +[[package]] +name = "pooch" +version = "1.8.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "platformdirs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "requests", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c6/77/b3d3e00c696c16cf99af81ef7b1f5fe73bd2a307abca41bd7605429fe6e5/pooch-1.8.2.tar.gz", hash = "sha256:76561f0de68a01da4df6af38e9955c4c9d1a5c90da73f7e40276a5728ec83d10", size = 59353 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/87/77cc11c7a9ea9fd05503def69e3d18605852cd0d4b0d3b8f15bbeb3ef1d1/pooch-1.8.2-py3-none-any.whl", hash = "sha256:3529a57096f7198778a5ceefd5ac3ef0e4d06a6ddaf9fc2d609b806f25302c47", size = 64574 }, +] + +[[package]] +name = "pre-commit" +version = "4.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cfgv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "identify", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "nodeenv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "virtualenv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/c8/e22c292035f1bac8b9f5237a2622305bc0304e776080b246f3df57c4ff9f/pre_commit-4.0.1.tar.gz", hash = "sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2", size = 191678 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/8f/496e10d51edd6671ebe0432e33ff800aa86775d2d147ce7d43389324a525/pre_commit-4.0.1-py2.py3-none-any.whl", hash = "sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878", size = 218713 }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.48" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2d/4f/feb5e137aff82f7c7f3248267b97451da3644f6cdc218edfe549fb354127/prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90", size = 424684 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/6a/fd08d94654f7e67c52ca30523a178b3f8ccc4237fce4be90d39c938a831a/prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e", size = 386595 }, +] + +[[package]] +name = "psutil" +version = "6.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/10/2a30b13c61e7cf937f4adf90710776b7918ed0a9c434e2c38224732af310/psutil-6.1.0.tar.gz", hash = "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a", size = 508565 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/9e/8be43078a171381953cfee33c07c0d628594b5dbfc5157847b85022c2c1b/psutil-6.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688", size = 247762 }, + { url = "https://files.pythonhosted.org/packages/1d/cb/313e80644ea407f04f6602a9e23096540d9dc1878755f3952ea8d3d104be/psutil-6.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e", size = 248777 }, + { url = "https://files.pythonhosted.org/packages/65/8e/bcbe2025c587b5d703369b6a75b65d41d1367553da6e3f788aff91eaf5bd/psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38", size = 284259 }, + { url = "https://files.pythonhosted.org/packages/58/4d/8245e6f76a93c98aab285a43ea71ff1b171bcd90c9d238bf81f7021fb233/psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b", size = 287255 }, + { url = "https://files.pythonhosted.org/packages/27/c2/d034856ac47e3b3cdfa9720d0e113902e615f4190d5d1bdb8df4b2015fb2/psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a", size = 288804 }, +] + +[[package]] +name = "py-cpuinfo" +version = "9.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/37/a8/d832f7293ebb21690860d2e01d8115e5ff6f2ae8bbdc953f0eb0fa4bd2c7/py-cpuinfo-9.0.0.tar.gz", hash = "sha256:3cdbbf3fac90dc6f118bfd64384f309edeadd902d7c8fb17f02ffa1fc3f49690", size = 104716 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl", hash = "sha256:859625bc251f64e21f077d099d4162689c762b5d6a4c3c97553d56241c9674d5", size = 22335 }, +] + +[[package]] +name = "pyarrow" +version = "18.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7f/7b/640785a9062bb00314caa8a387abce547d2a420cf09bd6c715fe659ccffb/pyarrow-18.1.0.tar.gz", hash = "sha256:9386d3ca9c145b5539a1cfc75df07757dff870168c959b473a0bccbc3abc8c73", size = 1118671 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/bb/8d4a1573f66e0684f190dd2b55fd0b97a7214de8882d58a3867e777bf640/pyarrow-18.1.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:e21488d5cfd3d8b500b3238a6c4b075efabc18f0f6d80b29239737ebd69caa6c", size = 29531620 }, + { url = "https://files.pythonhosted.org/packages/30/90/893acfad917533b624a97b9e498c0e8393908508a0a72d624fe935e632bf/pyarrow-18.1.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:b516dad76f258a702f7ca0250885fc93d1fa5ac13ad51258e39d402bd9e2e1e4", size = 30836521 }, + { url = "https://files.pythonhosted.org/packages/a3/2a/526545a7464b5fb2fa6e2c4bad16ca90e59e1843025c534fd907b7f73e5a/pyarrow-18.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f443122c8e31f4c9199cb23dca29ab9427cef990f283f80fe15b8e124bcc49b", size = 39213905 }, + { url = "https://files.pythonhosted.org/packages/8a/77/4b3fab91a30e19e233e738d0c5eca5a8f6dd05758bc349a2ca262c65de79/pyarrow-18.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0a03da7f2758645d17b7b4f83c8bffeae5bbb7f974523fe901f36288d2eab71", size = 40128881 }, + { url = "https://files.pythonhosted.org/packages/aa/e2/a88e16c5e45e562449c52305bd3bc2f9d704295322d3434656e7ccac1444/pyarrow-18.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ba17845efe3aa358ec266cf9cc2800fa73038211fb27968bfa88acd09261a470", size = 38627517 }, + { url = "https://files.pythonhosted.org/packages/6d/84/8037c20005ccc7b869726465be0957bd9c29cfc88612962030f08292ad06/pyarrow-18.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:3c35813c11a059056a22a3bef520461310f2f7eea5c8a11ef9de7062a23f8d56", size = 40060187 }, + { url = "https://files.pythonhosted.org/packages/9e/4d/a4988e7d82f4fbc797715db4185939a658eeffb07a25bab7262bed1ea076/pyarrow-18.1.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:eaeabf638408de2772ce3d7793b2668d4bb93807deed1725413b70e3156a7854", size = 29554860 }, + { url = "https://files.pythonhosted.org/packages/59/03/3a42c5c1e4bd4c900ab62aa1ff6b472bdb159ba8f1c3e5deadab7222244f/pyarrow-18.1.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:3b2e2239339c538f3464308fd345113f886ad031ef8266c6f004d49769bb074c", size = 30867076 }, + { url = "https://files.pythonhosted.org/packages/75/7e/332055ac913373e89256dce9d14b7708f55f7bd5be631456c897f0237738/pyarrow-18.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f39a2e0ed32a0970e4e46c262753417a60c43a3246972cfc2d3eb85aedd01b21", size = 39212135 }, + { url = "https://files.pythonhosted.org/packages/8c/64/5099cdb325828722ef7ffeba9a4696f238eb0cdeae227f831c2d77fcf1bd/pyarrow-18.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e31e9417ba9c42627574bdbfeada7217ad8a4cbbe45b9d6bdd4b62abbca4c6f6", size = 40125195 }, + { url = "https://files.pythonhosted.org/packages/83/88/1938d783727db1b178ff71bc6a6143d7939e406db83a9ec23cad3dad325c/pyarrow-18.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:01c034b576ce0eef554f7c3d8c341714954be9b3f5d5bc7117006b85fcf302fe", size = 38641884 }, + { url = "https://files.pythonhosted.org/packages/5e/b5/9e14e9f7590e0eaa435ecea84dabb137284a4dbba7b3c337b58b65b76d95/pyarrow-18.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f266a2c0fc31995a06ebd30bcfdb7f615d7278035ec5b1cd71c48d56daaf30b0", size = 40076877 }, + { url = "https://files.pythonhosted.org/packages/6a/50/12829e7111b932581e51dda51d5cb39207a056c30fe31ef43f14c63c4d7e/pyarrow-18.1.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:9f3a76670b263dc41d0ae877f09124ab96ce10e4e48f3e3e4257273cee61ad0d", size = 29514620 }, + { url = "https://files.pythonhosted.org/packages/d1/41/468c944eab157702e96abab3d07b48b8424927d4933541ab43788bb6964d/pyarrow-18.1.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:da31fbca07c435be88a0c321402c4e31a2ba61593ec7473630769de8346b54ee", size = 30856494 }, + { url = "https://files.pythonhosted.org/packages/68/f9/29fb659b390312a7345aeb858a9d9c157552a8852522f2c8bad437c29c0a/pyarrow-18.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:543ad8459bc438efc46d29a759e1079436290bd583141384c6f7a1068ed6f992", size = 39203624 }, + { url = "https://files.pythonhosted.org/packages/6e/f6/19360dae44200e35753c5c2889dc478154cd78e61b1f738514c9f131734d/pyarrow-18.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0743e503c55be0fdb5c08e7d44853da27f19dc854531c0570f9f394ec9671d54", size = 40139341 }, + { url = "https://files.pythonhosted.org/packages/bb/e6/9b3afbbcf10cc724312e824af94a2e993d8ace22994d823f5c35324cebf5/pyarrow-18.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d4b3d2a34780645bed6414e22dda55a92e0fcd1b8a637fba86800ad737057e33", size = 38618629 }, + { url = "https://files.pythonhosted.org/packages/3a/2e/3b99f8a3d9e0ccae0e961978a0d0089b25fb46ebbcfb5ebae3cca179a5b3/pyarrow-18.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c52f81aa6f6575058d8e2c782bf79d4f9fdc89887f16825ec3a66607a5dd8e30", size = 40078661 }, + { url = "https://files.pythonhosted.org/packages/cb/87/aa4d249732edef6ad88899399047d7e49311a55749d3c373007d034ee471/pyarrow-18.1.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:84e314d22231357d473eabec709d0ba285fa706a72377f9cc8e1cb3c8013813b", size = 29497406 }, + { url = "https://files.pythonhosted.org/packages/3c/c7/ed6adb46d93a3177540e228b5ca30d99fc8ea3b13bdb88b6f8b6467e2cb7/pyarrow-18.1.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:f591704ac05dfd0477bb8f8e0bd4b5dc52c1cadf50503858dce3a15db6e46ff2", size = 30835095 }, + { url = "https://files.pythonhosted.org/packages/41/d7/ed85001edfb96200ff606943cff71d64f91926ab42828676c0fc0db98963/pyarrow-18.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acb7564204d3c40babf93a05624fc6a8ec1ab1def295c363afc40b0c9e66c191", size = 39194527 }, + { url = "https://files.pythonhosted.org/packages/59/16/35e28eab126342fa391593415d79477e89582de411bb95232f28b131a769/pyarrow-18.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74de649d1d2ccb778f7c3afff6085bd5092aed4c23df9feeb45dd6b16f3811aa", size = 40131443 }, + { url = "https://files.pythonhosted.org/packages/0c/95/e855880614c8da20f4cd74fa85d7268c725cf0013dc754048593a38896a0/pyarrow-18.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:f96bd502cb11abb08efea6dab09c003305161cb6c9eafd432e35e76e7fa9b90c", size = 38608750 }, + { url = "https://files.pythonhosted.org/packages/54/9d/f253554b1457d4fdb3831b7bd5f8f00f1795585a606eabf6fec0a58a9c38/pyarrow-18.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:36ac22d7782554754a3b50201b607d553a8d71b78cdf03b33c1125be4b52397c", size = 40066690 }, + { url = "https://files.pythonhosted.org/packages/82/f9/d06ddc06cab1ada0c2f2fd205ac8c25c2701182de1b9c4bf7a0a44844431/pyarrow-18.1.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a276190309aba7bc9d5bd2933230458b3521a4317acfefe69a354f2fe59f2bc", size = 29525542 }, + { url = "https://files.pythonhosted.org/packages/ab/94/8917e3b961810587ecbdaa417f8ebac0abb25105ae667b7aa11c05876976/pyarrow-18.1.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:ad514dbfcffe30124ce655d72771ae070f30bf850b48bc4d9d3b25993ee0e386", size = 30829412 }, + { url = "https://files.pythonhosted.org/packages/5e/e3/3b16c3190f3d71d3b10f6758d2d5f7779ef008c4fd367cedab3ed178a9f7/pyarrow-18.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aebc13a11ed3032d8dd6e7171eb6e86d40d67a5639d96c35142bd568b9299324", size = 39119106 }, + { url = "https://files.pythonhosted.org/packages/1d/d6/5d704b0d25c3c79532f8c0639f253ec2803b897100f64bcb3f53ced236e5/pyarrow-18.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6cf5c05f3cee251d80e98726b5c7cc9f21bab9e9783673bac58e6dfab57ecc8", size = 40090940 }, + { url = "https://files.pythonhosted.org/packages/37/29/366bc7e588220d74ec00e497ac6710c2833c9176f0372fe0286929b2d64c/pyarrow-18.1.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:11b676cd410cf162d3f6a70b43fb9e1e40affbc542a1e9ed3681895f2962d3d9", size = 38548177 }, + { url = "https://files.pythonhosted.org/packages/c8/11/fabf6ecabb1fe5b7d96889228ca2a9158c4c3bb732e3b8ee3f7f6d40b703/pyarrow-18.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:b76130d835261b38f14fc41fdfb39ad8d672afb84c447126b84d5472244cfaba", size = 40043567 }, +] + +[[package]] +name = "pybind11" +version = "2.13.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d2/c1/72b9622fcb32ff98b054f724e213c7f70d6898baa714f4516288456ceaba/pybind11-2.13.6.tar.gz", hash = "sha256:ba6af10348c12b24e92fa086b39cfba0eff619b61ac77c406167d813b096d39a", size = 218403 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/2f/0f24b288e2ce56f51c920137620b4434a38fd80583dbbe24fc2a1656c388/pybind11-2.13.6-py3-none-any.whl", hash = "sha256:237c41e29157b962835d356b370ededd57594a26d5894a795960f0047cb5caf5", size = 243282 }, +] + +[[package]] +name = "pycparser" +version = "2.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552 }, +] + +[[package]] +name = "pyct" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "param", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/3b/b5b9d4215bc98df9186a5dfb9f2b4ce6db0b33b1728f63143f1431542e20/pyct-0.5.0.tar.gz", hash = "sha256:dd9f4ac5cbd8e37c352c04036062d3c5f67efec76d404761ef16b0cbf26aa6a0", size = 15837 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/e7/c7c1e9e1b6b23ca1db7af3c6826d57d8da883021f751edcc9c82143b127a/pyct-0.5.0-py2.py3-none-any.whl", hash = "sha256:a4038a8885059ab8cac6f946ea30e0b5e6bdbe0b92b6723f06737035f9d65e8c", size = 15750 }, +] + +[[package]] +name = "pydot" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyparsing", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/85/10/4e4da8c271540dc35914e927546cbb821397f0f9477f4079cd8732946699/pydot-3.0.2.tar.gz", hash = "sha256:9180da540b51b3aa09fbf81140b3edfbe2315d778e8589a7d0a4a69c41332bae", size = 167979 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/e4/463fd46922e0b0b369305662f85f1c70dcc1cde1584906cf8defed8308a3/pydot-3.0.2-py3-none-any.whl", hash = "sha256:99cedaa55d04abb0b2bc56d9981a6da781053dd5ac75c428e8dd53db53f90b14", size = 35773 }, +] + +[[package]] +name = "pygments" +version = "2.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", size = 4891905 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 }, +] + +[[package]] +name = "pyparsing" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/d5/e5aeee5387091148a19e1145f63606619cb5f20b83fccb63efae6474e7b2/pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c", size = 920984 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84", size = 106921 }, +] + +[[package]] +name = "pyproj" +version = "3.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/c2/0572c8e31aebf0270f15f3368adebd10fc473de9f09567a0743a3bc41c8d/pyproj-3.7.0.tar.gz", hash = "sha256:bf658f4aaf815d9d03c8121650b6f0b8067265c36e31bc6660b98ef144d81813", size = 225577 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/fa/8a769da6bb8e26b1028c19d048b88373a40bd8e17a893e07b9889d1aed03/pyproj-3.7.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:d5c7e7d24b967e328a5efd013f466804a1f226d1106ac7efc47dcc99360dbc8f", size = 6270121 }, + { url = "https://files.pythonhosted.org/packages/82/65/ee312dc4cdd2499cc5984144e05c582604afd76ba01289d89d74b50ab654/pyproj-3.7.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:448958c46bd3fe2da91c89ba551ac5835e63073ca861422c6eb1af89979dfab1", size = 4633387 }, + { url = "https://files.pythonhosted.org/packages/f8/0d/d300194f021e3d56b30bb45bd19447bb00761c62f5342371bd389b774f82/pyproj-3.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f673ca345bb92afc93d4235938ca0c9a76237aa7addf42a95965c8dc8cad9b49", size = 6330358 }, + { url = "https://files.pythonhosted.org/packages/52/30/c82c12cea9a5c17fac146212cd914ec587f646eef91986dcb7f629fe0f7f/pyproj-3.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee60895f60cbd1a9c903ab2bc22adea63004296a1c28b8775a11cf50905cf085", size = 9227537 }, + { url = "https://files.pythonhosted.org/packages/e2/8f/15ff6ab10a08050e94afcd544962a1a930d0bb7ca102ad39795a847eb340/pyproj-3.7.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:e66d8d42dbdf232e121546c5a1dec097caf0454e4885c09a8e03cdcee0753c03", size = 6272213 }, + { url = "https://files.pythonhosted.org/packages/2d/4d/610fe2a17de71b4fe210af69ce25f2d65379ba0a48299129894d0d0988ee/pyproj-3.7.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:7764b64a0aefe40134a2828b3a40be88f6c8b7832c45d8a9f2bd592ace4b2a3b", size = 4634548 }, + { url = "https://files.pythonhosted.org/packages/d6/27/0327d0b0fcdfc4cf72696a2effca2963e524dcd846a0274ba503f8bf2648/pyproj-3.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53c442c5081dc95346996f5c4323fde2caafc69c6e60b4707aa46e88244f1e04", size = 6333913 }, + { url = "https://files.pythonhosted.org/packages/3c/e5/2cb256148c730b9c3f74bfb3c03904f5070499c6dcaea153073a9642c6c6/pyproj-3.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc5b305d4d5d7697885681d9b660623e328227612823d5c660e0a9566cb48838", size = 9460363 }, + { url = "https://files.pythonhosted.org/packages/bd/19/be806b711e9ebfb80411c653054157db128fffdd7f8493e3064136c8d880/pyproj-3.7.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:8cbec92bdd6e9933ca08795c12717d1384e9b51cf4b1acf0d753db255a75c51e", size = 6261400 }, + { url = "https://files.pythonhosted.org/packages/99/3b/8497995e8cae0049d013679c6a7ac6c57b816d590c733a388748dafe5af5/pyproj-3.7.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8c4a8e4d3ba76c3adac3c087544cf92f7f9a19ea34946904a13fca48cc1c0106", size = 4637848 }, + { url = "https://files.pythonhosted.org/packages/ea/f7/2a5b46d6f8da913d58d44942ab06ca4803b5424b73259b15344cf90040f6/pyproj-3.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82624fb42aa31f6b1a860fbc0316babd07fd712642bc31022df4e9b4056bf463", size = 6324856 }, + { url = "https://files.pythonhosted.org/packages/36/83/c257771077bcf9da20d0e97abc834f9037c219986cc76d40183903a30464/pyproj-3.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34e1bbb3f89c68d4a6835c40b2da8b27680eec60e8cc7cdb08c09bcc725b2b62", size = 9525831 }, + { url = "https://files.pythonhosted.org/packages/bf/da/a17c452bea1ff4cd58d6dc573055b9c8fb6af114b7d2c694782aec770865/pyproj-3.7.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:94e8b903a9e83448fd2379c49dec3e8cd83c9ed36f54354e68b601cef56d5426", size = 6254898 }, + { url = "https://files.pythonhosted.org/packages/c2/31/ab07b389f2caa527c95ab2ea1940d28879bd2a19e67b2529cb3e94648d26/pyproj-3.7.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:64cb5c17d6f6305a8b978a40f95560c87c5b363fcac40632337955664437875a", size = 4628612 }, + { url = "https://files.pythonhosted.org/packages/1d/24/def3ded6529db3e3d8351ad73481730249ab57d8d876d502f86d7958ce06/pyproj-3.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c54e9bdda7ab9c4a5af50f9d6e6ee7704e05fafd504896b96ed1208c7aea098", size = 6315895 }, + { url = "https://files.pythonhosted.org/packages/dd/14/07314f78302105d199fb25e73376d723efe9c2ef3906463aae209913a6d3/pyproj-3.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24fa4e9e0abba875f9524808410cc520067eaf38fd5549ed0ef7c43ac39923c9", size = 9466144 }, +] + +[[package]] +name = "pyproject-api" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bb/19/441e0624a8afedd15bbcce96df1b80479dd0ff0d965f5ce8fde4f2f6ffad/pyproject_api-1.8.0.tar.gz", hash = "sha256:77b8049f2feb5d33eefcc21b57f1e279636277a8ac8ad6b5871037b243778496", size = 22340 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/f4/3c4ddfcc0c19c217c6de513842d286de8021af2f2ab79bbb86c00342d778/pyproject_api-1.8.0-py3-none-any.whl", hash = "sha256:3d7d347a047afe796fd5d1885b1e391ba29be7169bd2f102fcd378f04273d228", size = 13100 }, +] + +[[package]] +name = "pyreadline" +version = "2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bc/7c/d724ef1ec3ab2125f38a1d53285745445ec4a8f19b9bb0761b4064316679/pyreadline-2.1.zip", hash = "sha256:4530592fc2e85b25b1a9f79664433da09237c1a270e4d78ea5aa3a2c7229e2d1", size = 109189 } + +[[package]] +name = "pyshp" +version = "2.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/63/9f/0dd21250c60375a532c35e89fad8d5e8a3f1a2e3f7c389ccc5a60b05263e/pyshp-2.3.1.tar.gz", hash = "sha256:4caec82fd8dd096feba8217858068bacb2a3b5950f43c048c6dc32a3489d5af1", size = 1731544 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/2f/68116db5b36b895c0450e3072b8cb6c2fac0359279b182ea97014d3c8ac0/pyshp-2.3.1-py2.py3-none-any.whl", hash = "sha256:67024c0ccdc352ba5db777c4e968483782dfa78f8e200672a90d2d30fd8b7b49", size = 46537 }, +] + +[[package]] +name = "pytest" +version = "8.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "exceptiongroup", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "iniconfig", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pluggy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8b/6c/62bbd536103af674e227c41a8f3dcd022d591f6eed5facb5a0f31ee33bbc/pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181", size = 1442487 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6b/77/7440a06a8ead44c7757a64362dd22df5760f9b12dc5f11b6188cd2fc27a0/pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2", size = 342341 }, +] + +[[package]] +name = "pytest-benchmark" +version = "5.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "py-cpuinfo", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/39/d0/a8bd08d641b393db3be3819b03e2d9bb8760ca8479080a26a5f6e540e99c/pytest-benchmark-5.1.0.tar.gz", hash = "sha256:9ea661cdc292e8231f7cd4c10b0319e56a2118e2c09d9f50e1b3d150d2aca105", size = 337810 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/d6/b41653199ea09d5969d4e385df9bbfd9a100f28ca7e824ce7c0a016e3053/pytest_benchmark-5.1.0-py3-none-any.whl", hash = "sha256:922de2dfa3033c227c96da942d1878191afa135a29485fb942e85dff1c592c89", size = 44259 }, +] + +[[package]] +name = "pytest-cache" +version = "1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "execnet", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d1/15/082fd0428aab33d2bafa014f3beb241830427ba803a8912a5aaeaf3a5663/pytest-cache-1.0.tar.gz", hash = "sha256:be7468edd4d3d83f1e844959fd6e3fd28e77a481440a7118d430130ea31b07a9", size = 16242 } + +[[package]] +name = "pytest-cov" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage", extra = ["toml"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/be/45/9b538de8cef30e17c7b45ef42f538a94889ed6a16f2387a6c89e73220651/pytest-cov-6.0.0.tar.gz", hash = "sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0", size = 66945 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/3b/48e79f2cd6a61dbbd4807b4ed46cb564b4fd50a76166b1c4ea5c1d9e2371/pytest_cov-6.0.0-py3-none-any.whl", hash = "sha256:eee6f1b9e61008bd34975a4d5bab25801eb31898b032dd55addc93e96fcaaa35", size = 22949 }, +] + +[[package]] +name = "pytest-factoryboy" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "factory-boy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "inflection", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/bc/179653e8cce651575ac95377e4fdf9afd3c4821ab4bba101aae913ebcc27/pytest_factoryboy-2.7.0.tar.gz", hash = "sha256:67fc54ec8669a3feb8ac60094dd57cd71eb0b20b2c319d2957873674c776a77b", size = 17398 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/56/d3ef25286dc8df9d1da0b325ee4b1b1ffd9736e44f9b30cfbe464e9f4f14/pytest_factoryboy-2.7.0-py3-none-any.whl", hash = "sha256:bf3222db22d954fbf46f4bff902a0a8d82f3fc3594a47c04bbdc0546ff4c59a6", size = 16268 }, +] + +[[package]] +name = "pytest-mpi" +version = "0.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6c/db/b9d4b23750eb91865787656dce02a2864397aa1ee130df00ec73d3954e7e/pytest-mpi-0.6.tar.gz", hash = "sha256:09b3cd3511f8f3cd4d205f54d4a7223724fed0ab68b872ed1123d312152325a9", size = 35329 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/2b/0ed49de84e96ebf771c86a16d88b48c08d291627cfcdce30973f8538c99e/pytest_mpi-0.6-py2.py3-none-any.whl", hash = "sha256:1b7e193fb3be31d08c8e4dd7435e8e13e14b17ead6a6fc6aa07a6d3c7145590b", size = 5907 }, +] + +[[package]] +name = "pytest-xdist" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "execnet", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/82/1d96bf03ee4c0fdc3c0cbe61470070e659ca78dc0086fb88b66c185e2449/pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7", size = 46108 }, +] + +[package.optional-dependencies] +psutil = [ + { name = "psutil", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, +] + +[[package]] +name = "pytz" +version = "2024.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/31/3c70bf7603cc2dca0f19bdc53b4537a797747a58875b552c8c413d963a3f/pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", size = 319692 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725", size = 508002 }, +] + +[[package]] +name = "pyviz-comms" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "param", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0d/d6/21460c434d01fe94bd97b9a5b41726ae79b68024b634dcaf7d77f8254c6f/pyviz_comms-3.0.3.tar.gz", hash = "sha256:fde4a017c2213ecee63a9a6741431c845e42a5c7b1588e4a7ba2e4370c583728", size = 196501 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/3e/5a36494314e4780362b15a7e190095eec68366a0d512b5b532607c213a26/pyviz_comms-3.0.3-py3-none-any.whl", hash = "sha256:fd26951eebc7950106d481655d91ba06296d4cf352dffb1d03f88f959832448e", size = 83530 }, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/95/a3fac87cb7158e231b5a6012e438c647e1a87f09f8e0d123acec8ab8bf71/PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", size = 184199 }, + { url = "https://files.pythonhosted.org/packages/c7/7a/68bd47624dab8fd4afbfd3c48e3b79efe09098ae941de5b58abcbadff5cb/PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", size = 171758 }, + { url = "https://files.pythonhosted.org/packages/49/ee/14c54df452143b9ee9f0f29074d7ca5516a36edb0b4cc40c3f280131656f/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", size = 718463 }, + { url = "https://files.pythonhosted.org/packages/4d/61/de363a97476e766574650d742205be468921a7b532aa2499fcd886b62530/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", size = 719280 }, + { url = "https://files.pythonhosted.org/packages/6b/4e/1523cb902fd98355e2e9ea5e5eb237cbc5f3ad5f3075fa65087aa0ecb669/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", size = 751239 }, + { url = "https://files.pythonhosted.org/packages/b7/33/5504b3a9a4464893c32f118a9cc045190a91637b119a9c881da1cf6b7a72/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", size = 695802 }, + { url = "https://files.pythonhosted.org/packages/5c/20/8347dcabd41ef3a3cdc4f7b7a2aff3d06598c8779faa189cdbf878b626a4/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", size = 720527 }, + { url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612 }, + { url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040 }, + { url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829 }, + { url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167 }, + { url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952 }, + { url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301 }, + { url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638 }, + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 }, + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, +] + +[[package]] +name = "requests" +version = "2.32.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "charset-normalizer", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "idna", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "urllib3", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, +] + +[[package]] +name = "rich" +version = "13.9.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pygments", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 }, +] + +[[package]] +name = "ruamel-yaml" +version = "0.18.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ruamel-yaml-clib", marker = "(python_full_version < '3.13' and platform_python_implementation == 'CPython' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_python_implementation == 'CPython' and sys_platform == 'linux')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/29/81/4dfc17eb6ebb1aac314a3eb863c1325b907863a1b8b1382cdffcb6ac0ed9/ruamel.yaml-0.18.6.tar.gz", hash = "sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b", size = 143362 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/67/8ece580cc363331d9a53055130f86b096bf16e38156e33b1d3014fffda6b/ruamel.yaml-0.18.6-py3-none-any.whl", hash = "sha256:57b53ba33def16c4f3d807c0ccbc00f8a6081827e81ba2491691b76882d0c636", size = 117761 }, +] + +[[package]] +name = "ruamel-yaml-clib" +version = "0.2.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/84/80203abff8ea4993a87d823a5f632e4d92831ef75d404c9fc78d0176d2b5/ruamel.yaml.clib-0.2.12.tar.gz", hash = "sha256:6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f", size = 225315 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/57/40a958e863e299f0c74ef32a3bde9f2d1ea8d69669368c0c502a0997f57f/ruamel.yaml.clib-0.2.12-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:11f891336688faf5156a36293a9c362bdc7c88f03a8a027c2c1d8e0bcde998e5", size = 131301 }, + { url = "https://files.pythonhosted.org/packages/98/a8/29a3eb437b12b95f50a6bcc3d7d7214301c6c529d8fdc227247fa84162b5/ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:a606ef75a60ecf3d924613892cc603b154178ee25abb3055db5062da811fd969", size = 633728 }, + { url = "https://files.pythonhosted.org/packages/35/6d/ae05a87a3ad540259c3ad88d71275cbd1c0f2d30ae04c65dcbfb6dcd4b9f/ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd5415dded15c3822597455bc02bcd66e81ef8b7a48cb71a33628fc9fdde39df", size = 722230 }, + { url = "https://files.pythonhosted.org/packages/7f/b7/20c6f3c0b656fe609675d69bc135c03aac9e3865912444be6339207b6648/ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f66efbc1caa63c088dead1c4170d148eabc9b80d95fb75b6c92ac0aad2437d76", size = 686712 }, + { url = "https://files.pythonhosted.org/packages/cd/11/d12dbf683471f888d354dac59593873c2b45feb193c5e3e0f2ebf85e68b9/ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22353049ba4181685023b25b5b51a574bce33e7f51c759371a7422dcae5402a6", size = 663936 }, + { url = "https://files.pythonhosted.org/packages/72/14/4c268f5077db5c83f743ee1daeb236269fa8577133a5cfa49f8b382baf13/ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:932205970b9f9991b34f55136be327501903f7c66830e9760a8ffb15b07f05cd", size = 696580 }, + { url = "https://files.pythonhosted.org/packages/fb/8f/683c6ad562f558cbc4f7c029abcd9599148c51c54b5ef0f24f2638da9fbb/ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6", size = 132224 }, + { url = "https://files.pythonhosted.org/packages/3c/d2/b79b7d695e2f21da020bd44c782490578f300dd44f0a4c57a92575758a76/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:d84318609196d6bd6da0edfa25cedfbabd8dbde5140a0a23af29ad4b8f91fb1e", size = 641480 }, + { url = "https://files.pythonhosted.org/packages/68/6e/264c50ce2a31473a9fdbf4fa66ca9b2b17c7455b31ef585462343818bd6c/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb43a269eb827806502c7c8efb7ae7e9e9d0573257a46e8e952f4d4caba4f31e", size = 739068 }, + { url = "https://files.pythonhosted.org/packages/86/29/88c2567bc893c84d88b4c48027367c3562ae69121d568e8a3f3a8d363f4d/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:811ea1594b8a0fb466172c384267a4e5e367298af6b228931f273b111f17ef52", size = 703012 }, + { url = "https://files.pythonhosted.org/packages/11/46/879763c619b5470820f0cd6ca97d134771e502776bc2b844d2adb6e37753/ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cf12567a7b565cbf65d438dec6cfbe2917d3c1bdddfce84a9930b7d35ea59642", size = 704352 }, + { url = "https://files.pythonhosted.org/packages/02/80/ece7e6034256a4186bbe50dee28cd032d816974941a6abf6a9d65e4228a7/ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7dd5adc8b930b12c8fc5b99e2d535a09889941aa0d0bd06f4749e9a9397c71d2", size = 737344 }, + { url = "https://files.pythonhosted.org/packages/48/41/e7a405afbdc26af961678474a55373e1b323605a4f5e2ddd4a80ea80f628/ruamel.yaml.clib-0.2.12-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:20b0f8dc160ba83b6dcc0e256846e1a02d044e13f7ea74a3d1d56ede4e48c632", size = 133433 }, + { url = "https://files.pythonhosted.org/packages/ec/b0/b850385604334c2ce90e3ee1013bd911aedf058a934905863a6ea95e9eb4/ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:943f32bc9dedb3abff9879edc134901df92cfce2c3d5c9348f172f62eb2d771d", size = 647362 }, + { url = "https://files.pythonhosted.org/packages/44/d0/3f68a86e006448fb6c005aee66565b9eb89014a70c491d70c08de597f8e4/ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95c3829bb364fdb8e0332c9931ecf57d9be3519241323c5274bd82f709cebc0c", size = 754118 }, + { url = "https://files.pythonhosted.org/packages/52/a9/d39f3c5ada0a3bb2870d7db41901125dbe2434fa4f12ca8c5b83a42d7c53/ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:749c16fcc4a2b09f28843cda5a193e0283e47454b63ec4b81eaa2242f50e4ccd", size = 706497 }, + { url = "https://files.pythonhosted.org/packages/b0/fa/097e38135dadd9ac25aecf2a54be17ddf6e4c23e43d538492a90ab3d71c6/ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bf165fef1f223beae7333275156ab2022cffe255dcc51c27f066b4370da81e31", size = 698042 }, + { url = "https://files.pythonhosted.org/packages/ec/d5/a659ca6f503b9379b930f13bc6b130c9f176469b73b9834296822a83a132/ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:32621c177bbf782ca5a18ba4d7af0f1082a3f6e517ac2a18b3974d4edf349680", size = 745831 }, + { url = "https://files.pythonhosted.org/packages/29/00/4864119668d71a5fa45678f380b5923ff410701565821925c69780356ffa/ruamel.yaml.clib-0.2.12-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4c8c5d82f50bb53986a5e02d1b3092b03622c02c2eb78e29bec33fd9593bae1a", size = 132011 }, + { url = "https://files.pythonhosted.org/packages/7f/5e/212f473a93ae78c669ffa0cb051e3fee1139cb2d385d2ae1653d64281507/ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux2014_aarch64.whl", hash = "sha256:e7e3736715fbf53e9be2a79eb4db68e4ed857017344d697e8b9749444ae57475", size = 642488 }, + { url = "https://files.pythonhosted.org/packages/1f/8f/ecfbe2123ade605c49ef769788f79c38ddb1c8fa81e01f4dbf5cf1a44b16/ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7e75b4965e1d4690e93021adfcecccbca7d61c7bddd8e22406ef2ff20d74ef", size = 745066 }, + { url = "https://files.pythonhosted.org/packages/e2/a9/28f60726d29dfc01b8decdb385de4ced2ced9faeb37a847bd5cf26836815/ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96777d473c05ee3e5e3c3e999f5d23c6f4ec5b0c38c098b3a5229085f74236c6", size = 701785 }, + { url = "https://files.pythonhosted.org/packages/84/7e/8e7ec45920daa7f76046578e4f677a3215fe8f18ee30a9cb7627a19d9b4c/ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:3bc2a80e6420ca8b7d3590791e2dfc709c88ab9152c00eeb511c9875ce5778bf", size = 693017 }, + { url = "https://files.pythonhosted.org/packages/c5/b3/d650eaade4ca225f02a648321e1ab835b9d361c60d51150bac49063b83fa/ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e188d2699864c11c36cdfdada94d781fd5d6b0071cd9c427bceb08ad3d7c70e1", size = 741270 }, +] + +[[package]] +name = "ruff" +version = "0.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/d6/a2373f3ba7180ddb44420d2a9d1f1510e1a4d162b3d27282bedcb09c8da9/ruff-0.8.0.tar.gz", hash = "sha256:a7ccfe6331bf8c8dad715753e157457faf7351c2b69f62f32c165c2dbcbacd44", size = 3276537 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/77/e889ee3ce7fd8baa3ed1b77a03b9fb8ec1be68be1418261522fd6a5405e0/ruff-0.8.0-py3-none-linux_armv6l.whl", hash = "sha256:fcb1bf2cc6706adae9d79c8d86478677e3bbd4ced796ccad106fd4776d395fea", size = 10518283 }, + { url = "https://files.pythonhosted.org/packages/da/c8/0a47de01edf19fb22f5f9b7964f46a68d0bdff20144d134556ffd1ba9154/ruff-0.8.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:295bb4c02d58ff2ef4378a1870c20af30723013f441c9d1637a008baaf928c8b", size = 10317691 }, + { url = "https://files.pythonhosted.org/packages/41/17/9885e4a0eeae07abd2a4ebabc3246f556719f24efa477ba2739146c4635a/ruff-0.8.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7b1f1c76b47c18fa92ee78b60d2d20d7e866c55ee603e7d19c1e991fad933a9a", size = 9940999 }, + { url = "https://files.pythonhosted.org/packages/3e/cd/46b6f7043597eb318b5f5482c8ae8f5491cccce771e85f59d23106f2d179/ruff-0.8.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb0d4f250a7711b67ad513fde67e8870109e5ce590a801c3722580fe98c33a99", size = 10772437 }, + { url = "https://files.pythonhosted.org/packages/5d/87/afc95aeb8bc78b1d8a3461717a4419c05aa8aa943d4c9cbd441630f85584/ruff-0.8.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e55cce9aa93c5d0d4e3937e47b169035c7e91c8655b0974e61bb79cf398d49c", size = 10299156 }, + { url = "https://files.pythonhosted.org/packages/65/fa/04c647bb809c4d65e8eae1ed1c654d9481b21dd942e743cd33511687b9f9/ruff-0.8.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f4cd64916d8e732ce6b87f3f5296a8942d285bbbc161acee7fe561134af64f9", size = 11325819 }, + { url = "https://files.pythonhosted.org/packages/90/26/7dad6e7d833d391a8a1afe4ee70ca6f36c4a297d3cca83ef10e83e9aacf3/ruff-0.8.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c5c1466be2a2ebdf7c5450dd5d980cc87c8ba6976fb82582fea18823da6fa362", size = 12023927 }, + { url = "https://files.pythonhosted.org/packages/24/a0/be5296dda6428ba8a13bda8d09fbc0e14c810b485478733886e61597ae2b/ruff-0.8.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2dabfd05b96b7b8f2da00d53c514eea842bff83e41e1cceb08ae1966254a51df", size = 11589702 }, + { url = "https://files.pythonhosted.org/packages/26/3f/7602eb11d2886db545834182a9dbe500b8211fcbc9b4064bf9d358bbbbb4/ruff-0.8.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:facebdfe5a5af6b1588a1d26d170635ead6892d0e314477e80256ef4a8470cf3", size = 12782936 }, + { url = "https://files.pythonhosted.org/packages/4c/5d/083181bdec4ec92a431c1291d3fff65eef3ded630a4b55eb735000ef5f3b/ruff-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87a8e86bae0dbd749c815211ca11e3a7bd559b9710746c559ed63106d382bd9c", size = 11138488 }, + { url = "https://files.pythonhosted.org/packages/b7/23/c12cdef58413cee2436d6a177aa06f7a366ebbca916cf10820706f632459/ruff-0.8.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:85e654f0ded7befe2d61eeaf3d3b1e4ef3894469cd664ffa85006c7720f1e4a2", size = 10744474 }, + { url = "https://files.pythonhosted.org/packages/29/61/a12f3b81520083cd7c5caa24ba61bb99fd1060256482eff0ef04cc5ccd1b/ruff-0.8.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:83a55679c4cb449fa527b8497cadf54f076603cc36779b2170b24f704171ce70", size = 10369029 }, + { url = "https://files.pythonhosted.org/packages/08/2a/c013f4f3e4a54596c369cee74c24870ed1d534f31a35504908b1fc97017a/ruff-0.8.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:812e2052121634cf13cd6fddf0c1871d0ead1aad40a1a258753c04c18bb71bbd", size = 10867481 }, + { url = "https://files.pythonhosted.org/packages/d5/f7/685b1e1d42a3e94ceb25eab23c70bdd8c0ab66a43121ef83fe6db5a58756/ruff-0.8.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:780d5d8523c04202184405e60c98d7595bdb498c3c6abba3b6d4cdf2ca2af426", size = 11237117 }, +] + +[[package]] +name = "scikit-learn" +version = "1.5.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "scipy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "threadpoolctl", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/37/59/44985a2bdc95c74e34fef3d10cb5d93ce13b0e2a7baefffe1b53853b502d/scikit_learn-1.5.2.tar.gz", hash = "sha256:b4237ed7b3fdd0a4882792e68ef2545d5baa50aca3bb45aa7df468138ad8f94d", size = 7001680 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/89/be41419b4bec629a4691183a5eb1796f91252a13a5ffa243fd958cad7e91/scikit_learn-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:299406827fb9a4f862626d0fe6c122f5f87f8910b86fe5daa4c32dcd742139b6", size = 12106070 }, + { url = "https://files.pythonhosted.org/packages/bf/e0/3b6d777d375f3b685f433c93384cdb724fb078e1dc8f8ff0950467e56c30/scikit_learn-1.5.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:2d4cad1119c77930b235579ad0dc25e65c917e756fe80cab96aa3b9428bd3fb0", size = 10971758 }, + { url = "https://files.pythonhosted.org/packages/7b/31/eb7dd56c371640753953277de11356c46a3149bfeebb3d7dcd90b993715a/scikit_learn-1.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c412ccc2ad9bf3755915e3908e677b367ebc8d010acbb3f182814524f2e5540", size = 12500080 }, + { url = "https://files.pythonhosted.org/packages/4c/1e/a7c7357e704459c7d56a18df4a0bf08669442d1f8878cc0864beccd6306a/scikit_learn-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a686885a4b3818d9e62904d91b57fa757fc2bed3e465c8b177be652f4dd37c8", size = 13347241 }, + { url = "https://files.pythonhosted.org/packages/ff/91/609961972f694cb9520c4c3d201e377a26583e1eb83bc5a334c893729214/scikit_learn-1.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:03b6158efa3faaf1feea3faa884c840ebd61b6484167c711548fce208ea09445", size = 12088580 }, + { url = "https://files.pythonhosted.org/packages/cd/7a/19fe32c810c5ceddafcfda16276d98df299c8649e24e84d4f00df4a91e01/scikit_learn-1.5.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1ff45e26928d3b4eb767a8f14a9a6efbf1cbff7c05d1fb0f95f211a89fd4f5de", size = 10975994 }, + { url = "https://files.pythonhosted.org/packages/4c/75/62e49f8a62bf3c60b0e64d0fce540578ee4f0e752765beb2e1dc7c6d6098/scikit_learn-1.5.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f763897fe92d0e903aa4847b0aec0e68cadfff77e8a0687cabd946c89d17e675", size = 12465782 }, + { url = "https://files.pythonhosted.org/packages/49/21/3723de321531c9745e40f1badafd821e029d346155b6c79704e0b7197552/scikit_learn-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8b0ccd4a902836493e026c03256e8b206656f91fbcc4fde28c57a5b752561f1", size = 13322034 }, + { url = "https://files.pythonhosted.org/packages/a4/db/b485c1ac54ff3bd9e7e6b39d3cc6609c4c76a65f52ab0a7b22b6c3ab0e9d/scikit_learn-1.5.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f932a02c3f4956dfb981391ab24bda1dbd90fe3d628e4b42caef3e041c67707a", size = 12110344 }, + { url = "https://files.pythonhosted.org/packages/54/1a/7deb52fa23aebb855431ad659b3c6a2e1709ece582cb3a63d66905e735fe/scikit_learn-1.5.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:3b923d119d65b7bd555c73be5423bf06c0105678ce7e1f558cb4b40b0a5502b1", size = 11033502 }, + { url = "https://files.pythonhosted.org/packages/a1/32/4a7a205b14c11225609b75b28402c196e4396ac754dab6a81971b811781c/scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f60021ec1574e56632be2a36b946f8143bf4e5e6af4a06d85281adc22938e0dd", size = 12085794 }, + { url = "https://files.pythonhosted.org/packages/c6/29/044048c5e911373827c0e1d3051321b9183b2a4f8d4e2f11c08fcff83f13/scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:394397841449853c2290a32050382edaec3da89e35b3e03d6cc966aebc6a8ae6", size = 12945797 }, + { url = "https://files.pythonhosted.org/packages/a4/50/8891028437858cc510e13578fe7046574a60c2aaaa92b02d64aac5b1b412/scikit_learn-1.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9a702e2de732bbb20d3bad29ebd77fc05a6b427dc49964300340e4c9328b3f5", size = 12025584 }, + { url = "https://files.pythonhosted.org/packages/d2/79/17feef8a1c14149436083bec0e61d7befb4812e272d5b20f9d79ea3e9ab1/scikit_learn-1.5.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:b0768ad641981f5d3a198430a1d31c3e044ed2e8a6f22166b4d546a5116d7908", size = 10959795 }, + { url = "https://files.pythonhosted.org/packages/b1/c8/f08313f9e2e656bd0905930ae8bf99a573ea21c34666a813b749c338202f/scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:178ddd0a5cb0044464fc1bfc4cca5b1833bfc7bb022d70b05db8530da4bb3dd3", size = 12077302 }, + { url = "https://files.pythonhosted.org/packages/a7/48/fbfb4dc72bed0fe31fe045fb30e924909ad03f717c36694351612973b1a9/scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7284ade780084d94505632241bf78c44ab3b6f1e8ccab3d2af58e0e950f9c12", size = 13002811 }, +] + +[[package]] +name = "scipy" +version = "1.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/62/11/4d44a1f274e002784e4dbdb81e0ea96d2de2d1045b2132d5af62cc31fd28/scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417", size = 58620554 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/68/3bc0cfaf64ff507d82b1e5d5b64521df4c8bf7e22bc0b897827cbee9872c/scipy-1.14.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389", size = 39069598 }, + { url = "https://files.pythonhosted.org/packages/43/a5/8d02f9c372790326ad405d94f04d4339482ec082455b9e6e288f7100513b/scipy-1.14.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3", size = 29879676 }, + { url = "https://files.pythonhosted.org/packages/07/42/0e0bea9666fcbf2cb6ea0205db42c81b1f34d7b729ba251010edf9c80ebd/scipy-1.14.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8bddf15838ba768bb5f5083c1ea012d64c9a444e16192762bd858f1e126196d0", size = 23088696 }, + { url = "https://files.pythonhosted.org/packages/15/47/298ab6fef5ebf31b426560e978b8b8548421d4ed0bf99263e1eb44532306/scipy-1.14.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:97c5dddd5932bd2a1a31c927ba5e1463a53b87ca96b5c9bdf5dfd6096e27efc3", size = 25470699 }, + { url = "https://files.pythonhosted.org/packages/d8/df/cdb6be5274bc694c4c22862ac3438cb04f360ed9df0aecee02ce0b798380/scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d", size = 35606631 }, + { url = "https://files.pythonhosted.org/packages/47/78/b0c2c23880dd1e99e938ad49ccfb011ae353758a2dc5ed7ee59baff684c3/scipy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69", size = 41178528 }, + { url = "https://files.pythonhosted.org/packages/5d/aa/994b45c34b897637b853ec04334afa55a85650a0d11dacfa67232260fb0a/scipy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad", size = 42784535 }, + { url = "https://files.pythonhosted.org/packages/b2/ab/070ccfabe870d9f105b04aee1e2860520460ef7ca0213172abfe871463b9/scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675", size = 39076999 }, + { url = "https://files.pythonhosted.org/packages/a7/c5/02ac82f9bb8f70818099df7e86c3ad28dae64e1347b421d8e3adf26acab6/scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2", size = 29894570 }, + { url = "https://files.pythonhosted.org/packages/ed/05/7f03e680cc5249c4f96c9e4e845acde08eb1aee5bc216eff8a089baa4ddb/scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617", size = 23103567 }, + { url = "https://files.pythonhosted.org/packages/5e/fc/9f1413bef53171f379d786aabc104d4abeea48ee84c553a3e3d8c9f96a9c/scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8", size = 25499102 }, + { url = "https://files.pythonhosted.org/packages/c2/4b/b44bee3c2ddc316b0159b3d87a3d467ef8d7edfd525e6f7364a62cd87d90/scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37", size = 35586346 }, + { url = "https://files.pythonhosted.org/packages/93/6b/701776d4bd6bdd9b629c387b5140f006185bd8ddea16788a44434376b98f/scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2", size = 41165244 }, + { url = "https://files.pythonhosted.org/packages/06/57/e6aa6f55729a8f245d8a6984f2855696c5992113a5dc789065020f8be753/scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2", size = 42817917 }, + { url = "https://files.pythonhosted.org/packages/c0/04/2bdacc8ac6387b15db6faa40295f8bd25eccf33f1f13e68a72dc3c60a99e/scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d", size = 39128781 }, + { url = "https://files.pythonhosted.org/packages/c8/53/35b4d41f5fd42f5781dbd0dd6c05d35ba8aa75c84ecddc7d44756cd8da2e/scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07", size = 29939542 }, + { url = "https://files.pythonhosted.org/packages/66/67/6ef192e0e4d77b20cc33a01e743b00bc9e68fb83b88e06e636d2619a8767/scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5", size = 23148375 }, + { url = "https://files.pythonhosted.org/packages/f6/32/3a6dedd51d68eb7b8e7dc7947d5d841bcb699f1bf4463639554986f4d782/scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc", size = 25578573 }, + { url = "https://files.pythonhosted.org/packages/f0/5a/efa92a58dc3a2898705f1dc9dbaf390ca7d4fba26d6ab8cfffb0c72f656f/scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310", size = 35319299 }, + { url = "https://files.pythonhosted.org/packages/8e/ee/8a26858ca517e9c64f84b4c7734b89bda8e63bec85c3d2f432d225bb1886/scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066", size = 40849331 }, + { url = "https://files.pythonhosted.org/packages/a5/cd/06f72bc9187840f1c99e1a8750aad4216fc7dfdd7df46e6280add14b4822/scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1", size = 42544049 }, + { url = "https://files.pythonhosted.org/packages/50/ef/ac98346db016ff18a6ad7626a35808f37074d25796fd0234c2bb0ed1e054/scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79", size = 39091068 }, + { url = "https://files.pythonhosted.org/packages/b9/cc/70948fe9f393b911b4251e96b55bbdeaa8cca41f37c26fd1df0232933b9e/scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e", size = 29875417 }, + { url = "https://files.pythonhosted.org/packages/3b/2e/35f549b7d231c1c9f9639f9ef49b815d816bf54dd050da5da1c11517a218/scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73", size = 23084508 }, + { url = "https://files.pythonhosted.org/packages/3f/d6/b028e3f3e59fae61fb8c0f450db732c43dd1d836223a589a8be9f6377203/scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e", size = 25503364 }, + { url = "https://files.pythonhosted.org/packages/a7/2f/6c142b352ac15967744d62b165537a965e95d557085db4beab2a11f7943b/scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d", size = 35292639 }, + { url = "https://files.pythonhosted.org/packages/56/46/2449e6e51e0d7c3575f289f6acb7f828938eaab8874dbccfeb0cd2b71a27/scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e", size = 40798288 }, + { url = "https://files.pythonhosted.org/packages/32/cd/9d86f7ed7f4497c9fd3e39f8918dd93d9f647ba80d7e34e4946c0c2d1a7c/scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06", size = 42524647 }, +] + +[[package]] +name = "seaborn" +version = "0.13.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "matplotlib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/59/a451d7420a77ab0b98f7affa3a1d78a313d2f7281a57afb1a34bae8ab412/seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7", size = 1457696 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/11/00d3c3dfc25ad54e731d91449895a79e4bf2384dc3ac01809010ba88f6d5/seaborn-0.13.2-py3-none-any.whl", hash = "sha256:636f8336facf092165e27924f223d3c62ca560b1f2bb5dff7ab7fad265361987", size = 294914 }, +] + +[[package]] +name = "serialbox" +version = "0.0.1" +source = { git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python#7987f8cf2027e0051414aefd5f72149f0e7bb193" } +dependencies = [ + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[[package]] +name = "setuptools" +version = "75.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/54/292f26c208734e9a7f067aea4a7e282c080750c4546559b58e2e45413ca0/setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6", size = 1337429 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/21/47d163f615df1d30c094f6c8bbb353619274edccf0327b185cc2493c2c33/setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d", size = 1224032 }, +] + +[[package]] +name = "setuptools-scm" +version = "8.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "setuptools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4f/a4/00a9ac1b555294710d4a68d2ce8dfdf39d72aa4d769a7395d05218d88a42/setuptools_scm-8.1.0.tar.gz", hash = "sha256:42dea1b65771cba93b7a515d65a65d8246e560768a66b9106a592c8e7f26c8a7", size = 76465 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/b9/1906bfeb30f2fc13bb39bf7ddb8749784c05faadbd18a21cf141ba37bff2/setuptools_scm-8.1.0-py3-none-any.whl", hash = "sha256:897a3226a6fd4a6eb2f068745e49733261a21f70b1bb28fce0339feb978d9af3", size = 43666 }, +] + +[[package]] +name = "shapely" +version = "2.0.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4a/89/0d20bac88016be35ff7d3c0c2ae64b477908f1b1dfa540c5d69ac7af07fe/shapely-2.0.6.tar.gz", hash = "sha256:997f6159b1484059ec239cacaa53467fd8b5564dabe186cd84ac2944663b0bf6", size = 282361 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/d4/f84bbbdb7771f5b9ade94db2398b256cf1471f1eb0ca8afbe0f6ca725d5a/shapely-2.0.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29a34e068da2d321e926b5073539fd2a1d4429a2c656bd63f0bd4c8f5b236d0b", size = 1449635 }, + { url = "https://files.pythonhosted.org/packages/03/10/bd6edb66ed0a845f0809f7ce653596f6fd9c6be675b3653872f47bf49f82/shapely-2.0.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c84c3f53144febf6af909d6b581bc05e8785d57e27f35ebaa5c1ab9baba13b", size = 1296756 }, + { url = "https://files.pythonhosted.org/packages/af/09/6374c11cb493a9970e8c04d7be25f578a37f6494a2fecfbed3a447b16b2c/shapely-2.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ad2fae12dca8d2b727fa12b007e46fbc522148a584f5d6546c539f3464dccde", size = 2381960 }, + { url = "https://files.pythonhosted.org/packages/2b/a6/302e0d9c210ccf4d1ffadf7ab941797d3255dcd5f93daa73aaf116a4db39/shapely-2.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3304883bd82d44be1b27a9d17f1167fda8c7f5a02a897958d86c59ec69b705e", size = 2468133 }, + { url = "https://files.pythonhosted.org/packages/37/15/269d8e1f7f658a37e61f7028683c546f520e4e7cedba1e32c77ff9d3a3c7/shapely-2.0.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5aeb0f51a9db176da9a30cb2f4329b6fbd1e26d359012bb0ac3d3c7781667a9e", size = 1449578 }, + { url = "https://files.pythonhosted.org/packages/37/63/e182e43081fffa0a2d970c480f2ef91647a6ab94098f61748c23c2a485f2/shapely-2.0.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a7a78b0d51257a367ee115f4d41ca4d46edbd0dd280f697a8092dd3989867b2", size = 1296792 }, + { url = "https://files.pythonhosted.org/packages/6e/5a/d019f69449329dcd517355444fdb9ddd58bec5e080b8bdba007e8e4c546d/shapely-2.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f32c23d2f43d54029f986479f7c1f6e09c6b3a19353a3833c2ffb226fb63a855", size = 2443997 }, + { url = "https://files.pythonhosted.org/packages/25/aa/53f145e5a610a49af9ac49f2f1be1ec8659ebd5c393d66ac94e57c83b00e/shapely-2.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3dc9fb0eb56498912025f5eb352b5126f04801ed0e8bdbd867d21bdbfd7cbd0", size = 2528334 }, + { url = "https://files.pythonhosted.org/packages/46/77/efd9f9d4b6a762f976f8b082f54c9be16f63050389500fb52e4f6cc07c1a/shapely-2.0.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cec9193519940e9d1b86a3b4f5af9eb6910197d24af02f247afbfb47bcb3fab0", size = 1450326 }, + { url = "https://files.pythonhosted.org/packages/68/53/5efa6e7a4036a94fe6276cf7bbb298afded51ca3396b03981ad680c8cc7d/shapely-2.0.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83b94a44ab04a90e88be69e7ddcc6f332da7c0a0ebb1156e1c4f568bbec983c3", size = 1298480 }, + { url = "https://files.pythonhosted.org/packages/88/a2/1be1db4fc262e536465a52d4f19d85834724fedf2299a1b9836bc82fe8fa/shapely-2.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:537c4b2716d22c92036d00b34aac9d3775e3691f80c7aa517c2c290351f42cd8", size = 2439311 }, + { url = "https://files.pythonhosted.org/packages/d5/7d/9a57e187cbf2fbbbdfd4044a4f9ce141c8d221f9963750d3b001f0ec080d/shapely-2.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98fea108334be345c283ce74bf064fa00cfdd718048a8af7343c59eb40f59726", size = 2524835 }, + { url = "https://files.pythonhosted.org/packages/34/e8/d164ef5b0eab86088cde06dee8415519ffd5bb0dd1bd9d021e640e64237c/shapely-2.0.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:42805ef90783ce689a4dde2b6b2f261e2c52609226a0438d882e3ced40bb3013", size = 1445344 }, + { url = "https://files.pythonhosted.org/packages/ce/e2/9fba7ac142f7831757a10852bfa465683724eadbc93d2d46f74a16f9af04/shapely-2.0.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6d2cb146191a47bd0cee8ff5f90b47547b82b6345c0d02dd8b25b88b68af62d7", size = 1296182 }, + { url = "https://files.pythonhosted.org/packages/cf/dc/790d4bda27d196cd56ec66975eaae3351c65614cafd0e16ddde39ec9fb92/shapely-2.0.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3fdef0a1794a8fe70dc1f514440aa34426cc0ae98d9a1027fb299d45741c381", size = 2423426 }, + { url = "https://files.pythonhosted.org/packages/af/b0/f8169f77eac7392d41e231911e0095eb1148b4d40c50ea9e34d999c89a7e/shapely-2.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c665a0301c645615a107ff7f52adafa2153beab51daf34587170d85e8ba6805", size = 2513249 }, +] + +[[package]] +name = "six" +version = "1.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", size = 34041 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053 }, +] + +[[package]] +name = "smmap" +version = "5.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/88/04/b5bf6d21dc4041000ccba7eb17dd3055feb237e7ffc2c20d3fae3af62baa/smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62", size = 22291 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/a5/10f97f73544edcdef54409f1d839f6049a0d79df68adbc1ceb24d1aaca42/smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da", size = 24282 }, +] + +[[package]] +name = "snowballstemmer" +version = "2.2.0" +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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/dc/c02e01294f7265e63a7315fe086dd1df7dacb9f840a804da846b96d01b96/snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a", size = 93002 }, +] + +[[package]] +name = "sortedcontainers" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 }, +] + +[[package]] +name = "soupsieve" +version = "2.6" +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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9", size = 36186 }, +] + +[[package]] +name = "sparse" +version = "0.15.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numba", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "scipy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/6a/a1d00d932597c00509d333d9cde6f10d6c85470a3701455b0c48fc45886b/sparse-0.15.4.tar.gz", hash = "sha256:d4b1c57d24ff0f64f2fd5b5a95b49b7fb84ed207a26d7d58ce2764dcc5c72b84", size = 359721 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/f2/8d5bc8cc6b822feac1cd671dac6fb0249a5202ad15ee9549d1a61d4141b5/sparse-0.15.4-py2.py3-none-any.whl", hash = "sha256:76ec76fee2aee82a84eb97155dd530a9644e3b1fdea2406bc4b454698b36d938", size = 237311 }, +] + +[[package]] +name = "sphinx" +version = "7.3.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "alabaster", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "babel", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "docutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "imagesize", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pygments", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "requests", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "snowballstemmer", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinxcontrib-applehelp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinxcontrib-devhelp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinxcontrib-htmlhelp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinxcontrib-jsmath", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinxcontrib-qthelp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinxcontrib-serializinghtml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/0a/b88033900b1582f5ed8f880263363daef968d1cd064175e32abfd9714410/sphinx-7.3.7.tar.gz", hash = "sha256:a4a7db75ed37531c05002d56ed6948d4c42f473a36f46e1382b0bd76ca9627bc", size = 7094808 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/fa/130c32ed94cf270e3d0b9ded16fb7b2c8fea86fa7263c29a696a30c1dde7/sphinx-7.3.7-py3-none-any.whl", hash = "sha256:413f75440be4cacf328f580b4274ada4565fb2187d696a84970c23f77b64d8c3", size = 3335650 }, +] + +[[package]] +name = "sphinx-autodoc-typehints" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/cd/03e7b917230dc057922130a79ba0240df1693bfd76727ea33fae84b39138/sphinx_autodoc_typehints-2.3.0.tar.gz", hash = "sha256:535c78ed2d6a1bad393ba9f3dfa2602cf424e2631ee207263e07874c38fde084", size = 40709 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/f3/e0a4ce49da4b6f4e4ce84b3c39a0677831884cb9d8a87ccbf1e9e56e53ac/sphinx_autodoc_typehints-2.3.0-py3-none-any.whl", hash = "sha256:3098e2c6d0ba99eacd013eb06861acc9b51c6e595be86ab05c08ee5506ac0c67", size = 19836 }, +] + +[[package]] +name = "sphinx-jinja2-compat" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "markupsafe", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "standard-imghdr", marker = "(python_full_version >= '3.13' and sys_platform == 'darwin') or (python_full_version >= '3.13' and sys_platform == 'linux')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/df/27282da6f8c549f765beca9de1a5fc56f9651ed87711a5cac1e914137753/sphinx_jinja2_compat-0.3.0.tar.gz", hash = "sha256:f3c1590b275f42e7a654e081db5e3e5fb97f515608422bde94015ddf795dfe7c", size = 4998 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/42/2fd09d672eaaa937d6893d8b747d07943f97a6e5e30653aee6ebd339b704/sphinx_jinja2_compat-0.3.0-py3-none-any.whl", hash = "sha256:b1e4006d8e1ea31013fa9946d1b075b0c8d2a42c6e3425e63542c1e9f8be9084", size = 7883 }, +] + +[[package]] +name = "sphinx-math-dollar" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/63/9227668066d044b6b6a582f000ade4b9e679978466555710dd2a15f21a3a/sphinx-math-dollar-1.2.1.tar.gz", hash = "sha256:03427240f21fdf23c7b8415289aa1a0e307ac32c198e02f840c59a4b1b0d950c", size = 25758 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/58/f4df1f1cd8a2bd7c5720870fcd1373fbd6de934f74c887bbc40eef9d8328/sphinx_math_dollar-1.2.1-py3-none-any.whl", hash = "sha256:0b1523a4d7023b9020ddf3a9301f651d64427a0f1d802af534a87eaf24fbdf19", size = 8074 }, +] + +[[package]] +name = "sphinx-prompt" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pygments", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e7/fb/7a07b8df1ca2418147a6b13e3f6b445071f2565198b45efa631d0d6ef0cd/sphinx_prompt-1.8.0.tar.gz", hash = "sha256:47482f86fcec29662fdfd23e7c04ef03582714195d01f5d565403320084372ed", size = 5121 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/49/f890a2668b7cbf375f5528b549c8d36dd2e801b0fbb7b2b5ef65663ecb6c/sphinx_prompt-1.8.0-py3-none-any.whl", hash = "sha256:369ecc633f0711886f9b3a078c83264245be1adf46abeeb9b88b5519e4b51007", size = 7298 }, +] + +[[package]] +name = "sphinx-rtd-theme" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinxcontrib-jquery", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/44/c97faec644d29a5ceddd3020ae2edffa69e7d00054a8c7a6021e82f20335/sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85", size = 7620463 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/77/46e3bac77b82b4df5bb5b61f2de98637724f246b4966cfc34bc5895d852a/sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13", size = 7655561 }, +] + +[[package]] +name = "sphinx-tabs" +version = "3.4.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pygments", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/27/32/ab475e252dc2b704e82a91141fa404cdd8901a5cf34958fd22afacebfccd/sphinx-tabs-3.4.5.tar.gz", hash = "sha256:ba9d0c1e3e37aaadd4b5678449eb08176770e0fc227e769b6ce747df3ceea531", size = 16070 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/9f/4ac7dbb9f23a2ff5a10903a4f9e9f43e0ff051f63a313e989c962526e305/sphinx_tabs-3.4.5-py3-none-any.whl", hash = "sha256:92cc9473e2ecf1828ca3f6617d0efc0aa8acb06b08c56ba29d1413f2f0f6cf09", size = 9904 }, +] + +[[package]] +name = "sphinx-toolbox" +version = "3.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "apeye", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "autodocsumm", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "beautifulsoup4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cachecontrol", extra = ["filecache"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "dict2css", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "docutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "domdf-python-tools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "filelock", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "html5lib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "ruamel-yaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx-autodoc-typehints", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx-jinja2-compat", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx-prompt", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx-tabs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tabulate", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/30/80/f837e85c8c216cdeef9b60393e4b00c9092a1e3d734106e0021abbf5930c/sphinx_toolbox-3.8.1.tar.gz", hash = "sha256:a4b39a6ea24fc8f10e24f052199bda17837a0bf4c54163a56f521552395f5e1a", size = 111977 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/d6/2a28ee4cbc158ae65afb2cfcb6895ef54d972ce1e167f8a63c135b14b080/sphinx_toolbox-3.8.1-py3-none-any.whl", hash = "sha256:53d8e77dd79e807d9ef18590c4b2960a5aa3c147415054b04c31a91afed8b88b", size = 194621 }, +] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/6e/b837e84a1a704953c62ef8776d45c3e8d759876b4a84fe14eba2859106fe/sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", size = 20053 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5", size = 119300 }, +] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/d2/5beee64d3e4e747f316bae86b55943f51e82bb86ecd325883ef65741e7da/sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", size = 12967 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2", size = 82530 }, +] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/93/983afd9aa001e5201eab16b5a444ed5b9b0a7a010541e0ddfbbfd0b2470c/sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9", size = 22617 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705 }, +] + +[[package]] +name = "sphinxcontrib-jquery" +version = "4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/de/f3/aa67467e051df70a6330fe7770894b3e4f09436dea6881ae0b4f3d87cad8/sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a", size = 122331 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/85/749bd22d1a68db7291c89e2ebca53f4306c3f205853cf31e9de279034c3c/sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae", size = 121104 }, +] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/e8/9ed3830aeed71f17c026a07a5097edcf44b692850ef215b161b8ad875729/sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8", size = 5787 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", size = 5071 }, +] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/68/bc/9104308fc285eb3e0b31b67688235db556cd5b0ef31d96f30e45f2e51cae/sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", size = 17165 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb", size = 88743 }, +] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3b/44/6716b257b0aa6bfd51a1b31665d1c205fb12cb5ad56de752dfa15657de2f/sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d", size = 16080 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", size = 92072 }, +] + +[[package]] +name = "standard-imghdr" +version = "3.10.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/09/d2/2eb5521072c9598886035c65c023f39f7384bcb73eed70794f469e34efac/standard_imghdr-3.10.14.tar.gz", hash = "sha256:2598fe2e7c540dbda34b233295e10957ab8dc8ac6f3bd9eaa8d38be167232e52", size = 5474 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/d0/9852f70eb01f814843530c053542b72d30e9fbf74da7abb0107e71938389/standard_imghdr-3.10.14-py3-none-any.whl", hash = "sha256:cdf6883163349624dee9a81d2853a20260337c4cd41c04e99c082e01833a08e2", size = 5598 }, +] + +[[package]] +name = "sympy" +version = "1.13.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/11/8a/5a7fd6284fa8caac23a26c9ddf9c30485a48169344b4bd3b0f02fef1890f/sympy-1.13.3.tar.gz", hash = "sha256:b27fd2c6530e0ab39e275fc9b683895367e51d5da91baa8d3d64db2565fec4d9", size = 7533196 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/ff/c87e0622b1dadea79d2fb0b25ade9ed98954c9033722eb707053d310d4f3/sympy-1.13.3-py3-none-any.whl", hash = "sha256:54612cf55a62755ee71824ce692986f23c88ffa77207b30c1368eda4a7060f73", size = 6189483 }, +] + +[[package]] +name = "tabulate" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c", size = 81090 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f", size = 35252 }, +] + +[[package]] +name = "tach" +version = "0.15.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitpython", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "networkx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "prompt-toolkit", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pydot", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "rich", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tomli", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tomli-w", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e0/70/9571909be07667e97ddcc68d9d85d7061bb9009fb11a48bccab05acb4023/tach-0.15.5.tar.gz", hash = "sha256:667963c6e689b933932c904b1355f6097174dd2c63ceaa85dc5a882cfbf4a3c0", size = 724550 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/b8/c93dfbc54224f0e824564b45f8454c76103bf3b532ff4972d397e9e56965/tach-0.15.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:7de65b040e0f117e08a4bbed81762ece0377fa9bf58dd2ecd756996de9bf0cbe", size = 2599726 }, + { url = "https://files.pythonhosted.org/packages/09/a7/6ed6847e3c99c648342638708a1e811f6769b877a2ed199616c874ff56d9/tach-0.15.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:19b2a90c0de664f6bc79bb82385d04a9a2ff338d6f66b9ef969f491d1ac598f3", size = 2470322 }, + { url = "https://files.pythonhosted.org/packages/6d/a6/aa28d8dc16fff4ef504e70451dd2ec5a806d39b4a3125a281bd0fb7b01f9/tach-0.15.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84f126444378e19a456304f4c075063f65fb3f67dd83088b33aa9cfcde2c74b3", size = 2711894 }, + { url = "https://files.pythonhosted.org/packages/9b/96/be73acecfbf314199f6c438d009fc03f99ceed2dda1ed71cf71a5f03d0b3/tach-0.15.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:40e6e515f1ac33bee0f5e9780dbc0065ad670c910c401efd3c852f652263ebd1", size = 2685839 }, + { url = "https://files.pythonhosted.org/packages/a2/60/ab146647bae4ab26d18d9692b4ccabd561ec17e61fd0a476608de6b9d9c4/tach-0.15.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c504100317b3b86225eead8d5a6ba858f9d39c05291aabc8045766ee36c347a9", size = 2923868 }, + { url = "https://files.pythonhosted.org/packages/7a/f2/1efa68b8775dcc8fc0dc1bd691450d5c5e18c02374905736401ed61ed4ce/tach-0.15.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d7351cd1d046d23b50582b03aa22eed74c8f96103ec94be622a15e2366b42d75", size = 2954709 }, + { url = "https://files.pythonhosted.org/packages/02/bd/c92b9e925329ad4536dd14630c80a1aa753d543b0a5fba1eee389e5d0f01/tach-0.15.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0049ed36561981bf2b9719033467729d37081e2a22fa51d7fe0d6e27e3fab1f", size = 3121189 }, + { url = "https://files.pythonhosted.org/packages/ff/7b/eb674782b7a04d30c963b4d353fb51ba0a8f512e14215e33527fe448d254/tach-0.15.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef41b697cec572c7ea571e74ca765a29b451a512c7e31521ef60cadc19a6fe03", size = 2806147 }, + { url = "https://files.pythonhosted.org/packages/4c/af/7afc73a69a26d4b79fc5baa451620d2479de6256ee950d1fe1977faa6c5c/tach-0.15.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4df9cb5f953c02a7b53e98b9fbe287ffb53a7715a504e1b6427ebb1b42169f48", size = 2599592 }, + { url = "https://files.pythonhosted.org/packages/b9/04/22b6aa4434983d4224f50be74862484f7b2d8d77c8e9f1ff8c9fa4dcb30f/tach-0.15.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:39e97119adf472aaf68106f08809212f30cc5c2f0c204f214b0a7b85d0fd726d", size = 2469859 }, + { url = "https://files.pythonhosted.org/packages/8d/ea/aa377fc0e883f1cc79cba8c721c8926a227570e7bd9a5817c51fcf559e59/tach-0.15.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0650814525cd7dfe27976984d5701853ed4e7fffc1d2a89d092955cfd85fd9f", size = 2711654 }, + { url = "https://files.pythonhosted.org/packages/17/08/b8538bc52f9e0e4fcfb2b334a1b7c478cea81f31a5fd369e0ee7d6668b45/tach-0.15.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6548e52cd5dac5242bb9d69d0aa33192306d3a08d7319f62dd196ca3570f5014", size = 2686104 }, + { url = "https://files.pythonhosted.org/packages/30/ef/2c25c3fe17e34362238fa346b51778d59a3906f581e012d63e6df82eafeb/tach-0.15.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:110b1c9f20cbaf000e1af1bba438b0fe959f48f9a7f8e20b09f3e77f313bcc87", size = 2922951 }, + { url = "https://files.pythonhosted.org/packages/95/99/ce9efa2e31d0c6692155c5bd8d69ca529c403dc89afcca32f8a63f423038/tach-0.15.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b98f4f7ac3a952205f674cac4e5d5aead3e38a336de7f859d2ee02cb1fe7dce1", size = 2954833 }, + { url = "https://files.pythonhosted.org/packages/2d/11/e3e98dffa1b502d46ef61820d0607b5ba72ff56bce3ddd393a10b2339b8b/tach-0.15.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e53674bd1296173b577129371dd5e86d6360253639417f259ab405f3c3155981", size = 3120159 }, + { url = "https://files.pythonhosted.org/packages/58/32/a545058d1c83b041736e0f069d9277695f8b99a152aec54ff608dc54da59/tach-0.15.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7cca4ac4c736e0dd1aa887f30b7bab031ad18a636377408c9f72e00c681086", size = 2806930 }, + { url = "https://files.pythonhosted.org/packages/af/ae/bdb17c9dbf281f8b606aea25360e87440c9a872fcc848feb29773f9b827c/tach-0.15.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1a7b5b349ddb69d90fbad3be9f1934eae979614bddc92c1952a7647315a96eff", size = 2599655 }, + { url = "https://files.pythonhosted.org/packages/c8/9f/3b6f567e8620ef7769fd3a30ab7de313fc752666b9ea26add68fbe89db70/tach-0.15.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b812da3c9c8eacadc44a8ad67c6b4c8357326aac1ca3a058db07a41b47c13ddc", size = 2469579 }, + { url = "https://files.pythonhosted.org/packages/40/1b/d8583ba557744682a1a26fb675276314bc93d71fb1fd6a91a6e1ec9a23a4/tach-0.15.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca2a73e3762cf9cac897057a3364911965f924b206bf8ac4dae51599ebc97a7c", size = 2711103 }, + { url = "https://files.pythonhosted.org/packages/7a/eb/60bad95934caab317ea512e077788913740e27463902d5e3afec8ed990b5/tach-0.15.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cbe1e82f12a0a24ebe878a0bc088d5583fc8022d689963ebbfdd8b18cf6060ad", size = 2686964 }, + { url = "https://files.pythonhosted.org/packages/40/f0/2299da97d1ccd61a5a99bc6aca8d3d35a0686c91451a27a1c43d0658667f/tach-0.15.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781a5fedb8c7b7c7201afac49d8dc5a50ec072c19a8553c6a6ddf7ab9242b921", size = 2928422 }, + { url = "https://files.pythonhosted.org/packages/25/90/7bdb99a826722624e5743756b04775c6a58a1f2fbb87603bc1297d50df1d/tach-0.15.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:419cce3dbd4999a426ef69359a5aa8b752f102327f253164745caaa732dd5b3d", size = 2951053 }, + { url = "https://files.pythonhosted.org/packages/76/31/767a2b4ec7a64865e1dc03f13c94de6944865cb5b8a183c4c8d9b36729d1/tach-0.15.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:540584385e7915d3b71184f7e65ceac73e0171081fb9370b9d855603c047dfda", size = 3109155 }, + { url = "https://files.pythonhosted.org/packages/a8/8e/a9a53524dbadf4f06c933a33daafaae6dbbc5934a830ee28dd693877aae0/tach-0.15.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79e842eb613839e900fc3485157b01a5d94641dd61525b3f733bc3737dad82e4", size = 2808547 }, + { url = "https://files.pythonhosted.org/packages/71/d4/d6ad975d4ccddef40c437aa026115ec81b5c93749b65929cda6f8f2d5ef5/tach-0.15.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:49a1de5d0c39328b925d381118923a8debdb607803be9339d5cd23cdbb420efc", size = 2599095 }, + { url = "https://files.pythonhosted.org/packages/ea/7e/b4c6373f455952a9aa3466ef8985b8068337a3850ac3a51db3e81cb72a7c/tach-0.15.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:94babb6e42983259130899f7118277ce01fc7a0ff12dd6c8d68bddd6a95228e5", size = 2469400 }, + { url = "https://files.pythonhosted.org/packages/f7/22/db663adec0ce3ab6a3b92da76a72476c5f136706d6115bf604e9b6d88bf2/tach-0.15.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e3e9b12db4e602d5e5b63a5fa00e697acb1bc7ddfc53f0cebe0a2d979b4051c", size = 2710647 }, + { url = "https://files.pythonhosted.org/packages/b0/b4/2e7b550dcc2072eb395b8eaca867512aed69fa80faf31742cde5abc6c580/tach-0.15.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9d3c0bec7931cec8f36d86c6e250c64041d990ee6e8546248c2ef6c06e3319ba", size = 2686275 }, + { url = "https://files.pythonhosted.org/packages/46/3c/b7b727c85fef1af050a311514b0c288c7ac7572415d59d5b3ccf0146e8a2/tach-0.15.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f81f1f612a001ffceb7762443426f5f487ec77bc90abf998e5ad08fb4fda9c8", size = 2927882 }, + { url = "https://files.pythonhosted.org/packages/bf/49/1f163a5a181f677aec717f6af7a4d2c3bc6aed3d8b1bb0c73aaa46bb0d79/tach-0.15.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a18268c8a9dee8170ca547bf0e73fe9a05c883501976a659a2953f64d9ce044", size = 2950641 }, + { url = "https://files.pythonhosted.org/packages/17/f3/9e5b70fb95abab652e5e32ea4381025daa688bf4c8018241a926f9517794/tach-0.15.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87d967385a22964fa31de5ef46dff8eb035300f4e4145a341d2a47b020cb736a", size = 3109195 }, + { url = "https://files.pythonhosted.org/packages/51/87/0f645ac5896b24555e3980b5bbfc6a387563f800ad13b011f5732988b5c0/tach-0.15.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f17052805caec8be0038ff1f724809c8d9e0a5bf77e379d5e20075efaeec0e01", size = 2807918 }, + { url = "https://files.pythonhosted.org/packages/ea/0c/c880ec43a094587c811a097071f2bb9d4b0060c44ee7f0ad5de58cb5e932/tach-0.15.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14eb4e8b80a7e5e3de4fd042f008ba82b75cde5ddd7fa83655c98d173dd6698b", size = 2714701 }, + { url = "https://files.pythonhosted.org/packages/35/a5/673400d09fa6a144f00c376a97f55ced0adca8fcd061431fccce24670c93/tach-0.15.5-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8ba8cb13d7812d9fbdaa3608d3fb25f12a95dac3eacefb7ccec7685f12265bca", size = 2686285 }, + { url = "https://files.pythonhosted.org/packages/14/bb/8e88cb1977cf3629db7345001baee2308a5881304a088b5dcd5abcf948e5/tach-0.15.5-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:262eef86dffb30fab128e702f5ff7d7a4c872b396c7ea21c67d3fbde1d584a56", size = 2923940 }, + { url = "https://files.pythonhosted.org/packages/6a/71/02d3e750f2ae3575004f06dc7cd3179472ff0333a7e3856fafdf04549125/tach-0.15.5-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b65ff4f4b5e772482572e387b8142d9cb0d4c38e41f2b2ed14788b46bd1873bf", size = 2955080 }, + { url = "https://files.pythonhosted.org/packages/f8/7d/0e3ab0b8b3ab970074e0eb5debd1f7046c62b798683f74aa07770b08b37d/tach-0.15.5-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:be3c29954d6a237d6de7a7e13daa55ea229a39f0210daabf657a076be0077072", size = 3120769 }, + { url = "https://files.pythonhosted.org/packages/aa/67/89bf256f508f1917ba547592c71da02d5b155d2203ef83160d062c94225d/tach-0.15.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ff7c94ad88fa0277c3c0b3818a1dee8bf1a7637d76fc06031b6894ba57b94cb", size = 2809793 }, +] + +[[package]] +name = "tblib" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1a/df/4f2cd7eaa6d41a7994d46527349569d46e34d9cdd07590b5c5b0dcf53de3/tblib-3.0.0.tar.gz", hash = "sha256:93622790a0a29e04f0346458face1e144dc4d32f493714c6c3dff82a4adb77e6", size = 30616 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/87/ce70db7cae60e67851eb94e1a2127d4abb573d3866d2efd302ceb0d4d2a5/tblib-3.0.0-py3-none-any.whl", hash = "sha256:80a6c77e59b55e83911e1e607c649836a69c103963c5f28a46cbeef44acf8129", size = 12478 }, +] + +[[package]] +name = "texsoup" +version = "0.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/84/58/1c503390ed1a81cdcbff811dbf7a54132994acef8dd2194d55cf657a9e97/TexSoup-0.3.1.tar.gz", hash = "sha256:3f6b2ad0abe3688a6656f544c1ba04d0eb25f423f8c377b7369f9ce061ddb70b", size = 26174 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/a7/e9eb0e14633710b51b8472a3beccc7d6a44d55a0a3ef4493ebb4b7977253/TexSoup-0.3.1-py3-none-any.whl", hash = "sha256:ae8f08d17f86a905b7c2ce01c9f2da613fbca0bcea78c71d727719e896045bed", size = 27809 }, +] + +[[package]] +name = "threadpoolctl" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/55/b5148dcbf72f5cde221f8bfe3b6a540da7aa1842f6b491ad979a6c8b84af/threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107", size = 41936 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/2c/ffbf7a134b9ab11a67b0cf0726453cedd9c5043a4fe7a35d1cefa9a1bcfb/threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467", size = 18414 }, +] + +[[package]] +name = "tomli" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1e/e4/1b6cbcc82d8832dd0ce34767d5c560df8a3547ad8cbc427f34601415930a/tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8", size = 16622 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/f7/4da0ffe1892122c9ea096c57f64c2753ae5dd3ce85488802d11b0992cc6d/tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391", size = 13750 }, +] + +[[package]] +name = "tomli-w" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/19/b65f1a088ee23e37cdea415b357843eca8b1422a7b11a9eee6e35d4ec273/tomli_w-1.1.0.tar.gz", hash = "sha256:49e847a3a304d516a169a601184932ef0f6b61623fe680f836a2aa7128ed0d33", size = 6929 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c4/ac/ce90573ba446a9bbe65838ded066a805234d159b4446ae9f8ec5bbd36cbd/tomli_w-1.1.0-py3-none-any.whl", hash = "sha256:1403179c78193e3184bfaade390ddbd071cba48a32a2e62ba11aae47490c63f7", size = 6440 }, +] + +[[package]] +name = "toolz" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/0b/d80dfa675bf592f636d1ea0b835eab4ec8df6e9415d8cfd766df54456123/toolz-1.0.0.tar.gz", hash = "sha256:2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02", size = 66790 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/98/eb27cc78ad3af8e302c9d8ff4977f5026676e130d28dd7578132a457170c/toolz-1.0.0-py3-none-any.whl", hash = "sha256:292c8f1c4e7516bf9086f8850935c799a874039c8bcf959d47b600e4c44a6236", size = 56383 }, +] + +[[package]] +name = "tornado" +version = "6.4.2" +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 } +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 }, +] + +[[package]] +name = "tox" +version = "4.23.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cachetools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "chardet", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "colorama", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "filelock", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "platformdirs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pluggy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyproject-api", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "typing-extensions", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "virtualenv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1f/86/32b10f91b4b975a37ac402b0f9fa016775088e0565c93602ba0b3c729ce8/tox-4.23.2.tar.gz", hash = "sha256:86075e00e555df6e82e74cfc333917f91ecb47ffbc868dcafbd2672e332f4a2c", size = 189998 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/c0/124b73d01c120e917383bc6c53ebc34efdf7243faa9fca64d105c94cf2ab/tox-4.23.2-py3-none-any.whl", hash = "sha256:452bc32bb031f2282881a2118923176445bac783ab97c874b8770ab4c3b76c38", size = 166758 }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "(platform_system == 'Windows' and sys_platform == 'darwin') or (platform_system == 'Windows' and sys_platform == 'linux')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, +] + +[[package]] +name = "types-cffi" +version = "1.16.0.20240331" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "types-setuptools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/c8/81e5699160b91f0f91eea852d84035c412bfb4b3a29389701044400ab379/types-cffi-1.16.0.20240331.tar.gz", hash = "sha256:b8b20d23a2b89cfed5f8c5bc53b0cb8677c3aac6d970dbc771e28b9c698f5dee", size = 11318 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/7a/98f5d2493a652cec05d3b09be59202d202004a41fca9c70d224782611365/types_cffi-1.16.0.20240331-py3-none-any.whl", hash = "sha256:a363e5ea54a4eb6a4a105d800685fde596bc318089b025b27dee09849fe41ff0", size = 14550 }, +] + +[[package]] +name = "types-setuptools" +version = "75.6.0.20241126" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c2/d2/15ede73bc3faf647af2c7bfefa90dde563a4b6bb580b1199f6255463c272/types_setuptools-75.6.0.20241126.tar.gz", hash = "sha256:7bf25ad4be39740e469f9268b6beddda6e088891fa5a27e985c6ce68bf62ace0", size = 48569 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/a0/898a1363592d372d4103b76b7c723d84fcbde5fa4ed0c3a29102805ed7db/types_setuptools-75.6.0.20241126-py3-none-any.whl", hash = "sha256:aaae310a0e27033c1da8457d4d26ac673b0c8a0de7272d6d4708e263f2ea3b9b", size = 72732 }, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 }, +] + +[[package]] +name = "tzdata" +version = "2024.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/34/943888654477a574a86a98e9896bae89c7aa15078ec29f490fef2f1e5384/tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc", size = 193282 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd", size = 346586 }, +] + +[[package]] +name = "uc-micro-py" +version = "1.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/91/7a/146a99696aee0609e3712f2b44c6274566bc368dfe8375191278045186b8/uc-micro-py-1.0.3.tar.gz", hash = "sha256:d321b92cff673ec58027c04015fcaa8bb1e005478643ff4a500882eaab88c48a", size = 6043 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/87/1f677586e8ac487e29672e4b17455758fce261de06a0d086167bb760361a/uc_micro_py-1.0.3-py3-none-any.whl", hash = "sha256:db1dffff340817673d7b466ec86114a9dc0e9d4d9b5ba229d9d60e5c12600cd5", size = 6229 }, +] + +[[package]] +name = "urllib3" +version = "2.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9", size = 300677 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", size = 126338 }, +] + +[[package]] +name = "uxarray" +version = "2024.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "xarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0b/80/e6277088ab809a7d331c4660c85ddb1bbf43b8e2688b3ccdda74fa1b6b58/uxarray-2024.3.0.tar.gz", hash = "sha256:72ffa45069fe86c6998cdd516cdf07860cfe6995f04b433b2f232e929ba43db7", size = 14460765 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/21/ec0483829665bbc47c6f1e15f735d4c3a9f2a51b378ff0a4d8bb792781c8/uxarray-2024.3.0-py3-none-any.whl", hash = "sha256:cace98b8cb6f72343efeac1fa765be152d9a5d1fab3911b565a1302034702172", size = 105205 }, +] + +[[package]] +name = "virtualenv" +version = "20.28.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "distlib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "filelock", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "platformdirs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/75/53316a5a8050069228a2f6d11f32046cfa94fbb6cc3f08703f59b873de2e/virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa", size = 7650368 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/f9/0919cf6f1432a8c4baa62511f8f8da8225432d22e83e3476f5be1a1edc6e/virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0", size = 4276702 }, +] + +[[package]] +name = "wcwidth" +version = "0.2.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166 }, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774 }, +] + +[[package]] +name = "wget" +version = "3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/6a/62e288da7bcda82b935ff0c6cfe542970f04e29c756b0e147251b2fb251f/wget-3.2.zip", hash = "sha256:35e630eca2aa50ce998b9b1a127bb26b30dfee573702782aa982f875e3f16061", size = 10857 } + +[[package]] +name = "wheel" +version = "0.45.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef809ae6338005b3f21bb568bea3165cfc6a243fdc25c/wheel-0.45.1.tar.gz", hash = "sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729", size = 107545 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248", size = 72494 }, +] + +[[package]] +name = "xarray" +version = "2024.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3f/d6/5ae0a721bd6cac85b30cff6b119dc6b5e73b735aacbfb43d3ed2680504d7/xarray-2024.11.0.tar.gz", hash = "sha256:1ccace44573ddb862e210ad3ec204210654d2c750bec11bbe7d842dfc298591f", size = 3247277 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/ed/1c4631ad5909487ea8907cd326d9855c2207d790e3936e77bda48173b8be/xarray-2024.11.0-py3-none-any.whl", hash = "sha256:6ee94f63ddcbdd0cf3909d1177f78cdac756640279c0e32ae36819a89cdaba37", size = 1231951 }, +] + +[package.optional-dependencies] +complete = [ + { name = "bottleneck", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cartopy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cftime", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "dask", extra = ["complete"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "flox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "fsspec", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "h5netcdf", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "matplotlib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "nc-time-axis", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numba", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numbagg", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "opt-einsum", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pooch", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "scipy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "seaborn", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sparse", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "zarr", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[[package]] +name = "xxhash" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/3e/ca49932bade8b3308e74df951c36cbc84c8230c9b8715bae1e0014831aa7/xxhash-3.0.0.tar.gz", hash = "sha256:30b2d97aaf11fb122023f6b44ebb97c6955e9e00d7461a96415ca030b5ceb9c7", size = 74279 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f0/fe/41444c518df82da46bc7125c9daa4159e6cfc2b682ccc73493b0485b8a70/xxhash-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:219cba13991fd73cf21a5efdafa5056f0ae0b8f79e5e0112967e3058daf73eea", size = 34110 }, + { url = "https://files.pythonhosted.org/packages/6f/83/0afffed636656f65f78e35da174c9bdd86367f9d4da23a87fc9d1b933bbe/xxhash-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3fcbb846af15eff100c412ae54f4974ff277c92eacd41f1ec7803a64fd07fa0c", size = 30664 }, + { url = "https://files.pythonhosted.org/packages/8c/b1/cde24bf3c9d4d6bbe02e9e82604dbd40ab21c9799b0fdb66a4fe2046e96d/xxhash-3.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f475fa817ff7955fc118fc1ca29a6e691d329b7ff43f486af36c22dbdcff1db", size = 241825 }, + { url = "https://files.pythonhosted.org/packages/70/fd/7ebfe1549551c87875b64cf9c925e3cf8be53e475d29aed933643f6dd8aa/xxhash-3.0.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9200a90f02ff6fd5fb63dea107842da71d8626d99b768fd31be44f3002c60bbe", size = 206492 }, + { url = "https://files.pythonhosted.org/packages/d2/6f/eafbb4ec3baf499423f2de3a5f3b6c5898f3bf4a8714e100d5dfb911fbad/xxhash-3.0.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a1403e4f551c9ef7bcef09af55f1adb169f13e4de253db0887928e5129f87af1", size = 286394 }, + { url = "https://files.pythonhosted.org/packages/64/05/504e1a7accc8f115ebfba96104c2f4a4aea3fb415bd664a6a1cc8915671e/xxhash-3.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa7f6ca53170189a2268c83af0980e6c10aae69e6a5efa7ca989f89fff9f8c02", size = 211550 }, + { url = "https://files.pythonhosted.org/packages/f8/b9/b6558ba62479dbdd18f894842f6ec01bbbf94aa8a26340f889c1af550fa8/xxhash-3.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b63fbeb6d9c93d50ae0dc2b8a8b7f52f2de19e40fe9edc86637bfa5743b8ba2", size = 219718 }, +] + +[[package]] +name = "xyzservices" +version = "2024.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a0/16/ae87cbd2d6bfc40a419077521c35aadf5121725b7bee3d7c51b56f50958b/xyzservices-2024.9.0.tar.gz", hash = "sha256:68fb8353c9dbba4f1ff6c0f2e5e4e596bb9e1db7f94f4f7dfbcb26e25aa66fde", size = 1131900 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4c/d3/e07ce413d16ef64e885bea37551eac4c5ca3ddd440933f9c94594273d0d9/xyzservices-2024.9.0-py3-none-any.whl", hash = "sha256:776ae82b78d6e5ca63dd6a94abb054df8130887a4a308473b54a6bd364de8644", size = 85130 }, +] + +[[package]] +name = "zarr" +version = "2.18.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asciitree", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "fasteners", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numcodecs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/23/c4/187a21ce7cf7c8f00c060dd0e04c2a81139bb7b1ab178bba83f2e1134ce2/zarr-2.18.3.tar.gz", hash = "sha256:2580d8cb6dd84621771a10d31c4d777dca8a27706a1a89b29f42d2d37e2df5ce", size = 3603224 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/c9/142095e654c2b97133ff71df60979422717b29738b08bc8a1709a5d5e0d0/zarr-2.18.3-py3-none-any.whl", hash = "sha256:b1f7dfd2496f436745cdd4c7bcf8d3b4bc1dceef5fdd0d589c87130d842496dd", size = 210723 }, +] + +[[package]] +name = "zict" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d1/ac/3c494dd7ec5122cff8252c1a209b282c0867af029f805ae9befd73ae37eb/zict-3.0.0.tar.gz", hash = "sha256:e321e263b6a97aafc0790c3cfb3c04656b7066e6738c37fffcca95d803c9fba5", size = 33238 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/80/ab/11a76c1e2126084fde2639514f24e6111b789b0bfa4fc6264a8975c7e1f1/zict-3.0.0-py2.py3-none-any.whl", hash = "sha256:5796e36bd0e0cc8cf0fbc1ace6a68912611c1dbd74750a3f3026b9b9d6a327ae", size = 43332 }, +] + +[[package]] +name = "zipp" +version = "3.21.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 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/1a/7e4798e9339adc931158c9d69ecc34f5e6791489d469f5e50ec15e35f458/zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931", size = 9630 }, +] From 2f670ac24ac70d24c0a5c1c07b4231a9c2de03ff Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 27 Nov 2024 21:05:55 +0100 Subject: [PATCH 02/83] Updating ./tools --- ....license_header.txt => .license_header.txt | 0 tools/LICENSE => LICENSE | 0 tools/.flake8 | 44 --------------- tools/pyproject.toml | 54 ++++++++++--------- tools/requirements-dev.txt | 6 --- tools/requirements.txt | 6 --- uv.lock | 26 +++++++-- 7 files changed, 53 insertions(+), 83 deletions(-) rename tools/.license_header.txt => .license_header.txt (100%) rename tools/LICENSE => LICENSE (100%) delete mode 100644 tools/.flake8 delete mode 100644 tools/requirements-dev.txt delete mode 100644 tools/requirements.txt diff --git a/tools/.license_header.txt b/.license_header.txt similarity index 100% rename from tools/.license_header.txt rename to .license_header.txt diff --git a/tools/LICENSE b/LICENSE similarity index 100% rename from tools/LICENSE rename to LICENSE diff --git a/tools/.flake8 b/tools/.flake8 deleted file mode 100644 index 9bbc5e1a7f..0000000000 --- a/tools/.flake8 +++ /dev/null @@ -1,44 +0,0 @@ -[flake8] -# Some sane defaults for the code style checker flake8 -max-line-length = 100 -max-complexity = 15 -doctests = true -extend-ignore = - # Do not perform function calls in argument defaults - B008, - # Public code object needs docstring - D1, - # Disable dargling errors by default - DAR, - # Whitespace before ':' (black formatter breaks this sometimes) - E203, - # Line too long (using Bugbear's B950 warning) - E501, - # Line break occurred before a binary operator - W503, - # Calling setattr with a constant attribute value - B010 - -exclude = - .eggs, - .gt_cache, - .ipynb_checkpoints, - .tox, - _local_, - build, - dist, - docs, - _external_src, - tests/_disabled, - setup.py - -rst-roles = - py:mod, mod, - py:func, func, - py:data, data, - py:const, const, - py:class, class, - py:meth, meth, - py:attr, attr, - py:exc, exc, - py:obj, obj, diff --git a/tools/pyproject.toml b/tools/pyproject.toml index fdfae30aa2..82ad1cd65c 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -3,7 +3,7 @@ build-backend = 'setuptools.build_meta' requires = ['setuptools>=61.0', 'wheel>=0.40.0'] [project] -authors = [{email = 'gridtools@cscs.ch'}, {name = 'ETH Zurich'}] +authors = [{ email = 'gridtools@cscs.ch' }, { name = 'ETH Zurich' }] classifiers = [ 'Development Status :: 3 - Alpha', 'Intended Audience :: Science/Research', @@ -16,21 +16,21 @@ classifiers = [ 'Programming Language :: Python :: Implementation :: CPython', 'Topic :: Scientific/Engineering :: Atmospheric Science', 'Topic :: Scientific/Engineering :: Mathematics', - 'Topic :: Scientific/Engineering :: Physics' + 'Topic :: Scientific/Engineering :: Physics', ] dependencies = [ - 'icon4py-atmosphere-diffusion', - 'icon4py-atmosphere-dycore', - 'icon4py-atmosphere-advection', - 'gt4py>=1.0.1', - 'icon4py-common', - 'tabulate>=0.8.9', + 'icon4py-atmosphere-diffusion>=0.0.6', + 'icon4py-atmosphere-dycore>=0.0.6', + 'icon4py-atmosphere-advection>=0.0.6', + 'icon4py-common[netcdf]>=0.0.6', + 'gt4py>=1.0.4', 'fprettify>=0.3.7', - 'cffi>=1.5' + 'tabulate>=0.8.9', + 'cffi>=1.5', ] description = 'Tools and utilities for integrating icon4py code into the ICON model.' dynamic = ['version'] -license = {file = 'LICENSE'} +license = { file = 'LICENSE' } name = 'icon4pytools' readme = 'README.md' requires-python = '>=3.10' @@ -48,8 +48,9 @@ py2fgen = 'icon4pytools.py2fgen.cli:main' [project.urls] repository = 'https://github.com/C2SM/icon4py' -[tool.coverage] +#-- coverage -- +[tool.coverage] [tool.coverage.html] directory = 'tests/_reports/coverage_html' @@ -58,10 +59,10 @@ source = ['src/icon4pytools/'] [tool.coverage.report] exclude_lines = [ - 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code + 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code - 'if 0:', # Don't complain if non-runnable code isn't run - 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run + 'if 0:', # Don't complain if non-runnable code isn't run + 'if __name__ == .__main__.:', # Don't complain if non-runnable code isn't run ] ignore_errors = true @@ -70,6 +71,7 @@ branch = true parallel = true source_pkgs = ['icon4pytools'] +#-- mypy -- [tool.mypy] disallow_incomplete_defs = true disallow_untyped_defs = true @@ -77,7 +79,7 @@ exclude = [ '^tests/f2ser/*.py', '^tests/icon4pygen/*.py', '^tests/liskov/*.py', - '^tests/py2f/*.py' + '^tests/py2f/*.py', ] ignore_missing_imports = false implicit_reexport = true @@ -89,11 +91,13 @@ warn_redundant_casts = true warn_unused_configs = true warn_unused_ignores = true +#-- pytest -- [tool.pytest] [tool.pytest.ini_options] testpaths = 'tests' +#-- ruff -- [tool.ruff] extend-exclude = [ '.eggs', @@ -106,7 +110,7 @@ extend-exclude = [ 'docs', '_external_src', 'tests/_disabled', - 'setup.py' + 'setup.py', ] indent-width = 4 line-length = 100 @@ -131,26 +135,28 @@ extend-select = ['E', 'F', 'I', 'B', 'A', 'T10', 'ERA', 'NPY', 'RUF'] # NPY: NumPy-specific rules # RUF: Ruff-specific rules ignore = [ - 'E501', # Line too long (using Bugbear's B950 warning) - 'RUF009', # Do not perform function call in dataclass defaults - 'B010' # Do not call `setattr` with a constant attribute value. + 'E501', # Line too long (using Bugbear's B950 warning) + 'RUF009', # Do not perform function call in dataclass defaults + 'B010', # Do not call `setattr` with a constant attribute value. ] ignore-init-module-imports = true [tool.ruff.lint.isort] combine-as-imports = true known-first-party = ['icon4pytools'] -known-third-party = [ - 'gt4py', - 'icon4py' -] +known-third-party = ['gt4py', 'icon4py'] lines-after-imports = 2 [tool.ruff.lint.mccabe] max-complexity = 15 +#-- setuptools -- [tool.setuptools.dynamic] -version = {attr = 'icon4pytools.__init__.__version__'} +version = { attr = 'icon4pytools.__init__.__version__' } [tool.setuptools.package-data] 'icon4pytools' = ['py.typed'] + +#-- uv -- +[tool.uv] +conflicts = [[{ extra = "cupy11" }, { extra = "cupy12" }]] diff --git a/tools/requirements-dev.txt b/tools/requirements-dev.txt deleted file mode 100644 index 8aee68ae06..0000000000 --- a/tools/requirements-dev.txt +++ /dev/null @@ -1,6 +0,0 @@ --r ../base-requirements-dev.txt --e ../model/atmosphere/dycore --e ../model/atmosphere/diffusion --e ../model/atmosphere/advection --e ../model/common[netcdf] --e .[all] diff --git a/tools/requirements.txt b/tools/requirements.txt deleted file mode 100644 index f5357c839c..0000000000 --- a/tools/requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ --r ../base-requirements.txt -../model/atmosphere/dycore -../model/atmosphere/advection -../model/atmosphere/diffusion -../model/common[netcdf] -. diff --git a/uv.lock b/uv.lock index 0d26cc5934..4cc1ccaa44 100644 --- a/uv.lock +++ b/uv.lock @@ -5,6 +5,22 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", @@ -14,6 +30,10 @@ supported-markers = [ "sys_platform == 'darwin'", "sys_platform == 'linux'", ] +conflicts = [[ + { package = "icon4pytools", extra = "cupy11" }, + { package = "icon4pytools", extra = "cupy12" }, +]] [manifest] members = [ @@ -1643,7 +1663,7 @@ dependencies = [ { name = "icon4py-atmosphere-advection", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-atmosphere-diffusion", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-atmosphere-dycore", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", extra = ["netcdf"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "tabulate", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] @@ -1665,7 +1685,7 @@ requires-dist = [ { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, - { name = "icon4py-common", editable = "model/common" }, + { name = "icon4py-common", extras = ["netcdf"], editable = "model/common" }, { name = "tabulate", specifier = ">=0.8.9" }, ] @@ -1701,7 +1721,7 @@ name = "importlib-metadata" version = "8.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp", marker = "(python_full_version < '3.12' and sys_platform == 'darwin') or (python_full_version < '3.12' and sys_platform == 'linux')" }, + { name = "zipp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } wheels = [ From 8232cfbf3876e54a585b9eeed742d533d4b4a197 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 29 Nov 2024 12:24:01 +0100 Subject: [PATCH 03/83] WIP tools --- model/atmosphere/advection/pyproject.toml | 2 +- model/atmosphere/diffusion/pyproject.toml | 2 +- model/atmosphere/dycore/pyproject.toml | 2 +- .../microphysics/pyproject.toml | 2 +- model/common/pyproject.toml | 22 +- model/driver/pyproject.toml | 2 +- pyproject.toml | 105 +++- tools/pyproject.toml | 80 +-- uv.lock | 486 ++++++++++-------- 9 files changed, 396 insertions(+), 307 deletions(-) diff --git a/model/atmosphere/advection/pyproject.toml b/model/atmosphere/advection/pyproject.toml index a369928823..6fb02e53fa 100644 --- a/model/atmosphere/advection/pyproject.toml +++ b/model/atmosphere/advection/pyproject.toml @@ -22,7 +22,7 @@ classifiers = [ "Topic :: Scientific/Engineering :: Physics" ] dependencies = [ - "gt4py>=1.0.1", + "gt4py>=1.0.4", "icon4py-common>=0.0.5" ] description = "ICON advection." diff --git a/model/atmosphere/diffusion/pyproject.toml b/model/atmosphere/diffusion/pyproject.toml index 6ffe27a21f..31b71cfd7d 100644 --- a/model/atmosphere/diffusion/pyproject.toml +++ b/model/atmosphere/diffusion/pyproject.toml @@ -22,7 +22,7 @@ classifiers = [ "Topic :: Scientific/Engineering :: Physics" ] dependencies = [ - "gt4py>=1.0.1", + "gt4py>=1.0.4", "icon4py-common>=0.0.5" ] description = "ICON diffusion." diff --git a/model/atmosphere/dycore/pyproject.toml b/model/atmosphere/dycore/pyproject.toml index 10d3494347..ec70c8871f 100644 --- a/model/atmosphere/dycore/pyproject.toml +++ b/model/atmosphere/dycore/pyproject.toml @@ -22,7 +22,7 @@ classifiers = [ "Topic :: Scientific/Engineering :: Physics" ] dependencies = [ - "gt4py>=1.0.1", + "gt4py>=1.0.4", "icon4py-common>=0.0.5" ] description = "ICON dynamical core." diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml b/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml index f46981712a..63f67a2833 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml +++ b/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml @@ -22,7 +22,7 @@ classifiers = [ "Topic :: Scientific/Engineering :: Physics" ] dependencies = [ - "gt4py>=1.0.1", + "gt4py>=1.0.4", "icon4py-common>=0.0.5" ] description = "ICON microphysics." diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index 9a0b0be30a..90eb95adb4 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -19,7 +19,8 @@ classifiers = [ "Topic :: Scientific/Engineering :: Physics" ] dependencies = [ - "gt4py>=1.0.1" + "gt4py>=1.0.4", + "serialbox>=0.0.1", ] description = "Shared code for the icon4py model." dynamic = ['version'] @@ -29,22 +30,21 @@ readme = "README.md" requires-python = ">=3.10" [project.optional-dependencies] -all = ["icon4py-common[ghex,io,dace]"] -dace = ["dace>=0.16.1"] -ghex = ["ghex", "mpi4py>=3.1.5"] +all = ["icon4py-common[distributed,io,dace]"] +dace = ["gt4py[dace]>=1.0.4"] +distributed = ["ghex>=0.3.0", "mpi4py>=3.1.5"] io = [ - "icon4py-common[netcdf]", - "xarray[complete]>=2024.3.0", + "cartopy>=0.22.0", + "datashader>=0.16.0", + "holoviews>=1.8.0", + "netcdf4>=1.6.0", + "scikit-learn>=1.4.0", # TODO [magdalena] there are failing tests starting from uxarray==2024.4.0: when a data file does not have # fields of a given dimension (eg 'edge') then something in uxarray goes wrong with the dimension # mapping. It is not yet clear whether this is a uxarray bug or on our side. "uxarray==2024.3.0", - "scikit-learn>=1.4.0", - "holoviews>=1.8.0", - "cartopy>=0.22.0", - "datashader>=0.16.0" + "xarray[complete]>=2024.3.0", ] -netcdf = ["netcdf4>=1.6.0"] [project.urls] repository = "https://github.com/C2SM/icon4py" diff --git a/model/driver/pyproject.toml b/model/driver/pyproject.toml index 80dc073317..1bad2edf41 100644 --- a/model/driver/pyproject.toml +++ b/model/driver/pyproject.toml @@ -22,7 +22,7 @@ classifiers = [ "Topic :: Scientific/Engineering :: Physics" ] dependencies = [ - "gt4py>=1.0.1", + "gt4py>=1.0.4", "icon4py-common>=0.0.5", "icon4py-atmosphere-dycore>=0.0.5", "icon4py-atmosphere-diffusion>=0.0.5" diff --git a/pyproject.toml b/pyproject.toml index bf97964419..cdca582e12 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,30 +1,32 @@ [project] -name = "icon4py-workspace" -version = "0.0.1" +name = "icon4py" +version = "0.0.6" description = "Add your description here" readme = "README.md" requires-python = ">=3.10" dependencies = [ - "gt4py>=1.0.4", "icon4py-common>=0.0.6", "icon4py-driver>=0.0.6", "icon4py-atmosphere-advection>=0.0.6", "icon4py-atmosphere-diffusion>=0.0.6", "icon4py-atmosphere-dycore>=0.0.6", "icon4py-atmosphere-subgrid_scale_physics-microphysics>=0.0.6", - "icon4pytools>=0.0.6", - "serialbox>=0.0.1", - "ghex>=0.3.0", ] [project.optional-dependencies] -all = ["icon4py-workspace[dace,ghex,io]"] +all = ["icon4py[dace,distributed,io]"] dace = ["icon4py-common[dace]>=0.0.6"] -ghex = ["icon4py-common[ghex]>=0.0.6"] +distributed = ["icon4py-common[distributed]>=0.0.6"] io = ["icon4py-common[io]>=0.0.6"] +integration = ["icon4pytools>=0.0.6"] [dependency-groups] -build = ["bump2version>=1.0.1", "setuptools>=70.1.1", "wheel>=0.45.0"] +build = [ + "bump2version>=1.0.1", + "setuptools>=70.1.1", + "wheel>=0.45.0", + "wget>=3.2", +] docs = [ "myst-parser>=4.0.0", "sphinx==7.3.7", @@ -33,7 +35,7 @@ docs = [ "sphinx-toolbox>=3.8.1", "TexSoup>=0.3.1", ] -lint = ["pre-commit>=4.0.1", "ruff>=0.7.1", "tach>=0.15.0"] +lint = ["pre-commit>=4.0.1", "ruff>=0.8.0", "tach>=0.16.0"] test = [ "coverage[toml]>=7.5.0", "pytest-benchmark>=5.0.0", @@ -56,15 +58,14 @@ dev = [ { include-group = "lint" }, { include-group = "test" }, { include-group = "typing" }, - "wget>=3.2", ] - -# -- uv -- +#-- packages & workspace -- [tool.uv] environments = ["sys_platform == 'darwin'", "sys_platform == 'linux'"] [tool.uv.sources] +ghex = { git = "https://github.com/ghex-org/GHEX.git", branch = "master", subdirectory = "bindings/python" } # use GT4Py tagged release until #596 & gt4py#1738 are merged gt4py = { git = "https://github.com/GridTools/gt4py", tag = "icon4py_20241113" } icon4py-common = { workspace = true } @@ -75,8 +76,6 @@ icon4py-atmosphere-dycore = { workspace = true } icon4py-atmosphere-subgrid_scale_physics-microphysics = { workspace = true } icon4pytools = { workspace = true } serialbox = { git = "https://github.com/GridTools/serialbox", subdirectory = "src/serialbox-python" } -ghex = { git = "https://github.com/ghex-org/GHEX.git", branch = "master", subdirectory = "bindings/python" } - [tool.uv.workspace] members = [ @@ -88,3 +87,79 @@ members = [ "model/driver", "tools", ] + +#== Tools == + +#-- mypy -- +# [tool.mypy] +# disallow_incomplete_defs = true +# disallow_untyped_defs = true +# exclude = [ +# '^tests/f2ser/*.py', +# '^tests/icon4pygen/*.py', +# '^tests/liskov/*.py', +# '^tests/py2f/*.py', +# ] +# ignore_missing_imports = false +# implicit_reexport = true +# install_types = true +# non_interactive = true +# show_column_numbers = true +# show_error_codes = true +# warn_redundant_casts = true +# warn_unused_configs = true +# warn_unused_ignores = true + + +#-- ruff -- +[tool.ruff] +extend-exclude = [ + '.eggs', + '.gt_cache', + '.ipynb_checkpoints', + '.tox', + '_local_', + 'build', + 'dist', + 'docs', + '_external_src', + 'tests/_disabled', + 'setup.py', +] +indent-width = 4 +line-length = 100 +respect-gitignore = true +show-fixes = true +target-version = "py310" + +[tool.ruff.format] +docstring-code-format = true +skip-magic-trailing-comma = true + +[tool.ruff.lint] +extend-select = ['E', 'F', 'I', 'B', 'A', 'T10', 'ERA', 'NPY', 'RUF'] +# # Rules sets: +# E: pycodestyle +# F: Pyflakes +# I: isort +# B: flake8-bugbear +# A: flake8-builtins +# T10: flake8-debugger +# ERA: eradicate +# NPY: NumPy-specific rules +# RUF: Ruff-specific rules +ignore = [ + 'E501', # Line too long (using Bugbear's B950 warning) + 'RUF009', # Do not perform function call in dataclass defaults + 'B010', # Do not call `setattr` with a constant attribute value. +] +ignore-init-module-imports = true + +[tool.ruff.lint.isort] +combine-as-imports = true +known-first-party = ['icon4py'] +known-third-party = ['gt4py'] +lines-after-imports = 2 + +[tool.ruff.lint.mccabe] +max-complexity = 15 diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 82ad1cd65c..4eb34dd27f 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -71,84 +71,19 @@ branch = true parallel = true source_pkgs = ['icon4pytools'] -#-- mypy -- -[tool.mypy] -disallow_incomplete_defs = true -disallow_untyped_defs = true -exclude = [ - '^tests/f2ser/*.py', - '^tests/icon4pygen/*.py', - '^tests/liskov/*.py', - '^tests/py2f/*.py', -] -ignore_missing_imports = false -implicit_reexport = true -install_types = true -non_interactive = true -show_column_numbers = true -show_error_codes = true -warn_redundant_casts = true -warn_unused_configs = true -warn_unused_ignores = true - #-- pytest -- [tool.pytest] -[tool.pytest.ini_options] -testpaths = 'tests' +# [tool.pytest.ini_options] +# testpaths = 'tests' -#-- ruff -- +#--ruff -- [tool.ruff] -extend-exclude = [ - '.eggs', - '.gt_cache', - '.ipynb_checkpoints', - '.tox', - '_local_', - 'build', - 'dist', - 'docs', - '_external_src', - 'tests/_disabled', - 'setup.py', -] -indent-width = 4 -line-length = 100 -respect-gitignore = true -show-fixes = true -# Assume Python 3.10 -target-version = "py310" - -[tool.ruff.format] -docstring-code-format = true - -[tool.ruff.lint] -extend-select = ['E', 'F', 'I', 'B', 'A', 'T10', 'ERA', 'NPY', 'RUF'] -# # Rules sets: -# E: pycodestyle -# F: Pyflakes -# I: isort -# B: flake8-bugbear -# A: flake8-builtins -# T10: flake8-debugger -# ERA: eradicate -# NPY: NumPy-specific rules -# RUF: Ruff-specific rules -ignore = [ - 'E501', # Line too long (using Bugbear's B950 warning) - 'RUF009', # Do not perform function call in dataclass defaults - 'B010', # Do not call `setattr` with a constant attribute value. -] -ignore-init-module-imports = true +extend = "../pyproject.toml" [tool.ruff.lint.isort] -combine-as-imports = true known-first-party = ['icon4pytools'] known-third-party = ['gt4py', 'icon4py'] -lines-after-imports = 2 - -[tool.ruff.lint.mccabe] -max-complexity = 15 #-- setuptools -- [tool.setuptools.dynamic] @@ -159,4 +94,9 @@ version = { attr = 'icon4pytools.__init__.__version__' } #-- uv -- [tool.uv] -conflicts = [[{ extra = "cupy11" }, { extra = "cupy12" }]] +conflicts = [ + [ + { extra = "cupy11" }, + { extra = "cupy12" }, + ], +] \ No newline at end of file diff --git a/uv.lock b/uv.lock index 4cc1ccaa44..dbfab9b590 100644 --- a/uv.lock +++ b/uv.lock @@ -2,28 +2,76 @@ version = 1 requires-python = ">=3.10" resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", ] supported-markers = [ @@ -37,13 +85,13 @@ conflicts = [[ [manifest] members = [ + "icon4py", "icon4py-atmosphere-advection", "icon4py-atmosphere-diffusion", "icon4py-atmosphere-dycore", "icon4py-atmosphere-subgrid-scale-physics-microphysics", "icon4py-common", "icon4py-driver", - "icon4py-workspace", "icon4pytools", ] @@ -1037,15 +1085,15 @@ wheels = [ [[package]] name = "faker" -version = "33.0.0" +version = "33.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "python-dateutil", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5b/c7/0782eb872b96ee571701237be0dd85aef3713a15045ba42752a8aac7c8ce/faker-33.0.0.tar.gz", hash = "sha256:9b01019c1ddaf2253ca2308c0472116e993f4ad8fc9905f82fa965e0c6f932e9", size = 1850076 } +sdist = { url = "https://files.pythonhosted.org/packages/1e/9f/012fd6049fc86029951cba5112d32c7ba076c4290d7e8873b0413655b808/faker-33.1.0.tar.gz", hash = "sha256:1c925fc0e86a51fc46648b504078c88d0cd48da1da2595c4e712841cab43a1e4", size = 1850515 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/c3/0451555e7a9a233bc17f128cff7654ec60036d4ccbb8397dd949f28df176/Faker-33.0.0-py3-none-any.whl", hash = "sha256:68e5580cb6b4226710886e595eabc13127149d6e71e9d1db65506a7fbe2c7fce", size = 1889118 }, + { url = "https://files.pythonhosted.org/packages/08/9c/2bba87fbfa42503ddd9653e3546ffc4ed18b14ecab7a07ee86491b886486/Faker-33.1.0-py3-none-any.whl", hash = "sha256:d30c5f0e2796b8970de68978365247657486eb0311c5abe88d0b895b68dff05d", size = 1889127 }, ] [[package]] @@ -1268,6 +1316,12 @@ dependencies = [ { name = "xxhash", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] +[package.optional-dependencies] +dace = [ + { name = "dace", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sympy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + [[package]] name = "h5netcdf" version = "1.4.1" @@ -1341,168 +1395,30 @@ wheels = [ ] [[package]] -name = "icon4py-atmosphere-advection" -version = "0.0.6" -source = { editable = "model/atmosphere/advection" } -dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] - -[package.metadata] -requires-dist = [ - { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, - { name = "icon4py-common", editable = "model/common" }, -] - -[[package]] -name = "icon4py-atmosphere-diffusion" -version = "0.0.6" -source = { editable = "model/atmosphere/diffusion" } -dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] - -[package.metadata] -requires-dist = [ - { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, - { name = "icon4py-common", editable = "model/common" }, -] - -[[package]] -name = "icon4py-atmosphere-dycore" -version = "0.0.6" -source = { editable = "model/atmosphere/dycore" } -dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] - -[package.metadata] -requires-dist = [ - { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, - { name = "icon4py-common", editable = "model/common" }, -] - -[[package]] -name = "icon4py-atmosphere-subgrid-scale-physics-microphysics" -version = "0.0.6" -source = { editable = "model/atmosphere/subgrid_scale_physics/microphysics" } -dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] - -[package.metadata] -requires-dist = [ - { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, - { name = "icon4py-common", editable = "model/common" }, -] - -[[package]] -name = "icon4py-common" -version = "0.0.6" -source = { editable = "model/common" } -dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] - -[package.optional-dependencies] -all = [ - { name = "cartopy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "dace", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "datashader", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "ghex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "holoviews", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "mpi4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "scikit-learn", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "uxarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "xarray", extra = ["complete"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] -dace = [ - { name = "dace", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] -ghex = [ - { name = "ghex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "mpi4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] -io = [ - { name = "cartopy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "datashader", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "holoviews", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "scikit-learn", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "uxarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "xarray", extra = ["complete"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] -netcdf = [ - { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] - -[package.metadata] -requires-dist = [ - { name = "cartopy", marker = "extra == 'io'", specifier = ">=0.22.0" }, - { name = "dace", marker = "extra == 'dace'", specifier = ">=0.16.1" }, - { name = "datashader", marker = "extra == 'io'", specifier = ">=0.16.0" }, - { name = "ghex", marker = "extra == 'ghex'", git = "https://github.com/ghex-org/GHEX.git?subdirectory=bindings%2Fpython&branch=master" }, - { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, - { name = "holoviews", marker = "extra == 'io'", specifier = ">=1.8.0" }, - { name = "icon4py-common", extras = ["dace", "ghex", "io"], marker = "extra == 'all'", editable = "model/common" }, - { name = "icon4py-common", extras = ["netcdf"], marker = "extra == 'io'", editable = "model/common" }, - { name = "mpi4py", marker = "extra == 'ghex'", specifier = ">=3.1.5" }, - { name = "netcdf4", marker = "extra == 'netcdf'", specifier = ">=1.6.0" }, - { name = "scikit-learn", marker = "extra == 'io'", specifier = ">=1.4.0" }, - { name = "uxarray", marker = "extra == 'io'", specifier = "==2024.3.0" }, - { name = "xarray", extras = ["complete"], marker = "extra == 'io'", specifier = ">=2024.3.0" }, -] - -[[package]] -name = "icon4py-driver" +name = "icon4py" version = "0.0.6" -source = { editable = "model/driver" } -dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-atmosphere-diffusion", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-atmosphere-dycore", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] - -[package.metadata] -requires-dist = [ - { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, - { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, - { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, - { name = "icon4py-common", editable = "model/common" }, -] - -[[package]] -name = "icon4py-workspace" -version = "0.0.1" source = { virtual = "." } dependencies = [ - { name = "ghex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-atmosphere-advection", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-atmosphere-diffusion", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-atmosphere-dycore", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-atmosphere-subgrid-scale-physics-microphysics", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-driver", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4pytools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "serialbox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] [package.optional-dependencies] all = [ - { name = "icon4py-common", extra = ["dace", "ghex", "io"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", extra = ["dace", "distributed", "io"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] dace = [ { name = "icon4py-common", extra = ["dace"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -ghex = [ - { name = "icon4py-common", extra = ["ghex"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +distributed = [ + { name = "icon4py-common", extra = ["distributed"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +integration = [ + { name = "icon4pytools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] io = [ { name = "icon4py-common", extra = ["io"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -1564,6 +1480,7 @@ test = [ { name = "pytest-mpi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pytest-xdist", extra = ["psutil"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "tox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "wget", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] typing = [ { name = "mypy", extra = ["faster-cache"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -1573,20 +1490,17 @@ typing = [ [package.metadata] requires-dist = [ - { name = "ghex", git = "https://github.com/ghex-org/GHEX.git?subdirectory=bindings%2Fpython&branch=master" }, - { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py", extras = ["dace", "distributed", "io"], marker = "extra == 'all'" }, { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, { name = "icon4py-atmosphere-subgrid-scale-physics-microphysics", editable = "model/atmosphere/subgrid_scale_physics/microphysics" }, { name = "icon4py-common", editable = "model/common" }, { name = "icon4py-common", extras = ["dace"], marker = "extra == 'dace'", editable = "model/common" }, - { name = "icon4py-common", extras = ["ghex"], marker = "extra == 'ghex'", editable = "model/common" }, + { name = "icon4py-common", extras = ["distributed"], marker = "extra == 'distributed'", editable = "model/common" }, { name = "icon4py-common", extras = ["io"], marker = "extra == 'io'", editable = "model/common" }, { name = "icon4py-driver", editable = "model/driver" }, - { name = "icon4py-workspace", extras = ["dace", "ghex", "io"], marker = "extra == 'all'" }, - { name = "icon4pytools", editable = "tools" }, - { name = "serialbox", git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python" }, + { name = "icon4pytools", marker = "extra == 'integration'", editable = "tools" }, ] [package.metadata.requires-dev] @@ -1645,6 +1559,7 @@ test = [ { name = "pytest-mpi", specifier = ">=0.6" }, { name = "pytest-xdist", extras = ["psutil"], specifier = ">=3.5.0" }, { name = "tox", specifier = ">=3.25" }, + { name = "wget", specifier = ">=3.2" }, ] typing = [ { name = "mypy", extras = ["faster-cache"], specifier = ">=1.12.0" }, @@ -1652,6 +1567,141 @@ typing = [ { name = "typing-extensions", specifier = ">=4.11.0" }, ] +[[package]] +name = "icon4py-atmosphere-advection" +version = "0.0.6" +source = { editable = "model/atmosphere/advection" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-common", editable = "model/common" }, +] + +[[package]] +name = "icon4py-atmosphere-diffusion" +version = "0.0.6" +source = { editable = "model/atmosphere/diffusion" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-common", editable = "model/common" }, +] + +[[package]] +name = "icon4py-atmosphere-dycore" +version = "0.0.6" +source = { editable = "model/atmosphere/dycore" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-common", editable = "model/common" }, +] + +[[package]] +name = "icon4py-atmosphere-subgrid-scale-physics-microphysics" +version = "0.0.6" +source = { editable = "model/atmosphere/subgrid_scale_physics/microphysics" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-common", editable = "model/common" }, +] + +[[package]] +name = "icon4py-common" +version = "0.0.6" +source = { editable = "model/common" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "serialbox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.optional-dependencies] +all = [ + { name = "cartopy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "datashader", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "ghex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gt4py", extra = ["dace"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "holoviews", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mpi4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "scikit-learn", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "uxarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "xarray", extra = ["complete"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +dace = [ + { name = "gt4py", extra = ["dace"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +distributed = [ + { name = "ghex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mpi4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +io = [ + { name = "cartopy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "datashader", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "holoviews", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "scikit-learn", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "uxarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "xarray", extra = ["complete"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "cartopy", marker = "extra == 'io'", specifier = ">=0.22.0" }, + { name = "datashader", marker = "extra == 'io'", specifier = ">=0.16.0" }, + { name = "ghex", marker = "extra == 'distributed'", git = "https://github.com/ghex-org/GHEX.git?subdirectory=bindings%2Fpython&branch=master" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "gt4py", extras = ["dace"], marker = "extra == 'dace'", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "holoviews", marker = "extra == 'io'", specifier = ">=1.8.0" }, + { name = "icon4py-common", extras = ["dace", "distributed", "io"], marker = "extra == 'all'", editable = "model/common" }, + { name = "mpi4py", marker = "extra == 'distributed'", specifier = ">=3.1.5" }, + { name = "netcdf4", marker = "extra == 'io'", specifier = ">=1.6.0" }, + { name = "scikit-learn", marker = "extra == 'io'", specifier = ">=1.4.0" }, + { name = "serialbox", git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python" }, + { name = "uxarray", marker = "extra == 'io'", specifier = "==2024.3.0" }, + { name = "xarray", extras = ["complete"], marker = "extra == 'io'", specifier = ">=2024.3.0" }, +] + +[[package]] +name = "icon4py-driver" +version = "0.0.6" +source = { editable = "model/driver" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-atmosphere-diffusion", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-atmosphere-dycore", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, + { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, + { name = "icon4py-common", editable = "model/common" }, +] + [[package]] name = "icon4pytools" version = "0.0.6" @@ -1663,7 +1713,7 @@ dependencies = [ { name = "icon4py-atmosphere-advection", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-atmosphere-diffusion", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-atmosphere-dycore", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", extra = ["netcdf"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "tabulate", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] @@ -1721,7 +1771,7 @@ name = "importlib-metadata" version = "8.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "zipp", marker = "(python_full_version < '3.12' and sys_platform == 'darwin') or (python_full_version < '3.12' and sys_platform == 'linux')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } wheels = [ @@ -3530,14 +3580,14 @@ wheels = [ [[package]] name = "sympy" -version = "1.13.3" +version = "1.12.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mpmath", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/11/8a/5a7fd6284fa8caac23a26c9ddf9c30485a48169344b4bd3b0f02fef1890f/sympy-1.13.3.tar.gz", hash = "sha256:b27fd2c6530e0ab39e275fc9b683895367e51d5da91baa8d3d64db2565fec4d9", size = 7533196 } +sdist = { url = "https://files.pythonhosted.org/packages/41/8a/0d1bbd33cd3091c913d298746e56f40586fa954788f51b816c6336424675/sympy-1.12.1.tar.gz", hash = "sha256:2877b03f998cd8c08f07cd0de5b767119cd3ef40d09f41c30d722f6686b0fb88", size = 6722359 } wheels = [ - { url = "https://files.pythonhosted.org/packages/99/ff/c87e0622b1dadea79d2fb0b25ade9ed98954c9033722eb707053d310d4f3/sympy-1.13.3-py3-none-any.whl", hash = "sha256:54612cf55a62755ee71824ce692986f23c88ffa77207b30c1368eda4a7060f73", size = 6189483 }, + { url = "https://files.pythonhosted.org/packages/61/53/e18c8c97d0b2724d85c9830477e3ebea3acf1dcdc6deb344d5d9c93a9946/sympy-1.12.1-py3-none-any.whl", hash = "sha256:9b2cbc7f1a640289430e13d2a56f02f867a1da0190f2f99d8968c2f74da0e515", size = 5743129 }, ] [[package]] @@ -3551,7 +3601,7 @@ wheels = [ [[package]] name = "tach" -version = "0.15.5" +version = "0.16.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "gitpython", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -3563,46 +3613,46 @@ dependencies = [ { name = "tomli", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "tomli-w", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e0/70/9571909be07667e97ddcc68d9d85d7061bb9009fb11a48bccab05acb4023/tach-0.15.5.tar.gz", hash = "sha256:667963c6e689b933932c904b1355f6097174dd2c63ceaa85dc5a882cfbf4a3c0", size = 724550 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/94/b8/c93dfbc54224f0e824564b45f8454c76103bf3b532ff4972d397e9e56965/tach-0.15.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:7de65b040e0f117e08a4bbed81762ece0377fa9bf58dd2ecd756996de9bf0cbe", size = 2599726 }, - { url = "https://files.pythonhosted.org/packages/09/a7/6ed6847e3c99c648342638708a1e811f6769b877a2ed199616c874ff56d9/tach-0.15.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:19b2a90c0de664f6bc79bb82385d04a9a2ff338d6f66b9ef969f491d1ac598f3", size = 2470322 }, - { url = "https://files.pythonhosted.org/packages/6d/a6/aa28d8dc16fff4ef504e70451dd2ec5a806d39b4a3125a281bd0fb7b01f9/tach-0.15.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84f126444378e19a456304f4c075063f65fb3f67dd83088b33aa9cfcde2c74b3", size = 2711894 }, - { url = "https://files.pythonhosted.org/packages/9b/96/be73acecfbf314199f6c438d009fc03f99ceed2dda1ed71cf71a5f03d0b3/tach-0.15.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:40e6e515f1ac33bee0f5e9780dbc0065ad670c910c401efd3c852f652263ebd1", size = 2685839 }, - { url = "https://files.pythonhosted.org/packages/a2/60/ab146647bae4ab26d18d9692b4ccabd561ec17e61fd0a476608de6b9d9c4/tach-0.15.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c504100317b3b86225eead8d5a6ba858f9d39c05291aabc8045766ee36c347a9", size = 2923868 }, - { url = "https://files.pythonhosted.org/packages/7a/f2/1efa68b8775dcc8fc0dc1bd691450d5c5e18c02374905736401ed61ed4ce/tach-0.15.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d7351cd1d046d23b50582b03aa22eed74c8f96103ec94be622a15e2366b42d75", size = 2954709 }, - { url = "https://files.pythonhosted.org/packages/02/bd/c92b9e925329ad4536dd14630c80a1aa753d543b0a5fba1eee389e5d0f01/tach-0.15.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0049ed36561981bf2b9719033467729d37081e2a22fa51d7fe0d6e27e3fab1f", size = 3121189 }, - { url = "https://files.pythonhosted.org/packages/ff/7b/eb674782b7a04d30c963b4d353fb51ba0a8f512e14215e33527fe448d254/tach-0.15.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef41b697cec572c7ea571e74ca765a29b451a512c7e31521ef60cadc19a6fe03", size = 2806147 }, - { url = "https://files.pythonhosted.org/packages/4c/af/7afc73a69a26d4b79fc5baa451620d2479de6256ee950d1fe1977faa6c5c/tach-0.15.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4df9cb5f953c02a7b53e98b9fbe287ffb53a7715a504e1b6427ebb1b42169f48", size = 2599592 }, - { url = "https://files.pythonhosted.org/packages/b9/04/22b6aa4434983d4224f50be74862484f7b2d8d77c8e9f1ff8c9fa4dcb30f/tach-0.15.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:39e97119adf472aaf68106f08809212f30cc5c2f0c204f214b0a7b85d0fd726d", size = 2469859 }, - { url = "https://files.pythonhosted.org/packages/8d/ea/aa377fc0e883f1cc79cba8c721c8926a227570e7bd9a5817c51fcf559e59/tach-0.15.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0650814525cd7dfe27976984d5701853ed4e7fffc1d2a89d092955cfd85fd9f", size = 2711654 }, - { url = "https://files.pythonhosted.org/packages/17/08/b8538bc52f9e0e4fcfb2b334a1b7c478cea81f31a5fd369e0ee7d6668b45/tach-0.15.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6548e52cd5dac5242bb9d69d0aa33192306d3a08d7319f62dd196ca3570f5014", size = 2686104 }, - { url = "https://files.pythonhosted.org/packages/30/ef/2c25c3fe17e34362238fa346b51778d59a3906f581e012d63e6df82eafeb/tach-0.15.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:110b1c9f20cbaf000e1af1bba438b0fe959f48f9a7f8e20b09f3e77f313bcc87", size = 2922951 }, - { url = "https://files.pythonhosted.org/packages/95/99/ce9efa2e31d0c6692155c5bd8d69ca529c403dc89afcca32f8a63f423038/tach-0.15.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b98f4f7ac3a952205f674cac4e5d5aead3e38a336de7f859d2ee02cb1fe7dce1", size = 2954833 }, - { url = "https://files.pythonhosted.org/packages/2d/11/e3e98dffa1b502d46ef61820d0607b5ba72ff56bce3ddd393a10b2339b8b/tach-0.15.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e53674bd1296173b577129371dd5e86d6360253639417f259ab405f3c3155981", size = 3120159 }, - { url = "https://files.pythonhosted.org/packages/58/32/a545058d1c83b041736e0f069d9277695f8b99a152aec54ff608dc54da59/tach-0.15.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7cca4ac4c736e0dd1aa887f30b7bab031ad18a636377408c9f72e00c681086", size = 2806930 }, - { url = "https://files.pythonhosted.org/packages/af/ae/bdb17c9dbf281f8b606aea25360e87440c9a872fcc848feb29773f9b827c/tach-0.15.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1a7b5b349ddb69d90fbad3be9f1934eae979614bddc92c1952a7647315a96eff", size = 2599655 }, - { url = "https://files.pythonhosted.org/packages/c8/9f/3b6f567e8620ef7769fd3a30ab7de313fc752666b9ea26add68fbe89db70/tach-0.15.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b812da3c9c8eacadc44a8ad67c6b4c8357326aac1ca3a058db07a41b47c13ddc", size = 2469579 }, - { url = "https://files.pythonhosted.org/packages/40/1b/d8583ba557744682a1a26fb675276314bc93d71fb1fd6a91a6e1ec9a23a4/tach-0.15.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca2a73e3762cf9cac897057a3364911965f924b206bf8ac4dae51599ebc97a7c", size = 2711103 }, - { url = "https://files.pythonhosted.org/packages/7a/eb/60bad95934caab317ea512e077788913740e27463902d5e3afec8ed990b5/tach-0.15.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cbe1e82f12a0a24ebe878a0bc088d5583fc8022d689963ebbfdd8b18cf6060ad", size = 2686964 }, - { url = "https://files.pythonhosted.org/packages/40/f0/2299da97d1ccd61a5a99bc6aca8d3d35a0686c91451a27a1c43d0658667f/tach-0.15.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781a5fedb8c7b7c7201afac49d8dc5a50ec072c19a8553c6a6ddf7ab9242b921", size = 2928422 }, - { url = "https://files.pythonhosted.org/packages/25/90/7bdb99a826722624e5743756b04775c6a58a1f2fbb87603bc1297d50df1d/tach-0.15.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:419cce3dbd4999a426ef69359a5aa8b752f102327f253164745caaa732dd5b3d", size = 2951053 }, - { url = "https://files.pythonhosted.org/packages/76/31/767a2b4ec7a64865e1dc03f13c94de6944865cb5b8a183c4c8d9b36729d1/tach-0.15.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:540584385e7915d3b71184f7e65ceac73e0171081fb9370b9d855603c047dfda", size = 3109155 }, - { url = "https://files.pythonhosted.org/packages/a8/8e/a9a53524dbadf4f06c933a33daafaae6dbbc5934a830ee28dd693877aae0/tach-0.15.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79e842eb613839e900fc3485157b01a5d94641dd61525b3f733bc3737dad82e4", size = 2808547 }, - { url = "https://files.pythonhosted.org/packages/71/d4/d6ad975d4ccddef40c437aa026115ec81b5c93749b65929cda6f8f2d5ef5/tach-0.15.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:49a1de5d0c39328b925d381118923a8debdb607803be9339d5cd23cdbb420efc", size = 2599095 }, - { url = "https://files.pythonhosted.org/packages/ea/7e/b4c6373f455952a9aa3466ef8985b8068337a3850ac3a51db3e81cb72a7c/tach-0.15.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:94babb6e42983259130899f7118277ce01fc7a0ff12dd6c8d68bddd6a95228e5", size = 2469400 }, - { url = "https://files.pythonhosted.org/packages/f7/22/db663adec0ce3ab6a3b92da76a72476c5f136706d6115bf604e9b6d88bf2/tach-0.15.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e3e9b12db4e602d5e5b63a5fa00e697acb1bc7ddfc53f0cebe0a2d979b4051c", size = 2710647 }, - { url = "https://files.pythonhosted.org/packages/b0/b4/2e7b550dcc2072eb395b8eaca867512aed69fa80faf31742cde5abc6c580/tach-0.15.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9d3c0bec7931cec8f36d86c6e250c64041d990ee6e8546248c2ef6c06e3319ba", size = 2686275 }, - { url = "https://files.pythonhosted.org/packages/46/3c/b7b727c85fef1af050a311514b0c288c7ac7572415d59d5b3ccf0146e8a2/tach-0.15.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f81f1f612a001ffceb7762443426f5f487ec77bc90abf998e5ad08fb4fda9c8", size = 2927882 }, - { url = "https://files.pythonhosted.org/packages/bf/49/1f163a5a181f677aec717f6af7a4d2c3bc6aed3d8b1bb0c73aaa46bb0d79/tach-0.15.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a18268c8a9dee8170ca547bf0e73fe9a05c883501976a659a2953f64d9ce044", size = 2950641 }, - { url = "https://files.pythonhosted.org/packages/17/f3/9e5b70fb95abab652e5e32ea4381025daa688bf4c8018241a926f9517794/tach-0.15.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87d967385a22964fa31de5ef46dff8eb035300f4e4145a341d2a47b020cb736a", size = 3109195 }, - { url = "https://files.pythonhosted.org/packages/51/87/0f645ac5896b24555e3980b5bbfc6a387563f800ad13b011f5732988b5c0/tach-0.15.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f17052805caec8be0038ff1f724809c8d9e0a5bf77e379d5e20075efaeec0e01", size = 2807918 }, - { url = "https://files.pythonhosted.org/packages/ea/0c/c880ec43a094587c811a097071f2bb9d4b0060c44ee7f0ad5de58cb5e932/tach-0.15.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14eb4e8b80a7e5e3de4fd042f008ba82b75cde5ddd7fa83655c98d173dd6698b", size = 2714701 }, - { url = "https://files.pythonhosted.org/packages/35/a5/673400d09fa6a144f00c376a97f55ced0adca8fcd061431fccce24670c93/tach-0.15.5-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8ba8cb13d7812d9fbdaa3608d3fb25f12a95dac3eacefb7ccec7685f12265bca", size = 2686285 }, - { url = "https://files.pythonhosted.org/packages/14/bb/8e88cb1977cf3629db7345001baee2308a5881304a088b5dcd5abcf948e5/tach-0.15.5-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:262eef86dffb30fab128e702f5ff7d7a4c872b396c7ea21c67d3fbde1d584a56", size = 2923940 }, - { url = "https://files.pythonhosted.org/packages/6a/71/02d3e750f2ae3575004f06dc7cd3179472ff0333a7e3856fafdf04549125/tach-0.15.5-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b65ff4f4b5e772482572e387b8142d9cb0d4c38e41f2b2ed14788b46bd1873bf", size = 2955080 }, - { url = "https://files.pythonhosted.org/packages/f8/7d/0e3ab0b8b3ab970074e0eb5debd1f7046c62b798683f74aa07770b08b37d/tach-0.15.5-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:be3c29954d6a237d6de7a7e13daa55ea229a39f0210daabf657a076be0077072", size = 3120769 }, - { url = "https://files.pythonhosted.org/packages/aa/67/89bf256f508f1917ba547592c71da02d5b155d2203ef83160d062c94225d/tach-0.15.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ff7c94ad88fa0277c3c0b3818a1dee8bf1a7637d76fc06031b6894ba57b94cb", size = 2809793 }, +sdist = { url = "https://files.pythonhosted.org/packages/a7/97/e1cfb1f6e7b9505c9fb4af436f3b159121918217c8f1bd7154ece0ec7ead/tach-0.16.0.tar.gz", hash = "sha256:557a1840b716f57fecbab20b84bd305c35bd2a0a399897f10ee743fbc9e70ed0", size = 725266 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/bc/dc798973e3b369ff2a080a6a71ba73cb52af9a5fc4a42397d5903b288161/tach-0.16.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c06666e7c4e94ed8969e337b0f8bf4e2be1c1ad3931761ebaaa8159a1d3d307e", size = 2604383 }, + { url = "https://files.pythonhosted.org/packages/76/c5/e9d20d40b4bf0cb0e7c304969277d02c12aee143d8d91bdc7fb3659b5bf5/tach-0.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:71539ec9fe7f867ea08678175f9c490d12c6d9d1e7c5ffeace3d136a3ad60552", size = 2469356 }, + { url = "https://files.pythonhosted.org/packages/c6/82/96fb09fdddedd387d5f2211f5229daf123f083f64636d23c60ba12dce009/tach-0.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a0b7fa998b447b48eb949f316c73b7b84fe68943c3bc5871462b06934fbc2eb", size = 2712971 }, + { url = "https://files.pythonhosted.org/packages/05/a9/052e088aef8a298768c41890a64d09383d22718f4cec1d147d4048c01047/tach-0.16.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:786ad5410c5e7bb6d76de3abab2bf9315019dede9ab6938970b742381d828953", size = 2690078 }, + { url = "https://files.pythonhosted.org/packages/87/18/b82f8dfff539b9dbb7378843847ee219302a4112c71d41ef8913b4b50461/tach-0.16.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8095b9bde6dddf688d20fc00971d2d2ea0f36b2bd8a1a5586ca238134ac09764", size = 2931546 }, + { url = "https://files.pythonhosted.org/packages/46/9e/e6291f985a684e592e309603492f0abb84f9d11c4883d86f9b718af06ce6/tach-0.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8d55047e49e1f5675ea9e21adc1e37bd274ddb8d5abf430832df1f64709faf9b", size = 2955232 }, + { url = "https://files.pythonhosted.org/packages/09/cc/e3697b6407df54465391df65eb464b1af52c6952d0622937ba7f752a253f/tach-0.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d85fe12897f54735e603754e6ac4a11e4fa841a71c7f4c852c324ecf66e38594", size = 3121238 }, + { url = "https://files.pythonhosted.org/packages/7f/7b/a1bc84d60f708348d4990ba1d5cc1893821aa1f50ff1fee8b0efceb44219/tach-0.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f09b92350fa008c2e18c4f61974dc565ccbcb83baa75453f92e1cbd7a800c63", size = 2813457 }, + { url = "https://files.pythonhosted.org/packages/af/a3/2cb275eef3ef49a9ae86566543b506c018e3a3913020febd9699f8c945ef/tach-0.16.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9ef79ebcdba2f9d63b0728e1125dd547b6a4f30c55da58d5429ef5e123ab2ca3", size = 2604432 }, + { url = "https://files.pythonhosted.org/packages/a1/1d/63a46ba916d7bc26c27845b129c8819a4592b1f77591ad1bdddfc43c0033/tach-0.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c150a8600c2dbba66f53c324e658cd904995c2e011606b68859dbb05fa6d940", size = 2469633 }, + { url = "https://files.pythonhosted.org/packages/cd/6d/d58e7c3d37fec58230f0cbb7e2a4601e9efbd59b168fdfbedb3e0772aec2/tach-0.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5165f0285c2ea47bbb34a37c13d736c0fe93c53df2e42b8ff6cd7ac43417db27", size = 2713242 }, + { url = "https://files.pythonhosted.org/packages/80/a2/982b19ec30976ac31de22697209a6c2ede9b2ec0aaea68c8e86d3d2bbb08/tach-0.16.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d2b3c186a86268f36cb168221b21e09d8ce061de912120f2f6eee7ed4b4625fc", size = 2689703 }, + { url = "https://files.pythonhosted.org/packages/8b/7c/066656fafbcd970e0b43dd3160613630906a1515a6554bd3743de5c04af9/tach-0.16.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d7f2e3b954b49a514b20ab7637fe36e1341d844a8184f9190c44bc6afaffd95e", size = 2931842 }, + { url = "https://files.pythonhosted.org/packages/fa/9b/592ac2b3e3f560efcba0c32c61f733c9acef5c4efaccdc2bb1319a31949a/tach-0.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d27e977bf75047f9d9db0146c74ddf285e4a05b369a1d63a93adfd5bc3fddad", size = 2955196 }, + { url = "https://files.pythonhosted.org/packages/ef/0c/6b137d58643100773ff78fcd46170f42b5b6a567c5542119bdeae84e4180/tach-0.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1845646b2ceef5d3031359a136375bb7d4dffa7cbf3573ac71bcd55f0e19e8c6", size = 3119902 }, + { url = "https://files.pythonhosted.org/packages/be/6e/88a817a2f683ee99f80449ab5359acf2c7b3f6e3334917dd088c105ebf7d/tach-0.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4dd77a2df7847c72596382ffb4e430639815feb14b99d5c5562c1510827fc323", size = 2813161 }, + { url = "https://files.pythonhosted.org/packages/03/d8/7b158c2b728651fa35dbc1db3560257a85d303145860a6dd841cbc2ee06f/tach-0.16.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:81e65b42da5a8dd174cd3328ed587b42264990740b580d5f099b910a8dc47566", size = 2605253 }, + { url = "https://files.pythonhosted.org/packages/30/dd/21a162d9db236a76beb5ea50b4d67410cddec1929ecbbf9d879f10b2d9ec/tach-0.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39722c773d06b1d8fff781bc8c41f1b11f2bff103dfdb328f5933fc3dcc8f153", size = 2470209 }, + { url = "https://files.pythonhosted.org/packages/0e/cc/44ca0e3cf76b20f416d063422a6cdb47014607978718935e4345c22c8dc9/tach-0.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:675b142fdeb1fc40eecfd1e500853a12aec1193124aa1a4711fea35f4103e07f", size = 2712574 }, + { url = "https://files.pythonhosted.org/packages/7c/a1/c5986807121cfe90e057dccfae0185c637136e410b1aa42267261fc2c89f/tach-0.16.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:671b230f0c3943e24b85c38348e04a506d0383e4dff2893d8f766e9e58d1ac8a", size = 2688435 }, + { url = "https://files.pythonhosted.org/packages/f0/61/5a367027400f5cc614466eaf5313aaa44f60a3468f79c98501f2afc26da3/tach-0.16.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e938ab2ed0c816e2ca6406615d3da8dfaf4efc7699a7f1b23a599f5826c1f17c", size = 2934403 }, + { url = "https://files.pythonhosted.org/packages/a7/41/551a81245e2e591148d302a2933351e1539221e2e5a7d2c5c43b8192eb2f/tach-0.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80517a2dbe33965149d737f89067fc83861e0c188b6015aa28f47bbb7864e9f7", size = 2954366 }, + { url = "https://files.pythonhosted.org/packages/09/bc/29f6c1fe606eac62b0ff57c5fe50a9bb4f61ef4421bb0079a2127feaf2f3/tach-0.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d8dd67881719ba8090d22c28240b6ce9aa51fe5e4f41cf2fd101f924af4b6e1", size = 3115713 }, + { url = "https://files.pythonhosted.org/packages/2b/e6/b086a2bba693b1b020f7da9b1d0339f297248531430ec4f11ab4dd324d25/tach-0.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a5fcad3d7992a02228229175e5f15e88574b0af53dfdfbabea104e090c5f667", size = 2812609 }, + { url = "https://files.pythonhosted.org/packages/40/b3/2dd89c30f3266de14b439cfba54e67baa4f9e34a1e5cfbaf0c7102b9cdf1/tach-0.16.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e6be354bc177ef07148089ea147f8bbbfe65a3e0ecbe38ebb4c88aa8f4eafc26", size = 2604458 }, + { url = "https://files.pythonhosted.org/packages/1f/8e/2ec85316a8bc60e7ad2325c313da33148f47349181f4bf2eaa6d172bc4a2/tach-0.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:192951278d5a5291b3d4a0805b0d990eca592ccfb2774ded23bf23a0b5780dca", size = 2470492 }, + { url = "https://files.pythonhosted.org/packages/8f/30/fde606583558cb2e0f7ccd8c807b77ea63130394f765846da59d22d66714/tach-0.16.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e23ea9c96599a5d9851438d29e2078cfcee2f16036cbd15612b467a5bdda29d1", size = 2712249 }, + { url = "https://files.pythonhosted.org/packages/d9/15/1d47c1ded62b1cc440e5ea347af94487b84e0e81b295c0569553bb10143b/tach-0.16.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:087a6b3ba7681507e56591cd51c98ad8e12e2664ea7afb0b555c04f6afb0443b", size = 2688158 }, + { url = "https://files.pythonhosted.org/packages/7a/d4/7919d7eaf26674cba9a55b91b9cba1ada744ba03f3aeca0b6adfc613cc44/tach-0.16.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:febaccb564c054b2d9597fc4f3ac917db8c819aef8291c4b1f3d39bff1d44c11", size = 2933824 }, + { url = "https://files.pythonhosted.org/packages/f4/84/724bb077cf1d4f56deee7e54d92692d881a31849e6221531d98f154db09a/tach-0.16.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64c8c71ebfd0ad5c63dbc1ce3e0635ec0ee1b3e3c78f650f808f0c2f3456404b", size = 2953698 }, + { url = "https://files.pythonhosted.org/packages/e3/2e/dbfeccf45ba2e38b286473f770d917508cbf3f2b19209f4d99719805107f/tach-0.16.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5f8a84e778f46bf234d0462cfddc2277c5495778a15077420d20803920acd1be", size = 3115563 }, + { url = "https://files.pythonhosted.org/packages/a7/7d/ed6ffb77581659b1043bc47a708add75a65200b59e730167d7496c33fd1e/tach-0.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a4b2a1f2b87c6100382f8cc47be83abfabf9fe1213ca3f17e643215218aaf2c", size = 2812031 }, + { url = "https://files.pythonhosted.org/packages/fa/88/5838f2f94f1175cd5f909093b343ed6bbbd6e8363984ebc0dcea97f7c5ac/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:af9fc63ffe261017e63b854574be0d409bfe662b45e72841ce1b08c9507fe63e", size = 2715843 }, + { url = "https://files.pythonhosted.org/packages/48/ad/52ddd324544f67c9a4d2d8d17a05edf3864f37418e5202c590d12cf967c3/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:079041abbba2f23129a9c2ef8e81888080c8c6129ba5d489614a65bb9e424081", size = 2689909 }, + { url = "https://files.pythonhosted.org/packages/ac/1d/2d4c67e27375bd858b5f3ab9291c1610ac245a84eeac73a95167d72a3266/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b755bc0884ca3981eb919db60b04c0a5d1efddc053bf83f6116ace714a475c71", size = 2930649 }, + { url = "https://files.pythonhosted.org/packages/df/f1/0383165567902785f80cff65732389235a5fd90f032f8170092dd12b5323/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7cf3ea7c11bf15cf19c53486705ee214f2880fd373f1aa1cd5e14f31880d3c6c", size = 2956732 }, + { url = "https://files.pythonhosted.org/packages/27/fa/149627665abc1becc17040b81f12fdf83d7df756ef8bce639421e1937cbd/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6faca7931d208e71f400aa6a6aa3136945aa2411349016dd4f92b46acc6bb032", size = 3119216 }, + { url = "https://files.pythonhosted.org/packages/c3/95/20920d0ca05da20edfc709feb365837a4e5a1cc94b0094fa1f29567823fd/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36200c7072e657e6c81358682fa95e44e510b6f7ac54ffff406e7bc3a39d5339", size = 2815672 }, ] [[package]] @@ -3634,11 +3684,35 @@ wheels = [ [[package]] name = "tomli" -version = "2.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/e4/1b6cbcc82d8832dd0ce34767d5c560df8a3547ad8cbc427f34601415930a/tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8", size = 16622 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/de/f7/4da0ffe1892122c9ea096c57f64c2753ae5dd3ce85488802d11b0992cc6d/tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391", size = 13750 }, +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", size = 131077 }, + { url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", size = 123429 }, + { url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", size = 226067 }, + { url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", size = 236030 }, + { url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", size = 240898 }, + { url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894 }, + { url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319 }, + { url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273 }, + { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762 }, + { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453 }, + { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486 }, + { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349 }, + { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159 }, + { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243 }, + { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645 }, + { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584 }, + { url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", size = 132708 }, + { url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", size = 123582 }, + { url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", size = 232543 }, + { url = "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", size = 241691 }, + { url = "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", size = 251170 }, + { url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", size = 236530 }, + { url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", size = 258666 }, + { url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", size = 243954 }, + { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 }, ] [[package]] From 08948640e35018978d807bbbe33da50ccaf421e3 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 29 Nov 2024 14:05:53 +0100 Subject: [PATCH 04/83] Remove deprecated tools and fix dependency versions to avoid dependency hell --- model/common/pyproject.toml | 9 +- pyproject.toml | 5 +- tools/.bumpversion.cfg | 10 -- tools/pyproject.toml | 14 ++ uv.lock | 319 ++++++++++++++++++++++++++---------- 5 files changed, 254 insertions(+), 103 deletions(-) delete mode 100644 tools/.bumpversion.cfg diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index 90eb95adb4..4bcd129dc3 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -34,10 +34,12 @@ all = ["icon4py-common[distributed,io,dace]"] dace = ["gt4py[dace]>=1.0.4"] distributed = ["ghex>=0.3.0", "mpi4py>=3.1.5"] io = [ + # self dependency + "icon4py-common[netcdf]", + # packages "cartopy>=0.22.0", - "datashader>=0.16.0", - "holoviews>=1.8.0", - "netcdf4>=1.6.0", + "datashader>=0.16.1", + "holoviews>=1.16.0", "scikit-learn>=1.4.0", # TODO [magdalena] there are failing tests starting from uxarray==2024.4.0: when a data file does not have # fields of a given dimension (eg 'edge') then something in uxarray goes wrong with the dimension @@ -45,6 +47,7 @@ io = [ "uxarray==2024.3.0", "xarray[complete]>=2024.3.0", ] +netcdf=["netcdf4>=1.6.1"] [project.urls] repository = "https://github.com/C2SM/icon4py" diff --git a/pyproject.toml b/pyproject.toml index cdca582e12..6518d22460 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,7 +22,8 @@ integration = ["icon4pytools>=0.0.6"] [dependency-groups] build = [ - "bump2version>=1.0.1", + "bump-my-version>=0.16.0", + "pip>=22.1.1", "setuptools>=70.1.1", "wheel>=0.45.0", "wget>=3.2", @@ -48,7 +49,7 @@ test = [ "tox>=3.25", ] typing = [ - "mypy[faster-cache]>=1.12.0", + "mypy[faster-cache]>=1.13.0", "typing-extensions>=4.11.0", "types-cffi>=1.16.0", ] diff --git a/tools/.bumpversion.cfg b/tools/.bumpversion.cfg deleted file mode 100644 index 62fb12e51e..0000000000 --- a/tools/.bumpversion.cfg +++ /dev/null @@ -1,10 +0,0 @@ -[bumpversion] -current_version = 0.0.6 -parse = (?P\d+)\.(?P\d+)(\.(?P\d+))? -serialize = - {major}.{minor}.{patch} - -[bumpversion:file:src/icon4pytools/__init__.py] -parse = \"(?P\d+)\.(?P\d+)(\.(?P\d+))?\" -serialize = - {major}.{minor}.{patch} diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 4eb34dd27f..4592f2aed7 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -49,6 +49,20 @@ py2fgen = 'icon4pytools.py2fgen.cli:main' repository = 'https://github.com/C2SM/icon4py' +# -- bump-my-version -- +[tool.bumpversion] +allow_dirty = false +commit = false +current_version = "0.0.7" +ignore_missing_version = false +message = 'Bump icon4pytools version: {current_version} → {new_version}' +parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" +serialize = ["{major}.{minor}.{patch}"] +tag = false + +[[tool.bumpversion.files]] +filename = "src/icon4pytools/__init__.py" + #-- coverage -- [tool.coverage] [tool.coverage.html] diff --git a/uv.lock b/uv.lock index dbfab9b590..56469b99c7 100644 --- a/uv.lock +++ b/uv.lock @@ -2,77 +2,29 @@ version = 1 requires-python = ">=3.10" resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", ] supported-markers = [ "sys_platform == 'darwin'", @@ -113,6 +65,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/32/34/d4e1c02d3bee589efb5dfa17f88ea08bdb3e3eac12bc475462aec52ed223/alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92", size = 13511 }, ] +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, +] + [[package]] name = "apeye" version = "1.4.1" @@ -317,12 +278,31 @@ wheels = [ ] [[package]] -name = "bump2version" -version = "1.0.1" +name = "bracex" +version = "2.5.post1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/6c/57418c4404cd22fe6275b8301ca2b46a8cdaa8157938017a9ae0b3edf363/bracex-2.5.post1.tar.gz", hash = "sha256:12c50952415bfa773d2d9ccb8e79651b8cdb1f31a42f6091b804f6ba2b4a66b6", size = 26641 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/02/8db98cdc1a58e0abd6716d5e63244658e6e63513c65f469f34b6f1053fd0/bracex-2.5.post1-py3-none-any.whl", hash = "sha256:13e5732fec27828d6af308628285ad358047cec36801598368cb28bc631dbaf6", size = 11558 }, +] + +[[package]] +name = "bump-my-version" +version = "0.28.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/29/2a/688aca6eeebfe8941235be53f4da780c6edee05dbbea5d7abaa3aab6fad2/bump2version-1.0.1.tar.gz", hash = "sha256:762cb2bfad61f4ec8e2bdf452c7c267416f8c70dd9ecb1653fd0bbb01fa936e6", size = 36236 } +dependencies = [ + { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pydantic", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pydantic-settings", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "questionary", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "rich", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "rich-click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tomlkit", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "wcmatch", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1d/44/8f4f5dc472a054634bffd86e4941b2624e0b050f15578d40ec15e670d8e5/bump_my_version-0.28.1.tar.gz", hash = "sha256:e608def5191baf505b6cde88bd679a0a95fc4cfeace4247adb60ac0f8a7e57ee", size = 983509 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1d/e3/fa60c47d7c344533142eb3af0b73234ef8ea3fb2da742ab976b947e717df/bump2version-1.0.1-py2.py3-none-any.whl", hash = "sha256:37f927ea17cde7ae2d7baf832f8e80ce3777624554a653006c9144f8017fe410", size = 22030 }, + { url = "https://files.pythonhosted.org/packages/ad/2c/10f770bf71116ecfcc8b2e67dd6752e7e135998579bc1dc98a6edb47bafc/bump_my_version-0.28.1-py3-none-any.whl", hash = "sha256:df7fdb02a1b43c122a6714df6d1fe4efc7a1220b5638ca5a0eb3018813c1b222", size = 52210 }, ] [[package]] @@ -1426,15 +1406,18 @@ io = [ [package.dev-dependencies] build = [ - { name = "bump2version", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "bump-my-version", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pip", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "setuptools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "wget", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "wheel", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] dev = [ - { name = "bump2version", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "bump-my-version", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "coverage", extra = ["toml"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "mypy", extra = ["faster-cache"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "myst-parser", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pip", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pre-commit", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pytest-benchmark", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -1480,7 +1463,6 @@ test = [ { name = "pytest-mpi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pytest-xdist", extra = ["psutil"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "tox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "wget", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] typing = [ { name = "mypy", extra = ["faster-cache"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -1505,15 +1487,18 @@ requires-dist = [ [package.metadata.requires-dev] build = [ - { name = "bump2version", specifier = ">=1.0.1" }, + { name = "bump-my-version", specifier = ">=0.16.0" }, + { name = "pip", specifier = ">=22.1.1" }, { name = "setuptools", specifier = ">=70.1.1" }, + { name = "wget", specifier = ">=3.2" }, { name = "wheel", specifier = ">=0.45.0" }, ] dev = [ - { name = "bump2version", specifier = ">=1.0.1" }, + { name = "bump-my-version", specifier = ">=0.16.0" }, { name = "coverage", extras = ["toml"], specifier = ">=7.5.0" }, - { name = "mypy", extras = ["faster-cache"], specifier = ">=1.12.0" }, + { name = "mypy", extras = ["faster-cache"], specifier = ">=1.13.0" }, { name = "myst-parser", specifier = ">=4.0.0" }, + { name = "pip", specifier = ">=22.1.1" }, { name = "pre-commit", specifier = ">=4.0.1" }, { name = "pytest", specifier = ">=8.0.1" }, { name = "pytest-benchmark", specifier = ">=5.0.0" }, @@ -1522,13 +1507,13 @@ dev = [ { name = "pytest-factoryboy", specifier = ">=2.6.1" }, { name = "pytest-mpi", specifier = ">=0.6" }, { name = "pytest-xdist", extras = ["psutil"], specifier = ">=3.5.0" }, - { name = "ruff", specifier = ">=0.7.1" }, + { name = "ruff", specifier = ">=0.8.0" }, { name = "setuptools", specifier = ">=70.1.1" }, { name = "sphinx", specifier = "==7.3.7" }, { name = "sphinx-math-dollar", specifier = ">=1.2.1" }, { name = "sphinx-rtd-theme", specifier = ">=3.0.1" }, { name = "sphinx-toolbox", specifier = ">=3.8.1" }, - { name = "tach", specifier = ">=0.15.0" }, + { name = "tach", specifier = ">=0.16.0" }, { name = "texsoup", specifier = ">=0.3.1" }, { name = "tox", specifier = ">=3.25" }, { name = "types-cffi", specifier = ">=1.16.0" }, @@ -1546,8 +1531,8 @@ docs = [ ] lint = [ { name = "pre-commit", specifier = ">=4.0.1" }, - { name = "ruff", specifier = ">=0.7.1" }, - { name = "tach", specifier = ">=0.15.0" }, + { name = "ruff", specifier = ">=0.8.0" }, + { name = "tach", specifier = ">=0.16.0" }, ] test = [ { name = "coverage", extras = ["toml"], specifier = ">=7.5.0" }, @@ -1559,10 +1544,9 @@ test = [ { name = "pytest-mpi", specifier = ">=0.6" }, { name = "pytest-xdist", extras = ["psutil"], specifier = ">=3.5.0" }, { name = "tox", specifier = ">=3.25" }, - { name = "wget", specifier = ">=3.2" }, ] typing = [ - { name = "mypy", extras = ["faster-cache"], specifier = ">=1.12.0" }, + { name = "mypy", extras = ["faster-cache"], specifier = ">=1.13.0" }, { name = "types-cffi", specifier = ">=1.16.0" }, { name = "typing-extensions", specifier = ">=4.11.0" }, ] @@ -1665,18 +1649,22 @@ io = [ { name = "uxarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "xarray", extra = ["complete"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] +netcdf = [ + { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] [package.metadata] requires-dist = [ { name = "cartopy", marker = "extra == 'io'", specifier = ">=0.22.0" }, - { name = "datashader", marker = "extra == 'io'", specifier = ">=0.16.0" }, + { name = "datashader", marker = "extra == 'io'", specifier = ">=0.16.1" }, { name = "ghex", marker = "extra == 'distributed'", git = "https://github.com/ghex-org/GHEX.git?subdirectory=bindings%2Fpython&branch=master" }, { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "gt4py", extras = ["dace"], marker = "extra == 'dace'", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, - { name = "holoviews", marker = "extra == 'io'", specifier = ">=1.8.0" }, + { name = "holoviews", marker = "extra == 'io'", specifier = ">=1.16.0" }, { name = "icon4py-common", extras = ["dace", "distributed", "io"], marker = "extra == 'all'", editable = "model/common" }, + { name = "icon4py-common", extras = ["netcdf"], marker = "extra == 'io'", editable = "model/common" }, { name = "mpi4py", marker = "extra == 'distributed'", specifier = ">=3.1.5" }, - { name = "netcdf4", marker = "extra == 'io'", specifier = ">=1.6.0" }, + { name = "netcdf4", marker = "extra == 'netcdf'", specifier = ">=1.6.1" }, { name = "scikit-learn", marker = "extra == 'io'", specifier = ">=1.4.0" }, { name = "serialbox", git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python" }, { name = "uxarray", marker = "extra == 'io'", specifier = "==2024.3.0" }, @@ -1713,7 +1701,7 @@ dependencies = [ { name = "icon4py-atmosphere-advection", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-atmosphere-diffusion", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-atmosphere-dycore", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", extra = ["netcdf"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "tabulate", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] @@ -1771,7 +1759,7 @@ name = "importlib-metadata" version = "8.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp", marker = "(python_full_version < '3.12' and sys_platform == 'darwin') or (python_full_version < '3.12' and sys_platform == 'linux')" }, + { name = "zipp", marker = "(python_full_version < '3.13' and sys_platform == 'darwin') or (python_full_version < '3.13' and sys_platform == 'linux')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } wheels = [ @@ -2662,6 +2650,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/3d/30/38bd6149cf53da1db4bad304c543ade775d225961c4310f30425995cb9ec/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734", size = 3414886 }, ] +[[package]] +name = "pip" +version = "24.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f4/b1/b422acd212ad7eedddaf7981eee6e5de085154ff726459cf2da7c5a184c1/pip-24.3.1.tar.gz", hash = "sha256:ebcb60557f2aefabc2e0f918751cd24ea0d56d8ec5445fe1807f1d2109660b99", size = 1931073 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/7d/500c9ad20238fcfcb4cb9243eede163594d7020ce87bd9610c9e02771876/pip-24.3.1-py3-none-any.whl", hash = "sha256:3790624780082365f47549d032f3770eeb2b1e8bd1f7b2e02dace1afa361b4ed", size = 1822182 }, +] + [[package]] name = "platformdirs" version = "4.3.6" @@ -2721,14 +2718,14 @@ wheels = [ [[package]] name = "prompt-toolkit" -version = "3.0.48" +version = "3.0.36" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "wcwidth", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2d/4f/feb5e137aff82f7c7f3248267b97451da3644f6cdc218edfe549fb354127/prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90", size = 424684 } +sdist = { url = "https://files.pythonhosted.org/packages/fb/93/180be2342f89f16543ec4eb3f25083b5b84eba5378f68efff05409fb39a9/prompt_toolkit-3.0.36.tar.gz", hash = "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63", size = 423863 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a9/6a/fd08d94654f7e67c52ca30523a178b3f8ccc4237fce4be90d39c938a831a/prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e", size = 386595 }, + { url = "https://files.pythonhosted.org/packages/eb/37/791f1a6edd13c61cac85282368aa68cb0f3f164440fdf60032f2cc6ca34e/prompt_toolkit-3.0.36-py3-none-any.whl", hash = "sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305", size = 386414 }, ] [[package]] @@ -2821,6 +2818,96 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/75/e7/c7c1e9e1b6b23ca1db7af3c6826d57d8da883021f751edcc9c82143b127a/pyct-0.5.0-py2.py3-none-any.whl", hash = "sha256:a4038a8885059ab8cac6f946ea30e0b5e6bdbe0b92b6723f06737035f9d65e8c", size = 15750 }, ] +[[package]] +name = "pydantic" +version = "2.10.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pydantic-core", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/86/a03390cb12cf64e2a8df07c267f3eb8d5035e0f9a04bb20fb79403d2a00e/pydantic-2.10.2.tar.gz", hash = "sha256:2bc2d7f17232e0841cbba4641e65ba1eb6fafb3a08de3a091ff3ce14a197c4fa", size = 785401 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/74/da832196702d0c56eb86b75bfa346db9238617e29b0b7ee3b8b4eccfe654/pydantic-2.10.2-py3-none-any.whl", hash = "sha256:cfb96e45951117c3024e6b67b25cdc33a3cb7b2fa62e239f7af1378358a1d99e", size = 456364 }, +] + +[[package]] +name = "pydantic-core" +version = "2.27.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/9f/7de1f19b6aea45aeb441838782d68352e71bfa98ee6fa048d5041991b33e/pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235", size = 412785 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/ce/60fd96895c09738648c83f3f00f595c807cb6735c70d3306b548cc96dd49/pydantic_core-2.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a", size = 1897984 }, + { url = "https://files.pythonhosted.org/packages/fd/b9/84623d6b6be98cc209b06687d9bca5a7b966ffed008d15225dd0d20cce2e/pydantic_core-2.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b", size = 1807491 }, + { url = "https://files.pythonhosted.org/packages/01/72/59a70165eabbc93b1111d42df9ca016a4aa109409db04304829377947028/pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:121ceb0e822f79163dd4699e4c54f5ad38b157084d97b34de8b232bcaad70278", size = 1831953 }, + { url = "https://files.pythonhosted.org/packages/7c/0c/24841136476adafd26f94b45bb718a78cb0500bd7b4f8d667b67c29d7b0d/pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4603137322c18eaf2e06a4495f426aa8d8388940f3c457e7548145011bb68e05", size = 1856071 }, + { url = "https://files.pythonhosted.org/packages/53/5e/c32957a09cceb2af10d7642df45d1e3dbd8596061f700eac93b801de53c0/pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a33cd6ad9017bbeaa9ed78a2e0752c5e250eafb9534f308e7a5f7849b0b1bfb4", size = 2038439 }, + { url = "https://files.pythonhosted.org/packages/e4/8f/979ab3eccd118b638cd6d8f980fea8794f45018255a36044dea40fe579d4/pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15cc53a3179ba0fcefe1e3ae50beb2784dede4003ad2dfd24f81bba4b23a454f", size = 2787416 }, + { url = "https://files.pythonhosted.org/packages/02/1d/00f2e4626565b3b6d3690dab4d4fe1a26edd6a20e53749eb21ca892ef2df/pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d9c5eb9273aa50999ad6adc6be5e0ecea7e09dbd0d31bd0c65a55a2592ca08", size = 2134548 }, + { url = "https://files.pythonhosted.org/packages/9d/46/3112621204128b90898adc2e721a3cd6cf5626504178d6f32c33b5a43b79/pydantic_core-2.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bf7b66ce12a2ac52d16f776b31d16d91033150266eb796967a7e4621707e4f6", size = 1989882 }, + { url = "https://files.pythonhosted.org/packages/49/ec/557dd4ff5287ffffdf16a31d08d723de6762bb1b691879dc4423392309bc/pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807", size = 1995829 }, + { url = "https://files.pythonhosted.org/packages/6e/b2/610dbeb74d8d43921a7234555e4c091cb050a2bdb8cfea86d07791ce01c5/pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c", size = 2091257 }, + { url = "https://files.pythonhosted.org/packages/8c/7f/4bf8e9d26a9118521c80b229291fa9558a07cdd9a968ec2d5c1026f14fbc/pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206", size = 2143894 }, + { url = "https://files.pythonhosted.org/packages/27/39/46fe47f2ad4746b478ba89c561cafe4428e02b3573df882334bd2964f9cb/pydantic_core-2.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8", size = 1895553 }, + { url = "https://files.pythonhosted.org/packages/1c/00/0804e84a78b7fdb394fff4c4f429815a10e5e0993e6ae0e0b27dd20379ee/pydantic_core-2.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330", size = 1807220 }, + { url = "https://files.pythonhosted.org/packages/01/de/df51b3bac9820d38371f5a261020f505025df732ce566c2a2e7970b84c8c/pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52", size = 1829727 }, + { url = "https://files.pythonhosted.org/packages/5f/d9/c01d19da8f9e9fbdb2bf99f8358d145a312590374d0dc9dd8dbe484a9cde/pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bed0f8a0eeea9fb72937ba118f9db0cb7e90773462af7962d382445f3005e5a4", size = 1854282 }, + { url = "https://files.pythonhosted.org/packages/5f/84/7db66eb12a0dc88c006abd6f3cbbf4232d26adfd827a28638c540d8f871d/pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3cb37038123447cf0f3ea4c74751f6a9d7afef0eb71aa07bf5f652b5e6a132c", size = 2037437 }, + { url = "https://files.pythonhosted.org/packages/34/ac/a2537958db8299fbabed81167d58cc1506049dba4163433524e06a7d9f4c/pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84286494f6c5d05243456e04223d5a9417d7f443c3b76065e75001beb26f88de", size = 2780899 }, + { url = "https://files.pythonhosted.org/packages/4a/c1/3e38cd777ef832c4fdce11d204592e135ddeedb6c6f525478a53d1c7d3e5/pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acc07b2cfc5b835444b44a9956846b578d27beeacd4b52e45489e93276241025", size = 2135022 }, + { url = "https://files.pythonhosted.org/packages/7a/69/b9952829f80fd555fe04340539d90e000a146f2a003d3fcd1e7077c06c71/pydantic_core-2.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fefee876e07a6e9aad7a8c8c9f85b0cdbe7df52b8a9552307b09050f7512c7e", size = 1987969 }, + { url = "https://files.pythonhosted.org/packages/05/72/257b5824d7988af43460c4e22b63932ed651fe98804cc2793068de7ec554/pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919", size = 1994625 }, + { url = "https://files.pythonhosted.org/packages/73/c3/78ed6b7f3278a36589bcdd01243189ade7fc9b26852844938b4d7693895b/pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c", size = 2090089 }, + { url = "https://files.pythonhosted.org/packages/8d/c8/b4139b2f78579960353c4cd987e035108c93a78371bb19ba0dc1ac3b3220/pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc", size = 2142496 }, + { url = "https://files.pythonhosted.org/packages/be/51/2e9b3788feb2aebff2aa9dfbf060ec739b38c05c46847601134cc1fed2ea/pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f", size = 1895239 }, + { url = "https://files.pythonhosted.org/packages/7b/9e/f8063952e4a7d0127f5d1181addef9377505dcce3be224263b25c4f0bfd9/pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02", size = 1805070 }, + { url = "https://files.pythonhosted.org/packages/2c/9d/e1d6c4561d262b52e41b17a7ef8301e2ba80b61e32e94520271029feb5d8/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c", size = 1828096 }, + { url = "https://files.pythonhosted.org/packages/be/65/80ff46de4266560baa4332ae3181fffc4488ea7d37282da1a62d10ab89a4/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac", size = 1857708 }, + { url = "https://files.pythonhosted.org/packages/d5/ca/3370074ad758b04d9562b12ecdb088597f4d9d13893a48a583fb47682cdf/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb", size = 2037751 }, + { url = "https://files.pythonhosted.org/packages/b1/e2/4ab72d93367194317b99d051947c071aef6e3eb95f7553eaa4208ecf9ba4/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529", size = 2733863 }, + { url = "https://files.pythonhosted.org/packages/8a/c6/8ae0831bf77f356bb73127ce5a95fe115b10f820ea480abbd72d3cc7ccf3/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35", size = 2161161 }, + { url = "https://files.pythonhosted.org/packages/f1/f4/b2fe73241da2429400fc27ddeaa43e35562f96cf5b67499b2de52b528cad/pydantic_core-2.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089", size = 1993294 }, + { url = "https://files.pythonhosted.org/packages/77/29/4bb008823a7f4cc05828198153f9753b3bd4c104d93b8e0b1bfe4e187540/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381", size = 2001468 }, + { url = "https://files.pythonhosted.org/packages/f2/a9/0eaceeba41b9fad851a4107e0cf999a34ae8f0d0d1f829e2574f3d8897b0/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb", size = 2091413 }, + { url = "https://files.pythonhosted.org/packages/d8/36/eb8697729725bc610fd73940f0d860d791dc2ad557faaefcbb3edbd2b349/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae", size = 2154735 }, + { url = "https://files.pythonhosted.org/packages/0f/d6/91cb99a3c59d7b072bded9959fbeab0a9613d5a4935773c0801f1764c156/pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073", size = 1895033 }, + { url = "https://files.pythonhosted.org/packages/07/42/d35033f81a28b27dedcade9e967e8a40981a765795c9ebae2045bcef05d3/pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08", size = 1807542 }, + { url = "https://files.pythonhosted.org/packages/41/c2/491b59e222ec7e72236e512108ecad532c7f4391a14e971c963f624f7569/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf", size = 1827854 }, + { url = "https://files.pythonhosted.org/packages/e3/f3/363652651779113189cefdbbb619b7b07b7a67ebb6840325117cc8cc3460/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737", size = 1857389 }, + { url = "https://files.pythonhosted.org/packages/5f/97/be804aed6b479af5a945daec7538d8bf358d668bdadde4c7888a2506bdfb/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2", size = 2037934 }, + { url = "https://files.pythonhosted.org/packages/42/01/295f0bd4abf58902917e342ddfe5f76cf66ffabfc57c2e23c7681a1a1197/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107", size = 2735176 }, + { url = "https://files.pythonhosted.org/packages/9d/a0/cd8e9c940ead89cc37812a1a9f310fef59ba2f0b22b4e417d84ab09fa970/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51", size = 2160720 }, + { url = "https://files.pythonhosted.org/packages/73/ae/9d0980e286627e0aeca4c352a60bd760331622c12d576e5ea4441ac7e15e/pydantic_core-2.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a", size = 1992972 }, + { url = "https://files.pythonhosted.org/packages/bf/ba/ae4480bc0292d54b85cfb954e9d6bd226982949f8316338677d56541b85f/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc", size = 2001477 }, + { url = "https://files.pythonhosted.org/packages/55/b7/e26adf48c2f943092ce54ae14c3c08d0d221ad34ce80b18a50de8ed2cba8/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960", size = 2091186 }, + { url = "https://files.pythonhosted.org/packages/ba/cc/8491fff5b608b3862eb36e7d29d36a1af1c945463ca4c5040bf46cc73f40/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23", size = 2154429 }, + { url = "https://files.pythonhosted.org/packages/7c/60/e5eb2d462595ba1f622edbe7b1d19531e510c05c405f0b87c80c1e89d5b1/pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6", size = 1894016 }, + { url = "https://files.pythonhosted.org/packages/61/20/da7059855225038c1c4326a840908cc7ca72c7198cb6addb8b92ec81c1d6/pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676", size = 1771648 }, + { url = "https://files.pythonhosted.org/packages/8f/fc/5485cf0b0bb38da31d1d292160a4d123b5977841ddc1122c671a30b76cfd/pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d", size = 1826929 }, + { url = "https://files.pythonhosted.org/packages/a1/ff/fb1284a210e13a5f34c639efc54d51da136074ffbe25ec0c279cf9fbb1c4/pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a3d637bd387c41d46b002f0e49c52642281edacd2740e5a42f7017feea3f2c", size = 1980591 }, + { url = "https://files.pythonhosted.org/packages/f1/14/77c1887a182d05af74f6aeac7b740da3a74155d3093ccc7ee10b900cc6b5/pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:161c27ccce13b6b0c8689418da3885d3220ed2eae2ea5e9b2f7f3d48f1d52c27", size = 1981326 }, + { url = "https://files.pythonhosted.org/packages/06/aa/6f1b2747f811a9c66b5ef39d7f02fbb200479784c75e98290d70004b1253/pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f", size = 1989205 }, + { url = "https://files.pythonhosted.org/packages/7a/d2/8ce2b074d6835f3c88d85f6d8a399790043e9fdb3d0e43455e72d19df8cc/pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed", size = 2079616 }, + { url = "https://files.pythonhosted.org/packages/65/71/af01033d4e58484c3db1e5d13e751ba5e3d6b87cc3368533df4c50932c8b/pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f", size = 2133265 }, +] + +[[package]] +name = "pydantic-settings" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "python-dotenv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b5/d4/9dfbe238f45ad8b168f5c96ee49a3df0598ce18a0795a983b419949ce65b/pydantic_settings-2.6.1.tar.gz", hash = "sha256:e0f92546d8a9923cb8941689abf85d6601a8c19a23e97a34b2964a2e3f813ca0", size = 75646 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5e/f9/ff95fd7d760af42f647ea87f9b8a383d891cdb5e5dbd4613edaeb094252a/pydantic_settings-2.6.1-py3-none-any.whl", hash = "sha256:7fb0637c786a558d3103436278a7c4f1cfd29ba8973238a50c5bb9a55387da87", size = 28595 }, +] + [[package]] name = "pydot" version = "3.0.2" @@ -3016,6 +3103,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, ] +[[package]] +name = "python-dotenv" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bc/57/e84d88dfe0aec03b7a2d4327012c1627ab5f03652216c63d49846d7a6c58/python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca", size = 39115 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a", size = 19863 }, +] + [[package]] name = "pytz" version = "2024.2" @@ -3073,6 +3169,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, ] +[[package]] +name = "questionary" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "prompt-toolkit", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/84/d0/d73525aeba800df7030ac187d09c59dc40df1c878b4fab8669bdc805535d/questionary-2.0.1.tar.gz", hash = "sha256:bcce898bf3dbb446ff62830c86c5c6fb9a22a54146f0f5597d3da43b10d8fc8b", size = 24726 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/e7/2dd8f59d1d328773505f78b85405ddb1cfe74126425d076ce72e65540b8b/questionary-2.0.1-py3-none-any.whl", hash = "sha256:8ab9a01d0b91b68444dff7f6652c1e754105533f083cbe27597c8110ecc230a2", size = 34248 }, +] + [[package]] name = "requests" version = "2.32.3" @@ -3102,6 +3210,20 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 }, ] +[[package]] +name = "rich-click" +version = "1.8.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "rich", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/f4/e48dc2850662526a26fb0961aacb0162c6feab934312b109b748ae4efee2/rich_click-1.8.4.tar.gz", hash = "sha256:0f49471f04439269d0e66a6f43120f52d11d594869a2a0be600cfb12eb0616b9", size = 38247 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/f3/72f93d8494ee641bde76bfe1208cf4abc44c6f9448673762f6077bc162d6/rich_click-1.8.4-py3-none-any.whl", hash = "sha256:2d2841b3cebe610d5682baa1194beaf78ab00c4fa31931533261b5eba2ee80b7", size = 35071 }, +] + [[package]] name = "ruamel-yaml" version = "0.18.6" @@ -3148,24 +3270,24 @@ wheels = [ [[package]] name = "ruff" -version = "0.8.0" +version = "0.8.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/d6/a2373f3ba7180ddb44420d2a9d1f1510e1a4d162b3d27282bedcb09c8da9/ruff-0.8.0.tar.gz", hash = "sha256:a7ccfe6331bf8c8dad715753e157457faf7351c2b69f62f32c165c2dbcbacd44", size = 3276537 } +sdist = { url = "https://files.pythonhosted.org/packages/95/d0/8ff5b189d125f4260f2255d143bf2fa413b69c2610c405ace7a0a8ec81ec/ruff-0.8.1.tar.gz", hash = "sha256:3583db9a6450364ed5ca3f3b4225958b24f78178908d5c4bc0f46251ccca898f", size = 3313222 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/77/e889ee3ce7fd8baa3ed1b77a03b9fb8ec1be68be1418261522fd6a5405e0/ruff-0.8.0-py3-none-linux_armv6l.whl", hash = "sha256:fcb1bf2cc6706adae9d79c8d86478677e3bbd4ced796ccad106fd4776d395fea", size = 10518283 }, - { url = "https://files.pythonhosted.org/packages/da/c8/0a47de01edf19fb22f5f9b7964f46a68d0bdff20144d134556ffd1ba9154/ruff-0.8.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:295bb4c02d58ff2ef4378a1870c20af30723013f441c9d1637a008baaf928c8b", size = 10317691 }, - { url = "https://files.pythonhosted.org/packages/41/17/9885e4a0eeae07abd2a4ebabc3246f556719f24efa477ba2739146c4635a/ruff-0.8.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7b1f1c76b47c18fa92ee78b60d2d20d7e866c55ee603e7d19c1e991fad933a9a", size = 9940999 }, - { url = "https://files.pythonhosted.org/packages/3e/cd/46b6f7043597eb318b5f5482c8ae8f5491cccce771e85f59d23106f2d179/ruff-0.8.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb0d4f250a7711b67ad513fde67e8870109e5ce590a801c3722580fe98c33a99", size = 10772437 }, - { url = "https://files.pythonhosted.org/packages/5d/87/afc95aeb8bc78b1d8a3461717a4419c05aa8aa943d4c9cbd441630f85584/ruff-0.8.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e55cce9aa93c5d0d4e3937e47b169035c7e91c8655b0974e61bb79cf398d49c", size = 10299156 }, - { url = "https://files.pythonhosted.org/packages/65/fa/04c647bb809c4d65e8eae1ed1c654d9481b21dd942e743cd33511687b9f9/ruff-0.8.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f4cd64916d8e732ce6b87f3f5296a8942d285bbbc161acee7fe561134af64f9", size = 11325819 }, - { url = "https://files.pythonhosted.org/packages/90/26/7dad6e7d833d391a8a1afe4ee70ca6f36c4a297d3cca83ef10e83e9aacf3/ruff-0.8.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c5c1466be2a2ebdf7c5450dd5d980cc87c8ba6976fb82582fea18823da6fa362", size = 12023927 }, - { url = "https://files.pythonhosted.org/packages/24/a0/be5296dda6428ba8a13bda8d09fbc0e14c810b485478733886e61597ae2b/ruff-0.8.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2dabfd05b96b7b8f2da00d53c514eea842bff83e41e1cceb08ae1966254a51df", size = 11589702 }, - { url = "https://files.pythonhosted.org/packages/26/3f/7602eb11d2886db545834182a9dbe500b8211fcbc9b4064bf9d358bbbbb4/ruff-0.8.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:facebdfe5a5af6b1588a1d26d170635ead6892d0e314477e80256ef4a8470cf3", size = 12782936 }, - { url = "https://files.pythonhosted.org/packages/4c/5d/083181bdec4ec92a431c1291d3fff65eef3ded630a4b55eb735000ef5f3b/ruff-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87a8e86bae0dbd749c815211ca11e3a7bd559b9710746c559ed63106d382bd9c", size = 11138488 }, - { url = "https://files.pythonhosted.org/packages/b7/23/c12cdef58413cee2436d6a177aa06f7a366ebbca916cf10820706f632459/ruff-0.8.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:85e654f0ded7befe2d61eeaf3d3b1e4ef3894469cd664ffa85006c7720f1e4a2", size = 10744474 }, - { url = "https://files.pythonhosted.org/packages/29/61/a12f3b81520083cd7c5caa24ba61bb99fd1060256482eff0ef04cc5ccd1b/ruff-0.8.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:83a55679c4cb449fa527b8497cadf54f076603cc36779b2170b24f704171ce70", size = 10369029 }, - { url = "https://files.pythonhosted.org/packages/08/2a/c013f4f3e4a54596c369cee74c24870ed1d534f31a35504908b1fc97017a/ruff-0.8.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:812e2052121634cf13cd6fddf0c1871d0ead1aad40a1a258753c04c18bb71bbd", size = 10867481 }, - { url = "https://files.pythonhosted.org/packages/d5/f7/685b1e1d42a3e94ceb25eab23c70bdd8c0ab66a43121ef83fe6db5a58756/ruff-0.8.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:780d5d8523c04202184405e60c98d7595bdb498c3c6abba3b6d4cdf2ca2af426", size = 11237117 }, + { url = "https://files.pythonhosted.org/packages/a2/d6/1a6314e568db88acdbb5121ed53e2c52cebf3720d3437a76f82f923bf171/ruff-0.8.1-py3-none-linux_armv6l.whl", hash = "sha256:fae0805bd514066f20309f6742f6ee7904a773eb9e6c17c45d6b1600ca65c9b5", size = 10532605 }, + { url = "https://files.pythonhosted.org/packages/89/a8/a957a8812e31facffb6a26a30be0b5b4af000a6e30c7d43a22a5232a3398/ruff-0.8.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b8a4f7385c2285c30f34b200ca5511fcc865f17578383db154e098150ce0a087", size = 10278243 }, + { url = "https://files.pythonhosted.org/packages/a8/23/9db40fa19c453fabf94f7a35c61c58f20e8200b4734a20839515a19da790/ruff-0.8.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cd054486da0c53e41e0086e1730eb77d1f698154f910e0cd9e0d64274979a209", size = 9917739 }, + { url = "https://files.pythonhosted.org/packages/e2/a0/6ee2d949835d5701d832fc5acd05c0bfdad5e89cfdd074a171411f5ccad5/ruff-0.8.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2029b8c22da147c50ae577e621a5bfbc5d1fed75d86af53643d7a7aee1d23871", size = 10779153 }, + { url = "https://files.pythonhosted.org/packages/7a/25/9c11dca9404ef1eb24833f780146236131a3c7941de394bc356912ef1041/ruff-0.8.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2666520828dee7dfc7e47ee4ea0d928f40de72056d929a7c5292d95071d881d1", size = 10304387 }, + { url = "https://files.pythonhosted.org/packages/c8/b9/84c323780db1b06feae603a707d82dbbd85955c8c917738571c65d7d5aff/ruff-0.8.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:333c57013ef8c97a53892aa56042831c372e0bb1785ab7026187b7abd0135ad5", size = 11360351 }, + { url = "https://files.pythonhosted.org/packages/6b/e1/9d4bbb2ace7aad14ded20e4674a48cda5b902aed7a1b14e6b028067060c4/ruff-0.8.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:288326162804f34088ac007139488dcb43de590a5ccfec3166396530b58fb89d", size = 12022879 }, + { url = "https://files.pythonhosted.org/packages/75/28/752ff6120c0e7f9981bc4bc275d540c7f36db1379ba9db9142f69c88db21/ruff-0.8.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b12c39b9448632284561cbf4191aa1b005882acbc81900ffa9f9f471c8ff7e26", size = 11610354 }, + { url = "https://files.pythonhosted.org/packages/ba/8c/967b61c2cc8ebd1df877607fbe462bc1e1220b4a30ae3352648aec8c24bd/ruff-0.8.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:364e6674450cbac8e998f7b30639040c99d81dfb5bbc6dfad69bc7a8f916b3d1", size = 12813976 }, + { url = "https://files.pythonhosted.org/packages/7f/29/e059f945d6bd2d90213387b8c360187f2fefc989ddcee6bbf3c241329b92/ruff-0.8.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b22346f845fec132aa39cd29acb94451d030c10874408dbf776af3aaeb53284c", size = 11154564 }, + { url = "https://files.pythonhosted.org/packages/55/47/cbd05e5a62f3fb4c072bc65c1e8fd709924cad1c7ec60a1000d1e4ee8307/ruff-0.8.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b2f2f7a7e7648a2bfe6ead4e0a16745db956da0e3a231ad443d2a66a105c04fa", size = 10760604 }, + { url = "https://files.pythonhosted.org/packages/bb/ee/4c3981c47147c72647a198a94202633130cfda0fc95cd863a553b6f65c6a/ruff-0.8.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:adf314fc458374c25c5c4a4a9270c3e8a6a807b1bec018cfa2813d6546215540", size = 10391071 }, + { url = "https://files.pythonhosted.org/packages/6b/e6/083eb61300214590b188616a8ac6ae1ef5730a0974240fb4bec9c17de78b/ruff-0.8.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a885d68342a231b5ba4d30b8c6e1b1ee3a65cf37e3d29b3c74069cdf1ee1e3c9", size = 10896657 }, + { url = "https://files.pythonhosted.org/packages/77/bd/aacdb8285d10f1b943dbeb818968efca35459afc29f66ae3bd4596fbf954/ruff-0.8.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d2c16e3508c8cc73e96aa5127d0df8913d2290098f776416a4b157657bee44c5", size = 11228362 }, ] [[package]] @@ -3724,6 +3846,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c4/ac/ce90573ba446a9bbe65838ded066a805234d159b4446ae9f8ec5bbd36cbd/tomli_w-1.1.0-py3-none-any.whl", hash = "sha256:1403179c78193e3184bfaade390ddbd071cba48a32a2e62ba11aae47490c63f7", size = 6440 }, ] +[[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" @@ -3866,6 +3997,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/10/f9/0919cf6f1432a8c4baa62511f8f8da8225432d22e83e3476f5be1a1edc6e/virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0", size = 4276702 }, ] +[[package]] +name = "wcmatch" +version = "10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bracex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/ab/b3a52228538ccb983653c446c1656eddf1d5303b9cb8b9aef6a91299f862/wcmatch-10.0.tar.gz", hash = "sha256:e72f0de09bba6a04e0de70937b0cf06e55f36f37b3deb422dfaf854b867b840a", size = 115578 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/df/4ee467ab39cc1de4b852c212c1ed3becfec2e486a51ac1ce0091f85f38d7/wcmatch-10.0-py3-none-any.whl", hash = "sha256:0dd927072d03c0a6527a20d2e6ad5ba8d0380e60870c383bc533b71744df7b7a", size = 39347 }, +] + [[package]] name = "wcwidth" version = "0.2.13" From bb87944c691627c3ee0514dfed34816bca1b7867 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 29 Nov 2024 14:17:47 +0100 Subject: [PATCH 05/83] Fixes --- pyproject.toml | 4 ++-- tools/pyproject.toml | 14 ++++++----- uv.lock | 57 ++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 63 insertions(+), 12 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6518d22460..6210076e94 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,11 +14,11 @@ dependencies = [ ] [project.optional-dependencies] -all = ["icon4py[dace,distributed,io]"] +all = ["icon4py[dace,distributed,integration,io]"] dace = ["icon4py-common[dace]>=0.0.6"] distributed = ["icon4py-common[distributed]>=0.0.6"] -io = ["icon4py-common[io]>=0.0.6"] integration = ["icon4pytools>=0.0.6"] +io = ["icon4py-common[io]>=0.0.6"] [dependency-groups] build = [ diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 4592f2aed7..aa3327eb7d 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -19,14 +19,16 @@ classifiers = [ 'Topic :: Scientific/Engineering :: Physics', ] dependencies = [ + # workspace members + 'icon4py-atmosphere-advection>=0.0.6', 'icon4py-atmosphere-diffusion>=0.0.6', 'icon4py-atmosphere-dycore>=0.0.6', - 'icon4py-atmosphere-advection>=0.0.6', 'icon4py-common[netcdf]>=0.0.6', - 'gt4py>=1.0.4', + # external dependencies + 'cffi>=1.5', 'fprettify>=0.3.7', + 'gt4py>=1.0.4', 'tabulate>=0.8.9', - 'cffi>=1.5', ] description = 'Tools and utilities for integrating icon4py code into the ICON model.' dynamic = ['version'] @@ -36,8 +38,8 @@ readme = 'README.md' requires-python = '>=3.10' [project.optional-dependencies] -cupy11 = ['cupy-cuda11x>13.0'] -cupy12 = ['cupy-cuda12x>13.0'] +cupy11 = ['cupy-cuda11x>=13.0'] +cupy12 = ['cupy-cuda12x>=13.0'] [project.scripts] f2ser = 'icon4pytools.f2ser.cli:main' @@ -113,4 +115,4 @@ conflicts = [ { extra = "cupy11" }, { extra = "cupy12" }, ], -] \ No newline at end of file +] diff --git a/uv.lock b/uv.lock index 56469b99c7..bc2335df35 100644 --- a/uv.lock +++ b/uv.lock @@ -2,29 +2,77 @@ version = 1 requires-python = ">=3.10" resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", ] supported-markers = [ "sys_platform == 'darwin'", @@ -1390,6 +1438,7 @@ dependencies = [ [package.optional-dependencies] all = [ { name = "icon4py-common", extra = ["dace", "distributed", "io"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4pytools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] dace = [ { name = "icon4py-common", extra = ["dace"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -1472,7 +1521,7 @@ typing = [ [package.metadata] requires-dist = [ - { name = "icon4py", extras = ["dace", "distributed", "io"], marker = "extra == 'all'" }, + { name = "icon4py", extras = ["dace", "distributed", "integration", "io"], marker = "extra == 'all'" }, { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, @@ -1716,8 +1765,8 @@ cupy12 = [ [package.metadata] requires-dist = [ { name = "cffi", specifier = ">=1.5" }, - { name = "cupy-cuda11x", marker = "extra == 'cupy11'", specifier = ">13.0" }, - { name = "cupy-cuda12x", marker = "extra == 'cupy12'", specifier = ">13.0" }, + { name = "cupy-cuda11x", marker = "extra == 'cupy11'", specifier = ">=13.0" }, + { name = "cupy-cuda12x", marker = "extra == 'cupy12'", specifier = ">=13.0" }, { name = "fprettify", specifier = ">=0.3.7" }, { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, @@ -1759,7 +1808,7 @@ name = "importlib-metadata" version = "8.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp", marker = "(python_full_version < '3.13' and sys_platform == 'darwin') or (python_full_version < '3.13' and sys_platform == 'linux')" }, + { name = "zipp", marker = "(python_full_version < '3.12' and sys_platform == 'darwin') or (python_full_version < '3.12' and sys_platform == 'linux')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } wheels = [ From 0d207753bbd6d716fff511f0b055b6a126ca154e Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 29 Nov 2024 14:33:08 +0100 Subject: [PATCH 06/83] WIP pytest config migration --- .license_header.txt => .header.txt | 0 pyproject.toml | 11 +++++++++++ pytest.ini | 7 ------- tools/pyproject.toml | 6 ++---- 4 files changed, 13 insertions(+), 11 deletions(-) rename .license_header.txt => .header.txt (100%) delete mode 100644 pytest.ini diff --git a/.license_header.txt b/.header.txt similarity index 100% rename from .license_header.txt rename to .header.txt diff --git a/pyproject.toml b/pyproject.toml index 6210076e94..cb841c473f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -111,6 +111,17 @@ members = [ # warn_unused_configs = true # warn_unused_ignores = true +#-- pytest -- +[tool.pytest] + +[tool.pytest.ini_options] +norecursedirs = "*_external_src" +markers = [ + "slow_tests: mark test as slow", + "datatest: test depending on serialized data generated by a full model run", + "with_netcdf: test depending on a compatible version of netCDF4", +] +addopts = ["-p", "icon4py.model.common.test_utils.pytest_config"] #-- ruff -- [tool.ruff] diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index 4a459d092e..0000000000 --- a/pytest.ini +++ /dev/null @@ -1,7 +0,0 @@ -[pytest] -norecursedirs = *_external_src -markers = - slow_tests: mark test as slow. - datatest: test depending on serialized data generated by a full model run - with_netcdf: test depending on a compatible version of netCDF4 -addopts = -p icon4py.model.common.test_utils.pytest_config diff --git a/tools/pyproject.toml b/tools/pyproject.toml index aa3327eb7d..6fd7d88c5b 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -13,6 +13,7 @@ classifiers = [ 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3 :: Only', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: Implementation :: CPython', 'Topic :: Scientific/Engineering :: Atmospheric Science', 'Topic :: Scientific/Engineering :: Mathematics', @@ -32,7 +33,7 @@ dependencies = [ ] description = 'Tools and utilities for integrating icon4py code into the ICON model.' dynamic = ['version'] -license = { file = 'LICENSE' } +license = { file = '../LICENSE' } name = 'icon4pytools' readme = 'README.md' requires-python = '>=3.10' @@ -90,9 +91,6 @@ source_pkgs = ['icon4pytools'] #-- pytest -- [tool.pytest] -# [tool.pytest.ini_options] -# testpaths = 'tests' - #--ruff -- [tool.ruff] extend = "../pyproject.toml" From 0f8639148d0c1b423bb5bffe1af8edb3225a7a4e Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 29 Nov 2024 15:07:53 +0100 Subject: [PATCH 07/83] Update license and versions --- pyproject.toml | 4 ++-- tools/pyproject.toml | 2 +- tools/src/icon4pytools/__init__.py | 3 --- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index cb841c473f..4d76dc8793 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,12 +10,12 @@ dependencies = [ "icon4py-atmosphere-advection>=0.0.6", "icon4py-atmosphere-diffusion>=0.0.6", "icon4py-atmosphere-dycore>=0.0.6", - "icon4py-atmosphere-subgrid_scale_physics-microphysics>=0.0.6", + "icon4py-atmosphere-subgrid_scale_physics-microphysics>=0.0.6" ] [project.optional-dependencies] all = ["icon4py[dace,distributed,integration,io]"] -dace = ["icon4py-common[dace]>=0.0.6"] +dace = ["icon4py-common[dace]>=0.0.6", "dace<1.0"] # Dace should be removed after updatding gt4py distributed = ["icon4py-common[distributed]>=0.0.6"] integration = ["icon4pytools>=0.0.6"] io = ["icon4py-common[io]>=0.0.6"] diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 6fd7d88c5b..5d995ec0e8 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -33,7 +33,7 @@ dependencies = [ ] description = 'Tools and utilities for integrating icon4py code into the ICON model.' dynamic = ['version'] -license = { file = '../LICENSE' } +license = {text = "BSD-3 License"} name = 'icon4pytools' readme = 'README.md' requires-python = '>=3.10' diff --git a/tools/src/icon4pytools/__init__.py b/tools/src/icon4pytools/__init__.py index 5a606d21af..5c4c4f06d5 100644 --- a/tools/src/icon4pytools/__init__.py +++ b/tools/src/icon4pytools/__init__.py @@ -12,7 +12,6 @@ from packaging import version as pkg_version - __all__ = [ "__author__", "__copyright__", @@ -21,11 +20,9 @@ "__version_info__", ] - __author__: Final = "ETH Zurich, MeteoSwiss and individual contributors" __copyright__: Final = "Copyright (c) 2022-2024 ETH Zurich and MeteoSwiss" __license__: Final = "BSD-3-Clause" - __version__: Final = "0.0.6" __version_info__: Final = pkg_version.parse(__version__) From f3ea8e61796a74d3c4d1276c5f7fc628dcdc6ed3 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 29 Nov 2024 15:07:53 +0100 Subject: [PATCH 08/83] Update license and versions --- uv.lock | 207 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 204 insertions(+), 3 deletions(-) diff --git a/uv.lock b/uv.lock index bc2335df35..6bcc41b4fc 100644 --- a/uv.lock +++ b/uv.lock @@ -4,72 +4,216 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", @@ -871,22 +1015,26 @@ wheels = [ [[package]] name = "dace" -version = "1.0.0" +version = "0.16.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aenum", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "astunparse", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "dill", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "fparser", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "networkx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "ply", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pyreadline", marker = "(platform_system == 'Windows' and sys_platform == 'darwin') or (platform_system == 'Windows' and sys_platform == 'linux')" }, { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "sympy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "websockets", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6a/4f/91260bf8b679572b5e0fd3410208ba3a724d7a23d675d1af0b362dac3e94/dace-0.16.1.tar.gz", hash = "sha256:9aef845f2f11964b587839a9ee3b4f914342b84d1d745aef44ace5227c3903f3", size = 5714118 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/cd/e8f6e406a87b3c306008ab8adb55d4eb70e4c78988e75641a573793fa81c/dace-0.16.1-py3-none-any.whl", hash = "sha256:739bb1b35b25b8886c4f2ab09af5d2f930f4e4defff4eee8ec8718f731af3447", size = 6146427 }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f3/50/ded7cbbe9eccba2b5a27444bf8951117c80d803c4741def6380fb6f063a1/dace-1.0.0.tar.gz", hash = "sha256:7accc68139898ab788d8126c2051ef1559ab56aa4d19439b89632d843cbe2ed7", size = 5801178 } [[package]] name = "dask" @@ -1437,10 +1585,12 @@ dependencies = [ [package.optional-dependencies] all = [ + { name = "dace", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-common", extra = ["dace", "distributed", "io"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4pytools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] dace = [ + { name = "dace", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-common", extra = ["dace"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] distributed = [ @@ -1521,6 +1671,7 @@ typing = [ [package.metadata] requires-dist = [ + { name = "dace", marker = "extra == 'dace'", specifier = "<1.0" }, { name = "icon4py", extras = ["dace", "distributed", "integration", "io"], marker = "extra == 'all'" }, { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, @@ -4076,6 +4227,56 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774 }, ] +[[package]] +name = "websockets" +version = "14.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f4/1b/380b883ce05bb5f45a905b61790319a28958a9ab1e4b6b95ff5464b60ca1/websockets-14.1.tar.gz", hash = "sha256:398b10c77d471c0aab20a845e7a60076b6390bfdaac7a6d2edb0d2c59d75e8d8", size = 162840 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/91/b1b375dbd856fd5fff3f117de0e520542343ecaf4e8fc60f1ac1e9f5822c/websockets-14.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a0adf84bc2e7c86e8a202537b4fd50e6f7f0e4a6b6bf64d7ccb96c4cd3330b29", size = 161950 }, + { url = "https://files.pythonhosted.org/packages/61/8f/4d52f272d3ebcd35e1325c646e98936099a348374d4a6b83b524bded8116/websockets-14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90b5d9dfbb6d07a84ed3e696012610b6da074d97453bd01e0e30744b472c8179", size = 159601 }, + { url = "https://files.pythonhosted.org/packages/c4/b1/29e87b53eb1937992cdee094a0988aadc94f25cf0b37e90c75eed7123d75/websockets-14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2177ee3901075167f01c5e335a6685e71b162a54a89a56001f1c3e9e3d2ad250", size = 159854 }, + { url = "https://files.pythonhosted.org/packages/3f/e6/752a2f5e8321ae2a613062676c08ff2fccfb37dc837a2ee919178a372e8a/websockets-14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f14a96a0034a27f9d47fd9788913924c89612225878f8078bb9d55f859272b0", size = 168835 }, + { url = "https://files.pythonhosted.org/packages/60/27/ca62de7877596926321b99071639275e94bb2401397130b7cf33dbf2106a/websockets-14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f874ba705deea77bcf64a9da42c1f5fc2466d8f14daf410bc7d4ceae0a9fcb0", size = 167844 }, + { url = "https://files.pythonhosted.org/packages/7e/db/f556a1d06635c680ef376be626c632e3f2bbdb1a0189d1d1bffb061c3b70/websockets-14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9607b9a442392e690a57909c362811184ea429585a71061cd5d3c2b98065c199", size = 168157 }, + { url = "https://files.pythonhosted.org/packages/b3/bc/99e5f511838c365ac6ecae19674eb5e94201aa4235bd1af3e6fa92c12905/websockets-14.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bea45f19b7ca000380fbd4e02552be86343080120d074b87f25593ce1700ad58", size = 168561 }, + { url = "https://files.pythonhosted.org/packages/c6/e7/251491585bad61c79e525ac60927d96e4e17b18447cc9c3cfab47b2eb1b8/websockets-14.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:219c8187b3ceeadbf2afcf0f25a4918d02da7b944d703b97d12fb01510869078", size = 167979 }, + { url = "https://files.pythonhosted.org/packages/ac/98/7ac2e4eeada19bdbc7a3a66a58e3ebdf33648b9e1c5b3f08c3224df168cf/websockets-14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ad2ab2547761d79926effe63de21479dfaf29834c50f98c4bf5b5480b5838434", size = 167925 }, + { url = "https://files.pythonhosted.org/packages/97/ed/c0d03cb607b7fe1f7ff45e2cd4bb5cd0f9e3299ced79c2c303a6fff44524/websockets-14.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:449d77d636f8d9c17952628cc7e3b8faf6e92a17ec581ec0c0256300717e1512", size = 161949 }, + { url = "https://files.pythonhosted.org/packages/06/91/bf0a44e238660d37a2dda1b4896235d20c29a2d0450f3a46cd688f43b239/websockets-14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a35f704be14768cea9790d921c2c1cc4fc52700410b1c10948511039be824aac", size = 159606 }, + { url = "https://files.pythonhosted.org/packages/ff/b8/7185212adad274c2b42b6a24e1ee6b916b7809ed611cbebc33b227e5c215/websockets-14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b1f3628a0510bd58968c0f60447e7a692933589b791a6b572fcef374053ca280", size = 159854 }, + { url = "https://files.pythonhosted.org/packages/5a/8a/0849968d83474be89c183d8ae8dcb7f7ada1a3c24f4d2a0d7333c231a2c3/websockets-14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c3deac3748ec73ef24fc7be0b68220d14d47d6647d2f85b2771cb35ea847aa1", size = 169402 }, + { url = "https://files.pythonhosted.org/packages/bd/4f/ef886e37245ff6b4a736a09b8468dae05d5d5c99de1357f840d54c6f297d/websockets-14.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7048eb4415d46368ef29d32133134c513f507fff7d953c18c91104738a68c3b3", size = 168406 }, + { url = "https://files.pythonhosted.org/packages/11/43/e2dbd4401a63e409cebddedc1b63b9834de42f51b3c84db885469e9bdcef/websockets-14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6cf0ad281c979306a6a34242b371e90e891bce504509fb6bb5246bbbf31e7b6", size = 168776 }, + { url = "https://files.pythonhosted.org/packages/6d/d6/7063e3f5c1b612e9f70faae20ebaeb2e684ffa36cb959eb0862ee2809b32/websockets-14.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cc1fc87428c1d18b643479caa7b15db7d544652e5bf610513d4a3478dbe823d0", size = 169083 }, + { url = "https://files.pythonhosted.org/packages/49/69/e6f3d953f2fa0f8a723cf18cd011d52733bd7f6e045122b24e0e7f49f9b0/websockets-14.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f95ba34d71e2fa0c5d225bde3b3bdb152e957150100e75c86bc7f3964c450d89", size = 168529 }, + { url = "https://files.pythonhosted.org/packages/70/ff/f31fa14561fc1d7b8663b0ed719996cf1f581abee32c8fb2f295a472f268/websockets-14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9481a6de29105d73cf4515f2bef8eb71e17ac184c19d0b9918a3701c6c9c4f23", size = 168475 }, + { url = "https://files.pythonhosted.org/packages/55/64/55698544ce29e877c9188f1aee9093712411a8fc9732cca14985e49a8e9c/websockets-14.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ed907449fe5e021933e46a3e65d651f641975a768d0649fee59f10c2985529ed", size = 161957 }, + { url = "https://files.pythonhosted.org/packages/a2/b1/b088f67c2b365f2c86c7b48edb8848ac27e508caf910a9d9d831b2f343cb/websockets-14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:87e31011b5c14a33b29f17eb48932e63e1dcd3fa31d72209848652310d3d1f0d", size = 159620 }, + { url = "https://files.pythonhosted.org/packages/c1/89/2a09db1bbb40ba967a1b8225b07b7df89fea44f06de9365f17f684d0f7e6/websockets-14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bc6ccf7d54c02ae47a48ddf9414c54d48af9c01076a2e1023e3b486b6e72c707", size = 159852 }, + { url = "https://files.pythonhosted.org/packages/ca/c1/f983138cd56e7d3079f1966e81f77ce6643f230cd309f73aa156bb181749/websockets-14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9777564c0a72a1d457f0848977a1cbe15cfa75fa2f67ce267441e465717dcf1a", size = 169675 }, + { url = "https://files.pythonhosted.org/packages/c1/c8/84191455d8660e2a0bdb33878d4ee5dfa4a2cedbcdc88bbd097303b65bfa/websockets-14.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a655bde548ca98f55b43711b0ceefd2a88a71af6350b0c168aa77562104f3f45", size = 168619 }, + { url = "https://files.pythonhosted.org/packages/8d/a7/62e551fdcd7d44ea74a006dc193aba370505278ad76efd938664531ce9d6/websockets-14.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3dfff83ca578cada2d19e665e9c8368e1598d4e787422a460ec70e531dbdd58", size = 169042 }, + { url = "https://files.pythonhosted.org/packages/ad/ed/1532786f55922c1e9c4d329608e36a15fdab186def3ca9eb10d7465bc1cc/websockets-14.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6a6c9bcf7cdc0fd41cc7b7944447982e8acfd9f0d560ea6d6845428ed0562058", size = 169345 }, + { url = "https://files.pythonhosted.org/packages/ea/fb/160f66960d495df3de63d9bcff78e1b42545b2a123cc611950ffe6468016/websockets-14.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4b6caec8576e760f2c7dd878ba817653144d5f369200b6ddf9771d64385b84d4", size = 168725 }, + { url = "https://files.pythonhosted.org/packages/cf/53/1bf0c06618b5ac35f1d7906444b9958f8485682ab0ea40dee7b17a32da1e/websockets-14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eb6d38971c800ff02e4a6afd791bbe3b923a9a57ca9aeab7314c21c84bf9ff05", size = 168712 }, + { url = "https://files.pythonhosted.org/packages/34/77/812b3ba5110ed8726eddf9257ab55ce9e85d97d4aa016805fdbecc5e5d48/websockets-14.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3630b670d5057cd9e08b9c4dab6493670e8e762a24c2c94ef312783870736ab9", size = 161966 }, + { url = "https://files.pythonhosted.org/packages/8d/24/4fcb7aa6986ae7d9f6d083d9d53d580af1483c5ec24bdec0978307a0f6ac/websockets-14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36ebd71db3b89e1f7b1a5deaa341a654852c3518ea7a8ddfdf69cc66acc2db1b", size = 159625 }, + { url = "https://files.pythonhosted.org/packages/f8/47/2a0a3a2fc4965ff5b9ce9324d63220156bd8bedf7f90824ab92a822e65fd/websockets-14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5b918d288958dc3fa1c5a0b9aa3256cb2b2b84c54407f4813c45d52267600cd3", size = 159857 }, + { url = "https://files.pythonhosted.org/packages/dd/c8/d7b425011a15e35e17757e4df75b25e1d0df64c0c315a44550454eaf88fc/websockets-14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00fe5da3f037041da1ee0cf8e308374e236883f9842c7c465aa65098b1c9af59", size = 169635 }, + { url = "https://files.pythonhosted.org/packages/93/39/6e3b5cffa11036c40bd2f13aba2e8e691ab2e01595532c46437b56575678/websockets-14.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8149a0f5a72ca36720981418eeffeb5c2729ea55fa179091c81a0910a114a5d2", size = 168578 }, + { url = "https://files.pythonhosted.org/packages/cf/03/8faa5c9576299b2adf34dcccf278fc6bbbcda8a3efcc4d817369026be421/websockets-14.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77569d19a13015e840b81550922056acabc25e3f52782625bc6843cfa034e1da", size = 169018 }, + { url = "https://files.pythonhosted.org/packages/8c/05/ea1fec05cc3a60defcdf0bb9f760c3c6bd2dd2710eff7ac7f891864a22ba/websockets-14.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cf5201a04550136ef870aa60ad3d29d2a59e452a7f96b94193bee6d73b8ad9a9", size = 169383 }, + { url = "https://files.pythonhosted.org/packages/21/1d/eac1d9ed787f80754e51228e78855f879ede1172c8b6185aca8cef494911/websockets-14.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:88cf9163ef674b5be5736a584c999e98daf3aabac6e536e43286eb74c126b9c7", size = 168773 }, + { url = "https://files.pythonhosted.org/packages/0e/1b/e808685530185915299740d82b3a4af3f2b44e56ccf4389397c7a5d95d39/websockets-14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:836bef7ae338a072e9d1863502026f01b14027250a4545672673057997d5c05a", size = 168757 }, + { url = "https://files.pythonhosted.org/packages/fb/cd/382a05a1ba2a93bd9fb807716a660751295df72e77204fb130a102fcdd36/websockets-14.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e5dc25a9dbd1a7f61eca4b7cb04e74ae4b963d658f9e4f9aad9cd00b688692c8", size = 159633 }, + { url = "https://files.pythonhosted.org/packages/b7/a0/fa7c62e2952ef028b422fbf420f9353d9dd4dfaa425de3deae36e98c0784/websockets-14.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:04a97aca96ca2acedf0d1f332c861c5a4486fdcba7bcef35873820f940c4231e", size = 159867 }, + { url = "https://files.pythonhosted.org/packages/c1/94/954b4924f868db31d5f0935893c7a8446515ee4b36bb8ad75a929469e453/websockets-14.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df174ece723b228d3e8734a6f2a6febbd413ddec39b3dc592f5a4aa0aff28098", size = 161121 }, + { url = "https://files.pythonhosted.org/packages/7a/2e/f12bbb41a8f2abb76428ba4fdcd9e67b5b364a3e7fa97c88f4d6950aa2d4/websockets-14.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:034feb9f4286476f273b9a245fb15f02c34d9586a5bc936aff108c3ba1b21beb", size = 160731 }, + { url = "https://files.pythonhosted.org/packages/13/97/b76979401f2373af1fe3e08f960b265cecab112e7dac803446fb98351a52/websockets-14.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c308dabd2b380807ab64b62985eaccf923a78ebc572bd485375b9ca2b7dc7", size = 160681 }, + { url = "https://files.pythonhosted.org/packages/b0/0b/c7e5d11020242984d9d37990310520ed663b942333b83a033c2f20191113/websockets-14.1-py3-none-any.whl", hash = "sha256:4d4fc827a20abe6d544a119896f6b78ee13fe81cbfef416f3f2ddf09a03f0e2e", size = 156277 }, +] + [[package]] name = "wget" version = "3.2" From e7068e1ab1d617cf4b1b1ed20b5b2e455984abe7 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 29 Nov 2024 15:15:09 +0100 Subject: [PATCH 09/83] WIP pre-commit --- .pre-commit-config.yaml | 131 +++++++++++++++++++--------------- tools/.pre-commit-config.yaml | 92 ------------------------ 2 files changed, 75 insertions(+), 148 deletions(-) delete mode 100644 tools/.pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ea4e50769b..397fe10e82 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,57 +1,76 @@ +# NOTE: pre-commit runs all hooks from the root folder of the repository, +# as regular git hooks do. Therefore, paths passed as arguments to the plugins +# should always be relative to the root folder. + +default_stages: [commit, push] +default_language_version: + python: python3.10 +minimum_pre_commit_version: 3.8.0 +files: "tools/.*" + repos: - - repo: local - hooks: - - id: run-common-precommit - name: Run Model Common Pre-commit - entry: pre-commit run --config model/common/.pre-commit-config.yaml --all-files - language: system - pass_filenames: false - always_run: true - - - id: run-driver-precommit - name: Run Model Driver Pre-commit - entry: pre-commit run --config model/driver/.pre-commit-config.yaml --all-files - language: system - pass_filenames: false - always_run: true - - - id: run-atmosphere-advection-precommit - name: Run Model Atmosphere Advection Pre-commit - entry: pre-commit run --config model/atmosphere/advection/.pre-commit-config.yaml --all-files - language: system - pass_filenames: false - always_run: true - - - id: run-atmosphere-diffusion-precommit - name: Run Model Atmosphere Diffusion Pre-commit - entry: pre-commit run --config model/atmosphere/diffusion/.pre-commit-config.yaml --all-files - language: system - pass_filenames: false - always_run: true - - - id: run-atmosphere-dycore-precommit - name: Run Model Atmosphere Dycore Pre-commit - entry: pre-commit run --config model/atmosphere/dycore/.pre-commit-config.yaml --all-files - language: system - pass_filenames: false - always_run: true - - - id: run-atmosphere-subgrid_scale_physics-microphysics-precommit - name: Run Model Atmosphere Subgrid_scale_physics Microphysics Pre-commit - entry: pre-commit run --config model/atmosphere/subgrid_scale_physics/microphysics/.pre-commit-config.yaml --all-files - language: system - pass_filenames: false - always_run: true - - - id: run-tools-precommit - name: Run Tools Pre-commit - entry: pre-commit run --config tools/.pre-commit-config.yaml --all-files - language: system - pass_filenames: false - always_run: true - - - repo: https://github.com/gauge-sh/tach-pre-commit - rev: v0.10.7 - hooks: - - id: tach - name: Check inter-package dependencies +- repo: meta + hooks: + - id: check-hooks-apply + stages: [manual] + - id: check-useless-excludes + stages: [manual] + +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.3.0 + hooks: + - id: check-case-conflict + - id: check-merge-conflict + - id: check-shebang-scripts-are-executable + - id: check-symlinks + - id: check-yaml + - id: debug-statements + - id: destroyed-symlinks + +- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks + rev: v2.6.0 + hooks: + - id: pretty-format-ini + args: [--autofix] + - id: pretty-format-toml + args: [--autofix] + - id: pretty-format-yaml + args: [--autofix, --preserve-quotes, --indent, "2"] + +- repo: https://github.com/pre-commit/mirrors-prettier + rev: v3.0.0-alpha.4 + hooks: + - id: prettier + types_or: [markdown, json] + +- repo: https://github.com/Lucas-C/pre-commit-hooks + rev: v1.5.5 + hooks: + - id: insert-license + name: add license for all ICON4Py Python source files + types: [python] + args: [--comment-style, "|#|", --license-filepath, .header.txt, --fuzzy-match-generates-todo] + +- repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.2.2 + hooks: + - id: ruff + args: [--fix] + - id: ruff-format + +- repo: local + hooks: + - id: mypy + name: mypy static type checker + entry: bash -c 'mypy tools/src/icon4pytools' + language: system + types_or: [python, pyi] + pass_filenames: false + require_serial: true + stages: [commit] + +- repo: https://github.com/gauge-sh/tach-pre-commit + rev: v0.10.7 + hooks: + - id: tach + name: Check inter-package dependencies diff --git a/tools/.pre-commit-config.yaml b/tools/.pre-commit-config.yaml deleted file mode 100644 index 0f7541b768..0000000000 --- a/tools/.pre-commit-config.yaml +++ /dev/null @@ -1,92 +0,0 @@ -# NOTE: pre-commit runs all hooks from the root folder of the repository, -# as regular git hooks do. Therefore, paths passed as arguments to the plugins -# should always be relative to the root folder. - -default_stages: [commit, push] -default_language_version: - python: python3.10 -minimum_pre_commit_version: 3.8.0 -files: "tools/.*" - -repos: -- repo: meta - hooks: - - id: check-hooks-apply - stages: [manual] - - id: check-useless-excludes - stages: [manual] - -- repo: https://github.com/asottile/setup-cfg-fmt - rev: v1.20.1 - hooks: - # Run only manually because it deletes comments - - id: setup-cfg-fmt - name: format setup.cfg - stages: [manual] - -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 - hooks: - - id: check-case-conflict - - id: check-merge-conflict - - id: check-shebang-scripts-are-executable - - id: check-symlinks - - id: check-yaml - - id: debug-statements - - id: destroyed-symlinks - -- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks - rev: v2.6.0 - hooks: - - id: pretty-format-ini - args: [--autofix] - - id: pretty-format-toml - args: [--autofix] - - id: pretty-format-yaml - args: [--autofix, --preserve-quotes, --indent, "2"] - -- repo: https://github.com/pre-commit/mirrors-prettier - rev: v3.0.0-alpha.4 - hooks: - - id: prettier - types_or: [markdown, json] - -- repo: https://github.com/Lucas-C/pre-commit-hooks - rev: v1.5.5 - hooks: - - id: insert-license - name: add license for all ICON4Py Python source files - types: [python] - args: [--comment-style, "|#|", --license-filepath, tools/.license_header.txt, --fuzzy-match-generates-todo] - -- repo: https://github.com/Lucas-C/pre-commit-hooks - rev: v1.5.5 - hooks: - - id: insert-license - name: add license for all ICON4Py Python source files - types: [fortran] - args: [--comment-style, "|!|", --license-filepath, tools/.license_header.txt, --fuzzy-match-generates-todo] - exclude: | - (?x)^( - tools/tests/f2ser/fortran_samples/diffusion_granule.f90| - tools/tests/f2ser/fortran_samples/derived_types_example.f90| - tools/tests/f2ser/fortran_samples/expected_diffusion_granule_savepoint.f90 - )$ - -- repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.2.2 - hooks: - - id: ruff - args: [--fix] - - id: ruff-format - -- repo: local - hooks: - - id: mypy - name: mypy static type checker - entry: bash -c 'mypy tools/src/icon4pytools' - language: system - types_or: [python, pyi] - pass_filenames: false - require_serial: true - stages: [commit] From 1762727b5993e681e8e7699d2302424ee0ab46cb Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 29 Nov 2024 15:23:46 +0100 Subject: [PATCH 10/83] Format fixes --- .pre-commit-config.yaml | 4 ++-- pyproject.toml | 4 ++-- tools/pyproject.toml | 36 ++++++++++++++++-------------- tools/src/icon4pytools/__init__.py | 1 + 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 397fe10e82..c7709aa818 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,7 +2,7 @@ # as regular git hooks do. Therefore, paths passed as arguments to the plugins # should always be relative to the root folder. -default_stages: [commit, push] +default_stages: [pre-commit, pre-push] default_language_version: python: python3.10 minimum_pre_commit_version: 3.8.0 @@ -67,7 +67,7 @@ repos: types_or: [python, pyi] pass_filenames: false require_serial: true - stages: [commit] + stages: [pre-commit] - repo: https://github.com/gauge-sh/tach-pre-commit rev: v0.10.7 diff --git a/pyproject.toml b/pyproject.toml index 4d76dc8793..afbe52a25e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -146,7 +146,7 @@ target-version = "py310" [tool.ruff.format] docstring-code-format = true -skip-magic-trailing-comma = true +skip-magic-trailing-comma = false [tool.ruff.lint] extend-select = ['E', 'F', 'I', 'B', 'A', 'T10', 'ERA', 'NPY', 'RUF'] @@ -170,7 +170,7 @@ ignore-init-module-imports = true [tool.ruff.lint.isort] combine-as-imports = true known-first-party = ['icon4py'] -known-third-party = ['gt4py'] +known-third-party = ['gt4py', 'packaging', 'setuptools'] lines-after-imports = 2 [tool.ruff.lint.mccabe] diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 5d995ec0e8..14021c16b3 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -3,7 +3,7 @@ build-backend = 'setuptools.build_meta' requires = ['setuptools>=61.0', 'wheel>=0.40.0'] [project] -authors = [{ email = 'gridtools@cscs.ch' }, { name = 'ETH Zurich' }] +authors = [{email = 'gridtools@cscs.ch'}, {name = 'ETH Zurich'}] classifiers = [ 'Development Status :: 3 - Alpha', 'Intended Audience :: Science/Research', @@ -17,7 +17,7 @@ classifiers = [ 'Programming Language :: Python :: Implementation :: CPython', 'Topic :: Scientific/Engineering :: Atmospheric Science', 'Topic :: Scientific/Engineering :: Mathematics', - 'Topic :: Scientific/Engineering :: Physics', + 'Topic :: Scientific/Engineering :: Physics' ] dependencies = [ # workspace members @@ -29,7 +29,7 @@ dependencies = [ 'cffi>=1.5', 'fprettify>=0.3.7', 'gt4py>=1.0.4', - 'tabulate>=0.8.9', + 'tabulate>=0.8.9' ] description = 'Tools and utilities for integrating icon4py code into the ICON model.' dynamic = ['version'] @@ -51,7 +51,6 @@ py2fgen = 'icon4pytools.py2fgen.cli:main' [project.urls] repository = 'https://github.com/C2SM/icon4py' - # -- bump-my-version -- [tool.bumpversion] allow_dirty = false @@ -66,8 +65,9 @@ tag = false [[tool.bumpversion.files]] filename = "src/icon4pytools/__init__.py" -#-- coverage -- +# -- coverage -- [tool.coverage] + [tool.coverage.html] directory = 'tests/_reports/coverage_html' @@ -76,10 +76,10 @@ source = ['src/icon4pytools/'] [tool.coverage.report] exclude_lines = [ - 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code + 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code - 'if 0:', # Don't complain if non-runnable code isn't run - 'if __name__ == .__main__.:', # Don't complain if non-runnable code isn't run + 'if 0:', # Don't complain if non-runnable code isn't run + 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run ] ignore_errors = true @@ -88,10 +88,10 @@ branch = true parallel = true source_pkgs = ['icon4pytools'] -#-- pytest -- +# -- pytest -- [tool.pytest] -#--ruff -- +# --ruff -- [tool.ruff] extend = "../pyproject.toml" @@ -99,18 +99,20 @@ extend = "../pyproject.toml" known-first-party = ['icon4pytools'] known-third-party = ['gt4py', 'icon4py'] -#-- setuptools -- +# -- setuptools -- +[tool.setuptools] + [tool.setuptools.dynamic] -version = { attr = 'icon4pytools.__init__.__version__' } +version = {attr = 'icon4pytools.__init__.__version__'} [tool.setuptools.package-data] 'icon4pytools' = ['py.typed'] -#-- uv -- +# -- uv -- [tool.uv] conflicts = [ - [ - { extra = "cupy11" }, - { extra = "cupy12" }, - ], + [ + {extra = "cupy11"}, + {extra = "cupy12"} + ] ] diff --git a/tools/src/icon4pytools/__init__.py b/tools/src/icon4pytools/__init__.py index 5c4c4f06d5..2512eedeef 100644 --- a/tools/src/icon4pytools/__init__.py +++ b/tools/src/icon4pytools/__init__.py @@ -12,6 +12,7 @@ from packaging import version as pkg_version + __all__ = [ "__author__", "__copyright__", From 426563f2440be1d93bd2080da0959edf020712b3 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Mon, 2 Dec 2024 16:28:37 +0100 Subject: [PATCH 11/83] Finish migration of tools --- .pre-commit-config.yaml | 24 +- pyproject.toml | 38 ++-- tools/noxfile.py | 23 ++ tools/pyproject.toml | 4 +- uv.lock | 481 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 539 insertions(+), 31 deletions(-) create mode 100644 tools/noxfile.py diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c7709aa818..17789baeee 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,7 +4,7 @@ default_stages: [pre-commit, pre-push] default_language_version: - python: python3.10 + python: python3.11 minimum_pre_commit_version: 3.8.0 files: "tools/.*" @@ -58,19 +58,19 @@ repos: args: [--fix] - id: ruff-format -- repo: local - hooks: - - id: mypy - name: mypy static type checker - entry: bash -c 'mypy tools/src/icon4pytools' - language: system - types_or: [python, pyi] - pass_filenames: false - require_serial: true - stages: [pre-commit] - - repo: https://github.com/gauge-sh/tach-pre-commit rev: v0.10.7 hooks: - id: tach name: Check inter-package dependencies + +# - repo: local +# hooks: +# - id: mypy +# name: mypy static type checker +# entry: bash -c 'mypy tools/src/icon4pytools model/common/src/icon4py/model/common' +# language: system +# types_or: [python, pyi] +# pass_filenames: false +# require_serial: true +# stages: [pre-commit] diff --git a/pyproject.toml b/pyproject.toml index afbe52a25e..9c73a8b53b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,6 +39,8 @@ docs = [ lint = ["pre-commit>=4.0.1", "ruff>=0.8.0", "tach>=0.16.0"] test = [ "coverage[toml]>=7.5.0", + #"nox>=2024.10.9", + "nox @ git+https://github.com/wntrblm/nox.git", "pytest-benchmark>=5.0.0", "pytest>=8.0.1", "pytest-cache>=1.0", @@ -61,7 +63,7 @@ dev = [ { include-group = "typing" }, ] -#-- packages & workspace -- +# -- packages & workspace -- [tool.uv] environments = ["sys_platform == 'darwin'", "sys_platform == 'linux'"] @@ -89,29 +91,31 @@ members = [ "tools", ] -#== Tools == -#-- mypy -- -# [tool.mypy] -# disallow_incomplete_defs = true -# disallow_untyped_defs = true +# -- mypy -- +[tool.mypy] +mypy_path = "model/common/src:tools/src" +explicit_package_bases = true +namespace_packages = true +disallow_incomplete_defs = true +disallow_untyped_defs = true # exclude = [ # '^tests/f2ser/*.py', # '^tests/icon4pygen/*.py', # '^tests/liskov/*.py', # '^tests/py2f/*.py', # ] -# ignore_missing_imports = false -# implicit_reexport = true -# install_types = true -# non_interactive = true -# show_column_numbers = true -# show_error_codes = true -# warn_redundant_casts = true -# warn_unused_configs = true -# warn_unused_ignores = true +ignore_missing_imports = true +implicit_reexport = true +install_types = true +non_interactive = true +show_column_numbers = true +show_error_codes = true +warn_redundant_casts = true +warn_unused_configs = true +warn_unused_ignores = true -#-- pytest -- +# -- pytest -- [tool.pytest] [tool.pytest.ini_options] @@ -123,7 +127,7 @@ markers = [ ] addopts = ["-p", "icon4py.model.common.test_utils.pytest_config"] -#-- ruff -- +# -- ruff -- [tool.ruff] extend-exclude = [ '.eggs', diff --git a/tools/noxfile.py b/tools/noxfile.py new file mode 100644 index 0000000000..afb32789f3 --- /dev/null +++ b/tools/noxfile.py @@ -0,0 +1,23 @@ +# ICON4Py - ICON inspired code in Python and GT4Py +# +# Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss +# All rights reserved. +# +# Please, refer to the LICENSE file in the root directory. +# SPDX-License-Identifier: BSD-3-Clause + +import nox + + +nox.options.default_venv_backend = "uv|virtualenv" + + +@nox.session +@nox.parametrize("python", ["3.10", "3.11"]) +def tests(session): + root_project = nox.project.load_toml("../pyproject.toml") + dev_workspace_group = nox.project.dependency_groups(root_project, "test") + session.install(*dev_workspace_group) + session.install(".") + num_processes = session.env.get("NUM_PROCESSES", "1") + session.run("pytest", "-v", "-n", num_processes) diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 14021c16b3..9d3b699fb2 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -51,11 +51,11 @@ py2fgen = 'icon4pytools.py2fgen.cli:main' [project.urls] repository = 'https://github.com/C2SM/icon4py' -# -- bump-my-version -- +# -- bumpversion -- [tool.bumpversion] allow_dirty = false commit = false -current_version = "0.0.7" +current_version = "0.0.6" ignore_missing_version = false message = 'Bump icon4pytools version: {current_version} → {new_version}' parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" diff --git a/uv.lock b/uv.lock index 6bcc41b4fc..753ceba7ce 100644 --- a/uv.lock +++ b/uv.lock @@ -10,6 +10,35 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", @@ -19,6 +48,21 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", @@ -28,6 +72,20 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", @@ -37,6 +95,35 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", @@ -46,6 +133,20 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", @@ -55,6 +156,20 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", @@ -64,6 +179,35 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", @@ -82,6 +226,35 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", @@ -91,6 +264,21 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", @@ -100,6 +288,20 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", @@ -109,6 +311,34 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", @@ -118,6 +348,21 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", @@ -127,6 +372,20 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", @@ -136,6 +395,35 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", @@ -154,6 +442,35 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", @@ -163,6 +480,20 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", @@ -172,6 +503,20 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", @@ -181,6 +526,35 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", @@ -190,6 +564,21 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", @@ -199,6 +588,20 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", @@ -208,6 +611,35 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", @@ -294,6 +726,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/77/9f/fa9971d2a0c6fef64c87ba362a493a4f230eff4ea8dfb9f4c7cbdf71892e/apeye_core-1.1.5-py3-none-any.whl", hash = "sha256:dc27a93f8c9e246b3b238c5ea51edf6115ab2618ef029b9f2d9a190ec8228fbf", size = 99286 }, ] +[[package]] +name = "argcomplete" +version = "3.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/39/27605e133e7f4bb0c8e48c9a6b87101515e3446003e0442761f6a02ac35e/argcomplete-3.5.1.tar.gz", hash = "sha256:eb1ee355aa2557bd3d0145de7b06b2a45b0ce461e1e7813f5d066039ab4177b4", size = 82280 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/be/a606a6701d491cfae75583c80a6583f8abe9c36c0b9666e867e7cdd62fe8/argcomplete-3.5.1-py3-none-any.whl", hash = "sha256:1a1d148bdaa3e3b93454900163403df41448a248af01b6e849edc5ac08e6c363", size = 43498 }, +] + [[package]] name = "asciitree" version = "0.3.3" @@ -791,6 +1232,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c6/c6/9963d588cc3d75d766c819e0377a168ef83cf3316a92769971527a1ad1de/colorcet-3.1.0-py3-none-any.whl", hash = "sha256:2a7d59cc8d0f7938eeedd08aad3152b5319b4ba3bcb7a612398cc17a384cb296", size = 260286 }, ] +[[package]] +name = "colorlog" +version = "6.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/7a/359f4d5df2353f26172b3cc39ea32daa39af8de522205f512f458923e677/colorlog-6.9.0.tar.gz", hash = "sha256:bfba54a1b93b94f54e1f4fe48395725a3d92fd2a4af702f6bd70946bdc0c6ac2", size = 16624 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/51/9b208e85196941db2f0654ad0357ca6388ab3ed67efdbfc799f35d1f83aa/colorlog-6.9.0-py3-none-any.whl", hash = "sha256:5906e71acd67cb07a71e779c47c4bcb45fb8c2993eebe9e5adcd6a6f1b283eff", size = 11424 }, +] + [[package]] name = "configargparse" version = "1.7" @@ -1118,6 +1568,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/06/46/01673060e83277a863baf0909b387cd809865cba2d5e7213db76516bedd9/deepdiff-8.0.1-py3-none-any.whl", hash = "sha256:42e99004ce603f9a53934c634a57b04ad5900e0d8ed0abb15e635767489cbc05", size = 82741 }, ] +[[package]] +name = "dependency-groups" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b4/57/cd53c3e335eafbb0894449af078e2b71db47e9939ce2b45013e5a9fe89b7/dependency_groups-1.3.0.tar.gz", hash = "sha256:5b9751d5d98fbd6dfd038a560a69c8382e41afcbf7ffdbcc28a2a3f85498830f", size = 9832 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/2c/3e3afb1df3dc8a8deeb143f6ac41acbfdfae4f03a54c760871c56832a554/dependency_groups-1.3.0-py3-none-any.whl", hash = "sha256:1abf34d712deda5581e80d507512664d52b35d1c2d7caf16c85e58ca508547e0", size = 8597 }, +] + [[package]] name = "devtools" version = "0.12.2" @@ -1616,6 +2079,7 @@ dev = [ { name = "coverage", extra = ["toml"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "mypy", extra = ["faster-cache"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "myst-parser", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "nox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pip", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pre-commit", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -1654,6 +2118,7 @@ lint = [ ] test = [ { name = "coverage", extra = ["toml"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "nox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pytest-benchmark", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pytest-cache", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -1698,6 +2163,7 @@ dev = [ { name = "coverage", extras = ["toml"], specifier = ">=7.5.0" }, { name = "mypy", extras = ["faster-cache"], specifier = ">=1.13.0" }, { name = "myst-parser", specifier = ">=4.0.0" }, + { name = "nox", git = "https://github.com/wntrblm/nox.git" }, { name = "pip", specifier = ">=22.1.1" }, { name = "pre-commit", specifier = ">=4.0.1" }, { name = "pytest", specifier = ">=8.0.1" }, @@ -1736,6 +2202,7 @@ lint = [ ] test = [ { name = "coverage", extras = ["toml"], specifier = ">=7.5.0" }, + { name = "nox", git = "https://github.com/wntrblm/nox.git" }, { name = "pytest", specifier = ">=8.0.1" }, { name = "pytest-benchmark", specifier = ">=5.0.0" }, { name = "pytest-cache", specifier = ">=1.0" }, @@ -2527,6 +2994,20 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314 }, ] +[[package]] +name = "nox" +version = "2024.10.9" +source = { git = "https://github.com/wntrblm/nox.git#aa09595437608dfe21eb776d8a4bcc0bd5f9916b" } +dependencies = [ + { name = "argcomplete", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "attrs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "colorlog", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "dependency-groups", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "virtualenv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + [[package]] name = "numba" version = "0.60.0" From e60d7e22274932acc7a301773b33b6c364a837c6 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Mon, 2 Dec 2024 16:42:14 +0100 Subject: [PATCH 12/83] WIP common --- .pre-commit-config.yaml | 2 +- model/.license_header.txt | 7 -- model/LICENSE | 31 ----- model/atmosphere/advection/pyproject.toml | 1 - model/atmosphere/diffusion/LICENSE | 31 ----- .../microphysics/pyproject.toml | 1 - model/common/.bumpversion.cfg | 10 -- model/common/.flake8 | 42 ------- model/common/.pre-commit-config.yaml | 80 ------------- model/common/LICENSE | 31 ----- model/common/pyproject.toml | 111 ++++++------------ model/common/requirements-dev.txt | 2 - model/common/requirements.txt | 2 - model/driver/pyproject.toml | 1 - pyproject.toml | 4 +- tools/noxfile.py | 4 +- 16 files changed, 39 insertions(+), 321 deletions(-) delete mode 100644 model/.license_header.txt delete mode 100644 model/LICENSE delete mode 100644 model/atmosphere/diffusion/LICENSE delete mode 100644 model/common/.bumpversion.cfg delete mode 100644 model/common/.flake8 delete mode 100644 model/common/.pre-commit-config.yaml delete mode 100644 model/common/LICENSE delete mode 100644 model/common/requirements-dev.txt delete mode 100644 model/common/requirements.txt diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 17789baeee..40528ed320 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -59,7 +59,7 @@ repos: - id: ruff-format - repo: https://github.com/gauge-sh/tach-pre-commit - rev: v0.10.7 + rev: v0.16.0 hooks: - id: tach name: Check inter-package dependencies diff --git a/model/.license_header.txt b/model/.license_header.txt deleted file mode 100644 index 65aab1bc58..0000000000 --- a/model/.license_header.txt +++ /dev/null @@ -1,7 +0,0 @@ -ICON4Py - ICON inspired code in Python and GT4Py - -Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss -All rights reserved. - -Please, refer to the LICENSE file in the root directory. -SPDX-License-Identifier: BSD-3-Clause diff --git a/model/LICENSE b/model/LICENSE deleted file mode 100644 index 61241df23f..0000000000 --- a/model/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ - ICON4Py - ICON inspired code in Python and GT4Py - - Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/model/atmosphere/advection/pyproject.toml b/model/atmosphere/advection/pyproject.toml index 6fb02e53fa..90d6f8ed8a 100644 --- a/model/atmosphere/advection/pyproject.toml +++ b/model/atmosphere/advection/pyproject.toml @@ -119,7 +119,6 @@ ignore = [ 'E501', # Line too long (using Bugbear's B950 warning) 'RUF009' # Do not perform function call in dataclass defaults ] -ignore-init-module-imports = true [tool.ruff.lint.isort] combine-as-imports = true diff --git a/model/atmosphere/diffusion/LICENSE b/model/atmosphere/diffusion/LICENSE deleted file mode 100644 index 61241df23f..0000000000 --- a/model/atmosphere/diffusion/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ - ICON4Py - ICON inspired code in Python and GT4Py - - Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml b/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml index 63f67a2833..0c89afe2ad 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml +++ b/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml @@ -119,7 +119,6 @@ ignore = [ 'E501', # Line too long (using Bugbear's B950 warning) 'RUF009' # Do not perform function call in dataclass defaults ] -ignore-init-module-imports = true [tool.ruff.lint.isort] combine-as-imports = true diff --git a/model/common/.bumpversion.cfg b/model/common/.bumpversion.cfg deleted file mode 100644 index 777683b350..0000000000 --- a/model/common/.bumpversion.cfg +++ /dev/null @@ -1,10 +0,0 @@ -[bumpversion] -current_version = 0.0.6 -parse = (?P\d+)\.(?P\d+)(\.(?P\d+))? -serialize = - {major}.{minor}.{patch} - -[bumpversion:file:src/icon4py/model/common/__init__.py] -parse = \"(?P\d+)\.(?P\d+)(\.(?P\d+))?\" -serialize = - {major}.{minor}.{patch} diff --git a/model/common/.flake8 b/model/common/.flake8 deleted file mode 100644 index 31cecff5ab..0000000000 --- a/model/common/.flake8 +++ /dev/null @@ -1,42 +0,0 @@ -[flake8] -# Some sane defaults for the code style checker flake8 -max-line-length = 100 -max-complexity = 15 -doctests = true -extend-ignore = - # Do not perform function calls in argument defaults - B008, - # Public code object needs docstring - D1, - # Disable dargling errors by default - DAR, - # Whitespace before ':' (black formatter breaks this sometimes) - E203, - # Line too long (using Bugbear's B950 warning) - E501, - # Line break occurred before a binary operator - W503 - -exclude = - .eggs, - .gt_cache, - .ipynb_checkpoints, - .tox, - _local_, - build, - dist, - docs, - _external_src, - tests/_disabled, - setup.py - -rst-roles = - py:mod, mod, - py:func, func, - py:data, data, - py:const, const, - py:class, class, - py:meth, meth, - py:attr, attr, - py:exc, exc, - py:obj, obj, diff --git a/model/common/.pre-commit-config.yaml b/model/common/.pre-commit-config.yaml deleted file mode 100644 index de75c60e5b..0000000000 --- a/model/common/.pre-commit-config.yaml +++ /dev/null @@ -1,80 +0,0 @@ -# NOTE: pre-commit runs all hooks from the root folder of the repository, -# as regular git hooks do. Therefore, paths passed as arguments to the plugins -# should always be relative to the root folder. - -default_stages: [commit, push] -default_language_version: - python: python3.10 -minimum_pre_commit_version: 3.8.0 -files: "model/common/.*" - -repos: -- repo: meta - hooks: - - id: check-hooks-apply - stages: [manual] - - id: check-useless-excludes - stages: [manual] - -- repo: https://github.com/asottile/setup-cfg-fmt - rev: v1.20.1 - hooks: - # Run only manually because it deletes comments - - id: setup-cfg-fmt - name: format setup.cfg - stages: [manual] - -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 - hooks: - - id: check-case-conflict - - id: check-merge-conflict - - id: check-shebang-scripts-are-executable - - id: check-symlinks - - id: check-yaml - - id: debug-statements - - id: destroyed-symlinks - -- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks - rev: v2.6.0 - hooks: - - id: pretty-format-ini - args: [--autofix] - - id: pretty-format-toml - args: [--autofix] - - id: pretty-format-yaml - args: [--autofix, --preserve-quotes, --indent, "2"] - -- repo: https://github.com/pre-commit/mirrors-prettier - rev: v3.0.0-alpha.4 - hooks: - - id: prettier - types_or: [markdown, json] - -- repo: https://github.com/Lucas-C/pre-commit-hooks - rev: v1.5.5 - hooks: - - id: insert-license - name: add license for all ICON4Py Python source files - types: [python] - args: [--comment-style, "|#|", --license-filepath, model/.license_header.txt, --fuzzy-match-generates-todo] - -- repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.2.2 - hooks: - - id: ruff - args: [--fix] - - id: ruff-format - -- repo: local - hooks: - - id: mypy - name: mypy static type checker - entry: bash -c 'echo mypy temporarily disabled' - #entry: bash -c 'cd model/atmosphere/dycore; mypy src/' -- - language: system - types_or: [python, pyi] - always_run: true - #pass_filenames: false - require_serial: true - stages: [commit] diff --git a/model/common/LICENSE b/model/common/LICENSE deleted file mode 100644 index 61241df23f..0000000000 --- a/model/common/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ - ICON4Py - ICON inspired code in Python and GT4Py - - Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index 4bcd129dc3..059dc3cbf4 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -5,18 +5,19 @@ requires = ["setuptools>=61.0", "wheel>=0.40.0"] [project] authors = [{email = "gridtools@cscs.ch"}, {name = "ETH Zurich"}] classifiers = [ - "Development Status :: 3 - Alpha", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: BSD License", - "Operating System :: POSIX", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: Implementation :: CPython", - "Topic :: Scientific/Engineering :: Atmospheric Science", - "Topic :: Scientific/Engineering :: Mathematics", - "Topic :: Scientific/Engineering :: Physics" + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: BSD License', + 'Operating System :: POSIX', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3 :: Only', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: Implementation :: CPython', + 'Topic :: Scientific/Engineering :: Atmospheric Science', + 'Topic :: Scientific/Engineering :: Mathematics', + 'Topic :: Scientific/Engineering :: Physics' ] dependencies = [ "gt4py>=1.0.4", @@ -24,7 +25,7 @@ dependencies = [ ] description = "Shared code for the icon4py model." dynamic = ['version'] -license = {file = "LICENSE"} +license = {text = "BSD-3 License"} name = "icon4py-common" readme = "README.md" requires-python = ">=3.10" @@ -52,6 +53,21 @@ netcdf=["netcdf4>=1.6.1"] [project.urls] repository = "https://github.com/C2SM/icon4py" +# -- bumpversion -- +[tool.bumpversion] +allow_dirty = false +commit = false +current_version = "0.0.6" +ignore_missing_version = false +message = 'Bump icon4pytools version: {current_version} → {new_version}' +parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" +serialize = ["{major}.{minor}.{patch}"] +tag = false + +[[tool.bumpversion.files]] +filename = "src/icon4py/model/common/__init__.py" + +# -- coverage -- [tool.coverage] [tool.coverage.html] @@ -74,20 +90,7 @@ branch = true parallel = true source_pkgs = ['common'] -[tool.mypy] -disallow_incomplete_defs = true -disallow_untyped_defs = true -exclude = ['^tests/*.py'] -ignore_missing_imports = false -implicit_reexport = true -install_types = true -non_interactive = true -show_column_numbers = true -show_error_codes = true -warn_redundant_casts = true -warn_unused_configs = true -warn_unused_ignores = true - +# -- pytest -- [tool.pytest] [tool.pytest.ini_options] @@ -98,60 +101,16 @@ markers = [ ] testpaths = 'tests' +# --ruff -- +# --ruff -- [tool.ruff] -extend-exclude = [ - '.eggs', - '.gt_cache', - '.ipynb_checkpoints', - '.tox', - '_local_', - 'build', - 'dist', - 'docs', - '_external_src', - 'tests/_disabled', - 'setup.py' -] -indent-width = 4 -line-length = 100 -respect-gitignore = true -show-fixes = true -# Assume Python 3.10 -target-version = "py310" - -[tool.ruff.format] -docstring-code-format = true - -[tool.ruff.lint] -extend-select = ['E', 'F', 'I', 'B', 'A', 'T10', 'ERA', 'NPY', 'RUF'] -# # Rules sets: -# E: pycodestyle -# F: Pyflakes -# I: isort -# B: flake8-bugbear -# A: flake8-builtins -# T10: flake8-debugger -# ERA: eradicate -# NPY: NumPy-specific rules -# RUF: Ruff-specific rules -ignore = [ - 'E501', # Line too long (using Bugbear's B950 warning) - 'RUF009' # Do not perform function call in dataclass defaults -] -ignore-init-module-imports = true +extend = "../pyproject.toml" [tool.ruff.lint.isort] -combine-as-imports = true known-first-party = ['icon4py.model'] -known-third-party = [ - 'gt4py', - 'icon4pytools' -] -lines-after-imports = 2 - -[tool.ruff.lint.mccabe] -max-complexity = 15 +known-third-party = ['gt4py', 'icon4py'] +# -- setuptools -- [tool.setuptools.dynamic] version = {attr = 'icon4py.model.common.__init__.__version__'} diff --git a/model/common/requirements-dev.txt b/model/common/requirements-dev.txt deleted file mode 100644 index 6d841625d3..0000000000 --- a/model/common/requirements-dev.txt +++ /dev/null @@ -1,2 +0,0 @@ --r ../../base-requirements-dev.txt --e .[io] diff --git a/model/common/requirements.txt b/model/common/requirements.txt deleted file mode 100644 index a79df0f222..0000000000 --- a/model/common/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ --r ../../base-requirements.txt -.[io] diff --git a/model/driver/pyproject.toml b/model/driver/pyproject.toml index 1bad2edf41..4a95bb7b7d 100644 --- a/model/driver/pyproject.toml +++ b/model/driver/pyproject.toml @@ -124,7 +124,6 @@ ignore = [ 'E501', # Line too long (using Bugbear's B950 warning) 'RUF009' # Do not perform function call in dataclass defaults ] -ignore-init-module-imports = true [tool.ruff.lint.isort] combine-as-imports = true diff --git a/pyproject.toml b/pyproject.toml index 9c73a8b53b..2f8251a002 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,8 +39,7 @@ docs = [ lint = ["pre-commit>=4.0.1", "ruff>=0.8.0", "tach>=0.16.0"] test = [ "coverage[toml]>=7.5.0", - #"nox>=2024.10.9", - "nox @ git+https://github.com/wntrblm/nox.git", + "nox @ git+https://github.com/wntrblm/nox.git", # TODO: remove once next version is released "pytest-benchmark>=5.0.0", "pytest>=8.0.1", "pytest-cache>=1.0", @@ -169,7 +168,6 @@ ignore = [ 'RUF009', # Do not perform function call in dataclass defaults 'B010', # Do not call `setattr` with a constant attribute value. ] -ignore-init-module-imports = true [tool.ruff.lint.isort] combine-as-imports = true diff --git a/tools/noxfile.py b/tools/noxfile.py index afb32789f3..7ae15d7f9d 100644 --- a/tools/noxfile.py +++ b/tools/noxfile.py @@ -16,8 +16,8 @@ @nox.parametrize("python", ["3.10", "3.11"]) def tests(session): root_project = nox.project.load_toml("../pyproject.toml") - dev_workspace_group = nox.project.dependency_groups(root_project, "test") - session.install(*dev_workspace_group) + session.install(*nox.project.dependency_groups(root_project, "test")) + session.install(".") num_processes = session.env.get("NUM_PROCESSES", "1") session.run("pytest", "-v", "-n", num_processes) From e98679bd293629bff72de42e061fb708fe140faa Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Tue, 3 Dec 2024 16:03:14 +0100 Subject: [PATCH 13/83] WIP migration to nox --- .pre-commit-config.yaml | 6 +- model/atmosphere/diffusion/pyproject.toml | 1 - model/atmosphere/dycore/pyproject.toml | 1 - model/common/pyproject.toml | 11 +-- model/requirements-dev.txt | 7 -- model/requirements.txt | 7 -- model/tox.ini | 57 --------------- noxfile.py | 89 +++++++++++++++++++++++ pyproject.toml | 14 +--- tools/noxfile.py | 23 ------ tools/pyproject.toml | 8 ++ tools/tox.ini | 22 ------ tox.ini | 14 ---- 13 files changed, 109 insertions(+), 151 deletions(-) delete mode 100644 model/requirements-dev.txt delete mode 100644 model/requirements.txt delete mode 100644 model/tox.ini create mode 100644 noxfile.py delete mode 100644 tools/noxfile.py delete mode 100644 tools/tox.ini delete mode 100644 tox.ini diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 40528ed320..8de4cc8db3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,11 @@ default_stages: [pre-commit, pre-push] default_language_version: python: python3.11 minimum_pre_commit_version: 3.8.0 -files: "tools/.*" +files: | + (?x)^( + tools/.*| + model/common/.* + )$ repos: - repo: meta diff --git a/model/atmosphere/diffusion/pyproject.toml b/model/atmosphere/diffusion/pyproject.toml index 31b71cfd7d..bda9ae0954 100644 --- a/model/atmosphere/diffusion/pyproject.toml +++ b/model/atmosphere/diffusion/pyproject.toml @@ -119,7 +119,6 @@ ignore = [ 'E501', # Line too long (using Bugbear's B950 warning) 'RUF009' # Do not perform function call in dataclass defaults ] -ignore-init-module-imports = true [tool.ruff.lint.isort] combine-as-imports = true diff --git a/model/atmosphere/dycore/pyproject.toml b/model/atmosphere/dycore/pyproject.toml index ec70c8871f..ed7221d5cb 100644 --- a/model/atmosphere/dycore/pyproject.toml +++ b/model/atmosphere/dycore/pyproject.toml @@ -118,7 +118,6 @@ ignore = [ 'E501', # Line too long (using Bugbear's B950 warning) 'RUF009' # Do not perform function call in dataclass defaults ] -ignore-init-module-imports = true [tool.ruff.lint.isort] combine-as-imports = true diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index 059dc3cbf4..d189db76a2 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -21,7 +21,7 @@ classifiers = [ ] dependencies = [ "gt4py>=1.0.4", - "serialbox>=0.0.1", + "serialbox>=0.0.1" ] description = "Shared code for the icon4py model." dynamic = ['version'] @@ -46,9 +46,9 @@ io = [ # fields of a given dimension (eg 'edge') then something in uxarray goes wrong with the dimension # mapping. It is not yet clear whether this is a uxarray bug or on our side. "uxarray==2024.3.0", - "xarray[complete]>=2024.3.0", + "xarray[complete]>=2024.3.0" ] -netcdf=["netcdf4>=1.6.1"] +netcdf = ["netcdf4>=1.6.1"] [project.urls] repository = "https://github.com/C2SM/icon4py" @@ -101,16 +101,17 @@ markers = [ ] testpaths = 'tests' -# --ruff -- # --ruff -- [tool.ruff] -extend = "../pyproject.toml" +extend = "../../pyproject.toml" [tool.ruff.lint.isort] known-first-party = ['icon4py.model'] known-third-party = ['gt4py', 'icon4py'] # -- setuptools -- +[tool.setuptools] + [tool.setuptools.dynamic] version = {attr = 'icon4py.model.common.__init__.__version__'} diff --git a/model/requirements-dev.txt b/model/requirements-dev.txt deleted file mode 100644 index 9f65e7feb8..0000000000 --- a/model/requirements-dev.txt +++ /dev/null @@ -1,7 +0,0 @@ --r ../base-requirements-dev.txt --e ./atmosphere/dycore --e ./atmosphere/diffusion --e ./atmosphere/advection --e ./atmosphere/subgrid_scale_physics/microphysics --e ./common[io] --e ./driver diff --git a/model/requirements.txt b/model/requirements.txt deleted file mode 100644 index 8aaf73e24c..0000000000 --- a/model/requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ --r ../base-requirements.txt -./atmosphere/dycore -./atmosphere/diffusion -./atmosphere/advection -./atmosphere/subgrid_scale_physics/microphysics -./common[io] -./driver diff --git a/model/tox.ini b/model/tox.ini deleted file mode 100644 index 41f7ee8da5..0000000000 --- a/model/tox.ini +++ /dev/null @@ -1,57 +0,0 @@ -# Tox configuration file -# Reference documentation: https://tox.readthedocs.org/ - -[tox] -envlist = - py{310} - dev -skipsdist = true - -[testenv] -passenv = - CUDA_PATH - CUDAARCHS - NUM_PROCESSES - PIP_USER - PYTHONUSERBASE - TEST_DATA_PATH -deps = - -r {toxinidir}/requirements-dev.txt -commands = - pip list - -pytest -v -n {env:NUM_PROCESSES:1} --cache-clear --cov --cov-reset --doctest-modules atmosphere/dycore/src atmosphere/diffusion/src atmosphere/advection/src common/src driver/src - pytest -v -m "not slow_tests" --cov --cov-append {posargs} -commands_post = - rm -rf tests/_reports/coverage_html - -coverage html - -coverage report -allowlist_externals = - /bin/bash - rm - -[testenv:run_stencil_tests] -commands = - pytest -v -m "not slow_tests" --cov --cov-append atmosphere/diffusion/tests/diffusion_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} - pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dycore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} - pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} - -[testenv:run_benchmarks] -commands = - pytest -v -m "not slow_tests" atmosphere/diffusion/tests/diffusion_stencil_tests --benchmark-only {posargs} - pytest -v -m "not slow_tests" atmosphere/dycore/tests/dycore_stencil_tests --benchmark-only {posargs} - pytest -v -m "not slow_tests" atmosphere/advection/tests/advection_stencil_tests --benchmark-only {posargs} - -[testenv:run_model_tests] -commands = - pytest -v -m "not slow_tests" --datatest {posargs} - -[testenv:dev] -setenv = - PIP_SRC = _external_src -skip_install = true -commands = -commands_post = - -[pytest] -addopts = -p icon4py.model.common.test_utils.pytest_config -norecursedirs=*_external_src diff --git a/noxfile.py b/noxfile.py new file mode 100644 index 0000000000..7988482fa9 --- /dev/null +++ b/noxfile.py @@ -0,0 +1,89 @@ +# ICON4Py - ICON inspired code in Python and GT4Py +# +# Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss +# All rights reserved. +# +# Please, refer to the LICENSE file in the root directory. +# SPDX-License-Identifier: BSD-3-Clause + +import nox + +nox.options.default_venv_backend = "uv" +nox.options.sessions = ["lint", "test"] + + +def session_install( + session: nox.Session, *, groups: tuple[str, ...]= (), requirements: tuple[tuple[str, ...], ...] = () +) -> None: + """Install session packages using uv.""" + session.run_install( + "uv", + "sync", + "--no-dev", + *(f"--group={g}" for g in groups), + env={"UV_PROJECT_ENVIRONMENT": session.virtualenv.location}, + ) + for item in requirements: + session.run_install( + "uv", + "pip", + "install", + *item + ) + + +@nox.session(python=["3.10", "3.11"]) +def test_tools(session: nox.Session) -> None: + """Run the unit and regular tests for the integration tools.""" + session_install(session, groups=("test",)) + session.run("pytest", "-sv", "-n", session.env.get("NUM_PROCESSES", "1"), *session.posargs) + + +@nox.session(python=["3.10", "3.11"]) +@nox.parametrize("package", ["atmosphere.dycore", "atmosphere.advection", "atmosphere.diffusion"]) +def tests_model(session: nox.Session, package: str) -> None: + """Run the unit and regular tests for the model.""" + session_install(session, groups=("test",)) + session.run( + "pytest", "-v", "-m", "not slow_tests", "--cov", "--cov-append", "--benchmark-skip", "-n", session.env.get("NUM_PROCESSES", "1"), + "atmosphere/diffusion/tests/diffusion_stencil_tests", *session.posargs + ) + pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dcore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} + pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} + + + + + +@nox.session(python=["3.10", "3.11"]) +@nox.parametrize("package", ["atmosphere.dycore", "atmosphere.advection", "atmosphere.diffusion"]) +def tests_model(session: nox.Session, package: str) -> None: + """Run the unit and regular tests for the model.""" + session_install(session, groups=("test",)) + session.run( + "pytest", "-v", "-m", "not slow_tests", "--cov", "--cov-append", "--benchmark-skip", "-n", session.env.get("NUM_PROCESSES", "1"), + "atmosphere/diffusion/tests/diffusion_stencil_tests", *session.posargs + ) + pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dcore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} + pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} + + + +[testenv:run_stencil_tests] +commands = + pytest -v -m "not slow_tests" --cov --cov-append atmosphere/diffusion/tests/diffusion_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} + pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dycore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} + pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} + +[testenv:run_benchmarks] +commands = + pytest -v -m "not slow_tests" atmosphere/diffusion/tests/diffusion_stencil_tests --benchmark-only {posargs} + pytest -v -m "not slow_tests" atmosphere/dycore/tests/dycore_stencil_tests --benchmark-only {posargs} + pytest -v -m "not slow_tests" atmosphere/advection/tests/advection_stencil_tests --benchmark-only {posargs} + +[testenv:run_model_tests] +commands = + pytest -v -m "not slow_tests" --datatest {posargs} + + +addopts = ["-p", "icon4py.model.common.test_utils.pytest_config"] diff --git a/pyproject.toml b/pyproject.toml index 2f8251a002..b03af96a3c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,7 @@ docs = [ lint = ["pre-commit>=4.0.1", "ruff>=0.8.0", "tach>=0.16.0"] test = [ "coverage[toml]>=7.5.0", - "nox @ git+https://github.com/wntrblm/nox.git", # TODO: remove once next version is released + "nox @ git+https://github.com/wntrblm/nox.git@aa09595437608dfe21eb776d8a4bcc0bd5f9916b", # TODO: remove once next version is released "pytest-benchmark>=5.0.0", "pytest>=8.0.1", "pytest-cache>=1.0", @@ -114,18 +114,6 @@ warn_redundant_casts = true warn_unused_configs = true warn_unused_ignores = true -# -- pytest -- -[tool.pytest] - -[tool.pytest.ini_options] -norecursedirs = "*_external_src" -markers = [ - "slow_tests: mark test as slow", - "datatest: test depending on serialized data generated by a full model run", - "with_netcdf: test depending on a compatible version of netCDF4", -] -addopts = ["-p", "icon4py.model.common.test_utils.pytest_config"] - # -- ruff -- [tool.ruff] extend-exclude = [ diff --git a/tools/noxfile.py b/tools/noxfile.py deleted file mode 100644 index 7ae15d7f9d..0000000000 --- a/tools/noxfile.py +++ /dev/null @@ -1,23 +0,0 @@ -# ICON4Py - ICON inspired code in Python and GT4Py -# -# Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss -# All rights reserved. -# -# Please, refer to the LICENSE file in the root directory. -# SPDX-License-Identifier: BSD-3-Clause - -import nox - - -nox.options.default_venv_backend = "uv|virtualenv" - - -@nox.session -@nox.parametrize("python", ["3.10", "3.11"]) -def tests(session): - root_project = nox.project.load_toml("../pyproject.toml") - session.install(*nox.project.dependency_groups(root_project, "test")) - - session.install(".") - num_processes = session.env.get("NUM_PROCESSES", "1") - session.run("pytest", "-v", "-n", num_processes) diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 9d3b699fb2..ca8e9d4aaf 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -91,6 +91,14 @@ source_pkgs = ['icon4pytools'] # -- pytest -- [tool.pytest] +[tool.pytest.ini_options] +addopts = ['-p icon4py.model.common.test_utils.pytest_config'] +markers = [ + "datatest: test depending on serialized data generated by a full model run", + "slow_tests: mark test as slow", +] +testpaths = 'tests' + # --ruff -- [tool.ruff] extend = "../pyproject.toml" diff --git a/tools/tox.ini b/tools/tox.ini deleted file mode 100644 index 6f3c8e62a5..0000000000 --- a/tools/tox.ini +++ /dev/null @@ -1,22 +0,0 @@ -[tox] -envlist = - py{310} - dev -skipsdist = true - -[testenv] -passenv = - CUDA_PATH - CUDAARCHS - NUM_PROCESSES - PIP_USER - PYTHONUSERBASE - TEST_DATA_PATH - ICON_GRID_LOC - PY2F_GPU_TESTS - CUDACXX - NVFORTRAN_COMPILER -deps = - -r {toxinidir}/requirements-dev.txt -commands = - pytest -v -n {env:NUM_PROCESSES:1} diff --git a/tox.ini b/tox.ini deleted file mode 100644 index 72f8ee1d61..0000000000 --- a/tox.ini +++ /dev/null @@ -1,14 +0,0 @@ -# Tox configuration file -# Reference documentation: https://tox.readthedocs.org/ - -[tox] -envlist = - dev -skipsdist = true - -[testenv] -deps = - -r {toxinidir}/requirements-dev.txt -setenv = - PIP_SRC = _external_src -skip_install = true From eafa9fe3aac59fe746127353c2b3decd52864ef9 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 4 Dec 2024 12:48:36 +0100 Subject: [PATCH 14/83] WIP adding icon4py.testing --- .pre-commit-config.yaml | 2 +- .header.txt => HEADER.txt | 0 .../advection/tests/advection_tests/utils.py | 4 +- .../tests/diffusion_tests/test_diffusion.py | 3 +- .../diffusion/tests/diffusion_tests/utils.py | 3 +- .../dycore/tests/dycore_tests/utils.py | 3 +- .../model/common/test_utils/__init__.py | 8 - .../serialbox_utils.py => utils/serialbox.py} | 0 model/driver/.flake8 | 42 - model/driver/LICENSE | 31 - .../model/driver/initialization_utils.py | 3 +- .../icon4py/model/driver/serialbox_helpers.py | 2 +- .../model/driver/test_cases/gauss3d.py | 2 +- .../test_cases/jablonowski_williamson.py | 2 +- model/testing/README.md | 1 + model/testing/pyproject.toml | 70 + .../src/icon4py/model/testing/__init__.py | 29 + .../icon4py/model/testing}/data_handling.py | 2 +- .../model/testing}/datatest_fixtures.py | 0 .../icon4py/model/testing}/datatest_utils.py | 4 +- .../src/icon4py/model/testing}/grid_utils.py | 0 .../src/icon4py/model/testing}/helpers.py | 0 .../model/testing}/parallel_helpers.py | 0 .../icon4py/model/testing}/pytest_config.py | 0 .../icon4py/model/testing}/reference_funcs.py | 0 pyproject.toml | 19 +- uv.lock | 1326 ++++++++++++++++- 27 files changed, 1449 insertions(+), 107 deletions(-) rename .header.txt => HEADER.txt (100%) delete mode 100644 model/common/src/icon4py/model/common/test_utils/__init__.py rename model/common/src/icon4py/model/common/{test_utils/serialbox_utils.py => utils/serialbox.py} (100%) delete mode 100644 model/driver/.flake8 delete mode 100644 model/driver/LICENSE create mode 100644 model/testing/README.md create mode 100644 model/testing/pyproject.toml create mode 100644 model/testing/src/icon4py/model/testing/__init__.py rename model/{common/src/icon4py/model/common/test_utils => testing/src/icon4py/model/testing}/data_handling.py (99%) rename model/{common/src/icon4py/model/common/test_utils => testing/src/icon4py/model/testing}/datatest_fixtures.py (100%) rename model/{common/src/icon4py/model/common/test_utils => testing/src/icon4py/model/testing}/datatest_utils.py (96%) rename model/{common/src/icon4py/model/common/test_utils => testing/src/icon4py/model/testing}/grid_utils.py (100%) rename model/{common/src/icon4py/model/common/test_utils => testing/src/icon4py/model/testing}/helpers.py (100%) rename model/{common/src/icon4py/model/common/test_utils => testing/src/icon4py/model/testing}/parallel_helpers.py (100%) rename model/{common/src/icon4py/model/common/test_utils => testing/src/icon4py/model/testing}/pytest_config.py (100%) rename model/{common/src/icon4py/model/common/test_utils => testing/src/icon4py/model/testing}/reference_funcs.py (100%) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8de4cc8db3..e34231bb5c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -53,7 +53,7 @@ repos: - id: insert-license name: add license for all ICON4Py Python source files types: [python] - args: [--comment-style, "|#|", --license-filepath, .header.txt, --fuzzy-match-generates-todo] + args: [--comment-style, "|#|", --license-filepath, HEADER.txt, --fuzzy-match-generates-todo] - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.2.2 diff --git a/.header.txt b/HEADER.txt similarity index 100% rename from .header.txt rename to HEADER.txt diff --git a/model/atmosphere/advection/tests/advection_tests/utils.py b/model/atmosphere/advection/tests/advection_tests/utils.py index dbd884c25f..9527631cc6 100644 --- a/model/atmosphere/advection/tests/advection_tests/utils.py +++ b/model/atmosphere/advection/tests/advection_tests/utils.py @@ -14,8 +14,8 @@ from icon4py.model.atmosphere.advection import advection, advection_states from icon4py.model.common import dimension as dims, field_type_aliases as fa, type_alias as ta from icon4py.model.common.grid import horizontal as h_grid, icon as icon_grid -from icon4py.model.common.test_utils import helpers, serialbox_utils as sb -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.test_utils import helpers +from icon4py.model.common.utils import gt4py_field_allocation as field_alloc, serialbox as sb # flake8: noqa diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py index 68e4b6bba5..fd0a8b63ed 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py @@ -24,9 +24,8 @@ grid_utils, helpers, reference_funcs as ref_funcs, - serialbox_utils as sb, ) -from icon4py.model.common.utils import gt4py_field_allocation as alloc +from icon4py.model.common.utils import gt4py_field_allocation as alloc, serialbox as sb from .utils import ( compare_dace_orchestration_multiple_steps, diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/utils.py b/model/atmosphere/diffusion/tests/diffusion_tests/utils.py index 804f8b4bf3..df9cd44eab 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/utils.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/utils.py @@ -6,11 +6,12 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause +from icon4py.model.common.utils import serialbox as sb import numpy as np from icon4py.model.atmosphere.diffusion import diffusion, diffusion_states from icon4py.model.common.states import prognostic_state as prognostics -from icon4py.model.common.test_utils import helpers, serialbox_utils as sb +from icon4py.model.common.test_utils import helpers def verify_diffusion_fields( diff --git a/model/atmosphere/dycore/tests/dycore_tests/utils.py b/model/atmosphere/dycore/tests/dycore_tests/utils.py index b0bb3df16b..401c7c13d8 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/utils.py +++ b/model/atmosphere/dycore/tests/dycore_tests/utils.py @@ -10,7 +10,8 @@ from icon4py.model.common import dimension as dims, utils as common_utils from icon4py.model.common.grid import vertical as v_grid from icon4py.model.common.states import prognostic_state as prognostics -from icon4py.model.common.test_utils import helpers, serialbox_utils as sb +from icon4py.model.common.test_utils import helpers +from icon4py.model.common.utils import serialbox as sb def construct_interpolation_state( diff --git a/model/common/src/icon4py/model/common/test_utils/__init__.py b/model/common/src/icon4py/model/common/test_utils/__init__.py deleted file mode 100644 index 80b673df7e..0000000000 --- a/model/common/src/icon4py/model/common/test_utils/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -# ICON4Py - ICON inspired code in Python and GT4Py -# -# Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss -# All rights reserved. -# -# Please, refer to the LICENSE file in the root directory. -# SPDX-License-Identifier: BSD-3-Clause - diff --git a/model/common/src/icon4py/model/common/test_utils/serialbox_utils.py b/model/common/src/icon4py/model/common/utils/serialbox.py similarity index 100% rename from model/common/src/icon4py/model/common/test_utils/serialbox_utils.py rename to model/common/src/icon4py/model/common/utils/serialbox.py diff --git a/model/driver/.flake8 b/model/driver/.flake8 deleted file mode 100644 index 31cecff5ab..0000000000 --- a/model/driver/.flake8 +++ /dev/null @@ -1,42 +0,0 @@ -[flake8] -# Some sane defaults for the code style checker flake8 -max-line-length = 100 -max-complexity = 15 -doctests = true -extend-ignore = - # Do not perform function calls in argument defaults - B008, - # Public code object needs docstring - D1, - # Disable dargling errors by default - DAR, - # Whitespace before ':' (black formatter breaks this sometimes) - E203, - # Line too long (using Bugbear's B950 warning) - E501, - # Line break occurred before a binary operator - W503 - -exclude = - .eggs, - .gt_cache, - .ipynb_checkpoints, - .tox, - _local_, - build, - dist, - docs, - _external_src, - tests/_disabled, - setup.py - -rst-roles = - py:mod, mod, - py:func, func, - py:data, data, - py:const, const, - py:class, class, - py:meth, meth, - py:attr, attr, - py:exc, exc, - py:obj, obj, diff --git a/model/driver/LICENSE b/model/driver/LICENSE deleted file mode 100644 index 61241df23f..0000000000 --- a/model/driver/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ - ICON4Py - ICON inspired code in Python and GT4Py - - Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/model/driver/src/icon4py/model/driver/initialization_utils.py b/model/driver/src/icon4py/model/driver/initialization_utils.py index e87c46bd62..d69177e995 100644 --- a/model/driver/src/icon4py/model/driver/initialization_utils.py +++ b/model/driver/src/icon4py/model/driver/initialization_utils.py @@ -26,9 +26,8 @@ from icon4py.model.common.test_utils import ( datatest_utils as dt_utils, helpers, - serialbox_utils as sb, ) -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import gt4py_field_allocation as field_alloc, serialbox as sb from icon4py.model.driver import ( serialbox_helpers as driver_sb, ) diff --git a/model/driver/src/icon4py/model/driver/serialbox_helpers.py b/model/driver/src/icon4py/model/driver/serialbox_helpers.py index 15da7993ef..51f8b55260 100644 --- a/model/driver/src/icon4py/model/driver/serialbox_helpers.py +++ b/model/driver/src/icon4py/model/driver/serialbox_helpers.py @@ -8,7 +8,7 @@ from icon4py.model.atmosphere.diffusion import diffusion_states as diffus_states from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils import serialbox_utils as sb +from icon4py.model.common.utils import serialbox as sb from icon4py.model.common.test_utils.helpers import as_1D_sparse_field diff --git a/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py b/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py index 726655e2e0..2371494eac 100644 --- a/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py +++ b/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py @@ -23,7 +23,7 @@ diagnostic_state as diagnostics, prognostic_state as prognostics, ) -from icon4py.model.common.test_utils import serialbox_utils as sb +from icon4py.model.common.utils import serialbox as sb from icon4py.model.common.utils import gt4py_field_allocation as field_alloc from icon4py.model.driver.test_cases import utils as testcases_utils diff --git a/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py b/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py index 49b27c44e9..48550a3647 100644 --- a/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py +++ b/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py @@ -24,7 +24,7 @@ diagnostic_state as diagnostics, prognostic_state as prognostics, ) -from icon4py.model.common.test_utils import serialbox_utils as sb +from icon4py.model.common.utils import serialbox as sb from icon4py.model.common.utils import gt4py_field_allocation as field_alloc from icon4py.model.driver.test_cases import utils as testcases_utils diff --git a/model/testing/README.md b/model/testing/README.md new file mode 100644 index 0000000000..ce048b6f15 --- /dev/null +++ b/model/testing/README.md @@ -0,0 +1 @@ +# Testing utils for Python ICON port diff --git a/model/testing/pyproject.toml b/model/testing/pyproject.toml new file mode 100644 index 0000000000..5307b735b1 --- /dev/null +++ b/model/testing/pyproject.toml @@ -0,0 +1,70 @@ +[build-system] +build-backend = "setuptools.build_meta" +requires = ["setuptools>=61.0", "wheel>=0.40.0"] + +[project] +authors = [{email = "gridtools@cscs.ch"}, {name = "ETH Zurich"}] +classifiers = [ + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: BSD License', + 'Operating System :: POSIX', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3 :: Only', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: Implementation :: CPython', + 'Topic :: Scientific/Engineering :: Atmospheric Science', + 'Topic :: Scientific/Engineering :: Mathematics', + 'Topic :: Scientific/Engineering :: Physics' +] +dependencies = [ + # workspace members + 'icon4py-common[netcdf]>=0.0.6', + # external dependencies + "gt4py>=1.0.4", + "numpy>1.24.0", + "serialbox>=0.0.1", + "typing-extensions>=4.11.0", +] +description = "Testing utils for the icon4py model." +dynamic = ['version'] +license = {text = "BSD-3 License"} +name = "icon4py-testing" +readme = "README.md" +requires-python = ">=3.10" + +[project.urls] +repository = "https://github.com/C2SM/icon4py" + +# -- bumpversion -- +[tool.bumpversion] +allow_dirty = false +commit = false +current_version = "0.0.6" +ignore_missing_version = false +message = 'Bump icon4py.testing version: {current_version} → {new_version}' +parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" +serialize = ["{major}.{minor}.{patch}"] +tag = false + +[[tool.bumpversion.files]] +filename = "src/icon4py/model/testing/__init__.py" + +# --ruff -- +[tool.ruff] +extend = "../../pyproject.toml" + +[tool.ruff.lint.isort] +known-first-party = ['icon4py.model'] +known-third-party = ['gt4py'] + +# -- setuptools -- +[tool.setuptools] + +[tool.setuptools.dynamic] +version = {attr = 'icon4py.model.testing.__init__.__version__'} + +[tool.setuptools.package-data] +'icon4py.model.testing' = ['py.typed'] diff --git a/model/testing/src/icon4py/model/testing/__init__.py b/model/testing/src/icon4py/model/testing/__init__.py new file mode 100644 index 0000000000..9067bb0dad --- /dev/null +++ b/model/testing/src/icon4py/model/testing/__init__.py @@ -0,0 +1,29 @@ +# ICON4Py - ICON inspired code in Python and GT4Py +# +# Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss +# All rights reserved. +# +# Please, refer to the LICENSE file in the root directory. +# SPDX-License-Identifier: BSD-3-Clause + +from typing import Final + +from packaging import version as pkg_version + + +__all__ = [ + "__author__", + "__copyright__", + "__license__", + "__version__", + "__version_info__", +] + + +__author__: Final = "ETH Zurich, MeteoSwiss and individual contributors" +__copyright__: Final = "Copyright (c) 2022-2024 ETH Zurich and MeteoSwiss" +__license__: Final = "BSD-3-Clause" + + +__version__: Final = "0.0.6" +__version_info__: Final = pkg_version.parse(__version__) diff --git a/model/common/src/icon4py/model/common/test_utils/data_handling.py b/model/testing/src/icon4py/model/testing/data_handling.py similarity index 99% rename from model/common/src/icon4py/model/common/test_utils/data_handling.py rename to model/testing/src/icon4py/model/testing/data_handling.py index 082fbebfc3..3d91a567a1 100644 --- a/model/common/src/icon4py/model/common/test_utils/data_handling.py +++ b/model/testing/src/icon4py/model/testing/data_handling.py @@ -12,7 +12,7 @@ def download_and_extract( uri: str, base_path: Path, destination_path: Path, data_file: str = "downloaded.tar.gz" -): +) -> None: """ "Download data archive from remote server. diff --git a/model/common/src/icon4py/model/common/test_utils/datatest_fixtures.py b/model/testing/src/icon4py/model/testing/datatest_fixtures.py similarity index 100% rename from model/common/src/icon4py/model/common/test_utils/datatest_fixtures.py rename to model/testing/src/icon4py/model/testing/datatest_fixtures.py diff --git a/model/common/src/icon4py/model/common/test_utils/datatest_utils.py b/model/testing/src/icon4py/model/testing/datatest_utils.py similarity index 96% rename from model/common/src/icon4py/model/common/test_utils/datatest_utils.py rename to model/testing/src/icon4py/model/testing/datatest_utils.py index 967bb91229..0ad2441951 100644 --- a/model/common/src/icon4py/model/common/test_utils/datatest_utils.py +++ b/model/testing/src/icon4py/model/testing/datatest_utils.py @@ -122,7 +122,7 @@ def get_datapath_for_experiment_advection(ranked_base_path, experiment=REGIONAL_ def create_icon_serial_data_provider(datapath, processor_props): # note: this needs to be here, otherwise spack doesn't find serialbox - from icon4py.model.common.test_utils.serialbox_utils import IconSerialDataProvider + from icon4py.model.common.utils.serialbox import IconSerialDataProvider return IconSerialDataProvider( fname_prefix="icon_pydycore", @@ -134,7 +134,7 @@ def create_icon_serial_data_provider(datapath, processor_props): def create_icon_serial_data_provider_advection(datapath, processor_props): # note: this needs to be here, otherwise spack doesn't find serialbox - from icon4py.model.common.test_utils.serialbox_utils import IconSerialDataProvider + from icon4py.model.common.utils.serialbox import IconSerialDataProvider return IconSerialDataProvider( fname_prefix="icon_pyadvection", diff --git a/model/common/src/icon4py/model/common/test_utils/grid_utils.py b/model/testing/src/icon4py/model/testing/grid_utils.py similarity index 100% rename from model/common/src/icon4py/model/common/test_utils/grid_utils.py rename to model/testing/src/icon4py/model/testing/grid_utils.py diff --git a/model/common/src/icon4py/model/common/test_utils/helpers.py b/model/testing/src/icon4py/model/testing/helpers.py similarity index 100% rename from model/common/src/icon4py/model/common/test_utils/helpers.py rename to model/testing/src/icon4py/model/testing/helpers.py diff --git a/model/common/src/icon4py/model/common/test_utils/parallel_helpers.py b/model/testing/src/icon4py/model/testing/parallel_helpers.py similarity index 100% rename from model/common/src/icon4py/model/common/test_utils/parallel_helpers.py rename to model/testing/src/icon4py/model/testing/parallel_helpers.py diff --git a/model/common/src/icon4py/model/common/test_utils/pytest_config.py b/model/testing/src/icon4py/model/testing/pytest_config.py similarity index 100% rename from model/common/src/icon4py/model/common/test_utils/pytest_config.py rename to model/testing/src/icon4py/model/testing/pytest_config.py diff --git a/model/common/src/icon4py/model/common/test_utils/reference_funcs.py b/model/testing/src/icon4py/model/testing/reference_funcs.py similarity index 100% rename from model/common/src/icon4py/model/common/test_utils/reference_funcs.py rename to model/testing/src/icon4py/model/testing/reference_funcs.py diff --git a/pyproject.toml b/pyproject.toml index b03af96a3c..710dbbf2ef 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,21 +5,23 @@ description = "Add your description here" readme = "README.md" requires-python = ">=3.10" dependencies = [ - "icon4py-common>=0.0.6", - "icon4py-driver>=0.0.6", "icon4py-atmosphere-advection>=0.0.6", "icon4py-atmosphere-diffusion>=0.0.6", "icon4py-atmosphere-dycore>=0.0.6", - "icon4py-atmosphere-subgrid_scale_physics-microphysics>=0.0.6" + "icon4py-atmosphere-subgrid_scale_physics-microphysics>=0.0.6", + "icon4py-common>=0.0.6", + "icon4py-driver>=0.0.6", + "icon4py-testing>=0.0.6" ] [project.optional-dependencies] all = ["icon4py[dace,distributed,integration,io]"] -dace = ["icon4py-common[dace]>=0.0.6", "dace<1.0"] # Dace should be removed after updatding gt4py +dace = ["icon4py-common[dace]>=0.0.6", "dace<1.0"] # Dace should be removed after updating gt4py distributed = ["icon4py-common[distributed]>=0.0.6"] integration = ["icon4pytools>=0.0.6"] io = ["icon4py-common[io]>=0.0.6"] +# -- dependency groups -- [dependency-groups] build = [ "bump-my-version>=0.16.0", @@ -62,7 +64,7 @@ dev = [ { include-group = "typing" }, ] -# -- packages & workspace -- +# -- uv: packages & workspace -- [tool.uv] environments = ["sys_platform == 'darwin'", "sys_platform == 'linux'"] @@ -70,12 +72,13 @@ environments = ["sys_platform == 'darwin'", "sys_platform == 'linux'"] ghex = { git = "https://github.com/ghex-org/GHEX.git", branch = "master", subdirectory = "bindings/python" } # use GT4Py tagged release until #596 & gt4py#1738 are merged gt4py = { git = "https://github.com/GridTools/gt4py", tag = "icon4py_20241113" } -icon4py-common = { workspace = true } -icon4py-driver = { workspace = true } icon4py-atmosphere-advection = { workspace = true } icon4py-atmosphere-diffusion = { workspace = true } icon4py-atmosphere-dycore = { workspace = true } icon4py-atmosphere-subgrid_scale_physics-microphysics = { workspace = true } +icon4py-common = { workspace = true } +icon4py-driver = { workspace = true } +icon4py-testing = { workspace = true } icon4pytools = { workspace = true } serialbox = { git = "https://github.com/GridTools/serialbox", subdirectory = "src/serialbox-python" } @@ -87,10 +90,10 @@ members = [ "model/atmosphere/subgrid_scale_physics/microphysics", "model/common", "model/driver", + "model/testing", "tools", ] - # -- mypy -- [tool.mypy] mypy_path = "model/common/src:tools/src" diff --git a/uv.lock b/uv.lock index 753ceba7ce..c82eb3c290 100644 --- a/uv.lock +++ b/uv.lock @@ -28,6 +28,79 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", @@ -55,6 +128,78 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", @@ -82,6 +227,43 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", @@ -109,6 +291,42 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", @@ -136,6 +354,78 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", @@ -163,6 +453,70 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", @@ -190,6 +544,70 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", @@ -217,6 +635,70 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", @@ -244,6 +726,38 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", @@ -271,6 +785,38 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", @@ -298,6 +844,70 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", @@ -325,6 +935,70 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version >= '3.13' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", @@ -352,6 +1026,70 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", @@ -379,6 +1117,70 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", @@ -406,6 +1208,38 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", @@ -433,6 +1267,38 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", @@ -460,6 +1326,70 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", @@ -487,6 +1417,70 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", @@ -514,6 +1508,70 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", @@ -541,6 +1599,70 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", @@ -568,6 +1690,70 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", @@ -595,6 +1781,38 @@ resolution-markers = [ "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", @@ -622,6 +1840,84 @@ resolution-markers = [ "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", "python_full_version >= '3.13' and sys_platform == 'linux'", @@ -668,6 +1964,7 @@ members = [ "icon4py-atmosphere-subgrid-scale-physics-microphysics", "icon4py-common", "icon4py-driver", + "icon4py-testing", "icon4pytools", ] @@ -2044,6 +3341,7 @@ dependencies = [ { name = "icon4py-atmosphere-subgrid-scale-physics-microphysics", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "icon4py-driver", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-testing", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] [package.optional-dependencies] @@ -2147,6 +3445,7 @@ requires-dist = [ { name = "icon4py-common", extras = ["distributed"], marker = "extra == 'distributed'", editable = "model/common" }, { name = "icon4py-common", extras = ["io"], marker = "extra == 'io'", editable = "model/common" }, { name = "icon4py-driver", editable = "model/driver" }, + { name = "icon4py-testing", editable = "model/testing" }, { name = "icon4pytools", marker = "extra == 'integration'", editable = "tools" }, ] @@ -2163,7 +3462,7 @@ dev = [ { name = "coverage", extras = ["toml"], specifier = ">=7.5.0" }, { name = "mypy", extras = ["faster-cache"], specifier = ">=1.13.0" }, { name = "myst-parser", specifier = ">=4.0.0" }, - { name = "nox", git = "https://github.com/wntrblm/nox.git" }, + { name = "nox", git = "https://github.com/wntrblm/nox.git?rev=aa09595437608dfe21eb776d8a4bcc0bd5f9916b#aa09595437608dfe21eb776d8a4bcc0bd5f9916b" }, { name = "pip", specifier = ">=22.1.1" }, { name = "pre-commit", specifier = ">=4.0.1" }, { name = "pytest", specifier = ">=8.0.1" }, @@ -2202,7 +3501,7 @@ lint = [ ] test = [ { name = "coverage", extras = ["toml"], specifier = ">=7.5.0" }, - { name = "nox", git = "https://github.com/wntrblm/nox.git" }, + { name = "nox", git = "https://github.com/wntrblm/nox.git?rev=aa09595437608dfe21eb776d8a4bcc0bd5f9916b#aa09595437608dfe21eb776d8a4bcc0bd5f9916b" }, { name = "pytest", specifier = ">=8.0.1" }, { name = "pytest-benchmark", specifier = ">=5.0.0" }, { name = "pytest-cache", specifier = ">=1.0" }, @@ -2357,6 +3656,27 @@ requires-dist = [ { name = "icon4py-common", editable = "model/common" }, ] +[[package]] +name = "icon4py-testing" +version = "0.0.6" +source = { editable = "model/testing" } +dependencies = [ + { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", extra = ["netcdf"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "serialbox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] + +[package.metadata] +requires-dist = [ + { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "icon4py-common", extras = ["netcdf"], editable = "model/common" }, + { name = "numpy", specifier = ">1.24.0" }, + { name = "serialbox", git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python" }, + { name = "typing-extensions", specifier = ">=4.11.0" }, +] + [[package]] name = "icon4pytools" version = "0.0.6" @@ -2997,7 +4317,7 @@ wheels = [ [[package]] name = "nox" version = "2024.10.9" -source = { git = "https://github.com/wntrblm/nox.git#aa09595437608dfe21eb776d8a4bcc0bd5f9916b" } +source = { git = "https://github.com/wntrblm/nox.git?rev=aa09595437608dfe21eb776d8a4bcc0bd5f9916b#aa09595437608dfe21eb776d8a4bcc0bd5f9916b" } dependencies = [ { name = "argcomplete", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "attrs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, From 4f549509488b6057f5185c15eb0231f3c36c7e37 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 4 Dec 2024 16:12:05 +0100 Subject: [PATCH 15/83] WIP2 adding icon4py.testing --- jenkins/spack/pytest.ini | 2 +- model/atmosphere/advection/pyproject.toml | 2 +- .../model/atmosphere/advection/advection.py | 2 +- .../advection/advection_horizontal.py | 2 +- .../advection/advection_vertical.py | 2 +- ...test_apply_horizontal_density_increment.py | 2 +- ...apply_interpolated_tracer_time_tendency.py | 2 +- .../test_apply_vertical_density_increment.py | 2 +- ...st_average_horizontal_flux_subcycling_2.py | 2 +- ...st_average_horizontal_flux_subcycling_3.py | 2 +- ...e_antidiffusive_cell_fluxes_and_min_max.py | 2 +- ...test_compute_barycentric_backtrajectory.py | 2 +- ..._compute_barycentric_backtrajectory_alt.py | 2 +- .../test_compute_ffsl_backtrajectory.py | 2 +- ...cktrajectory_counterclockwise_indicator.py | 2 +- ...te_ffsl_backtrajectory_length_indicator.py | 2 +- ...tal_tracer_flux_from_cubic_coefficients.py | 2 +- ...al_tracer_flux_from_linear_coefficients.py | 2 +- ...racer_flux_from_linear_coefficients_alt.py | 2 +- ...e_horizontal_multiplicative_flux_factor.py | 2 +- ...t_compute_ppm4gpu_parabola_coefficients.py | 2 +- .../test_compute_ppm_all_face_values.py | 2 +- .../test_compute_ppm_quadratic_face_values.py | 2 +- .../test_compute_ppm_quartic_face_values.py | 2 +- .../test_compute_ppm_slope.py | 2 +- .../test_compute_tendency.py | 2 +- ...ute_vertical_parabola_limiter_condition.py | 2 +- ...est_compute_vertical_tracer_flux_upwind.py | 2 +- ...t_integrate_tracer_density_horizontally.py | 2 +- .../test_integrate_tracer_horizontally.py | 2 +- .../test_integrate_tracer_vertically.py | 2 +- ...it_vertical_parabola_semi_monotonically.py | 2 +- ...limit_vertical_slope_semi_monotonically.py | 2 +- ...s_antidiffusive_cell_fluxes_and_min_max.py | 2 +- ...est_prepare_ffsl_flux_area_patches_list.py | 2 +- ...cal_quadrature_for_cubic_reconstruction.py | 2 +- ...uadrature_list_for_cubic_reconstruction.py | 2 +- ...test_reconstruct_cubic_coefficients_svd.py | 2 +- .../tests/advection_tests/conftest.py | 2 +- .../tests/advection_tests/test_advection.py | 2 +- .../advection/tests/advection_tests/utils.py | 4 +- model/atmosphere/advection/tests/conftest.py | 2 +- model/atmosphere/diffusion/pyproject.toml | 2 +- .../model/atmosphere/diffusion/diffusion.py | 2 +- model/atmosphere/diffusion/tests/conftest.py | 2 +- ...test_apply_diffusion_to_theta_and_exner.py | 2 +- .../test_apply_diffusion_to_vn.py | 4 +- ...ute_horizontal_gradients_for_turbulence.py | 2 +- ...st_apply_nabla2_and_nabla4_global_to_vn.py | 2 +- .../test_apply_nabla2_and_nabla4_to_vn.py | 2 +- ..._apply_nabla2_to_vn_in_lateral_boundary.py | 2 +- .../test_apply_nabla2_to_w.py | 2 +- ...pply_nabla2_to_w_in_upper_damping_layer.py | 2 +- ...st_calculate_diagnostics_for_turbulence.py | 2 +- ...ate_horizontal_gradients_for_turbulence.py | 2 +- ...ate_nabla2_and_smag_coefficients_for_vn.py | 2 +- .../test_calculate_nabla2_for_w.py | 2 +- .../test_calculate_nabla2_for_z.py | 2 +- .../test_calculate_nabla2_of_theta.py | 2 +- .../test_calculate_nabla4.py | 2 +- ...n_coefficient_for_grid_point_cold_pools.py | 2 +- ...d_for_grid_point_cold_pools_enhancement.py | 2 +- ...orary_fields_for_turbulence_diagnostics.py | 2 +- ...fusion_nabla_of_theta_over_steep_points.py | 2 +- .../test_update_theta_and_exner.py | 2 +- .../tests/diffusion_tests/conftest.py | 2 +- .../diffusion_tests/mpi_tests/conftest.py | 4 +- .../mpi_tests/test_parallel_diffusion.py | 2 +- .../tests/diffusion_tests/test_diffusion.py | 4 +- .../diffusion_tests/test_diffusion_states.py | 2 +- .../diffusion_tests/test_diffusion_utils.py | 2 +- .../diffusion/tests/diffusion_tests/utils.py | 2 +- model/atmosphere/dycore/pyproject.toml | 2 +- .../model/atmosphere/dycore/solve_nonhydro.py | 2 +- .../atmosphere/dycore/velocity_advection.py | 2 +- model/atmosphere/dycore/tests/conftest.py | 2 +- .../test_accumulate_prep_adv_fields.py | 2 +- ...lysis_increments_from_data_assimilation.py | 2 +- .../test_add_analysis_increments_to_vn.py | 2 +- ...or_normal_wind_tendency_approaching_cfl.py | 2 +- ...tra_diffusion_for_w_con_approaching_cfl.py | 2 +- ..._interpolated_horizontal_advection_of_w.py | 2 +- .../test_add_temporal_tendencies_to_vn.py | 2 +- ...vn_by_interpolating_between_time_levels.py | 2 +- ...l_wind_derivative_to_divergence_damping.py | 2 +- ...test_apply_2nd_order_divergence_damping.py | 2 +- ...test_apply_4th_order_divergence_damping.py | 2 +- ...o_horizontal_gradient_of_exner_pressure.py | 2 +- .../test_apply_rayleigh_damping_mechanism.py | 2 +- ...ed_2nd_and_4th_order_divergence_damping.py | 2 +- ..._compute_advective_normal_wind_tendency.py | 2 +- ...ompute_advective_vertical_wind_tendency.py | 2 +- .../test_compute_airmass.py | 2 +- ...rox_of_2nd_vertical_derivative_of_exner.py | 2 +- .../test_compute_avg_vn.py | 2 +- ...st_compute_avg_vn_and_graddiv_vn_and_vt.py | 2 +- .../test_compute_contravariant_correction.py | 2 +- ...t_compute_contravariant_correction_of_w.py | 2 +- ...iant_correction_of_w_for_lower_boundary.py | 2 +- ...est_compute_dwdz_for_divergence_damping.py | 2 +- .../test_compute_exner_from_rhotheta.py | 2 +- ...compute_explicit_part_for_rho_and_exner.py | 2 +- ...rom_advection_and_vertical_wind_density.py | 2 +- ...d_speed_and_vertical_wind_times_density.py | 2 +- .../test_compute_first_vertical_derivative.py | 2 +- .../test_compute_graddiv2_of_vn.py | 2 +- ...e_horizontal_advection_of_rho_and_theta.py | 2 +- ...al_advection_term_for_vertical_velocity.py | 2 +- ..._of_exner_pressure_for_flat_coordinates.py | 2 +- ...t_of_exner_pressure_for_multiple_levels.py | 2 +- ..._exner_pressure_for_nonflat_coordinates.py | 2 +- .../test_compute_horizontal_kinetic_energy.py | 2 +- ...est_compute_hydrostatic_correction_term.py | 2 +- .../test_compute_mass_flux.py | 2 +- ...nd_clip_contravariant_vertical_velocity.py | 2 +- ...t_compute_perturbation_of_rho_and_theta.py | 2 +- ...nd_theta_and_rho_interface_cell_centers.py | 2 +- ...ute_results_for_thermodynamic_variables.py | 2 +- ...tial_temperatures_and_pressure_gradient.py | 2 +- ...test_compute_solver_coefficients_matrix.py | 2 +- .../test_compute_tangential_wind.py | 2 +- .../test_compute_theta_and_exner.py | 2 +- ...tial_temperatures_and_pressure_gradient.py | 2 +- .../test_compute_vn_on_lateral_boundary.py | 2 +- .../test_copy_cell_kdim_field_to_vp.py | 2 +- ...correct_contravariant_vertical_velocity.py | 2 +- .../test_extrapolate_at_top.py | 2 +- ...t_extrapolate_temporally_exner_pressure.py | 2 +- ...test_fused_solve_nonhydro_stencil_39_40.py | 2 +- ...sed_velocity_advection_stencil_15_to_18.py | 2 +- ...sed_velocity_advection_stencil_19_to_20.py | 2 +- ...fused_velocity_advection_stencil_1_to_7.py | 4 +- ...used_velocity_advection_stencil_8_to_13.py | 4 +- .../test_init_cell_kdim_field_with_zero_vp.py | 2 +- .../test_init_cell_kdim_field_with_zero_wp.py | 2 +- ...two_cell_kdim_fields_index_with_zero_vp.py | 2 +- ..._init_two_cell_kdim_fields_with_zero_vp.py | 2 +- ..._init_two_cell_kdim_fields_with_zero_wp.py | 2 +- ..._init_two_edge_kdim_fields_with_zero_wp.py | 2 +- ...ariant_vertical_velocity_to_full_levels.py | 2 +- .../test_interpolate_to_cell_center.py | 2 +- .../test_interpolate_to_half_levels_vp.py | 2 +- .../test_interpolate_to_surface.py | 2 +- ..._and_vt_to_ie_and_compute_ekin_on_edges.py | 2 +- ...late_vn_to_ie_and_compute_ekin_on_edges.py | 2 +- .../test_interpolate_vt_to_interface_edges.py | 2 +- ...e_divergence_of_fluxes_of_rho_and_theta.py | 2 +- ...lation_scalar_cells2verts_scalar_ri_dsl.py | 2 +- .../test_mo_math_divrot_rot_vertex_ri_dsl.py | 2 +- ...ath_gradients_grad_green_gauss_cell_dsl.py | 2 +- .../test_mo_solve_nonhydro_stencil_51.py | 2 +- ...tion_for_w_and_contravariant_correction.py | 2 +- ..._set_theta_v_prime_ic_at_lower_boundary.py | 2 +- ...diagonal_matrix_for_w_back_substitution.py | 2 +- ..._tridiagonal_matrix_for_w_forward_sweep.py | 2 +- .../test_update_density_exner_wind.py | 2 +- ...t_update_dynamical_exner_time_increment.py | 2 +- .../test_update_mass_flux_weighted.py | 2 +- .../test_update_mass_volume_flux.py | 2 +- .../test_update_theta_v.py | 2 +- .../dycore_stencil_tests/test_update_wind.py | 2 +- .../dycore/tests/dycore_tests/conftest.py | 2 +- .../tests/dycore_tests/mpi_tests/conftest.py | 2 +- .../mpi_tests/test_parallel_solve_nonhydro.py | 2 +- .../tests/dycore_tests/test_dycore_utils.py | 2 +- .../tests/dycore_tests/test_solve_nonhydro.py | 4 +- .../dycore_tests/test_velocity_advection.py | 2 +- .../dycore/tests/dycore_tests/utils.py | 2 +- .../microphysics/pyproject.toml | 2 +- .../microphysics/saturation_adjustment.py | 2 +- .../microphysics/tests/conftest.py | 2 +- .../test_saturation_adjusment.py | 4 +- model/common/pyproject.toml | 4 +- .../icon4py/model/common/grid/grid_manager.py | 4 +- .../common/metrics/compute_coeff_gradekin.py | 4 +- .../icon4py/model/common/utils/__init__.py | 4 +- .../src/icon4py/model/common/utils/fields.py | 200 ++++++++++++++++++ .../common/utils/gt4py_field_allocation.py | 102 --------- .../icon4py/model/common/utils/serialbox.py | 32 +-- model/common/tests/conftest.py | 2 +- .../decomposition_tests/test_definitions.py | 2 +- .../test_mpi_decomposition.py | 6 +- .../diagnostic_calculations_tests/conftest.py | 2 +- .../test_diagnostic_calculations.py | 2 +- model/common/tests/grid_tests/conftest.py | 4 +- .../mpi_tests/test_parallel_icon.py | 2 +- .../common/tests/grid_tests/test_geometry.py | 2 +- .../tests/grid_tests/test_grid_manager.py | 2 +- model/common/tests/grid_tests/test_icon.py | 2 +- .../common/tests/grid_tests/test_vertical.py | 2 +- model/common/tests/grid_tests/utils.py | 2 +- .../tests/interpolation_tests/conftest.py | 2 +- .../test_interpolation_fields.py | 6 +- model/common/tests/io_tests/test_io.py | 2 +- model/common/tests/io_tests/test_ugrid.py | 2 +- model/common/tests/io_tests/test_utils.py | 2 +- model/common/tests/io_tests/test_writers.py | 2 +- model/common/tests/math_tests/test_helpers.py | 2 +- .../tests/math_tests/test_smagorinsky.py | 4 +- model/common/tests/metric_tests/conftest.py | 4 +- .../test_compute_coeff_gradekin.py | 4 +- .../test_compute_diffusion_metrics.py | 4 +- .../metric_tests/test_compute_nudgecoeffs.py | 6 +- .../metric_tests/test_compute_wgtfac_c.py | 6 +- .../metric_tests/test_compute_wgtfacq.py | 4 +- .../test_compute_zdiff_gradp_dsl.py | 2 +- .../tests/metric_tests/test_metric_fields.py | 4 +- .../tests/metric_tests/test_metric_scalars.py | 2 +- .../metric_tests/test_reference_atmosphere.py | 4 +- model/common/tests/states_test/conftest.py | 4 +- .../test_cell_2_edge_interpolation.py | 2 +- ...est_compute_cell_2_vertex_interpolation.py | 2 +- .../stencil_tests/test_diagnose_pressure.py | 2 +- .../test_diagnose_surface_pressure.py | 2 +- .../test_diagnose_temperature.py | 2 +- ...st_edge_2_cell_vector_rbf_interpolation.py | 2 +- ...est_mo_intp_rbf_rbf_vec_interpol_vertex.py | 2 +- model/driver/pyproject.toml | 2 +- .../model/driver/initialization_utils.py | 13 +- .../icon4py/model/driver/serialbox_helpers.py | 6 +- .../model/driver/test_cases/gauss3d.py | 2 +- .../test_cases/jablonowski_williamson.py | 2 +- model/driver/tests/conftest.py | 2 +- .../tests/driver_tests/test_timeloop.py | 4 +- .../initial_condition_tests/test_gauss3d.py | 2 +- .../test_jablonowski_williamson.py | 2 +- .../initial_condition_tests/test_utils.py | 2 +- .../src/icon4py/model/testing/grid_utils.py | 4 +- .../src/icon4py/model/testing/helpers.py | 99 --------- .../icon4py/model/testing/pytest_config.py | 6 +- noxfile.py | 2 +- tools/pyproject.toml | 2 +- .../py2fgen/wrappers/diffusion_wrapper.py | 29 ++- .../py2fgen/wrappers/dycore_wrapper.py | 38 ++-- tools/tests/conftest.py | 2 +- tools/tests/py2fgen/test_diffusion_wrapper.py | 2 +- tools/tests/py2fgen/test_dycore_wrapper.py | 4 +- 237 files changed, 517 insertions(+), 528 deletions(-) create mode 100644 model/common/src/icon4py/model/common/utils/fields.py delete mode 100644 model/common/src/icon4py/model/common/utils/gt4py_field_allocation.py diff --git a/jenkins/spack/pytest.ini b/jenkins/spack/pytest.ini index 3a54040ded..72d3b0453b 100644 --- a/jenkins/spack/pytest.ini +++ b/jenkins/spack/pytest.ini @@ -4,7 +4,7 @@ markers = slow_tests: mark test as slow. datatest: test depending on serialized data generated by a full model run with_netcdf: test depending on a compatible version of netCDF4 -addopts = -p icon4py.model.common.test_utils.pytest_config +addopts = -p icon4py.model.testing.pytest_config testpaths = tools/tests/f2ser tools/tests/icon4pygen tools/tests/liskov diff --git a/model/atmosphere/advection/pyproject.toml b/model/atmosphere/advection/pyproject.toml index 90d6f8ed8a..737b0d853b 100644 --- a/model/atmosphere/advection/pyproject.toml +++ b/model/atmosphere/advection/pyproject.toml @@ -76,7 +76,7 @@ warn_unused_ignores = true [tool.pytest] [tool.pytest.ini_options] -addopts = ['-p icon4py.model.common.test_utils.pytest_config'] +addopts = ['-p icon4py.model.testing.pytest_config'] testpaths = 'tests' [tool.ruff] diff --git a/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection.py b/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection.py index 410a40fd03..57c60d13c2 100644 --- a/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection.py +++ b/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection.py @@ -35,7 +35,7 @@ ) from icon4py.model.common.decomposition import definitions as decomposition from icon4py.model.common.grid import horizontal as h_grid, icon as icon_grid, geometry -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils """ diff --git a/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_horizontal.py b/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_horizontal.py index 7ad9802d4f..ba0bed6b0c 100644 --- a/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_horizontal.py +++ b/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_horizontal.py @@ -45,7 +45,7 @@ ) from icon4py.model.common.decomposition import definitions as decomposition from icon4py.model.common.grid import horizontal as h_grid, icon as icon_grid, geometry -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils """ diff --git a/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_vertical.py b/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_vertical.py index 374db87949..3065034700 100644 --- a/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_vertical.py +++ b/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_vertical.py @@ -69,7 +69,7 @@ ) from icon4py.model.common.decomposition import definitions as decomposition from icon4py.model.common.grid import horizontal as h_grid, icon as icon_grid, geometry -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils """ diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_horizontal_density_increment.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_horizontal_density_increment.py index 2492b7f8f6..d2323f8ed5 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_horizontal_density_increment.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_horizontal_density_increment.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.apply_horizontal_density_increment import ( apply_horizontal_density_increment, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_interpolated_tracer_time_tendency.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_interpolated_tracer_time_tendency.py index 0526018051..72784dcdb4 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_interpolated_tracer_time_tendency.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_interpolated_tracer_time_tendency.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.apply_interpolated_tracer_time_tendency import ( apply_interpolated_tracer_time_tendency, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_vertical_density_increment.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_vertical_density_increment.py index dc512a74bd..485fe42c3f 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_vertical_density_increment.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_vertical_density_increment.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.apply_vertical_density_increment import ( apply_vertical_density_increment, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_2.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_2.py index c4b0da2ba6..8456e10e46 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_2.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_2.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.average_horizontal_flux_subcycling_2 import ( average_horizontal_flux_subcycling_2, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_3.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_3.py index 44873bd564..e199c3879b 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_3.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_3.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.average_horizontal_flux_subcycling_3 import ( average_horizontal_flux_subcycling_3, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py index 490b4bb0e9..34fff6b468 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_antidiffusive_cell_fluxes_and_min_max import ( compute_antidiffusive_cell_fluxes_and_min_max, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory.py index ad8d7757a6..167b2c925c 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_barycentric_backtrajectory import ( compute_barycentric_backtrajectory, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory_alt.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory_alt.py index ac65277bb2..9a4ac0dacf 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory_alt.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory_alt.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_barycentric_backtrajectory_alt import ( compute_barycentric_backtrajectory_alt, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py index cb1e3aecc8..159eab5ca1 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_ffsl_backtrajectory import ( compute_ffsl_backtrajectory, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_counterclockwise_indicator.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_counterclockwise_indicator.py index 42829df90a..edb5fed046 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_counterclockwise_indicator.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_counterclockwise_indicator.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_ffsl_backtrajectory_counterclockwise_indicator import ( compute_ffsl_backtrajectory_counterclockwise_indicator, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_length_indicator.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_length_indicator.py index 94efbdf63d..fda6cf3a39 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_length_indicator.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_length_indicator.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_ffsl_backtrajectory_length_indicator import ( compute_ffsl_backtrajectory_length_indicator, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_cubic_coefficients.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_cubic_coefficients.py index 9984ebe88c..213fc4205b 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_cubic_coefficients.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_cubic_coefficients.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_horizontal_tracer_flux_from_cubic_coefficients import ( compute_horizontal_tracer_flux_from_cubic_coefficients, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients.py index c26ba6212e..0deea20c4f 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_horizontal_tracer_flux_from_linear_coefficients import ( compute_horizontal_tracer_flux_from_linear_coefficients, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients_alt.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients_alt.py index 21725ce7e6..6d2260350b 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients_alt.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients_alt.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_horizontal_tracer_flux_from_linear_coefficients_alt import ( compute_horizontal_tracer_flux_from_linear_coefficients_alt, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py index b3d15bfc20..fdba787bc5 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_positive_definite_horizontal_multiplicative_flux_factor import ( compute_positive_definite_horizontal_multiplicative_flux_factor, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm4gpu_parabola_coefficients.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm4gpu_parabola_coefficients.py index b1455b6994..0314d7d910 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm4gpu_parabola_coefficients.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm4gpu_parabola_coefficients.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_ppm4gpu_parabola_coefficients import ( compute_ppm4gpu_parabola_coefficients, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_all_face_values.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_all_face_values.py index e6f25381dd..2f59e92697 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_all_face_values.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_all_face_values.py @@ -11,7 +11,7 @@ import pytest from gt4py.next import as_field -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_ppm_all_face_values import ( compute_ppm_all_face_values, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quadratic_face_values.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quadratic_face_values.py index 7ed3c06254..c84f433c1e 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quadratic_face_values.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quadratic_face_values.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_ppm_quadratic_face_values import ( compute_ppm_quadratic_face_values, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quartic_face_values.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quartic_face_values.py index dc65a506ce..bc6231dc60 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quartic_face_values.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quartic_face_values.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_ppm_quartic_face_values import ( compute_ppm_quartic_face_values, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_slope.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_slope.py index f1b920944f..226c0d58a4 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_slope.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_slope.py @@ -11,7 +11,7 @@ import pytest from gt4py.next import as_field -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_ppm_slope import ( compute_ppm_slope, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_tendency.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_tendency.py index 96179b99e6..3a4f270520 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_tendency.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_tendency.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_tendency import ( compute_tendency, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_parabola_limiter_condition.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_parabola_limiter_condition.py index 54e87d6f33..abc788a38e 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_parabola_limiter_condition.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_parabola_limiter_condition.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_vertical_parabola_limiter_condition import ( compute_vertical_parabola_limiter_condition, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_tracer_flux_upwind.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_tracer_flux_upwind.py index f0e11e9a63..94afa89418 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_tracer_flux_upwind.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_tracer_flux_upwind.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_vertical_tracer_flux_upwind import ( compute_vertical_tracer_flux_upwind, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_density_horizontally.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_density_horizontally.py index 9ad0a6526b..74d3debe3e 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_density_horizontally.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_density_horizontally.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.integrate_tracer_density_horizontally import ( integrate_tracer_density_horizontally, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_horizontally.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_horizontally.py index f270f55c83..dbc7118b2b 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_horizontally.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_horizontally.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.integrate_tracer_horizontally import ( integrate_tracer_horizontally, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_vertically.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_vertically.py index 07ca62df76..a68e29092a 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_vertically.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_vertically.py @@ -11,7 +11,7 @@ import pytest from gt4py.next import as_field -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.integrate_tracer_vertically import ( integrate_tracer_vertically, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_parabola_semi_monotonically.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_parabola_semi_monotonically.py index e1fc0066f9..b433672ad0 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_parabola_semi_monotonically.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_parabola_semi_monotonically.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.limit_vertical_parabola_semi_monotonically import ( limit_vertical_parabola_semi_monotonically, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_slope_semi_monotonically.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_slope_semi_monotonically.py index 5db041d352..5aea0b3433 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_slope_semi_monotonically.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_slope_semi_monotonically.py @@ -11,7 +11,7 @@ import pytest from gt4py.next import as_field -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.limit_vertical_slope_semi_monotonically import ( limit_vertical_slope_semi_monotonically, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_postprocess_antidiffusive_cell_fluxes_and_min_max.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_postprocess_antidiffusive_cell_fluxes_and_min_max.py index fd7991126e..4b048a37fd 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_postprocess_antidiffusive_cell_fluxes_and_min_max.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_postprocess_antidiffusive_cell_fluxes_and_min_max.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.postprocess_antidiffusive_cell_fluxes_and_min_max import ( postprocess_antidiffusive_cell_fluxes_and_min_max, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_ffsl_flux_area_patches_list.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_ffsl_flux_area_patches_list.py index 143aaaba60..9a9a2a379e 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_ffsl_flux_area_patches_list.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_ffsl_flux_area_patches_list.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.prepare_ffsl_flux_area_patches_list import ( prepare_ffsl_flux_area_patches_list, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_for_cubic_reconstruction.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_for_cubic_reconstruction.py index 08b651a24b..c07eaa1886 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_for_cubic_reconstruction.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_for_cubic_reconstruction.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.prepare_numerical_quadrature_for_cubic_reconstruction import ( prepare_numerical_quadrature_for_cubic_reconstruction, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_list_for_cubic_reconstruction.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_list_for_cubic_reconstruction.py index 4b78309142..ec41eb4766 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_list_for_cubic_reconstruction.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_list_for_cubic_reconstruction.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.prepare_numerical_quadrature_list_for_cubic_reconstruction import ( prepare_numerical_quadrature_list_for_cubic_reconstruction, ) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py index b4bc666c47..5d20ca551b 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py @@ -10,7 +10,7 @@ import numpy as np import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.reconstruct_cubic_coefficients_svd import ( reconstruct_cubic_coefficients_svd, ) diff --git a/model/atmosphere/advection/tests/advection_tests/conftest.py b/model/atmosphere/advection/tests/advection_tests/conftest.py index 5dedd7260c..a41b3ed147 100644 --- a/model/atmosphere/advection/tests/advection_tests/conftest.py +++ b/model/atmosphere/advection/tests/advection_tests/conftest.py @@ -8,7 +8,7 @@ import pytest -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package +from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package damping_height, data_provider, data_provider_advection, diff --git a/model/atmosphere/advection/tests/advection_tests/test_advection.py b/model/atmosphere/advection/tests/advection_tests/test_advection.py index 0afdba32f1..9dd0e191db 100644 --- a/model/atmosphere/advection/tests/advection_tests/test_advection.py +++ b/model/atmosphere/advection/tests/advection_tests/test_advection.py @@ -10,7 +10,7 @@ from icon4py.model.atmosphere.advection import advection from icon4py.model.common import dimension as dims -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils from .utils import ( construct_config, diff --git a/model/atmosphere/advection/tests/advection_tests/utils.py b/model/atmosphere/advection/tests/advection_tests/utils.py index 9527631cc6..8707c2dca4 100644 --- a/model/atmosphere/advection/tests/advection_tests/utils.py +++ b/model/atmosphere/advection/tests/advection_tests/utils.py @@ -14,8 +14,8 @@ from icon4py.model.atmosphere.advection import advection, advection_states from icon4py.model.common import dimension as dims, field_type_aliases as fa, type_alias as ta from icon4py.model.common.grid import horizontal as h_grid, icon as icon_grid -from icon4py.model.common.test_utils import helpers -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc, serialbox as sb +from icon4py.model.testing import helpers +from icon4py.model.common.utils import fields as field_utils, serialbox as sb # flake8: noqa diff --git a/model/atmosphere/advection/tests/conftest.py b/model/atmosphere/advection/tests/conftest.py index 42610fc362..6fb7d03437 100644 --- a/model/atmosphere/advection/tests/conftest.py +++ b/model/atmosphere/advection/tests/conftest.py @@ -7,7 +7,7 @@ # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.test_utils.helpers import ( # noqa : F401 # fixtures from test_utils +from icon4py.model.testing.helpers import ( # noqa : F401 # fixtures from test_utils backend, grid, ) diff --git a/model/atmosphere/diffusion/pyproject.toml b/model/atmosphere/diffusion/pyproject.toml index bda9ae0954..90d3f73a94 100644 --- a/model/atmosphere/diffusion/pyproject.toml +++ b/model/atmosphere/diffusion/pyproject.toml @@ -76,7 +76,7 @@ warn_unused_ignores = true [tool.pytest] [tool.pytest.ini_options] -addopts = ['-p icon4py.model.common.test_utils.pytest_config'] +addopts = ['-p icon4py.model.testing.pytest_config'] testpaths = 'tests' [tool.ruff] diff --git a/model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/diffusion.py b/model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/diffusion.py index 7c7f56159e..efc2572b9e 100644 --- a/model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/diffusion.py +++ b/model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/diffusion.py @@ -63,7 +63,7 @@ mo_intp_rbf_rbf_vec_interpol_vertex, ) -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils from icon4py.model.common.orchestration import decorator as orchestration diff --git a/model/atmosphere/diffusion/tests/conftest.py b/model/atmosphere/diffusion/tests/conftest.py index 42610fc362..6fb7d03437 100644 --- a/model/atmosphere/diffusion/tests/conftest.py +++ b/model/atmosphere/diffusion/tests/conftest.py @@ -7,7 +7,7 @@ # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.test_utils.helpers import ( # noqa : F401 # fixtures from test_utils +from icon4py.model.testing.helpers import ( # noqa : F401 # fixtures from test_utils backend, grid, ) diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_theta_and_exner.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_theta_and_exner.py index 07965f507a..15b69be720 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_theta_and_exner.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_theta_and_exner.py @@ -14,7 +14,7 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, flatten_first_two_dims, random_field, diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_vn.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_vn.py index e58dd2116b..f4f849b5e7 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_vn.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_vn.py @@ -12,8 +12,8 @@ from icon4py.model.atmosphere.diffusion.stencils.apply_diffusion_to_vn import apply_diffusion_to_vn from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid -from icon4py.model.common.test_utils.helpers import StencilTest, as_1D_sparse_field, random_field -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.testing.helpers import StencilTest, as_1D_sparse_field, random_field +from icon4py.model.common.utils import fields as field_utils from .test_apply_nabla2_and_nabla4_global_to_vn import apply_nabla2_and_nabla4_global_to_vn_numpy from .test_apply_nabla2_and_nabla4_to_vn import apply_nabla2_and_nabla4_to_vn_numpy diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_w_and_compute_horizontal_gradients_for_turbulence.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_w_and_compute_horizontal_gradients_for_turbulence.py index c22efb11fb..6fb60317be 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_w_and_compute_horizontal_gradients_for_turbulence.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_w_and_compute_horizontal_gradients_for_turbulence.py @@ -13,7 +13,7 @@ apply_diffusion_to_w_and_compute_horizontal_gradients_for_turbulence, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from .test_apply_nabla2_to_w import apply_nabla2_to_w_numpy from .test_apply_nabla2_to_w_in_upper_damping_layer import ( diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_global_to_vn.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_global_to_vn.py index 776c8f4049..2db8bc0ca5 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_global_to_vn.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_global_to_vn.py @@ -13,7 +13,7 @@ apply_nabla2_and_nabla4_global_to_vn, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_to_vn.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_to_vn.py index 47d5367a7f..204bae4357 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_to_vn.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_to_vn.py @@ -13,7 +13,7 @@ apply_nabla2_and_nabla4_to_vn, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_vn_in_lateral_boundary.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_vn_in_lateral_boundary.py index d6713f77c8..97dd2d7549 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_vn_in_lateral_boundary.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_vn_in_lateral_boundary.py @@ -13,7 +13,7 @@ apply_nabla2_to_vn_in_lateral_boundary, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w.py index 0ad83374e4..fc14023d01 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.diffusion.stencils.apply_nabla2_to_w import apply_nabla2_to_w from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w_in_upper_damping_layer.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w_in_upper_damping_layer.py index b17b459284..409d6ad2f5 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w_in_upper_damping_layer.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w_in_upper_damping_layer.py @@ -13,7 +13,7 @@ apply_nabla2_to_w_in_upper_damping_layer, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_diagnostics_for_turbulence.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_diagnostics_for_turbulence.py index 84b8f6bcd8..278ac89a94 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_diagnostics_for_turbulence.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_diagnostics_for_turbulence.py @@ -13,7 +13,7 @@ calculate_diagnostics_for_turbulence, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_horizontal_gradients_for_turbulence.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_horizontal_gradients_for_turbulence.py index 786288bfed..32604af37f 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_horizontal_gradients_for_turbulence.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_horizontal_gradients_for_turbulence.py @@ -13,7 +13,7 @@ calculate_horizontal_gradients_for_turbulence, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py index f91ba8c31c..2933494493 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py @@ -13,7 +13,7 @@ calculate_nabla2_and_smag_coefficients_for_vn, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, as_1D_sparse_field, random_field, diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_w.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_w.py index 117169317b..c06b8390be 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_w.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_w.py @@ -13,7 +13,7 @@ calculate_nabla2_for_w, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, constant_field, zero_field +from icon4py.model.testing.helpers import StencilTest, constant_field, zero_field def calculate_nabla2_for_w_numpy(grid, w: np.array, geofac_n2s: np.array): diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_z.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_z.py index 3a738b8e82..936a1957ae 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_z.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_z.py @@ -14,7 +14,7 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_of_theta.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_of_theta.py index b9e49eaa21..17530c559b 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_of_theta.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_of_theta.py @@ -13,7 +13,7 @@ calculate_nabla2_of_theta, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, as_1D_sparse_field, random_field, diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla4.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla4.py index 408b4f0a0e..cc1d70f6c2 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla4.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla4.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.diffusion.stencils.calculate_nabla4 import calculate_nabla4 from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, as_1D_sparse_field, random_field, diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_enhance_diffusion_coefficient_for_grid_point_cold_pools.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_enhance_diffusion_coefficient_for_grid_point_cold_pools.py index e72d356c77..66c9f99688 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_enhance_diffusion_coefficient_for_grid_point_cold_pools.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_enhance_diffusion_coefficient_for_grid_point_cold_pools.py @@ -15,7 +15,7 @@ enhance_diffusion_coefficient_for_grid_point_cold_pools, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_field_for_grid_point_cold_pools_enhancement.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_field_for_grid_point_cold_pools_enhancement.py index 4a27035dac..4831299943 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_field_for_grid_point_cold_pools_enhancement.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_field_for_grid_point_cold_pools_enhancement.py @@ -13,7 +13,7 @@ temporary_field_for_grid_point_cold_pools_enhancement, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py index a3f5530a46..0105eebf1a 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py @@ -13,7 +13,7 @@ temporary_fields_for_turbulence_diagnostics, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, as_1D_sparse_field, random_field, diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py index c31ba9cddf..f3882bb6b0 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py @@ -13,7 +13,7 @@ truly_horizontal_diffusion_nabla_of_theta_over_steep_points, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, flatten_first_two_dims, random_field, diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_update_theta_and_exner.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_update_theta_and_exner.py index ab74e2265b..9d11b14503 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_update_theta_and_exner.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_update_theta_and_exner.py @@ -13,7 +13,7 @@ update_theta_and_exner, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/conftest.py b/model/atmosphere/diffusion/tests/diffusion_tests/conftest.py index f8ef9ed339..b9a0998955 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/conftest.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/conftest.py @@ -7,7 +7,7 @@ # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package +from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package damping_height, data_provider, decomposition_info, diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/conftest.py b/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/conftest.py index 372b3ffd94..e72ac2af47 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/conftest.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/conftest.py @@ -5,9 +5,9 @@ # # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.test_utils.datatest_fixtures import ( +from icon4py.model.testing.datatest_fixtures import ( icon_grid, # noqa: F401 # import fixtures from test_utils package ) -from icon4py.model.common.test_utils.parallel_helpers import ( +from icon4py.model.testing.parallel_helpers import ( processor_props, # noqa: F401 # import fixtures from test_utils package ) diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py index b1889adb95..a9e2ca528e 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py @@ -12,7 +12,7 @@ from icon4py.model.common import dimension as dims, settings from icon4py.model.common.decomposition import definitions from icon4py.model.common.grid import vertical as v_grid -from icon4py.model.common.test_utils import datatest_utils, helpers, parallel_helpers +from icon4py.model.testing import datatest_utils, helpers, parallel_helpers from .. import utils diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py index fd0a8b63ed..a73fe77ee3 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py @@ -19,13 +19,13 @@ vertical as v_grid, ) from icon4py.model.common.settings import backend, xp -from icon4py.model.common.test_utils import ( +from icon4py.model.testing import ( datatest_utils as dt_utils, grid_utils, helpers, reference_funcs as ref_funcs, ) -from icon4py.model.common.utils import gt4py_field_allocation as alloc, serialbox as sb +from icon4py.model.common.utils import fields as alloc, serialbox as sb from .utils import ( compare_dace_orchestration_multiple_steps, diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_states.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_states.py index d4c17d28f9..021162b162 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_states.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_states.py @@ -11,7 +11,7 @@ import icon4py.model.common.dimension as dims from icon4py.model.atmosphere.diffusion import diffusion_states -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers @pytest.mark.datatest diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py index 7634462cfe..5c99af2699 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py @@ -13,7 +13,7 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.grid import simple as simple_grid from icon4py.model.common.settings import backend -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers from .utils import construct_diffusion_config, diff_multfac_vn_numpy, smag_limit_numpy diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/utils.py b/model/atmosphere/diffusion/tests/diffusion_tests/utils.py index df9cd44eab..0594beb034 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/utils.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/utils.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.diffusion import diffusion, diffusion_states from icon4py.model.common.states import prognostic_state as prognostics -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers def verify_diffusion_fields( diff --git a/model/atmosphere/dycore/pyproject.toml b/model/atmosphere/dycore/pyproject.toml index ed7221d5cb..08dd06e0fa 100644 --- a/model/atmosphere/dycore/pyproject.toml +++ b/model/atmosphere/dycore/pyproject.toml @@ -76,7 +76,7 @@ warn_unused_ignores = true [tool.pytest] [tool.pytest.ini_options] -addopts = ['-p icon4py.model.common.test_utils.pytest_config'] +addopts = ['-p icon4py.model.testing.pytest_config'] testpaths = 'tests' [tool.ruff] diff --git a/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py b/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py index 806efb5340..ed8dfd1798 100644 --- a/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py +++ b/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py @@ -153,7 +153,7 @@ ) from icon4py.model.common.math import smagorinsky from icon4py.model.common.states import prognostic_state as prognostics -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils from icon4py.model.common import field_type_aliases as fa import enum diff --git a/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/velocity_advection.py b/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/velocity_advection.py index 7e8408ebfb..01d7eea95b 100644 --- a/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/velocity_advection.py +++ b/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/velocity_advection.py @@ -52,7 +52,7 @@ ) from icon4py.model.common.settings import xp from icon4py.model.common.states import prognostic_state as prognostics -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils class VelocityAdvection: diff --git a/model/atmosphere/dycore/tests/conftest.py b/model/atmosphere/dycore/tests/conftest.py index 35ea9614d9..77985b965c 100644 --- a/model/atmosphere/dycore/tests/conftest.py +++ b/model/atmosphere/dycore/tests/conftest.py @@ -6,7 +6,7 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.test_utils.helpers import ( # noqa : F401 # fixtures from test_utils +from icon4py.model.testing.helpers import ( # noqa : F401 # fixtures from test_utils backend, grid, ) diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_accumulate_prep_adv_fields.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_accumulate_prep_adv_fields.py index 310774acba..6a37692b77 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_accumulate_prep_adv_fields.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_accumulate_prep_adv_fields.py @@ -13,7 +13,7 @@ accumulate_prep_adv_fields, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_from_data_assimilation.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_from_data_assimilation.py index ee385fbef4..bdb3744cd4 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_from_data_assimilation.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_from_data_assimilation.py @@ -13,7 +13,7 @@ add_analysis_increments_from_data_assimilation, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_to_vn.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_to_vn.py index 9d6782e0fd..40b7099ccb 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_to_vn.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_to_vn.py @@ -13,7 +13,7 @@ add_analysis_increments_to_vn, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_normal_wind_tendency_approaching_cfl.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_normal_wind_tendency_approaching_cfl.py index 4d6153ccdb..d4dd211591 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_normal_wind_tendency_approaching_cfl.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_normal_wind_tendency_approaching_cfl.py @@ -13,7 +13,7 @@ add_extra_diffusion_for_normal_wind_tendency_approaching_cfl, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, random_mask +from icon4py.model.testing.helpers import StencilTest, random_field, random_mask from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_w_con_approaching_cfl.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_w_con_approaching_cfl.py index 4392d89762..98960b88bb 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_w_con_approaching_cfl.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_w_con_approaching_cfl.py @@ -13,7 +13,7 @@ add_extra_diffusion_for_w_con_approaching_cfl, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, random_mask +from icon4py.model.testing.helpers import StencilTest, random_field, random_mask from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_interpolated_horizontal_advection_of_w.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_interpolated_horizontal_advection_of_w.py index ea2680d3a9..7bb735a649 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_interpolated_horizontal_advection_of_w.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_interpolated_horizontal_advection_of_w.py @@ -13,7 +13,7 @@ add_interpolated_horizontal_advection_of_w, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, as_1D_sparse_field, random_field +from icon4py.model.testing.helpers import StencilTest, as_1D_sparse_field, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn.py index 862a86232d..7ce988a229 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn.py @@ -13,7 +13,7 @@ add_temporal_tendencies_to_vn, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn_by_interpolating_between_time_levels.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn_by_interpolating_between_time_levels.py index 453d771936..a78b20bb59 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn_by_interpolating_between_time_levels.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn_by_interpolating_between_time_levels.py @@ -13,7 +13,7 @@ add_temporal_tendencies_to_vn_by_interpolating_between_time_levels, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_vertical_wind_derivative_to_divergence_damping.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_vertical_wind_derivative_to_divergence_damping.py index d4d4de268b..4fdfe33dfa 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_vertical_wind_derivative_to_divergence_damping.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_vertical_wind_derivative_to_divergence_damping.py @@ -13,7 +13,7 @@ add_vertical_wind_derivative_to_divergence_damping, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_2nd_order_divergence_damping.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_2nd_order_divergence_damping.py index e154dce319..57e6ca0103 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_2nd_order_divergence_damping.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_2nd_order_divergence_damping.py @@ -13,7 +13,7 @@ apply_2nd_order_divergence_damping, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_4th_order_divergence_damping.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_4th_order_divergence_damping.py index dbfab04748..52231e34f4 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_4th_order_divergence_damping.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_4th_order_divergence_damping.py @@ -13,7 +13,7 @@ apply_4th_order_divergence_damping, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_hydrostatic_correction_to_horizontal_gradient_of_exner_pressure.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_hydrostatic_correction_to_horizontal_gradient_of_exner_pressure.py index 86bb625782..96e593c203 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_hydrostatic_correction_to_horizontal_gradient_of_exner_pressure.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_hydrostatic_correction_to_horizontal_gradient_of_exner_pressure.py @@ -13,7 +13,7 @@ apply_hydrostatic_correction_to_horizontal_gradient_of_exner_pressure, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, random_mask +from icon4py.model.testing.helpers import StencilTest, random_field, random_mask from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_rayleigh_damping_mechanism.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_rayleigh_damping_mechanism.py index f678b21594..453df3b708 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_rayleigh_damping_mechanism.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_rayleigh_damping_mechanism.py @@ -13,7 +13,7 @@ apply_rayleigh_damping_mechanism, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_weighted_2nd_and_4th_order_divergence_damping.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_weighted_2nd_and_4th_order_divergence_damping.py index c8cc615104..7f3ccb9d80 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_weighted_2nd_and_4th_order_divergence_damping.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_weighted_2nd_and_4th_order_divergence_damping.py @@ -13,7 +13,7 @@ apply_weighted_2nd_and_4th_order_divergence_damping, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_normal_wind_tendency.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_normal_wind_tendency.py index 758302bd6a..bd2957132d 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_normal_wind_tendency.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_normal_wind_tendency.py @@ -13,7 +13,7 @@ compute_advective_normal_wind_tendency, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, as_1D_sparse_field, random_field, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_vertical_wind_tendency.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_vertical_wind_tendency.py index af73cd6341..832e52c500 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_vertical_wind_tendency.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_vertical_wind_tendency.py @@ -13,7 +13,7 @@ compute_advective_vertical_wind_tendency, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_airmass.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_airmass.py index fa9c21c5ad..1283ec1f6b 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_airmass.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_airmass.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.dycore.stencils.compute_airmass import compute_airmass from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_approx_of_2nd_vertical_derivative_of_exner.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_approx_of_2nd_vertical_derivative_of_exner.py index 4345cfb8ae..b3dc98a37c 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_approx_of_2nd_vertical_derivative_of_exner.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_approx_of_2nd_vertical_derivative_of_exner.py @@ -13,7 +13,7 @@ compute_approx_of_2nd_vertical_derivative_of_exner, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn.py index dd39ef06e6..fdd8ffbad8 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.dycore.stencils.compute_avg_vn import compute_avg_vn from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn_and_graddiv_vn_and_vt.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn_and_graddiv_vn_and_vt.py index e50f96447b..794cb70443 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn_and_graddiv_vn_and_vt.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn_and_graddiv_vn_and_vt.py @@ -13,7 +13,7 @@ compute_avg_vn_and_graddiv_vn_and_vt, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction.py index c18fd9cf9c..eb29c8ceac 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction.py @@ -13,7 +13,7 @@ compute_contravariant_correction, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w.py index 1858c5b81c..7a43d1ebd1 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w.py @@ -13,7 +13,7 @@ compute_contravariant_correction_of_w, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w_for_lower_boundary.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w_for_lower_boundary.py index f2f4c67573..7de43b4c4e 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w_for_lower_boundary.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w_for_lower_boundary.py @@ -13,7 +13,7 @@ compute_contravariant_correction_of_w_for_lower_boundary, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_dwdz_for_divergence_damping.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_dwdz_for_divergence_damping.py index 7f74257a31..3900eb2cc0 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_dwdz_for_divergence_damping.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_dwdz_for_divergence_damping.py @@ -13,7 +13,7 @@ compute_dwdz_for_divergence_damping, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_exner_from_rhotheta.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_exner_from_rhotheta.py index 878b9d796f..0bf349bcbf 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_exner_from_rhotheta.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_exner_from_rhotheta.py @@ -13,7 +13,7 @@ compute_exner_from_rhotheta, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_part_for_rho_and_exner.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_part_for_rho_and_exner.py index 7047923e9d..cada0e0334 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_part_for_rho_and_exner.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_part_for_rho_and_exner.py @@ -13,7 +13,7 @@ compute_explicit_part_for_rho_and_exner, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_from_advection_and_vertical_wind_density.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_from_advection_and_vertical_wind_density.py index a04582f0d4..e512f53b9e 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_from_advection_and_vertical_wind_density.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_from_advection_and_vertical_wind_density.py @@ -13,7 +13,7 @@ compute_explicit_vertical_wind_from_advection_and_vertical_wind_density, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_speed_and_vertical_wind_times_density.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_speed_and_vertical_wind_times_density.py index 61d158b2b7..1b0dfc9c5f 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_speed_and_vertical_wind_times_density.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_speed_and_vertical_wind_times_density.py @@ -13,7 +13,7 @@ compute_explicit_vertical_wind_speed_and_vertical_wind_times_density, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_first_vertical_derivative.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_first_vertical_derivative.py index 104b069566..ffd43b557a 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_first_vertical_derivative.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_first_vertical_derivative.py @@ -13,7 +13,7 @@ compute_first_vertical_derivative, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_graddiv2_of_vn.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_graddiv2_of_vn.py index 03aaeebe45..cc679663b4 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_graddiv2_of_vn.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_graddiv2_of_vn.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.dycore.stencils.compute_graddiv2_of_vn import compute_graddiv2_of_vn from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_of_rho_and_theta.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_of_rho_and_theta.py index 6785ce8667..995ad99df4 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_of_rho_and_theta.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_of_rho_and_theta.py @@ -13,7 +13,7 @@ compute_horizontal_advection_of_rho_and_theta, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, as_1D_sparse_field, random_field +from icon4py.model.testing.helpers import StencilTest, as_1D_sparse_field, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_term_for_vertical_velocity.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_term_for_vertical_velocity.py index 0165505f16..4af658f12f 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_term_for_vertical_velocity.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_term_for_vertical_velocity.py @@ -13,7 +13,7 @@ compute_horizontal_advection_term_for_vertical_velocity, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_flat_coordinates.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_flat_coordinates.py index fe26c93d1b..c8b3298ae1 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_flat_coordinates.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_flat_coordinates.py @@ -13,7 +13,7 @@ compute_horizontal_gradient_of_exner_pressure_for_flat_coordinates, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_multiple_levels.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_multiple_levels.py index c8c2ae9192..f6a1a4e1d9 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_multiple_levels.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_multiple_levels.py @@ -13,7 +13,7 @@ compute_horizontal_gradient_of_exner_pressure_for_multiple_levels, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, flatten_first_two_dims, random_field, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_nonflat_coordinates.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_nonflat_coordinates.py index 8d3cfda9e9..c9194cca6d 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_nonflat_coordinates.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_nonflat_coordinates.py @@ -13,7 +13,7 @@ compute_horizontal_gradient_of_exner_pressure_for_nonflat_coordinates, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_kinetic_energy.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_kinetic_energy.py index 7b1d186845..e8b7cd2658 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_kinetic_energy.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_kinetic_energy.py @@ -13,7 +13,7 @@ compute_horizontal_kinetic_energy, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_hydrostatic_correction_term.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_hydrostatic_correction_term.py index 8c77bca940..7ad0e52e78 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_hydrostatic_correction_term.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_hydrostatic_correction_term.py @@ -13,7 +13,7 @@ compute_hydrostatic_correction_term, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, flatten_first_two_dims, random_field, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_mass_flux.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_mass_flux.py index 5cc4bb1cba..72390408ba 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_mass_flux.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_mass_flux.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.dycore.stencils.compute_mass_flux import compute_mass_flux from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_maximum_cfl_and_clip_contravariant_vertical_velocity.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_maximum_cfl_and_clip_contravariant_vertical_velocity.py index 34d2d5e375..e1a5e3b845 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_maximum_cfl_and_clip_contravariant_vertical_velocity.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_maximum_cfl_and_clip_contravariant_vertical_velocity.py @@ -13,7 +13,7 @@ compute_maximum_cfl_and_clip_contravariant_vertical_velocity, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, random_field, random_mask, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta.py index 2c85507ea7..ed91890967 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta.py @@ -13,7 +13,7 @@ compute_perturbation_of_rho_and_theta, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta_and_rho_interface_cell_centers.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta_and_rho_interface_cell_centers.py index 68f6603d59..4de34b1420 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta_and_rho_interface_cell_centers.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta_and_rho_interface_cell_centers.py @@ -13,7 +13,7 @@ compute_perturbation_of_rho_and_theta_and_rho_interface_cell_centers, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_results_for_thermodynamic_variables.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_results_for_thermodynamic_variables.py index 8fad95ae56..313adbc006 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_results_for_thermodynamic_variables.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_results_for_thermodynamic_variables.py @@ -13,7 +13,7 @@ compute_results_for_thermodynamic_variables, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_rho_virtual_potential_temperatures_and_pressure_gradient.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_rho_virtual_potential_temperatures_and_pressure_gradient.py index 84baa798f5..5e522e31b7 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_rho_virtual_potential_temperatures_and_pressure_gradient.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_rho_virtual_potential_temperatures_and_pressure_gradient.py @@ -13,7 +13,7 @@ compute_rho_virtual_potential_temperatures_and_pressure_gradient, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_solver_coefficients_matrix.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_solver_coefficients_matrix.py index 2c6613a51d..0a889b18d2 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_solver_coefficients_matrix.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_solver_coefficients_matrix.py @@ -13,7 +13,7 @@ compute_solver_coefficients_matrix, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_tangential_wind.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_tangential_wind.py index 9920c5a4ce..d812c81bba 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_tangential_wind.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_tangential_wind.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.dycore.stencils.compute_tangential_wind import compute_tangential_wind from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_theta_and_exner.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_theta_and_exner.py index cf82f66b0c..1650c19363 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_theta_and_exner.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_theta_and_exner.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.dycore.stencils.compute_theta_and_exner import compute_theta_and_exner from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, random_mask +from icon4py.model.testing.helpers import StencilTest, random_field, random_mask from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_virtual_potential_temperatures_and_pressure_gradient.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_virtual_potential_temperatures_and_pressure_gradient.py index 040131a455..604ce83f21 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_virtual_potential_temperatures_and_pressure_gradient.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_virtual_potential_temperatures_and_pressure_gradient.py @@ -13,7 +13,7 @@ compute_virtual_potential_temperatures_and_pressure_gradient, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_vn_on_lateral_boundary.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_vn_on_lateral_boundary.py index cd83f98bff..8f13b80565 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_vn_on_lateral_boundary.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_vn_on_lateral_boundary.py @@ -13,7 +13,7 @@ compute_vn_on_lateral_boundary, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_copy_cell_kdim_field_to_vp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_copy_cell_kdim_field_to_vp.py index f9697ae99a..0bddb60560 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_copy_cell_kdim_field_to_vp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_copy_cell_kdim_field_to_vp.py @@ -13,7 +13,7 @@ copy_cell_kdim_field_to_vp, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_correct_contravariant_vertical_velocity.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_correct_contravariant_vertical_velocity.py index f12a375794..95eee77828 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_correct_contravariant_vertical_velocity.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_correct_contravariant_vertical_velocity.py @@ -13,7 +13,7 @@ correct_contravariant_vertical_velocity, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_at_top.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_at_top.py index 422556e96e..1e5e2a1622 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_at_top.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_at_top.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.dycore.stencils.extrapolate_at_top import extrapolate_at_top from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_temporally_exner_pressure.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_temporally_exner_pressure.py index 266da925a9..565a3b0122 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_temporally_exner_pressure.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_temporally_exner_pressure.py @@ -13,7 +13,7 @@ extrapolate_temporally_exner_pressure, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_solve_nonhydro_stencil_39_40.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_solve_nonhydro_stencil_39_40.py index 7acd2ca0cb..9672d5fbd0 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_solve_nonhydro_stencil_39_40.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_solve_nonhydro_stencil_39_40.py @@ -13,7 +13,7 @@ fused_solve_nonhydro_stencil_39_40, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat from .test_compute_contravariant_correction_of_w import compute_contravariant_correction_of_w_numpy diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_15_to_18.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_15_to_18.py index f582be92c3..09c8a18383 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_15_to_18.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_15_to_18.py @@ -13,7 +13,7 @@ fused_velocity_advection_stencil_15_to_18, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, as_1D_sparse_field, random_field, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_19_to_20.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_19_to_20.py index d8866d8aad..4cf5316e5e 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_19_to_20.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_19_to_20.py @@ -14,7 +14,7 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, as_1D_sparse_field, random_field, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py index 36834c4c09..4c9ea7aab8 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py @@ -13,8 +13,8 @@ fused_velocity_advection_stencil_1_to_7, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils import fields as field_utils from .test_compute_contravariant_correction import compute_contravariant_correction_numpy from .test_compute_horizontal_advection_term_for_vertical_velocity import ( diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_8_to_13.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_8_to_13.py index da23a87872..bab04b91fe 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_8_to_13.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_8_to_13.py @@ -13,13 +13,13 @@ fused_velocity_advection_stencil_8_to_13, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, as_1D_sparse_field, random_field, zero_field, ) -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils from .test_copy_cell_kdim_field_to_vp import copy_cell_kdim_field_to_vp_numpy from .test_correct_contravariant_vertical_velocity import ( diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_vp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_vp.py index 89f904df2a..ccaaca7508 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_vp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_vp.py @@ -13,7 +13,7 @@ init_cell_kdim_field_with_zero_vp, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_wp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_wp.py index 47704fb74e..6315cff76b 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_wp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_wp.py @@ -13,7 +13,7 @@ init_cell_kdim_field_with_zero_wp, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, zero_field +from icon4py.model.testing.helpers import StencilTest, zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_index_with_zero_vp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_index_with_zero_vp.py index cc7e4b7ca1..94a2561e77 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_index_with_zero_vp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_index_with_zero_vp.py @@ -13,7 +13,7 @@ init_two_cell_kdim_fields_index_with_zero_vp, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, _shape, random_field +from icon4py.model.testing.helpers import StencilTest, _shape, random_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_vp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_vp.py index 6cb13892e3..05d2210ab6 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_vp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_vp.py @@ -13,7 +13,7 @@ init_two_cell_kdim_fields_with_zero_vp, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_wp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_wp.py index a1e524b191..44ca5538f9 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_wp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_wp.py @@ -13,7 +13,7 @@ init_two_cell_kdim_fields_with_zero_wp, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, zero_field +from icon4py.model.testing.helpers import StencilTest, zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_edge_kdim_fields_with_zero_wp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_edge_kdim_fields_with_zero_wp.py index 35b418f0c3..3a131c766b 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_edge_kdim_fields_with_zero_wp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_edge_kdim_fields_with_zero_wp.py @@ -13,7 +13,7 @@ init_two_edge_kdim_fields_with_zero_wp, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, zero_field +from icon4py.model.testing.helpers import StencilTest, zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_contravariant_vertical_velocity_to_full_levels.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_contravariant_vertical_velocity_to_full_levels.py index b34776aaed..d796b933cb 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_contravariant_vertical_velocity_to_full_levels.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_contravariant_vertical_velocity_to_full_levels.py @@ -13,7 +13,7 @@ interpolate_contravariant_vertical_velocity_to_full_levels, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_cell_center.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_cell_center.py index 2d60332a2d..7e5fdf31d0 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_cell_center.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_cell_center.py @@ -13,7 +13,7 @@ interpolate_to_cell_center, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, as_1D_sparse_field, random_field, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_half_levels_vp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_half_levels_vp.py index 099eaa0e19..5f65541afc 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_half_levels_vp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_half_levels_vp.py @@ -13,7 +13,7 @@ interpolate_to_half_levels_vp, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_surface.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_surface.py index 58341219ed..22727bc57d 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_surface.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_surface.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.dycore.stencils.interpolate_to_surface import interpolate_to_surface from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_and_vt_to_ie_and_compute_ekin_on_edges.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_and_vt_to_ie_and_compute_ekin_on_edges.py index 39d996e77f..de6ecabfb7 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_and_vt_to_ie_and_compute_ekin_on_edges.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_and_vt_to_ie_and_compute_ekin_on_edges.py @@ -13,7 +13,7 @@ interpolate_vn_and_vt_to_ie_and_compute_ekin_on_edges, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_to_ie_and_compute_ekin_on_edges.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_to_ie_and_compute_ekin_on_edges.py index 62c46008d6..f7720ca834 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_to_ie_and_compute_ekin_on_edges.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_to_ie_and_compute_ekin_on_edges.py @@ -13,7 +13,7 @@ interpolate_vn_to_ie_and_compute_ekin_on_edges, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vt_to_interface_edges.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vt_to_interface_edges.py index 4eb2d55a2e..1a837970cc 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vt_to_interface_edges.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vt_to_interface_edges.py @@ -13,7 +13,7 @@ interpolate_vt_to_interface_edges, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mcompute_divergence_of_fluxes_of_rho_and_theta.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mcompute_divergence_of_fluxes_of_rho_and_theta.py index 8d4c95c1cb..8f2ec3ec59 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mcompute_divergence_of_fluxes_of_rho_and_theta.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mcompute_divergence_of_fluxes_of_rho_and_theta.py @@ -13,7 +13,7 @@ compute_divergence_of_fluxes_of_rho_and_theta, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( StencilTest, as_1D_sparse_field, random_field, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl.py index e9169af626..b05037ef80 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl.py @@ -13,7 +13,7 @@ mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_divrot_rot_vertex_ri_dsl.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_divrot_rot_vertex_ri_dsl.py index eccc3a303b..f01e7f8b17 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_divrot_rot_vertex_ri_dsl.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_divrot_rot_vertex_ri_dsl.py @@ -13,7 +13,7 @@ mo_math_divrot_rot_vertex_ri_dsl, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_gradients_grad_green_gauss_cell_dsl.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_gradients_grad_green_gauss_cell_dsl.py index 618c8b620f..53478b6de2 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_gradients_grad_green_gauss_cell_dsl.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_gradients_grad_green_gauss_cell_dsl.py @@ -13,7 +13,7 @@ mo_math_gradients_grad_green_gauss_cell_dsl, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_solve_nonhydro_stencil_51.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_solve_nonhydro_stencil_51.py index 30cd1638ab..017564fd83 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_solve_nonhydro_stencil_51.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_solve_nonhydro_stencil_51.py @@ -13,7 +13,7 @@ mo_solve_nonhydro_stencil_51, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field def mo_solve_nonhydro_stencil_51_z_q_numpy( diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_lower_boundary_condition_for_w_and_contravariant_correction.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_lower_boundary_condition_for_w_and_contravariant_correction.py index d1ec4920cc..2c0c9558bc 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_lower_boundary_condition_for_w_and_contravariant_correction.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_lower_boundary_condition_for_w_and_contravariant_correction.py @@ -13,7 +13,7 @@ set_lower_boundary_condition_for_w_and_contravariant_correction, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_theta_v_prime_ic_at_lower_boundary.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_theta_v_prime_ic_at_lower_boundary.py index 1a43abbbad..e6322d43ed 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_theta_v_prime_ic_at_lower_boundary.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_theta_v_prime_ic_at_lower_boundary.py @@ -13,7 +13,7 @@ set_theta_v_prime_ic_at_lower_boundary, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import vpfloat, wpfloat from .test_interpolate_to_surface import interpolate_to_surface_numpy diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_back_substitution.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_back_substitution.py index b15eafe7e9..bd5bb3a3fe 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_back_substitution.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_back_substitution.py @@ -13,7 +13,7 @@ solve_tridiagonal_matrix_for_w_back_substitution, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_forward_sweep.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_forward_sweep.py index 36583635ca..078cf3aedd 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_forward_sweep.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_forward_sweep.py @@ -14,7 +14,7 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.common.grid.simple import SimpleGrid -from icon4py.model.common.test_utils.helpers import random_field +from icon4py.model.testing.helpers import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_density_exner_wind.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_density_exner_wind.py index daae2c7c8a..36a423338d 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_density_exner_wind.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_density_exner_wind.py @@ -13,7 +13,7 @@ update_density_exner_wind, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_dynamical_exner_time_increment.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_dynamical_exner_time_increment.py index 8c94a99eb8..f90bf72171 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_dynamical_exner_time_increment.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_dynamical_exner_time_increment.py @@ -13,7 +13,7 @@ update_dynamical_exner_time_increment, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_flux_weighted.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_flux_weighted.py index 5ff885b65c..929c251742 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_flux_weighted.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_flux_weighted.py @@ -13,7 +13,7 @@ update_mass_flux_weighted, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_volume_flux.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_volume_flux.py index 7b3e3118d7..b54f415a9b 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_volume_flux.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_volume_flux.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.dycore.stencils.update_mass_volume_flux import update_mass_volume_flux from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest, random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_theta_v.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_theta_v.py index aecfd29942..2a082ed68f 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_theta_v.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_theta_v.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.dycore.stencils.update_theta_v import update_theta_v from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, random_mask +from icon4py.model.testing.helpers import StencilTest, random_field, random_mask from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_wind.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_wind.py index 0b44dcc146..1e12cfef7e 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_wind.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_wind.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.dycore.stencils.update_wind import update_wind from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_tests/conftest.py b/model/atmosphere/dycore/tests/dycore_tests/conftest.py index d9ca711585..a57cb26ac0 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/conftest.py +++ b/model/atmosphere/dycore/tests/dycore_tests/conftest.py @@ -7,7 +7,7 @@ # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa F401 +from icon4py.model.testing.datatest_fixtures import ( # noqa F401 damping_height, data_provider, decomposition_info, diff --git a/model/atmosphere/dycore/tests/dycore_tests/mpi_tests/conftest.py b/model/atmosphere/dycore/tests/dycore_tests/mpi_tests/conftest.py index 58b892af19..4817ced04b 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/mpi_tests/conftest.py +++ b/model/atmosphere/dycore/tests/dycore_tests/mpi_tests/conftest.py @@ -6,6 +6,6 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.test_utils.parallel_helpers import ( +from icon4py.model.testing.parallel_helpers import ( processor_props, # noqa: F401 # import fixtures from test_utils package ) diff --git a/model/atmosphere/dycore/tests/dycore_tests/mpi_tests/test_parallel_solve_nonhydro.py b/model/atmosphere/dycore/tests/dycore_tests/mpi_tests/test_parallel_solve_nonhydro.py index d29565ba5c..340b3ac560 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/mpi_tests/test_parallel_solve_nonhydro.py +++ b/model/atmosphere/dycore/tests/dycore_tests/mpi_tests/test_parallel_solve_nonhydro.py @@ -13,7 +13,7 @@ from icon4py.model.common import dimension as dims, utils as common_utils from icon4py.model.common.decomposition import definitions from icon4py.model.common.grid import states as grid_states, vertical as v_grid -from icon4py.model.common.test_utils import helpers, parallel_helpers +from icon4py.model.testing import helpers, parallel_helpers from .. import utils diff --git a/model/atmosphere/dycore/tests/dycore_tests/test_dycore_utils.py b/model/atmosphere/dycore/tests/dycore_tests/test_dycore_utils.py index d33c839a5f..6f53aa2191 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/test_dycore_utils.py +++ b/model/atmosphere/dycore/tests/dycore_tests/test_dycore_utils.py @@ -12,7 +12,7 @@ from icon4py.model.common import constants, dimension as dims from icon4py.model.common.grid import simple as simple_grid from icon4py.model.common.settings import backend -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers def scal_divdamp_for_order_24_numpy(a: np.array, factor: float, mean_cell_area: float): diff --git a/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py b/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py index e5850724fd..2bd4daa7cf 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py +++ b/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py @@ -20,11 +20,11 @@ from icon4py.model.common.grid import horizontal as h_grid, vertical as v_grid from icon4py.model.common.math import smagorinsky from icon4py.model.common.settings import backend -from icon4py.model.common.test_utils import ( +from icon4py.model.testing import ( datatest_utils as dt_utils, helpers, ) -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils from . import utils diff --git a/model/atmosphere/dycore/tests/dycore_tests/test_velocity_advection.py b/model/atmosphere/dycore/tests/dycore_tests/test_velocity_advection.py index 85f9937cf0..53b8d2c051 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/test_velocity_advection.py +++ b/model/atmosphere/dycore/tests/dycore_tests/test_velocity_advection.py @@ -15,7 +15,7 @@ vertical as v_grid, ) from icon4py.model.common.states import prognostic_state as prognostics -from icon4py.model.common.test_utils import datatest_utils as dt_utils, helpers +from icon4py.model.testing import datatest_utils as dt_utils, helpers from . import utils diff --git a/model/atmosphere/dycore/tests/dycore_tests/utils.py b/model/atmosphere/dycore/tests/dycore_tests/utils.py index 401c7c13d8..8e0dfd929d 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/utils.py +++ b/model/atmosphere/dycore/tests/dycore_tests/utils.py @@ -10,7 +10,7 @@ from icon4py.model.common import dimension as dims, utils as common_utils from icon4py.model.common.grid import vertical as v_grid from icon4py.model.common.states import prognostic_state as prognostics -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers from icon4py.model.common.utils import serialbox as sb diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml b/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml index 0c89afe2ad..aff33ae3e2 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml +++ b/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml @@ -76,7 +76,7 @@ warn_unused_ignores = true [tool.pytest] [tool.pytest.ini_options] -addopts = ['-p icon4py.model.common.test_utils.pytest_config'] +addopts = ['-p icon4py.model.testing.pytest_config'] testpaths = 'tests' [tool.ruff] diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/saturation_adjustment.py b/model/atmosphere/subgrid_scale_physics/microphysics/src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/saturation_adjustment.py index 120ed364ab..1b18973bd0 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/saturation_adjustment.py +++ b/model/atmosphere/subgrid_scale_physics/microphysics/src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/saturation_adjustment.py @@ -37,7 +37,7 @@ prognostic_state as prognostics, tracer_state as tracers, ) -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils # TODO (Chia Rui): Refactor this class when direct import is enabled for gt4py stencils diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py b/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py index 31513b3c4c..e3eb7ead89 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py +++ b/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py @@ -7,7 +7,7 @@ # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa F401 +from icon4py.model.testing.datatest_fixtures import ( # noqa F401 lowest_layer_thickness, maximal_layer_thickness, model_top_height, diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjusment.py b/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjusment.py index 5422d286d5..89ec688054 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjusment.py +++ b/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjusment.py @@ -16,8 +16,8 @@ prognostic_state as prognostics, tracer_state as tracers, ) -from icon4py.model.common.test_utils import datatest_utils as dt_utils -from icon4py.model.common.test_utils.helpers import dallclose, zero_field +from icon4py.model.testing import datatest_utils as dt_utils +from icon4py.model.testing.helpers import dallclose, zero_field @pytest.mark.parametrize( diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index d189db76a2..89ed68aa00 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -37,7 +37,7 @@ distributed = ["ghex>=0.3.0", "mpi4py>=3.1.5"] io = [ # self dependency "icon4py-common[netcdf]", - # packages + # external dependencies "cartopy>=0.22.0", "datashader>=0.16.1", "holoviews>=1.16.0", @@ -94,7 +94,7 @@ source_pkgs = ['common'] [tool.pytest] [tool.pytest.ini_options] -addopts = ['-p icon4py.model.common.test_utils.pytest_config'] +addopts = ['-p icon4py.model.testing.pytest_config'] markers = [ "datatest: test depending on serialized data generated by a full model run", "with_netcdf: test depending on a compatible version of netCDF4" diff --git a/model/common/src/icon4py/model/common/grid/grid_manager.py b/model/common/src/icon4py/model/common/grid/grid_manager.py index 4f40a01316..a572580b1c 100644 --- a/model/common/src/icon4py/model/common/grid/grid_manager.py +++ b/model/common/src/icon4py/model/common/grid/grid_manager.py @@ -397,7 +397,7 @@ def __exit__(self, exc_type, exc_val, exc_tb): def __call__(self, backend: Optional[gtx_backend.Backend], limited_area=True): if not self._reader: self.open() - on_gpu = common_utils.gt4py_field_allocation.is_cupy_device(backend) + on_gpu = common_utils.fields.is_cupy_device(backend) self._grid = self._construct_grid(on_gpu=on_gpu, limited_area=limited_area) self._refinement = self._read_grid_refinement_fields(backend) self._coordinates = self._read_coordinates(backend) @@ -529,7 +529,7 @@ def _read_grid_refinement_fields( Refinement control contains the classification of each entry in a field to predefined horizontal grid zones as for example the distance to the boundaries, see [refinement.py](refinement.py) """ - xp = common_utils.gt4py_field_allocation.import_array_ns(backend) + xp = common_utils.fields.import_array_ns(backend) refinement_control_names = { dims.CellDim: GridRefinementName.CONTROL_CELLS, dims.EdgeDim: GridRefinementName.CONTROL_EDGES, diff --git a/model/common/src/icon4py/model/common/metrics/compute_coeff_gradekin.py b/model/common/src/icon4py/model/common/metrics/compute_coeff_gradekin.py index 6a02b46f46..ec17cb16b3 100644 --- a/model/common/src/icon4py/model/common/metrics/compute_coeff_gradekin.py +++ b/model/common/src/icon4py/model/common/metrics/compute_coeff_gradekin.py @@ -9,7 +9,7 @@ import numpy as np from icon4py.model.common import dimension as dims -from icon4py.model.common.test_utils.helpers import numpy_to_1D_sparse_field +from icon4py.model.common.utils import fields as f_utils def compute_coeff_gradekin( @@ -37,4 +37,4 @@ def compute_coeff_gradekin( edge_cell_length[e, 0] / edge_cell_length[e, 1] * inv_dual_edge_length[e] ) coeff_gradekin_full = np.column_stack((coeff_gradekin_0, coeff_gradekin_1)) - return numpy_to_1D_sparse_field(coeff_gradekin_full, dims.ECDim) + return f_utils.numpy_to_1D_sparse_field(coeff_gradekin_full, dims.ECDim) diff --git a/model/common/src/icon4py/model/common/utils/__init__.py b/model/common/src/icon4py/model/common/utils/__init__.py index 01a35e67e9..0e651cc3ad 100644 --- a/model/common/src/icon4py/model/common/utils/__init__.py +++ b/model/common/src/icon4py/model/common/utils/__init__.py @@ -8,7 +8,7 @@ from __future__ import annotations -from . import gt4py_field_allocation +from . import fields from ._common import ( DoubleBuffering, Pair, @@ -29,5 +29,5 @@ # Functions "chainable", # Modules - "gt4py_field_allocation", + "fields", ] diff --git a/model/common/src/icon4py/model/common/utils/fields.py b/model/common/src/icon4py/model/common/utils/fields.py new file mode 100644 index 0000000000..9fc763a8ce --- /dev/null +++ b/model/common/src/icon4py/model/common/utils/fields.py @@ -0,0 +1,200 @@ +# ICON4Py - ICON inspired code in Python and GT4Py +# +# Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss +# All rights reserved. +# +# Please, refer to the LICENSE file in the root directory. +# SPDX-License-Identifier: BSD-3-Clause +import logging as log +from typing import Optional, TypeAlias, Union + +import gt4py._core.definitions as gt_core_defs +import gt4py.next as gtx +from gt4py.next import backend +import numpy as np +import numpy.typing as npt + +from icon4py.model.common import dimension, type_alias as ta +from icon4py.model.common.grid.base import BaseGrid + +""" Enum values from Enum values taken from DLPack reference implementation at: + https://github.com/dmlc/dlpack/blob/main/include/dlpack/dlpack.h + via GT4Py +""" +CUDA_DEVICE_TYPES = ( + gt_core_defs.DeviceType.CUDA, + gt_core_defs.DeviceType.CUDA_MANAGED, + gt_core_defs.DeviceType.ROCM, +) + + +try: + import cupy as xp +except ImportError: + import numpy as xp + + +NDArrayInterface: TypeAlias = Union[np.ndarray, xp.ndarray, gtx.Field] + + +def as_numpy(array: NDArrayInterface): + if isinstance(array, np.ndarray): + return array + else: + return array.asnumpy() + +def is_cupy_device(backend: backend.Backend) -> bool: + if backend is not None: + return backend.allocator.__gt_device_type__ in CUDA_DEVICE_TYPES + else: + return False + + +def array_ns(try_cupy: bool): + if try_cupy: + try: + import cupy as cp + + return cp + except ImportError: + log.warning("No cupy installed, falling back to numpy for array_ns") + import numpy as np + + return np + + +def import_array_ns(backend: backend.Backend): + """Import cupy or numpy depending on a chosen GT4Py backend DevicType.""" + return array_ns(is_cupy_device(backend)) + + +def as_field(field: gtx.Field, backend: backend.Backend) -> gtx.Field: + """Convenience function to transfer an existing Field to a given backend.""" + return gtx.as_field(field.domain, field.ndarray, allocator=backend) + + +def as_1D_sparse_field(field: gtx.Field, target_dim: gtx.Dimension) -> gtx.Field: + """Convert a 2D sparse field to a 1D flattened (Felix-style) sparse field.""" + buffer = field.ndarray + return numpy_to_1D_sparse_field(buffer, target_dim) + + +def numpy_to_1D_sparse_field(field: np.ndarray, dim: gtx.Dimension) -> gtx.Field: + """Convert a 2D sparse field to a 1D flattened (Felix-style) sparse field.""" + old_shape = field.shape + assert len(old_shape) == 2 + new_shape = (old_shape[0] * old_shape[1],) + return as_field((dim,), field.reshape(new_shape)) + + +def flatten_first_two_dims(*dims: gtx.Dimension, field: gtx.Field) -> gtx.Field: + """Convert a n-D sparse field to a (n-1)-D flattened (Felix-style) sparse field.""" + buffer = field.ndarray + old_shape = buffer.shape + assert len(old_shape) >= 2 + flattened_size = old_shape[0] * old_shape[1] + flattened_shape = (flattened_size,) + new_shape = flattened_shape + old_shape[2:] + newarray = buffer.reshape(new_shape) + return as_field(dims, newarray) + + +def unflatten_first_two_dims(field: gtx.Field) -> np.array: + """Convert a (n-1)-D flattened (Felix-style) sparse field back to a n-D sparse field.""" + old_shape = np.asarray(field).shape + new_shape = (old_shape[0] // 3, 3) + old_shape[1:] + return np.asarray(field).reshape(new_shape) + + +def _size(grid, dim: gtx.Dimension, is_half_dim: bool) -> int: + if dim == dimension.KDim and is_half_dim: + return grid.size[dim] + 1 + return grid.size[dim] + + + +def random_field( + grid, + *dims, + low: float = -1.0, + high: float = 1.0, + extend: Optional[dict[gtx.Dimension, int]] = None, + dtype: Optional[npt.DTypeLike] = None, +) -> gtx.Field: + arr = np.random.default_rng().uniform( + low=low, high=high, size=_shape(grid, *dims, extend=extend) + ) + if dtype: + arr = arr.astype(dtype) + return as_field(dims, arr) + +def zero_field( + grid: BaseGrid, + *dims: gtx.Dimension, + dtype=ta.wpfloat, + extend: Optional[dict[gtx.Dimension, int]] = None, +) -> gtx.Field: + return as_field(dims, xp.zeros(shape=_shape(grid, *dims, extend=extend), dtype=dtype)) + + +def constant_field( + grid: BaseGrid, value: float, *dims: gtx.Dimension, dtype=ta.wpfloat +) -> gtx.Field: + return as_field( + dims, + value * np.ones(shape=tuple(map(lambda x: grid.size[x], dims)), dtype=dtype), + ) + + + +def _shape( + grid, + *dims: gtx.Dimension, + extend: Optional[dict[gtx.Dimension, int]] = None, +): + extend = extend or {} + return tuple(grid.size[dim] + extend.get(dim, 0) for dim in dims) + + +def random_mask( + grid: BaseGrid, + *dims: gtx.Dimension, + dtype: Optional[npt.DTypeLike] = None, + extend: Optional[dict[gtx.Dimension, int]] = None, +) -> gtx.Field: + rng = np.random.default_rng() + shape = _shape(grid, *dims, extend=extend) + arr = np.full(shape, False).flatten() + num_true = int(arr.size * 0.5) + arr[:num_true] = True + rng.shuffle(arr) + arr = np.reshape(arr, newshape=shape) + if dtype: + arr = arr.astype(dtype) + return as_field(dims, arr) + + + +def allocate_zero_field( + *dims: gtx.Dimension, + grid, + is_halfdim=False, + dtype=ta.wpfloat, + backend: Optional[backend.Backend] = None, +) -> gtx.Field: + dimensions = {d: range(_size(grid, d, is_halfdim)) for d in dims} + return gtx.zeros(dimensions, dtype=dtype, allocator=backend) + + +def allocate_indices( + dim: gtx.Dimension, + grid, + is_halfdim=False, + dtype=gtx.int32, + backend: Optional[backend.Backend] = None, +) -> gtx.Field: + xp = import_array_ns(backend) + shapex = _size(grid, dim, is_halfdim) + return gtx.as_field((dim,), xp.arange(shapex, dtype=dtype), allocator=backend) + + diff --git a/model/common/src/icon4py/model/common/utils/gt4py_field_allocation.py b/model/common/src/icon4py/model/common/utils/gt4py_field_allocation.py deleted file mode 100644 index 638b91a8f0..0000000000 --- a/model/common/src/icon4py/model/common/utils/gt4py_field_allocation.py +++ /dev/null @@ -1,102 +0,0 @@ -# ICON4Py - ICON inspired code in Python and GT4Py -# -# Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss -# All rights reserved. -# -# Please, refer to the LICENSE file in the root directory. -# SPDX-License-Identifier: BSD-3-Clause -import logging as log -from typing import Optional, TypeAlias, Union - -import gt4py._core.definitions as gt_core_defs -import gt4py.next as gtx -import numpy as np -from gt4py.next import backend - -from icon4py.model.common import dimension, type_alias as ta - - -""" Enum values from Enum values taken from DLPack reference implementation at: - https://github.com/dmlc/dlpack/blob/main/include/dlpack/dlpack.h - via GT4Py -""" -CUDA_DEVICE_TYPES = ( - gt_core_defs.DeviceType.CUDA, - gt_core_defs.DeviceType.CUDA_MANAGED, - gt_core_defs.DeviceType.ROCM, -) - - -try: - import cupy as xp -except ImportError: - import numpy as xp - - -NDArrayInterface: TypeAlias = Union[np.ndarray, xp.ndarray, gtx.Field] - - -def as_numpy(array: NDArrayInterface): - if isinstance(array, np.ndarray): - return array - else: - return array.asnumpy() - - -def is_cupy_device(backend: backend.Backend) -> bool: - if backend is not None: - return backend.allocator.__gt_device_type__ in CUDA_DEVICE_TYPES - else: - return False - - -def array_ns(try_cupy: bool): - if try_cupy: - try: - import cupy as cp - - return cp - except ImportError: - log.warn("No cupy installed, falling back to numpy for array_ns") - import numpy as np - - return np - - -def import_array_ns(backend: backend.Backend): - """Import cupy or numpy depending on a chosen GT4Py backend DevicType.""" - return array_ns(is_cupy_device(backend)) - - -def as_field(field: gtx.Field, backend: backend.Backend) -> gtx.Field: - """Convenience function to transfer an existing Field to a given backend.""" - return gtx.as_field(field.domain, field.ndarray, allocator=backend) - - -def _size(grid, dim: gtx.Dimension, is_half_dim: bool) -> int: - if dim == dimension.KDim and is_half_dim: - return grid.size[dim] + 1 - return grid.size[dim] - - -def allocate_zero_field( - *dims: gtx.Dimension, - grid, - is_halfdim=False, - dtype=ta.wpfloat, - backend: Optional[backend.Backend] = None, -) -> gtx.Field: - dimensions = {d: range(_size(grid, d, is_halfdim)) for d in dims} - return gtx.zeros(dimensions, dtype=dtype, allocator=backend) - - -def allocate_indices( - dim: gtx.Dimension, - grid, - is_halfdim=False, - dtype=gtx.int32, - backend: Optional[backend.Backend] = None, -) -> gtx.Field: - xp = import_array_ns(backend) - shapex = _size(grid, dim, is_halfdim) - return gtx.as_field((dim,), xp.arange(shapex, dtype=dtype), allocator=backend) diff --git a/model/common/src/icon4py/model/common/utils/serialbox.py b/model/common/src/icon4py/model/common/utils/serialbox.py index d91f264a0d..895e53645e 100644 --- a/model/common/src/icon4py/model/common/utils/serialbox.py +++ b/model/common/src/icon4py/model/common/utils/serialbox.py @@ -15,7 +15,7 @@ import icon4py.model.common.decomposition.definitions as decomposition import icon4py.model.common.field_type_aliases as fa import icon4py.model.common.grid.states as grid_states -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.common.utils.fields as field_utils from icon4py.model.common import dimension as dims from icon4py.model.common.grid import base, horizontal, icon from icon4py.model.common.settings import xp @@ -498,28 +498,28 @@ def construct_edge_geometry(self) -> grid_states.EdgeParams: primal_normal_vert: tuple[ gtx.Field[[dims.ECVDim], float], gtx.Field[[dims.ECVDim], float] ] = ( - helpers.as_1D_sparse_field(self.primal_normal_vert_x(), dims.ECVDim), - helpers.as_1D_sparse_field(self.primal_normal_vert_y(), dims.ECVDim), + field_utils.as_1D_sparse_field(self.primal_normal_vert_x(), dims.ECVDim), + field_utils.as_1D_sparse_field(self.primal_normal_vert_y(), dims.ECVDim), ) dual_normal_vert: tuple[ gtx.Field[[dims.ECVDim], float], gtx.Field[[dims.ECVDim], float] ] = ( - helpers.as_1D_sparse_field(self.dual_normal_vert_x(), dims.ECVDim), - helpers.as_1D_sparse_field(self.dual_normal_vert_y(), dims.ECVDim), + field_utils.as_1D_sparse_field(self.dual_normal_vert_x(), dims.ECVDim), + field_utils.as_1D_sparse_field(self.dual_normal_vert_y(), dims.ECVDim), ) primal_normal_cell: tuple[ gtx.Field[[dims.ECDim], float], gtx.Field[[dims.ECDim], float] ] = ( - helpers.as_1D_sparse_field(self.primal_normal_cell_x(), dims.ECDim), - helpers.as_1D_sparse_field(self.primal_normal_cell_y(), dims.ECDim), + field_utils.as_1D_sparse_field(self.primal_normal_cell_x(), dims.ECDim), + field_utils.as_1D_sparse_field(self.primal_normal_cell_y(), dims.ECDim), ) dual_normal_cell: tuple[ gtx.Field[[dims.ECVDim], float], gtx.Field[[dims.ECVDim], float] ] = ( - helpers.as_1D_sparse_field(self.dual_normal_cell_x(), dims.ECDim), - helpers.as_1D_sparse_field(self.dual_normal_cell_y(), dims.ECDim), + field_utils.as_1D_sparse_field(self.dual_normal_cell_x(), dims.ECDim), + field_utils.as_1D_sparse_field(self.dual_normal_cell_y(), dims.ECDim), ) return grid_states.EdgeParams( tangent_orientation=self.tangent_orientation(), @@ -596,11 +596,11 @@ def nudgecoeff_e(self): def pos_on_tplane_e_x(self): field = self._get_field("pos_on_tplane_e_x", dims.EdgeDim, dims.E2CDim) - return helpers.as_1D_sparse_field(field[:, 0:2], dims.ECDim) + return field_utils.as_1D_sparse_field(field[:, 0:2], dims.ECDim) def pos_on_tplane_e_y(self): field = self._get_field("pos_on_tplane_e_y", dims.EdgeDim, dims.E2CDim) - return helpers.as_1D_sparse_field(field[:, 0:2], dims.ECDim) + return field_utils.as_1D_sparse_field(field[:, 0:2], dims.ECDim) def rbf_vec_coeff_e(self): buffer = xp.squeeze( @@ -705,13 +705,13 @@ def wgtfacq_c_dsl(self): def zdiff_gradp(self): field = self._get_field("zdiff_gradp_dsl", dims.EdgeDim, dims.E2CDim, dims.KDim) - return helpers.flatten_first_two_dims(dims.ECDim, dims.KDim, field=field) + return field_utils.flatten_first_two_dims(dims.ECDim, dims.KDim, field=field) def vertoffset_gradp(self): field = self._get_field( "vertoffset_gradp_dsl", dims.EdgeDim, dims.E2CDim, dims.KDim, dtype=gtx.int32 ) - return helpers.flatten_first_two_dims(dims.ECDim, dims.KDim, field=field) + return field_utils.flatten_first_two_dims(dims.ECDim, dims.KDim, field=field) def coeff1_dwdz(self): return self._get_field("coeff1_dwdz", dims.CellDim, dims.KDim) @@ -721,7 +721,7 @@ def coeff2_dwdz(self): def coeff_gradekin(self): field = self._get_field("coeff_gradekin", dims.EdgeDim, dims.E2CDim) - return helpers.as_1D_sparse_field(field, dims.ECDim) + return field_utils.as_1D_sparse_field(field, dims.ECDim) def ddqz_z_full_e(self): return self._get_field("ddqz_z_full_e", dims.EdgeDim, dims.KDim) @@ -798,11 +798,11 @@ def zd_indlist(self): class LeastSquaresSavepoint(IconSavepoint): def lsq_pseudoinv_1(self): field = self._get_field("lsq_pseudoinv_1", dims.CellDim, dims.C2E2CDim) - return helpers.as_1D_sparse_field(field, dims.CECDim) + return field_utils.as_1D_sparse_field(field, dims.CECDim) def lsq_pseudoinv_2(self): field = self._get_field("lsq_pseudoinv_2", dims.CellDim, dims.C2E2CDim) - return helpers.as_1D_sparse_field(field, dims.CECDim) + return field_utils.as_1D_sparse_field(field, dims.CECDim) class AdvectionInitSavepoint(IconSavepoint): diff --git a/model/common/tests/conftest.py b/model/common/tests/conftest.py index da4c5f728b..c6a86c84e0 100644 --- a/model/common/tests/conftest.py +++ b/model/common/tests/conftest.py @@ -11,7 +11,7 @@ import pytest -from icon4py.model.common.test_utils.helpers import backend, grid # noqa: F401 # fixtures +from icon4py.model.testing.helpers import backend, grid # noqa: F401 # fixtures @pytest.fixture diff --git a/model/common/tests/decomposition_tests/test_definitions.py b/model/common/tests/decomposition_tests/test_definitions.py index 79dda9bd88..8288bbfb44 100644 --- a/model/common/tests/decomposition_tests/test_definitions.py +++ b/model/common/tests/decomposition_tests/test_definitions.py @@ -11,7 +11,7 @@ SingleNodeExchange, create_exchange, ) -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa: F401 # import fixtures form test_utils +from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 # import fixtures form test_utils data_provider, download_ser_data, experiment, diff --git a/model/common/tests/decomposition_tests/test_mpi_decomposition.py b/model/common/tests/decomposition_tests/test_mpi_decomposition.py index f51608075c..c114475dca 100644 --- a/model/common/tests/decomposition_tests/test_mpi_decomposition.py +++ b/model/common/tests/decomposition_tests/test_mpi_decomposition.py @@ -9,7 +9,7 @@ import numpy as np import pytest -from icon4py.model.common.test_utils.helpers import constant_field +from icon4py.model.testing.helpers import constant_field try: @@ -25,7 +25,7 @@ create_exchange, ) from icon4py.model.common.decomposition.mpi_decomposition import GHexMultiNodeExchange -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils +from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils data_provider, decomposition_info, download_ser_data, @@ -35,7 +35,7 @@ metrics_savepoint, ranked_data_path, ) -from icon4py.model.common.test_utils.parallel_helpers import ( # noqa: F401 # import fixtures from test_utils package +from icon4py.model.testing.parallel_helpers import ( # noqa: F401 # import fixtures from test_utils package check_comm_size, processor_props, ) diff --git a/model/common/tests/diagnostic_calculations_tests/conftest.py b/model/common/tests/diagnostic_calculations_tests/conftest.py index 440488c84b..0075b45e25 100644 --- a/model/common/tests/diagnostic_calculations_tests/conftest.py +++ b/model/common/tests/diagnostic_calculations_tests/conftest.py @@ -6,7 +6,7 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa: F401 +from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 damping_height, data_provider, download_ser_data, diff --git a/model/common/tests/diagnostic_calculations_tests/test_diagnostic_calculations.py b/model/common/tests/diagnostic_calculations_tests/test_diagnostic_calculations.py index db6a7045b5..f5e48af60b 100644 --- a/model/common/tests/diagnostic_calculations_tests/test_diagnostic_calculations.py +++ b/model/common/tests/diagnostic_calculations_tests/test_diagnostic_calculations.py @@ -23,7 +23,7 @@ prognostic_state, tracer_state as tracers, ) -from icon4py.model.common.test_utils import datatest_utils as dt_utils, helpers +from icon4py.model.testing import datatest_utils as dt_utils, helpers @pytest.mark.datatest diff --git a/model/common/tests/grid_tests/conftest.py b/model/common/tests/grid_tests/conftest.py index c1fa04aa63..21d9bdbbd4 100644 --- a/model/common/tests/grid_tests/conftest.py +++ b/model/common/tests/grid_tests/conftest.py @@ -8,7 +8,7 @@ import pytest -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa: F401 +from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 damping_height, data_provider, decomposition_info, @@ -27,7 +27,7 @@ stretch_factor, top_height_limit_for_maximal_layer_thickness, ) -from icon4py.model.common.test_utils.datatest_utils import REGIONAL_EXPERIMENT +from icon4py.model.testing.datatest_utils import REGIONAL_EXPERIMENT @pytest.fixture diff --git a/model/common/tests/grid_tests/mpi_tests/test_parallel_icon.py b/model/common/tests/grid_tests/mpi_tests/test_parallel_icon.py index 90f67547cf..16f3eb8956 100644 --- a/model/common/tests/grid_tests/mpi_tests/test_parallel_icon.py +++ b/model/common/tests/grid_tests/mpi_tests/test_parallel_icon.py @@ -12,7 +12,7 @@ import icon4py.model.common.dimension as dims import icon4py.model.common.grid.horizontal as h_grid -from icon4py.model.common.test_utils.parallel_helpers import ( # noqa: F401 # import fixtures from test_utils package +from icon4py.model.testing.parallel_helpers import ( # noqa: F401 # import fixtures from test_utils package check_comm_size, processor_props, ) diff --git a/model/common/tests/grid_tests/test_geometry.py b/model/common/tests/grid_tests/test_geometry.py index 31789099fb..562d9ec18a 100644 --- a/model/common/tests/grid_tests/test_geometry.py +++ b/model/common/tests/grid_tests/test_geometry.py @@ -18,7 +18,7 @@ simple as simple, ) from icon4py.model.common.grid.geometry import as_sparse_field -from icon4py.model.common.test_utils import datatest_utils as dt_utils, grid_utils, helpers +from icon4py.model.testing import datatest_utils as dt_utils, grid_utils, helpers def test_geometry_raises_for_unknown_field(backend): diff --git a/model/common/tests/grid_tests/test_grid_manager.py b/model/common/tests/grid_tests/test_grid_manager.py index 19bef3ac04..0b4c66f7f0 100644 --- a/model/common/tests/grid_tests/test_grid_manager.py +++ b/model/common/tests/grid_tests/test_grid_manager.py @@ -22,7 +22,7 @@ vertical as v_grid, ) from icon4py.model.common.grid.grid_manager import GeometryName -from icon4py.model.common.test_utils import ( +from icon4py.model.testing import ( datatest_utils as dt_utils, grid_utils as gridtest_utils, helpers, diff --git a/model/common/tests/grid_tests/test_icon.py b/model/common/tests/grid_tests/test_icon.py index 9dd2dc24bc..b91f8674a3 100644 --- a/model/common/tests/grid_tests/test_icon.py +++ b/model/common/tests/grid_tests/test_icon.py @@ -17,7 +17,7 @@ icon, vertical as v_grid, ) -from icon4py.model.common.test_utils import grid_utils as gridtest_utils +from icon4py.model.testing import grid_utils as gridtest_utils from . import utils diff --git a/model/common/tests/grid_tests/test_vertical.py b/model/common/tests/grid_tests/test_vertical.py index fd508f6b71..94059ee6f7 100644 --- a/model/common/tests/grid_tests/test_vertical.py +++ b/model/common/tests/grid_tests/test_vertical.py @@ -13,7 +13,7 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.grid import vertical as v_grid -from icon4py.model.common.test_utils import datatest_utils as dt_utils, grid_utils, helpers +from icon4py.model.testing import datatest_utils as dt_utils, grid_utils, helpers NUM_LEVELS = grid_utils.MCH_CH_R04B09_LEVELS diff --git a/model/common/tests/grid_tests/utils.py b/model/common/tests/grid_tests/utils.py index 3b1463dc36..d58e5f0979 100644 --- a/model/common/tests/grid_tests/utils.py +++ b/model/common/tests/grid_tests/utils.py @@ -9,7 +9,7 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid -from icon4py.model.common.test_utils.datatest_utils import ( +from icon4py.model.testing.datatest_utils import ( GRIDS_PATH, R02B04_GLOBAL, REGIONAL_EXPERIMENT, diff --git a/model/common/tests/interpolation_tests/conftest.py b/model/common/tests/interpolation_tests/conftest.py index bc27474fce..bb98485929 100644 --- a/model/common/tests/interpolation_tests/conftest.py +++ b/model/common/tests/interpolation_tests/conftest.py @@ -6,7 +6,7 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package +from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package data_provider, download_ser_data, experiment, diff --git a/model/common/tests/interpolation_tests/test_interpolation_fields.py b/model/common/tests/interpolation_tests/test_interpolation_fields.py index 24ef28264a..5346ce65a9 100644 --- a/model/common/tests/interpolation_tests/test_interpolation_fields.py +++ b/model/common/tests/interpolation_tests/test_interpolation_fields.py @@ -11,7 +11,7 @@ import icon4py.model.common.dimension as dims import icon4py.model.common.grid.horizontal as h_grid -import icon4py.model.common.test_utils.helpers as test_helpers +import icon4py.model.testing.helpers as test_helpers from icon4py.model.common import constants from icon4py.model.common.interpolation.interpolation_fields import ( compute_c_lin_e, @@ -27,8 +27,8 @@ compute_pos_on_tplane_e_x_y, compute_primal_normal_ec, ) -from icon4py.model.common.test_utils import datatest_utils as dt_utils -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package +from icon4py.model.testing import datatest_utils as dt_utils +from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package data_provider, download_ser_data, experiment, diff --git a/model/common/tests/io_tests/test_io.py b/model/common/tests/io_tests/test_io.py index 4016871a13..c07dcf4f87 100644 --- a/model/common/tests/io_tests/test_io.py +++ b/model/common/tests/io_tests/test_io.py @@ -29,7 +29,7 @@ to_delta, ) from icon4py.model.common.states import data -from icon4py.model.common.test_utils import datatest_utils, grid_utils, helpers +from icon4py.model.testing import datatest_utils, grid_utils, helpers # setting backend to fieldview embedded here. diff --git a/model/common/tests/io_tests/test_ugrid.py b/model/common/tests/io_tests/test_ugrid.py index 12d059dbe1..dd6b74adb1 100644 --- a/model/common/tests/io_tests/test_ugrid.py +++ b/model/common/tests/io_tests/test_ugrid.py @@ -17,7 +17,7 @@ extract_horizontal_coordinates, load_data_file, ) -from icon4py.model.common.test_utils import datatest_utils, grid_utils +from icon4py.model.testing import datatest_utils, grid_utils def grid_files(): diff --git a/model/common/tests/io_tests/test_utils.py b/model/common/tests/io_tests/test_utils.py index 01530b7392..e5f89f7bfb 100644 --- a/model/common/tests/io_tests/test_utils.py +++ b/model/common/tests/io_tests/test_utils.py @@ -12,7 +12,7 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.io import ugrid, utils from icon4py.model.common.states import data, model -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers def test_data_array_has_ugrid_and_cf_attributes(): diff --git a/model/common/tests/io_tests/test_writers.py b/model/common/tests/io_tests/test_writers.py index df5af583da..c711b3e173 100644 --- a/model/common/tests/io_tests/test_writers.py +++ b/model/common/tests/io_tests/test_writers.py @@ -20,7 +20,7 @@ filter_by_standard_name, ) from icon4py.model.common.states import data, metadata -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers from . import test_io diff --git a/model/common/tests/math_tests/test_helpers.py b/model/common/tests/math_tests/test_helpers.py index 9c864e599d..52f19edfdd 100644 --- a/model/common/tests/math_tests/test_helpers.py +++ b/model/common/tests/math_tests/test_helpers.py @@ -10,7 +10,7 @@ from icon4py.model.common.grid import simple from icon4py.model.common.math import helpers from icon4py.model.common.settings import xp -from icon4py.model.common.test_utils import helpers as test_helpers +from icon4py.model.testing import helpers as test_helpers def test_cross_product(backend): diff --git a/model/common/tests/math_tests/test_smagorinsky.py b/model/common/tests/math_tests/test_smagorinsky.py index bb573845a2..b1ac38f399 100644 --- a/model/common/tests/math_tests/test_smagorinsky.py +++ b/model/common/tests/math_tests/test_smagorinsky.py @@ -11,8 +11,8 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.math.smagorinsky import en_smag_fac_for_zero_nshift -from icon4py.model.common.test_utils.helpers import random_field, zero_field -from icon4py.model.common.test_utils.reference_funcs import ( +from icon4py.model.testing.helpers import random_field, zero_field +from icon4py.model.testing.reference_funcs import ( enhanced_smagorinski_factor_numpy, ) diff --git a/model/common/tests/metric_tests/conftest.py b/model/common/tests/metric_tests/conftest.py index cb7be87d52..b1850e99cd 100644 --- a/model/common/tests/metric_tests/conftest.py +++ b/model/common/tests/metric_tests/conftest.py @@ -6,7 +6,7 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package +from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package data_provider, download_ser_data, experiment, @@ -17,6 +17,6 @@ processor_props, ranked_data_path, ) -from icon4py.model.common.test_utils.helpers import ( # noqa : F401 # fixtures from test_utils +from icon4py.model.testing.helpers import ( # noqa : F401 # fixtures from test_utils backend, ) diff --git a/model/common/tests/metric_tests/test_compute_coeff_gradekin.py b/model/common/tests/metric_tests/test_compute_coeff_gradekin.py index e071a74079..e24acd0059 100644 --- a/model/common/tests/metric_tests/test_compute_coeff_gradekin.py +++ b/model/common/tests/metric_tests/test_compute_coeff_gradekin.py @@ -11,8 +11,8 @@ import icon4py.model.common.grid.horizontal as h_grid from icon4py.model.common import dimension as dims from icon4py.model.common.metrics.compute_coeff_gradekin import compute_coeff_gradekin -from icon4py.model.common.test_utils import datatest_utils as dt_utils -from icon4py.model.common.test_utils.helpers import dallclose +from icon4py.model.testing import datatest_utils as dt_utils +from icon4py.model.testing.helpers import dallclose @pytest.mark.datatest diff --git a/model/common/tests/metric_tests/test_compute_diffusion_metrics.py b/model/common/tests/metric_tests/test_compute_diffusion_metrics.py index 5e63d7e5e2..eb2f92735c 100644 --- a/model/common/tests/metric_tests/test_compute_diffusion_metrics.py +++ b/model/common/tests/metric_tests/test_compute_diffusion_metrics.py @@ -20,8 +20,8 @@ compute_weighted_cell_neighbor_sum, compute_z_mc, ) -from icon4py.model.common.test_utils import datatest_utils as dt_utils -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing import datatest_utils as dt_utils +from icon4py.model.testing.helpers import ( constant_field, dallclose, flatten_first_two_dims, diff --git a/model/common/tests/metric_tests/test_compute_nudgecoeffs.py b/model/common/tests/metric_tests/test_compute_nudgecoeffs.py index 89e41409b4..7b14f584bd 100644 --- a/model/common/tests/metric_tests/test_compute_nudgecoeffs.py +++ b/model/common/tests/metric_tests/test_compute_nudgecoeffs.py @@ -12,8 +12,8 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid, refinement from icon4py.model.common.metrics.compute_nudgecoeffs import compute_nudgecoeffs -from icon4py.model.common.test_utils import datatest_utils as dt_utils -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package +from icon4py.model.testing import datatest_utils as dt_utils +from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package data_provider, download_ser_data, experiment, @@ -23,7 +23,7 @@ processor_props, ranked_data_path, ) -from icon4py.model.common.test_utils.helpers import zero_field +from icon4py.model.testing.helpers import zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/common/tests/metric_tests/test_compute_wgtfac_c.py b/model/common/tests/metric_tests/test_compute_wgtfac_c.py index 5a1b7b3842..a5daa371b0 100644 --- a/model/common/tests/metric_tests/test_compute_wgtfac_c.py +++ b/model/common/tests/metric_tests/test_compute_wgtfac_c.py @@ -10,10 +10,10 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.metrics.compute_wgtfac_c import compute_wgtfac_c -from icon4py.model.common.test_utils import datatest_utils as dt_utils -from icon4py.model.common.test_utils.helpers import dallclose, zero_field +from icon4py.model.testing import datatest_utils as dt_utils +from icon4py.model.testing.helpers import dallclose, zero_field from icon4py.model.common.type_alias import wpfloat -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils @pytest.mark.datatest diff --git a/model/common/tests/metric_tests/test_compute_wgtfacq.py b/model/common/tests/metric_tests/test_compute_wgtfacq.py index a66bca4768..0c9f1eafd6 100644 --- a/model/common/tests/metric_tests/test_compute_wgtfacq.py +++ b/model/common/tests/metric_tests/test_compute_wgtfacq.py @@ -13,8 +13,8 @@ compute_wgtfacq_c_dsl, compute_wgtfacq_e_dsl, ) -from icon4py.model.common.test_utils import datatest_utils as dt_utils -from icon4py.model.common.test_utils.helpers import dallclose +from icon4py.model.testing import datatest_utils as dt_utils +from icon4py.model.testing.helpers import dallclose @pytest.mark.datatest diff --git a/model/common/tests/metric_tests/test_compute_zdiff_gradp_dsl.py b/model/common/tests/metric_tests/test_compute_zdiff_gradp_dsl.py index f74039fb76..2be2da2a27 100644 --- a/model/common/tests/metric_tests/test_compute_zdiff_gradp_dsl.py +++ b/model/common/tests/metric_tests/test_compute_zdiff_gradp_dsl.py @@ -20,7 +20,7 @@ _compute_z_aux2, compute_z_mc, ) -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing.helpers import ( dallclose, flatten_first_two_dims, is_roundtrip, diff --git a/model/common/tests/metric_tests/test_metric_fields.py b/model/common/tests/metric_tests/test_metric_fields.py index a81d3afae2..ca1a9c5d21 100644 --- a/model/common/tests/metric_tests/test_metric_fields.py +++ b/model/common/tests/metric_tests/test_metric_fields.py @@ -47,8 +47,8 @@ compute_wgtfac_e, compute_z_mc, ) -from icon4py.model.common.test_utils import datatest_utils as dt_utils -from icon4py.model.common.test_utils.helpers import ( +from icon4py.model.testing import datatest_utils as dt_utils +from icon4py.model.testing.helpers import ( StencilTest, constant_field, dallclose, diff --git a/model/common/tests/metric_tests/test_metric_scalars.py b/model/common/tests/metric_tests/test_metric_scalars.py index c849c5954f..0a55fd40c0 100644 --- a/model/common/tests/metric_tests/test_metric_scalars.py +++ b/model/common/tests/metric_tests/test_metric_scalars.py @@ -9,7 +9,7 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.grid.simple import SimpleGrid from icon4py.model.common.metrics.metric_scalars import compute_kstart_dd3d -from icon4py.model.common.test_utils.helpers import random_field +from icon4py.model.testing.helpers import random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/common/tests/metric_tests/test_reference_atmosphere.py b/model/common/tests/metric_tests/test_reference_atmosphere.py index ec44c04896..a1d350c134 100644 --- a/model/common/tests/metric_tests/test_reference_atmosphere.py +++ b/model/common/tests/metric_tests/test_reference_atmosphere.py @@ -8,7 +8,7 @@ import gt4py.next as gtx import pytest -import icon4py.model.common.test_utils.helpers as helpers +import icon4py.model.testing.helpers as helpers import icon4py.model.common.type_alias as ta from icon4py.model.common import constants, dimension as dims from icon4py.model.common.grid import horizontal @@ -21,7 +21,7 @@ compute_reference_atmosphere_cell_fields, compute_reference_atmosphere_edge_fields, ) -from icon4py.model.common.test_utils import datatest_utils as dt_utils +from icon4py.model.testing import datatest_utils as dt_utils # TODO (@halungge) some tests need to run on a compiled backend: embedded does not work with the diff --git a/model/common/tests/states_test/conftest.py b/model/common/tests/states_test/conftest.py index cb7be87d52..b1850e99cd 100644 --- a/model/common/tests/states_test/conftest.py +++ b/model/common/tests/states_test/conftest.py @@ -6,7 +6,7 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package +from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package data_provider, download_ser_data, experiment, @@ -17,6 +17,6 @@ processor_props, ranked_data_path, ) -from icon4py.model.common.test_utils.helpers import ( # noqa : F401 # fixtures from test_utils +from icon4py.model.testing.helpers import ( # noqa : F401 # fixtures from test_utils backend, ) diff --git a/model/common/tests/stencil_tests/test_cell_2_edge_interpolation.py b/model/common/tests/stencil_tests/test_cell_2_edge_interpolation.py index 26bbc27f55..e2496e1a81 100644 --- a/model/common/tests/stencil_tests/test_cell_2_edge_interpolation.py +++ b/model/common/tests/stencil_tests/test_cell_2_edge_interpolation.py @@ -13,7 +13,7 @@ from icon4py.model.common.interpolation.stencils.cell_2_edge_interpolation import ( cell_2_edge_interpolation, ) -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers class TestCell2EdgeInterpolation(helpers.StencilTest): diff --git a/model/common/tests/stencil_tests/test_compute_cell_2_vertex_interpolation.py b/model/common/tests/stencil_tests/test_compute_cell_2_vertex_interpolation.py index 4841cca6f6..ff19652b63 100644 --- a/model/common/tests/stencil_tests/test_compute_cell_2_vertex_interpolation.py +++ b/model/common/tests/stencil_tests/test_compute_cell_2_vertex_interpolation.py @@ -14,7 +14,7 @@ from icon4py.model.common.interpolation.stencils.compute_cell_2_vertex_interpolation import ( compute_cell_2_vertex_interpolation, ) -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers class TestComputeCells2VertsInterpolation(helpers.StencilTest): diff --git a/model/common/tests/stencil_tests/test_diagnose_pressure.py b/model/common/tests/stencil_tests/test_diagnose_pressure.py index b231ffab72..b2f5e85bc9 100644 --- a/model/common/tests/stencil_tests/test_diagnose_pressure.py +++ b/model/common/tests/stencil_tests/test_diagnose_pressure.py @@ -13,7 +13,7 @@ from icon4py.model.common.diagnostic_calculations.stencils.diagnose_pressure import ( diagnose_pressure, ) -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers class TestDiagnosePressure(helpers.StencilTest): diff --git a/model/common/tests/stencil_tests/test_diagnose_surface_pressure.py b/model/common/tests/stencil_tests/test_diagnose_surface_pressure.py index 46ecddf154..304bbdd99d 100644 --- a/model/common/tests/stencil_tests/test_diagnose_surface_pressure.py +++ b/model/common/tests/stencil_tests/test_diagnose_surface_pressure.py @@ -13,7 +13,7 @@ from icon4py.model.common.diagnostic_calculations.stencils.diagnose_surface_pressure import ( diagnose_surface_pressure, ) -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers class TestDiagnoseSurfacePressure(helpers.StencilTest): diff --git a/model/common/tests/stencil_tests/test_diagnose_temperature.py b/model/common/tests/stencil_tests/test_diagnose_temperature.py index ec397fd3a5..2ca69ae5d9 100644 --- a/model/common/tests/stencil_tests/test_diagnose_temperature.py +++ b/model/common/tests/stencil_tests/test_diagnose_temperature.py @@ -13,7 +13,7 @@ from icon4py.model.common.diagnostic_calculations.stencils.diagnose_temperature import ( diagnose_virtual_temperature_and_temperature, ) -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers class TestDiagnoseTemperature(helpers.StencilTest): diff --git a/model/common/tests/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py b/model/common/tests/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py index dd3e3851ae..69601659a5 100644 --- a/model/common/tests/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py +++ b/model/common/tests/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py @@ -13,7 +13,7 @@ from icon4py.model.common.interpolation.stencils.edge_2_cell_vector_rbf_interpolation import ( edge_2_cell_vector_rbf_interpolation, ) -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers class TestEdge2CellVectorRBFInterpolation(helpers.StencilTest): diff --git a/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py b/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py index 4463ca3b9b..81a4f99a40 100644 --- a/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py +++ b/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py @@ -13,7 +13,7 @@ from icon4py.model.common.interpolation.stencils.mo_intp_rbf_rbf_vec_interpol_vertex import ( mo_intp_rbf_rbf_vec_interpol_vertex, ) -from icon4py.model.common.test_utils.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest, random_field, zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/driver/pyproject.toml b/model/driver/pyproject.toml index 4a95bb7b7d..ecdd71f69a 100644 --- a/model/driver/pyproject.toml +++ b/model/driver/pyproject.toml @@ -81,7 +81,7 @@ warn_unused_ignores = true [tool.pytest] [tool.pytest.ini_options] -addopts = ['-p icon4py.model.common.test_utils.pytest_config'] +addopts = ['-p icon4py.model.testing.pytest_config'] testpaths = 'tests' [tool.ruff] diff --git a/model/driver/src/icon4py/model/driver/initialization_utils.py b/model/driver/src/icon4py/model/driver/initialization_utils.py index d69177e995..cba1b288db 100644 --- a/model/driver/src/icon4py/model/driver/initialization_utils.py +++ b/model/driver/src/icon4py/model/driver/initialization_utils.py @@ -10,6 +10,7 @@ import functools import logging import pathlib +import uuid from icon4py.model.atmosphere.diffusion import diffusion_states from icon4py.model.atmosphere.dycore import dycore_states @@ -23,11 +24,7 @@ diagnostic_state as diagnostics, prognostic_state as prognostics, ) -from icon4py.model.common.test_utils import ( - datatest_utils as dt_utils, - helpers, -) -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc, serialbox as sb +from icon4py.model.common.utils import fields as field_utils, serialbox as sb from icon4py.model.driver import ( serialbox_helpers as driver_sb, ) @@ -36,7 +33,7 @@ GRID_LEVEL = 4 GRID_ROOT = 2 -GLOBAL_GRID_ID = dt_utils.GRID_IDS[dt_utils.GLOBAL_EXPERIMENT] +GLOBAL_GRID_ID = uuid.UUID("af122aca-1dd2-11b2-a7f8-c7bf6bc21eba") SB_ONLY_MSG = "Only ser_type='sb' is implemented so far." INITIALIZATION_ERROR_MSG = "The requested experiment type is not implemented." @@ -387,10 +384,10 @@ def read_static_fields( pos_on_tplane_e_1=interpolation_savepoint.pos_on_tplane_e_x(), pos_on_tplane_e_2=interpolation_savepoint.pos_on_tplane_e_y(), rbf_vec_coeff_e=interpolation_savepoint.rbf_vec_coeff_e(), - e_bln_c_s=helpers.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=field_utils.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=field_utils.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=grg[0], geofac_grg_y=grg[1], diff --git a/model/driver/src/icon4py/model/driver/serialbox_helpers.py b/model/driver/src/icon4py/model/driver/serialbox_helpers.py index 51f8b55260..bc3abf759c 100644 --- a/model/driver/src/icon4py/model/driver/serialbox_helpers.py +++ b/model/driver/src/icon4py/model/driver/serialbox_helpers.py @@ -9,7 +9,7 @@ from icon4py.model.atmosphere.diffusion import diffusion_states as diffus_states from icon4py.model.common import dimension as dims from icon4py.model.common.utils import serialbox as sb -from icon4py.model.common.test_utils.helpers import as_1D_sparse_field +from icon4py.model.common.utils import fields as field_utils """ @@ -27,10 +27,10 @@ def construct_interpolation_state_for_diffusion( ) -> diffus_states.DiffusionInterpolationState: grg = savepoint.geofac_grg() return diffus_states.DiffusionInterpolationState( - e_bln_c_s=as_1D_sparse_field(savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=field_utils.as_1D_sparse_field(savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=savepoint.rbf_vec_coeff_v2(), - geofac_div=as_1D_sparse_field(savepoint.geofac_div(), dims.CEDim), + geofac_div=field_utils.as_1D_sparse_field(savepoint.geofac_div(), dims.CEDim), geofac_n2s=savepoint.geofac_n2s(), geofac_grg_x=grg[0], geofac_grg_y=grg[1], diff --git a/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py b/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py index 2371494eac..ca754165c2 100644 --- a/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py +++ b/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py @@ -24,7 +24,7 @@ prognostic_state as prognostics, ) from icon4py.model.common.utils import serialbox as sb -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils from icon4py.model.driver.test_cases import utils as testcases_utils diff --git a/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py b/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py index 48550a3647..50d13e4e63 100644 --- a/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py +++ b/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py @@ -25,7 +25,7 @@ prognostic_state as prognostics, ) from icon4py.model.common.utils import serialbox as sb -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils from icon4py.model.driver.test_cases import utils as testcases_utils diff --git a/model/driver/tests/conftest.py b/model/driver/tests/conftest.py index c7c5517c48..cfafaa7637 100644 --- a/model/driver/tests/conftest.py +++ b/model/driver/tests/conftest.py @@ -11,7 +11,7 @@ import pytest from icon4py.model.atmosphere.diffusion import diffusion -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa: F401 +from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 damping_height, data_provider, download_ser_data, diff --git a/model/driver/tests/driver_tests/test_timeloop.py b/model/driver/tests/driver_tests/test_timeloop.py index 901f0724ad..02213a5ddf 100644 --- a/model/driver/tests/driver_tests/test_timeloop.py +++ b/model/driver/tests/driver_tests/test_timeloop.py @@ -15,8 +15,8 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.grid import vertical as v_grid from icon4py.model.common.states import prognostic_state as prognostics -from icon4py.model.common.test_utils import datatest_utils as dt_utils, helpers -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.testing import datatest_utils as dt_utils, helpers +from icon4py.model.common.utils import fields as field_utils from icon4py.model.driver import ( icon4py_configuration, icon4py_driver, diff --git a/model/driver/tests/initial_condition_tests/test_gauss3d.py b/model/driver/tests/initial_condition_tests/test_gauss3d.py index f3daed8ff5..8625d12a3f 100644 --- a/model/driver/tests/initial_condition_tests/test_gauss3d.py +++ b/model/driver/tests/initial_condition_tests/test_gauss3d.py @@ -8,7 +8,7 @@ import pytest -from icon4py.model.common.test_utils import datatest_utils as dt_utils, helpers +from icon4py.model.testing import datatest_utils as dt_utils, helpers from icon4py.model.driver.test_cases import gauss3d diff --git a/model/driver/tests/initial_condition_tests/test_jablonowski_williamson.py b/model/driver/tests/initial_condition_tests/test_jablonowski_williamson.py index e2cb58a6af..8a92dfed79 100644 --- a/model/driver/tests/initial_condition_tests/test_jablonowski_williamson.py +++ b/model/driver/tests/initial_condition_tests/test_jablonowski_williamson.py @@ -8,7 +8,7 @@ import pytest -from icon4py.model.common.test_utils import datatest_utils as dt_utils, helpers +from icon4py.model.testing import datatest_utils as dt_utils, helpers from icon4py.model.driver.test_cases import jablonowski_williamson as jabw diff --git a/model/driver/tests/initial_condition_tests/test_utils.py b/model/driver/tests/initial_condition_tests/test_utils.py index f675bfe6b2..a4b72b30e0 100644 --- a/model/driver/tests/initial_condition_tests/test_utils.py +++ b/model/driver/tests/initial_condition_tests/test_utils.py @@ -7,7 +7,7 @@ # SPDX-License-Identifier: BSD-3-Clause from icon4py.model.common.settings import xp -from icon4py.model.common.test_utils import helpers +from icon4py.model.testing import helpers from icon4py.model.driver.test_cases import utils diff --git a/model/testing/src/icon4py/model/testing/grid_utils.py b/model/testing/src/icon4py/model/testing/grid_utils.py index 4491c3e09e..cd9942a97b 100644 --- a/model/testing/src/icon4py/model/testing/grid_utils.py +++ b/model/testing/src/icon4py/model/testing/grid_utils.py @@ -19,8 +19,8 @@ icon, vertical as v_grid, ) -from icon4py.model.common.test_utils import data_handling, datatest_utils as dt_utils -from icon4py.model.common.utils import gt4py_field_allocation as alloc +from icon4py.model.testing import data_handling, datatest_utils as dt_utils +from icon4py.model.common.utils import fields as alloc REGIONAL_GRIDFILE = "grid.nc" diff --git a/model/testing/src/icon4py/model/testing/helpers.py b/model/testing/src/icon4py/model/testing/helpers.py index 5c0b33d478..5aa0e2e69d 100644 --- a/model/testing/src/icon4py/model/testing/helpers.py +++ b/model/testing/src/icon4py/model/testing/helpers.py @@ -20,8 +20,6 @@ from icon4py.model.common.settings import xp -from ..grid.base import BaseGrid -from ..type_alias import wpfloat try: @@ -55,103 +53,6 @@ def is_roundtrip(backend) -> bool: return backend.name == "roundtrip" if backend else False -def _shape( - grid, - *dims: gt_common.Dimension, - extend: Optional[dict[gt_common.Dimension, int]] = None, -): - if extend is None: - extend = {} - for d in dims: - if d not in extend.keys(): - extend[d] = 0 - return tuple(grid.size[dim] + extend[dim] for dim in dims) - - -def random_mask( - grid: BaseGrid, - *dims: gt_common.Dimension, - dtype: Optional[npt.DTypeLike] = None, - extend: Optional[dict[gt_common.Dimension, int]] = None, -) -> gt_common.Field: - rng = np.random.default_rng() - shape = _shape(grid, *dims, extend=extend) - arr = np.full(shape, False).flatten() - num_true = int(arr.size * 0.5) - arr[:num_true] = True - rng.shuffle(arr) - arr = np.reshape(arr, newshape=shape) - if dtype: - arr = arr.astype(dtype) - return as_field(dims, arr) - - -def random_field( - grid, - *dims, - low: float = -1.0, - high: float = 1.0, - extend: Optional[dict[gt_common.Dimension, int]] = None, - dtype: Optional[npt.DTypeLike] = None, -) -> gt_common.Field: - arr = np.random.default_rng().uniform( - low=low, high=high, size=_shape(grid, *dims, extend=extend) - ) - if dtype: - arr = arr.astype(dtype) - return as_field(dims, arr) - - -def zero_field( - grid: BaseGrid, - *dims: gt_common.Dimension, - dtype=wpfloat, - extend: Optional[dict[gt_common.Dimension, int]] = None, -) -> gt_common.Field: - return as_field(dims, xp.zeros(shape=_shape(grid, *dims, extend=extend), dtype=dtype)) - - -def constant_field( - grid: BaseGrid, value: float, *dims: gt_common.Dimension, dtype=wpfloat -) -> gt_common.Field: - return as_field( - dims, - value * np.ones(shape=tuple(map(lambda x: grid.size[x], dims)), dtype=dtype), - ) - - -def as_1D_sparse_field(field: gt_common.Field, target_dim: gt_common.Dimension) -> gt_common.Field: - """Convert a 2D sparse field to a 1D flattened (Felix-style) sparse field.""" - buffer = field.ndarray - return numpy_to_1D_sparse_field(buffer, target_dim) - - -def numpy_to_1D_sparse_field(field: np.ndarray, dim: gt_common.Dimension) -> gt_common.Field: - """Convert a 2D sparse field to a 1D flattened (Felix-style) sparse field.""" - old_shape = field.shape - assert len(old_shape) == 2 - new_shape = (old_shape[0] * old_shape[1],) - return as_field((dim,), field.reshape(new_shape)) - - -def flatten_first_two_dims(*dims: gt_common.Dimension, field: gt_common.Field) -> gt_common.Field: - """Convert a n-D sparse field to a (n-1)-D flattened (Felix-style) sparse field.""" - buffer = field.ndarray - old_shape = buffer.shape - assert len(old_shape) >= 2 - flattened_size = old_shape[0] * old_shape[1] - flattened_shape = (flattened_size,) - new_shape = flattened_shape + old_shape[2:] - newarray = buffer.reshape(new_shape) - return as_field(dims, newarray) - - -def unflatten_first_two_dims(field: gt_common.Field) -> np.array: - """Convert a (n-1)-D flattened (Felix-style) sparse field back to a n-D sparse field.""" - old_shape = np.asarray(field).shape - new_shape = (old_shape[0] // 3, 3) + old_shape[1:] - return np.asarray(field).reshape(new_shape) - def fingerprint_buffer(buffer: Buffer, *, digest_length: int = 8) -> str: return hashlib.md5(np.asarray(buffer, order="C")).hexdigest()[-digest_length:] diff --git a/model/testing/src/icon4py/model/testing/pytest_config.py b/model/testing/src/icon4py/model/testing/pytest_config.py index 7d17ecc4d9..7c62816866 100644 --- a/model/testing/src/icon4py/model/testing/pytest_config.py +++ b/model/testing/src/icon4py/model/testing/pytest_config.py @@ -12,7 +12,7 @@ from gt4py.next import gtfn_cpu, gtfn_gpu, itir_python import icon4py.model.common.settings as settings -from icon4py.model.common.test_utils.datatest_utils import ( +from icon4py.model.testing.datatest_utils import ( GLOBAL_EXPERIMENT, REGIONAL_EXPERIMENT, ) @@ -162,7 +162,7 @@ def pytest_generate_tests(metafunc): grid_instance = SimpleGrid() elif selected_grid_type == "icon_grid": - from icon4py.model.common.test_utils.grid_utils import ( + from icon4py.model.testing.grid_utils import ( get_grid_manager_for_experiment, ) @@ -170,7 +170,7 @@ def pytest_generate_tests(metafunc): REGIONAL_EXPERIMENT, backend=selected_backend ).grid elif selected_grid_type == "icon_grid_global": - from icon4py.model.common.test_utils.grid_utils import ( + from icon4py.model.testing.grid_utils import ( get_grid_manager_for_experiment, ) diff --git a/noxfile.py b/noxfile.py index 7988482fa9..3971f3a3ae 100644 --- a/noxfile.py +++ b/noxfile.py @@ -86,4 +86,4 @@ def tests_model(session: nox.Session, package: str) -> None: pytest -v -m "not slow_tests" --datatest {posargs} -addopts = ["-p", "icon4py.model.common.test_utils.pytest_config"] +addopts = ["-p", "icon4py.model.testing.pytest_config"] diff --git a/tools/pyproject.toml b/tools/pyproject.toml index ca8e9d4aaf..d2138f6362 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -92,7 +92,7 @@ source_pkgs = ['icon4pytools'] [tool.pytest] [tool.pytest.ini_options] -addopts = ['-p icon4py.model.common.test_utils.pytest_config'] +addopts = ['-p icon4py.model.testing.pytest_config'] markers = [ "datatest: test depending on serialized data generated by a full model run", "slow_tests: mark test as slow", diff --git a/tools/src/icon4pytools/py2fgen/wrappers/diffusion_wrapper.py b/tools/src/icon4pytools/py2fgen/wrappers/diffusion_wrapper.py index c3739c42c0..98c43f8cba 100644 --- a/tools/src/icon4pytools/py2fgen/wrappers/diffusion_wrapper.py +++ b/tools/src/icon4pytools/py2fgen/wrappers/diffusion_wrapper.py @@ -40,10 +40,7 @@ from icon4py.model.common.grid.vertical import VerticalGrid, VerticalGridConfig from icon4py.model.common.settings import backend, device, parallel_run from icon4py.model.common.states.prognostic_state import PrognosticState -from icon4py.model.common.test_utils.helpers import ( - as_1D_sparse_field, - flatten_first_two_dims, # todo: move away from test_utils -) +from icon4py.model.common.utils import fields as field_utils from icon4py.model.common.type_alias import wpfloat from icon4pytools.common.logger import setup_logger @@ -153,14 +150,14 @@ def diffusion_init( inverse_primal_edge_lengths=inverse_primal_edge_lengths, inverse_dual_edge_lengths=inv_dual_edge_length, inverse_vertex_vertex_lengths=inv_vert_vert_length, - primal_normal_vert_x=as_1D_sparse_field(primal_normal_vert_x, dims.ECVDim), - primal_normal_vert_y=as_1D_sparse_field(primal_normal_vert_y, dims.ECVDim), - dual_normal_vert_x=as_1D_sparse_field(dual_normal_vert_x, dims.ECVDim), - dual_normal_vert_y=as_1D_sparse_field(dual_normal_vert_y, dims.ECVDim), - primal_normal_cell_x=as_1D_sparse_field(primal_normal_cell_x, dims.ECDim), - primal_normal_cell_y=as_1D_sparse_field(primal_normal_cell_y, dims.ECDim), - dual_normal_cell_x=as_1D_sparse_field(dual_normal_cell_x, dims.ECDim), - dual_normal_cell_y=as_1D_sparse_field(dual_normal_cell_y, dims.ECDim), + primal_normal_vert_x=field_utils.as_1D_sparse_field(primal_normal_vert_x, dims.ECVDim), + primal_normal_vert_y=field_utils.as_1D_sparse_field(primal_normal_vert_y, dims.ECVDim), + dual_normal_vert_x=field_utils.as_1D_sparse_field(dual_normal_vert_x, dims.ECVDim), + dual_normal_vert_y=field_utils.as_1D_sparse_field(dual_normal_vert_y, dims.ECVDim), + primal_normal_cell_x=field_utils.as_1D_sparse_field(primal_normal_cell_x, dims.ECDim), + primal_normal_cell_y=field_utils.as_1D_sparse_field(primal_normal_cell_y, dims.ECDim), + dual_normal_cell_x=field_utils.as_1D_sparse_field(dual_normal_cell_x, dims.ECDim), + dual_normal_cell_y=field_utils.as_1D_sparse_field(dual_normal_cell_y, dims.ECDim), edge_areas=edge_areas, f_e=f_e, edge_center_lat=edge_center_lat, @@ -221,17 +218,17 @@ def diffusion_init( mask_hdiff=mask_hdiff, theta_ref_mc=theta_ref_mc, wgtfac_c=wgtfac_c, - zd_intcoef=flatten_first_two_dims(dims.CECDim, dims.KDim, field=zd_intcoef), - zd_vertoffset=flatten_first_two_dims(dims.CECDim, dims.KDim, field=zd_vertoffset), + zd_intcoef=field_utils.flatten_first_two_dims(dims.CECDim, dims.KDim, field=zd_intcoef), + zd_vertoffset=field_utils.flatten_first_two_dims(dims.CECDim, dims.KDim, field=zd_vertoffset), zd_diffcoef=zd_diffcoef, ) # Interpolation state interpolation_state = DiffusionInterpolationState( - e_bln_c_s=as_1D_sparse_field(e_bln_c_s, dims.CEDim), + e_bln_c_s=field_utils.as_1D_sparse_field(e_bln_c_s, dims.CEDim), rbf_coeff_1=rbf_coeff_1, rbf_coeff_2=rbf_coeff_2, - geofac_div=as_1D_sparse_field(geofac_div, dims.CEDim), + geofac_div=field_utils.as_1D_sparse_field(geofac_div, dims.CEDim), geofac_n2s=geofac_n2s, geofac_grg_x=geofac_grg_x, geofac_grg_y=geofac_grg_y, diff --git a/tools/src/icon4pytools/py2fgen/wrappers/dycore_wrapper.py b/tools/src/icon4pytools/py2fgen/wrappers/dycore_wrapper.py index 0240cdce96..bab8c2e261 100644 --- a/tools/src/icon4pytools/py2fgen/wrappers/dycore_wrapper.py +++ b/tools/src/icon4pytools/py2fgen/wrappers/dycore_wrapper.py @@ -59,11 +59,7 @@ from icon4py.model.common.grid.vertical import VerticalGrid, VerticalGridConfig from icon4py.model.common.settings import backend from icon4py.model.common.states.prognostic_state import PrognosticState -from icon4py.model.common.test_utils.helpers import ( - as_1D_sparse_field, - flatten_first_two_dims, - zero_field, -) +from icon4py.model.common.utils import fields as fields_utils from icon4pytools.common.logger import setup_logger from icon4pytools.py2fgen.wrappers import common as wrapper_common @@ -233,14 +229,14 @@ def solve_nh_init( inverse_primal_edge_lengths=inverse_primal_edge_lengths, inverse_dual_edge_lengths=inverse_dual_edge_lengths, inverse_vertex_vertex_lengths=inverse_vertex_vertex_lengths, - primal_normal_vert_x=as_1D_sparse_field(primal_normal_vert_x, ECVDim), - primal_normal_vert_y=as_1D_sparse_field(primal_normal_vert_y, ECVDim), - dual_normal_vert_x=as_1D_sparse_field(dual_normal_vert_x, ECVDim), - dual_normal_vert_y=as_1D_sparse_field(dual_normal_vert_y, ECVDim), - primal_normal_cell_x=as_1D_sparse_field(primal_normal_cell_x, ECDim), - primal_normal_cell_y=as_1D_sparse_field(primal_normal_cell_y, ECDim), - dual_normal_cell_x=as_1D_sparse_field(dual_normal_cell_x, ECDim), - dual_normal_cell_y=as_1D_sparse_field(dual_normal_cell_y, ECDim), + primal_normal_vert_x=field_utils.as_1D_sparse_field(primal_normal_vert_x, ECVDim), + primal_normal_vert_y=field_utils.as_1D_sparse_field(primal_normal_vert_y, ECVDim), + dual_normal_vert_x=field_utils.as_1D_sparse_field(dual_normal_vert_x, ECVDim), + dual_normal_vert_y=field_utils.as_1D_sparse_field(dual_normal_vert_y, ECVDim), + primal_normal_cell_x=field_utils.as_1D_sparse_field(primal_normal_cell_x, ECDim), + primal_normal_cell_y=field_utils.as_1D_sparse_field(primal_normal_cell_y, ECDim), + dual_normal_cell_x=field_utils.as_1D_sparse_field(dual_normal_cell_x, ECDim), + dual_normal_cell_y=field_utils.as_1D_sparse_field(dual_normal_cell_y, ECDim), edge_areas=edge_areas, f_e=f_e, edge_center_lat=edge_center_lat, @@ -264,13 +260,13 @@ def solve_nh_init( e_flx_avg=e_flx_avg, geofac_grdiv=geofac_grdiv, geofac_rot=geofac_rot, - pos_on_tplane_e_1=as_1D_sparse_field(pos_on_tplane_e_1[:, 0:2], ECDim), - pos_on_tplane_e_2=as_1D_sparse_field(pos_on_tplane_e_2[:, 0:2], ECDim), + pos_on_tplane_e_1=field_utils.as_1D_sparse_field(pos_on_tplane_e_1[:, 0:2], ECDim), + pos_on_tplane_e_2=field_utils.as_1D_sparse_field(pos_on_tplane_e_2[:, 0:2], ECDim), rbf_vec_coeff_e=rbf_vec_coeff_e, - e_bln_c_s=as_1D_sparse_field(e_bln_c_s, CEDim), + e_bln_c_s=field_utils.as_1D_sparse_field(e_bln_c_s, CEDim), rbf_coeff_1=rbf_coeff_1, rbf_coeff_2=rbf_coeff_2, - geofac_div=as_1D_sparse_field(geofac_div, CEDim), + geofac_div=field_utils.as_1D_sparse_field(geofac_div, CEDim), geofac_n2s=geofac_n2s, geofac_grg_x=geofac_grg_x, geofac_grg_y=geofac_grg_y, @@ -297,8 +293,8 @@ def solve_nh_init( rho_ref_me=rho_ref_me, theta_ref_me=theta_ref_me, ddxn_z_full=ddxn_z_full, - zdiff_gradp=flatten_first_two_dims(ECDim, KDim, field=zdiff_gradp), - vertoffset_gradp=flatten_first_two_dims(ECDim, KDim, field=vertoffset_gradp), + zdiff_gradp=field_utils.flatten_first_two_dims(ECDim, KDim, field=zdiff_gradp), + vertoffset_gradp=field_utils.flatten_first_two_dims(ECDim, KDim, field=vertoffset_gradp), ipeidx_dsl=ipeidx_dsl, pg_exdist=pg_exdist, ddqz_z_full_e=ddqz_z_full_e, @@ -310,7 +306,7 @@ def solve_nh_init( scalfac_dd3d=scalfac_dd3d, coeff1_dwdz=coeff1_dwdz, coeff2_dwdz=coeff2_dwdz, - coeff_gradekin=as_1D_sparse_field(coeff_gradekin, ECDim), + coeff_gradekin=field_utils.as_1D_sparse_field(coeff_gradekin, ECDim), ) # datatest config @@ -389,7 +385,7 @@ def solve_nh_run( vn_traj=vn_traj, mass_flx_me=mass_flx_me, mass_flx_ic=mass_flx_ic, - vol_flx_ic=zero_field(dycore_wrapper_state["grid"], CellDim, KDim, dtype=gtx.float64), + vol_flx_ic=fields_utils.zero_field(dycore_wrapper_state["grid"], CellDim, KDim, dtype=gtx.float64), ) diagnostic_state_nh = dycore_states.DiagnosticStateNonHydro( diff --git a/tools/tests/conftest.py b/tools/tests/conftest.py index da53a97b2c..5c78a44e35 100644 --- a/tools/tests/conftest.py +++ b/tools/tests/conftest.py @@ -12,7 +12,7 @@ import icon4py.model.common.type_alias as type_alias import pytest from click.testing import CliRunner -from icon4py.model.common.test_utils.datatest_fixtures import ( # noqa F401 +from icon4py.model.testing.datatest_fixtures import ( # noqa F401 damping_height, data_provider, download_ser_data, diff --git a/tools/tests/py2fgen/test_diffusion_wrapper.py b/tools/tests/py2fgen/test_diffusion_wrapper.py index 4474340c26..6dab394509 100644 --- a/tools/tests/py2fgen/test_diffusion_wrapper.py +++ b/tools/tests/py2fgen/test_diffusion_wrapper.py @@ -14,7 +14,7 @@ from icon4py.model.atmosphere.diffusion import diffusion, diffusion_states from icon4py.model.common import constants, dimension as dims from icon4py.model.common.grid import states as grid_states, vertical as v_grid -from icon4py.model.common.test_utils import datatest_utils as dt_utils, helpers +from icon4py.model.testing import datatest_utils as dt_utils, helpers from icon4pytools.py2fgen.wrappers import diffusion_wrapper, wrapper_dimension as w_dim diff --git a/tools/tests/py2fgen/test_dycore_wrapper.py b/tools/tests/py2fgen/test_dycore_wrapper.py index e0897448c5..acd146b5bc 100644 --- a/tools/tests/py2fgen/test_dycore_wrapper.py +++ b/tools/tests/py2fgen/test_dycore_wrapper.py @@ -30,11 +30,11 @@ from icon4py.model.common.grid.vertical import VerticalGridConfig from icon4py.model.common.states import prognostic_state as prognostics from icon4py.model.common.states.prognostic_state import PrognosticState -from icon4py.model.common.test_utils import ( +from icon4py.model.testing import ( datatest_utils as dt_utils, helpers, ) -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import fields as field_utils from icon4pytools.py2fgen.wrappers import dycore_wrapper, wrapper_dimension as w_dim From 74ea99c5e782641a95a6137d329d6b05c89c08db Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Thu, 5 Dec 2024 12:00:41 +0100 Subject: [PATCH 16/83] WIP Fixes to pyprojects --- model/common/pyproject.toml | 30 +- .../model/driver/initialization_utils.py | 2 +- model/testing/pyproject.toml | 32 +- noxfile.py | 72 +- pyproject.toml | 75 +- tools/pyproject.toml | 31 +- uv.lock | 3348 +++++------------ 7 files changed, 1026 insertions(+), 2564 deletions(-) diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index 89ed68aa00..d103b07b3d 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -21,14 +21,17 @@ classifiers = [ ] dependencies = [ "gt4py>=1.0.4", - "serialbox>=0.0.1" + 'packaging>=20.0', + "serialbox>=0.0.1", + "typing-extensions>=4.11.0" ] description = "Shared code for the icon4py model." -dynamic = ['version'] license = {text = "BSD-3 License"} name = "icon4py-common" readme = "README.md" requires-python = ">=3.10" +# bump-my-version marker: +version = "0.0.6" [project.optional-dependencies] all = ["icon4py-common[distributed,io,dace]"] @@ -39,8 +42,10 @@ io = [ "icon4py-common[netcdf]", # external dependencies "cartopy>=0.22.0", + "cftime>=1.6.3", "datashader>=0.16.1", "holoviews>=1.16.0", + "numpy>=1.23.3", "scikit-learn>=1.4.0", # TODO [magdalena] there are failing tests starting from uxarray==2024.4.0: when a data file does not have # fields of a given dimension (eg 'edge') then something in uxarray goes wrong with the dimension @@ -64,6 +69,17 @@ parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" serialize = ["{major}.{minor}.{patch}"] tag = false +[[tool.bumpversion.files]] +filename = "pyproject.toml" +search = ''' +# bump-my-version marker: +version = "{current_version}" +''' +replace = ''' +# bump-my-version marker: +version = "{new_version}" +''' + [[tool.bumpversion.files]] filename = "src/icon4py/model/common/__init__.py" @@ -110,10 +126,8 @@ known-first-party = ['icon4py.model'] known-third-party = ['gt4py', 'icon4py'] # -- setuptools -- -[tool.setuptools] - -[tool.setuptools.dynamic] -version = {attr = 'icon4py.model.common.__init__.__version__'} - [tool.setuptools.package-data] -'icon4py.model.common' = ['py.typed'] +'*' = ['*.in', '*.md', '*.rst', '*.txt', 'LICENSE', 'py.typed'] + +[tool.setuptools.packages] +find = {namespaces = true, where = ['src']} diff --git a/model/driver/src/icon4py/model/driver/initialization_utils.py b/model/driver/src/icon4py/model/driver/initialization_utils.py index cba1b288db..44a968f834 100644 --- a/model/driver/src/icon4py/model/driver/initialization_utils.py +++ b/model/driver/src/icon4py/model/driver/initialization_utils.py @@ -31,7 +31,7 @@ from icon4py.model.driver.test_cases import gauss3d, jablonowski_williamson -GRID_LEVEL = 4 +# TODO(egparedes): Read these hardcoded constants from configuration files GRID_ROOT = 2 GLOBAL_GRID_ID = uuid.UUID("af122aca-1dd2-11b2-a7f8-c7bf6bc21eba") diff --git a/model/testing/pyproject.toml b/model/testing/pyproject.toml index 5307b735b1..a21bcd8e1c 100644 --- a/model/testing/pyproject.toml +++ b/model/testing/pyproject.toml @@ -24,19 +24,22 @@ dependencies = [ 'icon4py-common[netcdf]>=0.0.6', # external dependencies "gt4py>=1.0.4", - "numpy>1.24.0", + "numpy>=1.23.3", + 'packaging>=20.0', + "pytest>=8.0.1", "serialbox>=0.0.1", "typing-extensions>=4.11.0", ] description = "Testing utils for the icon4py model." -dynamic = ['version'] license = {text = "BSD-3 License"} name = "icon4py-testing" readme = "README.md" requires-python = ">=3.10" +# bump-my-version marker: +version = "0.0.6" [project.urls] -repository = "https://github.com/C2SM/icon4py" +Homepage = 'https://github.com/C2SM/icon4py' # -- bumpversion -- [tool.bumpversion] @@ -49,10 +52,21 @@ parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" serialize = ["{major}.{minor}.{patch}"] tag = false +[[tool.bumpversion.files]] +filename = "pyproject.toml" +search = ''' +# bump-my-version marker: +version = "{current_version}" +''' +replace = ''' +# bump-my-version marker: +version = "{new_version}" +''' + [[tool.bumpversion.files]] filename = "src/icon4py/model/testing/__init__.py" -# --ruff -- +# -- ruff -- [tool.ruff] extend = "../../pyproject.toml" @@ -61,10 +75,8 @@ known-first-party = ['icon4py.model'] known-third-party = ['gt4py'] # -- setuptools -- -[tool.setuptools] - -[tool.setuptools.dynamic] -version = {attr = 'icon4py.model.testing.__init__.__version__'} - [tool.setuptools.package-data] -'icon4py.model.testing' = ['py.typed'] +'*' = ['*.in', '*.md', '*.rst', '*.txt', 'LICENSE', 'py.typed'] + +[tool.setuptools.packages] +find = {namespaces = true, where = ['src']} diff --git a/noxfile.py b/noxfile.py index 3971f3a3ae..53a2079262 100644 --- a/noxfile.py +++ b/noxfile.py @@ -39,51 +39,51 @@ def test_tools(session: nox.Session) -> None: session.run("pytest", "-sv", "-n", session.env.get("NUM_PROCESSES", "1"), *session.posargs) -@nox.session(python=["3.10", "3.11"]) -@nox.parametrize("package", ["atmosphere.dycore", "atmosphere.advection", "atmosphere.diffusion"]) -def tests_model(session: nox.Session, package: str) -> None: - """Run the unit and regular tests for the model.""" - session_install(session, groups=("test",)) - session.run( - "pytest", "-v", "-m", "not slow_tests", "--cov", "--cov-append", "--benchmark-skip", "-n", session.env.get("NUM_PROCESSES", "1"), - "atmosphere/diffusion/tests/diffusion_stencil_tests", *session.posargs - ) - pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dcore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} - pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} +# @nox.session(python=["3.10", "3.11"]) +# @nox.parametrize("package", ["atmosphere.dycore", "atmosphere.advection", "atmosphere.diffusion"]) +# def tests_model(session: nox.Session, package: str) -> None: +# """Run the unit and regular tests for the model.""" +# session_install(session, groups=("test",)) +# session.run( +# "pytest", "-v", "-m", "not slow_tests", "--cov", "--cov-append", "--benchmark-skip", "-n", session.env.get("NUM_PROCESSES", "1"), +# "atmosphere/diffusion/tests/diffusion_stencil_tests", *session.posargs +# ) +# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dcore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} +# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} -@nox.session(python=["3.10", "3.11"]) -@nox.parametrize("package", ["atmosphere.dycore", "atmosphere.advection", "atmosphere.diffusion"]) -def tests_model(session: nox.Session, package: str) -> None: - """Run the unit and regular tests for the model.""" - session_install(session, groups=("test",)) - session.run( - "pytest", "-v", "-m", "not slow_tests", "--cov", "--cov-append", "--benchmark-skip", "-n", session.env.get("NUM_PROCESSES", "1"), - "atmosphere/diffusion/tests/diffusion_stencil_tests", *session.posargs - ) - pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dcore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} - pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} +# @nox.session(python=["3.10", "3.11"]) +# @nox.parametrize("package", ["atmosphere.dycore", "atmosphere.advection", "atmosphere.diffusion"]) +# def tests_model(session: nox.Session, package: str) -> None: +# """Run the unit and regular tests for the model.""" +# session_install(session, groups=("test",)) +# session.run( +# "pytest", "-v", "-m", "not slow_tests", "--cov", "--cov-append", "--benchmark-skip", "-n", session.env.get("NUM_PROCESSES", "1"), +# "atmosphere/diffusion/tests/diffusion_stencil_tests", *session.posargs +# ) +# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dcore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} +# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} -[testenv:run_stencil_tests] -commands = - pytest -v -m "not slow_tests" --cov --cov-append atmosphere/diffusion/tests/diffusion_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} - pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dycore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} - pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} +# [testenv:run_stencil_tests] +# commands = +# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/diffusion/tests/diffusion_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} +# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dycore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} +# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} -[testenv:run_benchmarks] -commands = - pytest -v -m "not slow_tests" atmosphere/diffusion/tests/diffusion_stencil_tests --benchmark-only {posargs} - pytest -v -m "not slow_tests" atmosphere/dycore/tests/dycore_stencil_tests --benchmark-only {posargs} - pytest -v -m "not slow_tests" atmosphere/advection/tests/advection_stencil_tests --benchmark-only {posargs} +# [testenv:run_benchmarks] +# commands = +# pytest -v -m "not slow_tests" atmosphere/diffusion/tests/diffusion_stencil_tests --benchmark-only {posargs} +# pytest -v -m "not slow_tests" atmosphere/dycore/tests/dycore_stencil_tests --benchmark-only {posargs} +# pytest -v -m "not slow_tests" atmosphere/advection/tests/advection_stencil_tests --benchmark-only {posargs} -[testenv:run_model_tests] -commands = - pytest -v -m "not slow_tests" --datatest {posargs} +# [testenv:run_model_tests] +# commands = +# pytest -v -m "not slow_tests" --datatest {posargs} -addopts = ["-p", "icon4py.model.testing.pytest_config"] +# addopts = ["-p", "icon4py.model.testing.pytest_config"] diff --git a/pyproject.toml b/pyproject.toml index 710dbbf2ef..f9c2b14d10 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,9 +1,24 @@ +[build-system] +build-backend = 'setuptools.build_meta' +requires = ['setuptools>=61.0', 'wheel>=0.40.0'] + [project] -name = "icon4py" -version = "0.0.6" -description = "Add your description here" -readme = "README.md" -requires-python = ">=3.10" +authors = [{email = 'gridtools@cscs.ch'}, {name = 'ETH Zurich'}] +classifiers = [ + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: BSD License', + 'Operating System :: POSIX', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3 :: Only', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: Implementation :: CPython', + 'Topic :: Scientific/Engineering :: Atmospheric Science', + 'Topic :: Scientific/Engineering :: Mathematics', + 'Topic :: Scientific/Engineering :: Physics' +] dependencies = [ "icon4py-atmosphere-advection>=0.0.6", "icon4py-atmosphere-diffusion>=0.0.6", @@ -11,15 +26,25 @@ dependencies = [ "icon4py-atmosphere-subgrid_scale_physics-microphysics>=0.0.6", "icon4py-common>=0.0.6", "icon4py-driver>=0.0.6", - "icon4py-testing>=0.0.6" ] +description = 'ICON model in Python.' +license = {text = "BSD-3 License"} +name = "icon4py" +readme = "README.md" +requires-python = ">=3.10" +# bump-my-version marker: +version = "0.0.6" [project.optional-dependencies] -all = ["icon4py[dace,distributed,integration,io]"] +all = ["icon4py[dace,distributed,fortran,io,testing]"] dace = ["icon4py-common[dace]>=0.0.6", "dace<1.0"] # Dace should be removed after updating gt4py distributed = ["icon4py-common[distributed]>=0.0.6"] -integration = ["icon4pytools>=0.0.6"] +fortran = ["icon4pytools>=0.0.6"] io = ["icon4py-common[io]>=0.0.6"] +testing = ["icon4py-testing>=0.0.6"] + +[project.urls] +Homepage = 'https://github.com/C2SM/icon4py' # -- dependency groups -- [dependency-groups] @@ -42,13 +67,13 @@ lint = ["pre-commit>=4.0.1", "ruff>=0.8.0", "tach>=0.16.0"] test = [ "coverage[toml]>=7.5.0", "nox @ git+https://github.com/wntrblm/nox.git@aa09595437608dfe21eb776d8a4bcc0bd5f9916b", # TODO: remove once next version is released - "pytest-benchmark>=5.0.0", "pytest>=8.0.1", + "pytest-benchmark>=5.0.0", "pytest-cache>=1.0", "pytest-cov>=5.0.0", "pytest-factoryboy>=2.6.1", - "pytest-xdist[psutil]>=3.5.0", "pytest-mpi>=0.6", + "pytest-xdist[psutil]>=3.5.0", "tox>=3.25", ] typing = [ @@ -66,7 +91,9 @@ dev = [ # -- uv: packages & workspace -- [tool.uv] -environments = ["sys_platform == 'darwin'", "sys_platform == 'linux'"] +environments = [ + "implementation_name == 'cpython' and sys_platform != 'windows'" +] [tool.uv.sources] ghex = { git = "https://github.com/ghex-org/GHEX.git", branch = "master", subdirectory = "bindings/python" } @@ -94,6 +121,28 @@ members = [ "tools", ] +# -- bumpversion -- +[tool.bumpversion] +allow_dirty = false +commit = false +current_version = "0.0.6" +ignore_missing_version = false +message = 'Bump icon4py version: {current_version} → {new_version}' +parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" +serialize = ["{major}.{minor}.{patch}"] +tag = false + +[[tool.bumpversion.files]] +filename = "pyproject.toml" +search = ''' +# bump-my-version marker: +version = "{current_version}" +''' +replace = ''' +# bump-my-version marker: +version = "{new_version}" +''' + # -- mypy -- [tool.mypy] mypy_path = "model/common/src:tools/src" @@ -168,3 +217,7 @@ lines-after-imports = 2 [tool.ruff.lint.mccabe] max-complexity = 15 + +# -- setuptools -- +[tool.setuptools] +packages = [] diff --git a/tools/pyproject.toml b/tools/pyproject.toml index d2138f6362..b0e5c35d7a 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -29,14 +29,16 @@ dependencies = [ 'cffi>=1.5', 'fprettify>=0.3.7', 'gt4py>=1.0.4', - 'tabulate>=0.8.9' + "numpy>=1.23.3", + 'packaging>=20.0', ] description = 'Tools and utilities for integrating icon4py code into the ICON model.' -dynamic = ['version'] license = {text = "BSD-3 License"} name = 'icon4pytools' readme = 'README.md' requires-python = '>=3.10' +# bump-my-version marker: +version = "0.0.6" [project.optional-dependencies] cupy11 = ['cupy-cuda11x>=13.0'] @@ -49,7 +51,7 @@ icon_liskov = 'icon4pytools.liskov.cli:main' py2fgen = 'icon4pytools.py2fgen.cli:main' [project.urls] -repository = 'https://github.com/C2SM/icon4py' +Homepage = 'https://github.com/C2SM/icon4py' # -- bumpversion -- [tool.bumpversion] @@ -62,6 +64,17 @@ parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" serialize = ["{major}.{minor}.{patch}"] tag = false +[[tool.bumpversion.files]] +filename = "pyproject.toml" +search = ''' +# bump-my-version marker: +version = "{current_version}" +''' +replace = ''' +# bump-my-version marker: +version = "{new_version}" +''' + [[tool.bumpversion.files]] filename = "src/icon4pytools/__init__.py" @@ -99,7 +112,7 @@ markers = [ ] testpaths = 'tests' -# --ruff -- +# -- ruff -- [tool.ruff] extend = "../pyproject.toml" @@ -108,13 +121,11 @@ known-first-party = ['icon4pytools'] known-third-party = ['gt4py', 'icon4py'] # -- setuptools -- -[tool.setuptools] - -[tool.setuptools.dynamic] -version = {attr = 'icon4pytools.__init__.__version__'} - [tool.setuptools.package-data] -'icon4pytools' = ['py.typed'] +'*' = ['*.in', '*.md', '*.rst', '*.txt', 'LICENSE', 'py.typed'] + +[tool.setuptools.packages] +find = {namespaces = true, where = ['src']} # -- uv -- [tool.uv] diff --git a/uv.lock b/uv.lock index c82eb3c290..e7895f0c4e 100644 --- a/uv.lock +++ b/uv.lock @@ -1,1954 +1,21 @@ version = 1 requires-python = ">=3.10" resolution-markers = [ - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.11.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version == '3.12.*' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version >= '3.13' and sys_platform == 'darwin'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version < '3.11' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform == 'linux'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", ] supported-markers = [ - "sys_platform == 'darwin'", - "sys_platform == 'linux'", + "implementation_name == 'cpython' and sys_platform != 'windows'", ] conflicts = [[ { package = "icon4pytools", extra = "cupy11" }, @@ -2000,10 +67,10 @@ name = "apeye" version = "1.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "apeye-core", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "domdf-python-tools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "platformdirs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "requests", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "apeye-core", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "domdf-python-tools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "platformdirs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "requests", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/4f/6b/cc65e31843d7bfda8313a9dc0c77a21e8580b782adca53c7cb3e511fe023/apeye-1.4.1.tar.gz", hash = "sha256:14ea542fad689e3bfdbda2189a354a4908e90aee4bf84c15ab75d68453d76a36", size = 99219 } wheels = [ @@ -2015,8 +82,8 @@ name = "apeye-core" version = "1.1.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "domdf-python-tools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "idna", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "domdf-python-tools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "idna", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e5/4c/4f108cfd06923bd897bf992a6ecb6fb122646ee7af94d7f9a64abd071d4c/apeye_core-1.1.5.tar.gz", hash = "sha256:5de72ed3d00cc9b20fea55e54b7ab8f5ef8500eb33a5368bc162a5585e238a55", size = 96511 } wheels = [ @@ -2043,7 +110,7 @@ name = "asttokens" version = "2.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "six", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "six", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/45/1d/f03bcb60c4a3212e15f99a56085d93093a497718adf828d050b9d675da81/asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0", size = 62284 } wheels = [ @@ -2055,8 +122,8 @@ name = "astunparse" version = "1.6.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "six", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "wheel", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "six", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "wheel", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872", size = 18290 } wheels = [ @@ -2077,7 +144,7 @@ name = "autodocsumm" version = "0.2.14" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/03/96/92afe8a7912b327c01f0a8b6408c9556ee13b1aba5b98d587ac7327ff32d/autodocsumm-0.2.14.tar.gz", hash = "sha256:2839a9d4facc3c4eccd306c08695540911042b46eeafcdc3203e6d0bab40bc77", size = 46357 } wheels = [ @@ -2098,7 +165,7 @@ name = "beautifulsoup4" version = "4.12.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "soupsieve", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "soupsieve", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", size = 581181 } wheels = [ @@ -2110,28 +177,32 @@ name = "black" version = "24.10.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "mypy-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pathspec", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "platformdirs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, - { name = "typing-extensions", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "mypy-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pathspec", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "platformdirs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, ] 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/a3/f3/465c0eb5cddf7dbbfe1fecd9b875d1dcf51b88923cd2c1d7e9ab95c6336b/black-24.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6668650ea4b685440857138e5fe40cde4d652633b1bdffc62933d0db4ed9812", size = 1623211 }, { url = "https://files.pythonhosted.org/packages/df/57/b6d2da7d200773fdfcc224ffb87052cf283cec4d7102fab450b4a05996d8/black-24.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1c536fcf674217e87b8cc3657b81809d3c085d7bf3ef262ead700da345bfa6ea", size = 1457139 }, { url = "https://files.pythonhosted.org/packages/6e/c5/9023b7673904a5188f9be81f5e129fff69f51f5515655fbd1d5a4e80a47b/black-24.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:649fff99a20bd06c6f727d2a27f401331dc0cc861fb69cde910fe95b01b5928f", size = 1753774 }, + { url = "https://files.pythonhosted.org/packages/e1/32/df7f18bd0e724e0d9748829765455d6643ec847b3f87e77456fc99d0edab/black-24.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:fe4d6476887de70546212c99ac9bd803d90b42fc4767f058a0baa895013fbb3e", size = 1414209 }, { 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 }, ] @@ -2140,7 +211,7 @@ name = "bleach" version = "6.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "webencodings", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "webencodings", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/76/9a/0e33f5054c54d349ea62c277191c020c2d6ef1d65ab2cb1993f91ec846d1/bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f", size = 203083 } wheels = [ @@ -2152,15 +223,15 @@ name = "bokeh" version = "3.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "contourpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pillow", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tornado", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "xyzservices", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "contourpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pillow", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tornado", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "xyzservices", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/54/1b/d62004ebe89b3abb1d329710daa92dd13980196b0f7f5ed82036445cc952/bokeh-3.6.1.tar.gz", hash = "sha256:04d3fb5fac871423f38e4535838164cd90c3d32e707bcb74c8bf991ed28878fc", size = 6246963 } wheels = [ @@ -2181,7 +252,7 @@ name = "bottleneck" version = "1.4.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/2e/61/9fb34409d58f04e1929da41666a055c36f9495903ff669b80c893bdee65f/bottleneck-1.4.2.tar.gz", hash = "sha256:fa8e8e1799dea5483ce6669462660f9d9a95649f6f98a80d315b84ec89f449f4", size = 103563 } wheels = [ @@ -2190,21 +261,29 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e3/8f/8d0322287dd208bd35b2814152726d6f7ec9346c9ad2abae18e23e9ef15e/Bottleneck-1.4.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e2fe327dc2d0564e295a5857a252755103f8c6e05b07d3ff80a69afaa9f5065", size = 356085 }, { url = "https://files.pythonhosted.org/packages/20/1b/05dd0433052f62b416d3af4d58556f377518b1d35f76872c53e79bd7818f/Bottleneck-1.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6b7790ca8658cd69e3cc0d0e4ff0e9829d60849bf7945fbd7344fbce05b2bbb8", size = 365247 }, { url = "https://files.pythonhosted.org/packages/b6/6b/eb7a04afa8d4641a498b62a24db5a491ab3d6945890e9f5d5f852ba0aa8c/Bottleneck-1.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6282fa925ac3768f66e3547f89a512376d3f9de7ef53bdd37aa29232fd864054", size = 356080 }, + { url = "https://files.pythonhosted.org/packages/4e/91/53353689ed860403f421900ec0ce67dfa763bd39d07d9da5b69c48b3941a/Bottleneck-1.4.2-cp310-cp310-win32.whl", hash = "sha256:e56a206fbf48e3b8054a964398bf1ed843e9625d3c6bdbeb7898cb48bf97441b", size = 106941 }, + { url = "https://files.pythonhosted.org/packages/d7/25/32643c8e8646f30121e5c67a0c0579dbc910f3bf9e121683f28165c6d374/Bottleneck-1.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:eb0c611d15b0fd8f511d288e8964e4725b4b3b0d9d310880cf0ff6b8dd03c859", size = 111622 }, { url = "https://files.pythonhosted.org/packages/88/b8/31a1cc8279bf11a60c04b844a42666927307a47bb48964cbd92ec9f40e3e/Bottleneck-1.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b6902ebf3e85315b481bc084f10c5770f8240275ad1e039ac69c7c8d2013b040", size = 98565 }, { url = "https://files.pythonhosted.org/packages/16/64/09d72babae7cc29341c52f2e9381066672743d4f797c86b1e735205d5fc8/Bottleneck-1.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c2fd34b9b490204f95288f0dd35d37042486a95029617246c88c0f94a0ab49fe", size = 364986 }, { url = "https://files.pythonhosted.org/packages/7e/d6/39e957e9df9ab16df9c531e8ddf71594877063d27aa036dd105b66d3b3b3/Bottleneck-1.4.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:122845e3106c85465551d4a9a3777841347cfedfbebb3aa985cca110e07030b1", size = 360256 }, { url = "https://files.pythonhosted.org/packages/ff/cb/d287febe0e6504194ba94cf4a6d80df66a0031ca33a32b30f00c030238cc/Bottleneck-1.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1f61658ebdf5a178298544336b65020730bf86cc092dab5f6579a99a86bd888b", size = 369507 }, { url = "https://files.pythonhosted.org/packages/dc/1e/9310f058ddee71798a76ab15c5c1ad71f0a5c3c6348f7faab9b6da038484/Bottleneck-1.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7c7d29c044a3511b36fd744503c3e697e279c273a8477a6d91a2831d04fd19e0", size = 360282 }, + { url = "https://files.pythonhosted.org/packages/96/cb/c1f2a37e86e9fa47845259f0a8f32d550f7f27b908432369de055be9f7c4/Bottleneck-1.4.2-cp311-cp311-win32.whl", hash = "sha256:c663cbba8f52011fd82ee08c6a85c93b34b19e0e7ebba322d2d67809f34e0597", size = 106936 }, + { url = "https://files.pythonhosted.org/packages/d3/eb/3fd23404bbc612cf9e4883c3c2b359bd14528e234d5c40bb29bcfd591ef8/Bottleneck-1.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:89651ef18c06616850203bf8875c958c5d316ea48d8ba60d9b450199d39ae391", size = 111617 }, { url = "https://files.pythonhosted.org/packages/d2/26/6f5124e31a67f75e2a3b9239cc382145326e91fc45e7d7bc9ebffa05fdfa/Bottleneck-1.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a74ddd0417f42eeaba37375f0fc065b28451e0fba45cb2f99e88880b10b3fa43", size = 98681 }, { url = "https://files.pythonhosted.org/packages/c4/93/e100b6eda77f2aecf5f16157b8c04dd3463913ba188b582650cd77ccf42b/Bottleneck-1.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:070d22f2f62ab81297380a89492cca931e4d9443fa4b84c2baeb52db09c3b1b4", size = 365422 }, { url = "https://files.pythonhosted.org/packages/82/2b/c6fea2bb048d04c13b8564052818a198d50ce58d5f439ec69c2b0c458703/Bottleneck-1.4.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fc4e7645bd425c05e05acd5541e9e09cb4179e71164e862f082561bf4509eac", size = 361844 }, { url = "https://files.pythonhosted.org/packages/8f/4c/811475885bd60cf0cb28822568d0c0c3c7d7de4fbccd2ebb66863e7dc726/Bottleneck-1.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:037315c56605128a39f77d19af6a6019dc8c21a63694a4bfef3c026ed963be2e", size = 370369 }, { url = "https://files.pythonhosted.org/packages/fd/ee/0a8157e6bbd2168bf6171811534a5a73a35f54c453dd7d86a323773b5bd7/Bottleneck-1.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:99778329331d5fae8df19772a019e8b73ba4d9d1650f110cd995ab7657114db0", size = 361786 }, + { url = "https://files.pythonhosted.org/packages/fa/6b/e8fda0510b8fa0f3f9a3586efc941abe9d546198e95ae5690c3c83370b36/Bottleneck-1.4.2-cp312-cp312-win32.whl", hash = "sha256:7363b3c8ce6ca433779cd7e96bcb94c0e516dcacadff0011adcbf0b3ac86bc9d", size = 107149 }, + { url = "https://files.pythonhosted.org/packages/22/25/908b75a329a05b82d717661aa95a1968d9dae0e68c654d5e16bfe0d6fbb6/Bottleneck-1.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:48c6b9d9287c4102b803fcb01ae66ae7ef6b310b711b4b7b7e23bf952894dc05", size = 111766 }, { url = "https://files.pythonhosted.org/packages/2e/65/148e146ca8c16af9881a0db1d8d1849d49a5186fc9f065c79a8d25d6fc0c/Bottleneck-1.4.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c1c885ad02a6a8fa1f7ee9099f29b9d4c03eb1da2c7ab25839482d5cce739021", size = 98701 }, { url = "https://files.pythonhosted.org/packages/80/96/6540ac9a9943b0d6f0199eddbde55e878f970d2bdda31207dc3e7a195c2b/Bottleneck-1.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7a1b023de1de3d84b18826462718fba548fed41870df44354f9ab6a414ea82f", size = 365443 }, { url = "https://files.pythonhosted.org/packages/d0/aa/ccae264aac3b2621fa8a98c7afe033f22a352467cbf85fa2799d176ec31b/Bottleneck-1.4.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c9dbaf737b605b30c81611f2c1d197c2fd2e46c33f605876c1d332d3360c4fc", size = 361849 }, { url = "https://files.pythonhosted.org/packages/f3/b3/5f96d7bb23a291b835bf0a34eec359c55613f6c4262ad1bb161d897499c0/Bottleneck-1.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7ebbcbe5d4062e37507b9a81e2aacdb1fcccc6193f7feff124ef2b5a6a5eb740", size = 370654 }, { url = "https://files.pythonhosted.org/packages/51/05/9d1ababa3fd34014b708351270307320c0bc595d2d66c2ba2b9b92f0d618/Bottleneck-1.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:964f6ac4118ddab3bbbac79d4f726b093459be751baba73ee0aa364666e8068e", size = 362054 }, + { url = "https://files.pythonhosted.org/packages/92/e3/123488804830604432f84a2c43e611b8e1971e230b9466a7315850d22a58/Bottleneck-1.4.2-cp313-cp313-win32.whl", hash = "sha256:2db287f6ecdbb1c998085eca9b717fec2bfc48a4ab6ae070a9820ba8ab59c90b", size = 107160 }, + { url = "https://files.pythonhosted.org/packages/54/f0/e1640ccd8468c61693092f38f835ef35a68a1ea72c3388683148b3800aa6/Bottleneck-1.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:26b5f0531f7044befaad95c20365dd666372e66bdacbfaf009ff65d60285534d", size = 111774 }, ] [[package]] @@ -2221,14 +300,14 @@ name = "bump-my-version" version = "0.28.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pydantic", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pydantic-settings", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "questionary", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "rich", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "rich-click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tomlkit", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "wcmatch", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pydantic", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pydantic-settings", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "questionary", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "rich", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "rich-click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomlkit", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "wcmatch", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/1d/44/8f4f5dc472a054634bffd86e4941b2624e0b050f15578d40ec15e670d8e5/bump_my_version-0.28.1.tar.gz", hash = "sha256:e608def5191baf505b6cde88bd679a0a95fc4cfeace4247adb60ac0f8a7e57ee", size = 983509 } wheels = [ @@ -2240,8 +319,8 @@ name = "cachecontrol" version = "0.14.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "msgpack", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "requests", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "msgpack", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "requests", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d2/23/db12e0b6b241e33f77f7cce01a06b4cc6f8071728656cc0ea262d2a14dad/cachecontrol-0.14.1.tar.gz", hash = "sha256:06ef916a1e4eb7dba9948cdfc9c76e749db2e02104a9a1277e8b642591a0f717", size = 28928 } wheels = [ @@ -2250,7 +329,7 @@ wheels = [ [package.optional-dependencies] filecache = [ - { name = "filelock", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "filelock", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [[package]] @@ -2276,27 +355,31 @@ name = "cartopy" version = "0.24.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "matplotlib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyproj", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyshp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "shapely", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "matplotlib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyproj", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyshp", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "shapely", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e0/75/94aff4fef338887641aa780d13795609861e6e9f9593bd66d4917ab7954b/cartopy-0.24.1.tar.gz", hash = "sha256:01c910d5634c69a7efdec46e0a17d473d2328767f001d4dc0b5c4b48e585c8bd", size = 10741277 } wheels = [ { url = "https://files.pythonhosted.org/packages/57/41/9dd14e3ee3f7a0546768c11a8f4a37b1c09fc4868b992f431431d526502b/Cartopy-0.24.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ce0c83314570c61a695a1f7c3a4a22dc75f79d28f4c68b88a8aeaf13d6a2343c", size = 10982199 }, { url = "https://files.pythonhosted.org/packages/72/57/8b4a3856aaf4c600504566d7d956928b79d8b17e8d3a1c70060e5f90124f/Cartopy-0.24.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:511f992340baea2c171cb17b3ef595537e5355640f3baa7ac895de25df016a70", size = 10971756 }, { url = "https://files.pythonhosted.org/packages/ea/50/e5170302a62259f34289ff7f4944a32ac04a49b38713d001873732742726/Cartopy-0.24.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54f4d23961e0f9436baaf4747928361ccdcc893fa9b7bad9f615551bc8aa3fe8", size = 11658621 }, + { url = "https://files.pythonhosted.org/packages/0b/78/7d77c72c85371f5d87088887ec05fd3701dfdcd640845f85378341a355de/Cartopy-0.24.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0b55526b605a9dee4fa3d7e5659b6d7d9d30e609bc5e62487bc4f7d8e90873b", size = 10960201 }, { url = "https://files.pythonhosted.org/packages/c4/f0/eaa16216c8b91cfd433b60e79080ffaf9e470bb5c939662835faa40fd347/Cartopy-0.24.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4a14638b63d7df2858f73e9f8f4f4826d7c9cf13781aa6824fa0134fbaebbd98", size = 10982474 }, { url = "https://files.pythonhosted.org/packages/63/99/681a7ae5e572343e15ce8697dd4b41f49d45fe89f5e5d8b122bff0f8165c/Cartopy-0.24.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d74b4a3eae9e570f474276fb61847112cdccdead396ec2ddad226dad9eaf4564", size = 10971918 }, { url = "https://files.pythonhosted.org/packages/04/87/8dc9249e67c635a5c08ae81d4243a1ad69a1b91b703d3ab9be7fa78efc2b/Cartopy-0.24.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfa38fb216cfd16cc266fd6f86b60ebdf0056839b490f38d2d89229b03abc877", size = 11718335 }, + { url = "https://files.pythonhosted.org/packages/4f/ce/ba4baced164ecd78b4109cd611d7b64d256f012784e944c1b0f6f5dff5c1/Cartopy-0.24.1-cp311-cp311-win_amd64.whl", hash = "sha256:f440ddb61171319adf34ecec4d91202864cd514a7bc8a252e0ff7788a6604031", size = 10960539 }, { url = "https://files.pythonhosted.org/packages/6e/76/774a4f808c6a4fc19b87c2cc38dd8731d413aad606689451c017ff93ad12/Cartopy-0.24.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a984e33977daed8f760c09c331c8368a6af060db1190af89d74a027c272e39c3", size = 10983939 }, { url = "https://files.pythonhosted.org/packages/2f/48/8517d5d1cc56ce5c4abda1de6454593474a23412115a543f7981aa7e4377/Cartopy-0.24.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71d8a6d061d0764aba3baf357a68f3d73796a8a46d34b8c9fb241171b273c69e", size = 10972374 }, { url = "https://files.pythonhosted.org/packages/c8/84/cb1577d5ac2f0deb002001c6e25b291735151c8c3033c97f212dc482ef72/Cartopy-0.24.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f354a1d902a8d6ee33b099acc86ac2e1af528bbc0ea718b834111c97e604981", size = 11715215 }, + { url = "https://files.pythonhosted.org/packages/11/95/40c7abae8789aae22ad2a5da3974d3270dc3526b46cee253f680f72ee6cc/Cartopy-0.24.1-cp312-cp312-win_amd64.whl", hash = "sha256:b1bb2d02b31884ee1d4f14e5b436bbf95745eac39c6fc0d6c67c83bb907b55b3", size = 10959875 }, { url = "https://files.pythonhosted.org/packages/e6/e8/38e00eb35743f22d4ee9bcb131ab273fb47ec39cc03ce5144686a3142756/Cartopy-0.24.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d279968b845f72e3423e454b2b0b985fb2389e6ccd18fb73324abeca4e43f516", size = 10982533 }, { url = "https://files.pythonhosted.org/packages/66/60/cc852a0835a053db18085dec1d1dd6f9cedc764d1524bfe30fd8be5ee3a7/Cartopy-0.24.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f0963b80a048252815c56fbd21bc4e5d163618a9eaa36c8898ce2c60b6c03979", size = 10971183 }, { url = "https://files.pythonhosted.org/packages/a3/5b/476c8f3a277d7c78e5a5318bd32f234b994bfdc5d7731ae84218f2fa8a8f/Cartopy-0.24.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfdde0a6e0e56c5fc46f4e7d332237eb31bbd9908417f0f190fda5d322754184", size = 11709060 }, + { url = "https://files.pythonhosted.org/packages/93/31/50bf07ba820c5aa5d4e674d72cdb5da90bbd012ba1b9c6c95c3f96afe233/Cartopy-0.24.1-cp313-cp313-win_amd64.whl", hash = "sha256:b17cf23dd74d0a922c2a5682dacef3c0bf89fa8c0bd0eae96b87fb684f966b15", size = 10959830 }, ] [[package]] @@ -2313,7 +396,7 @@ name = "cffi" version = "1.17.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pycparser", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pycparser", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621 } wheels = [ @@ -2327,6 +410,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ab/a0/62f00bcb411332106c02b663b26f3545a9ef136f80d5df746c05878f8c4b/cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8", size = 461325 }, { url = "https://files.pythonhosted.org/packages/36/83/76127035ed2e7e27b0787604d99da630ac3123bfb02d8e80c633f218a11d/cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e", size = 438784 }, { url = "https://files.pythonhosted.org/packages/21/81/a6cd025db2f08ac88b901b745c163d884641909641f9b826e8cb87645942/cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be", size = 461564 }, + { url = "https://files.pythonhosted.org/packages/f8/fe/4d41c2f200c4a457933dbd98d3cf4e911870877bd94d9656cc0fcb390681/cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c", size = 171804 }, + { url = "https://files.pythonhosted.org/packages/d1/b6/0b0f5ab93b0df4acc49cae758c81fe4e5ef26c3ae2e10cc69249dfd8b3ab/cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15", size = 181299 }, { url = "https://files.pythonhosted.org/packages/6b/f4/927e3a8899e52a27fa57a48607ff7dc91a9ebe97399b357b85a0c7892e00/cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", size = 182264 }, { url = "https://files.pythonhosted.org/packages/6c/f5/6c3a8efe5f503175aaddcbea6ad0d2c96dad6f5abb205750d1b3df44ef29/cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", size = 178651 }, { url = "https://files.pythonhosted.org/packages/94/dd/a3f0118e688d1b1a57553da23b16bdade96d2f9bcda4d32e7d2838047ff7/cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", size = 445259 }, @@ -2337,6 +422,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", size = 477999 }, { url = "https://files.pythonhosted.org/packages/44/74/f2a2460684a1a2d00ca799ad880d54652841a780c4c97b87754f660c7603/cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", size = 454242 }, { url = "https://files.pythonhosted.org/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b", size = 478604 }, + { url = "https://files.pythonhosted.org/packages/34/33/e1b8a1ba29025adbdcda5fb3a36f94c03d771c1b7b12f726ff7fef2ebe36/cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655", size = 171727 }, + { url = "https://files.pythonhosted.org/packages/3d/97/50228be003bb2802627d28ec0627837ac0bf35c90cf769812056f235b2d1/cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0", size = 181400 }, { url = "https://files.pythonhosted.org/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", size = 183178 }, { url = "https://files.pythonhosted.org/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", size = 178840 }, { url = "https://files.pythonhosted.org/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", size = 454803 }, @@ -2346,6 +433,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", size = 479424 }, { url = "https://files.pythonhosted.org/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", size = 484568 }, { url = "https://files.pythonhosted.org/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", size = 488736 }, + { url = "https://files.pythonhosted.org/packages/86/c5/28b2d6f799ec0bdecf44dced2ec5ed43e0eb63097b0f58c293583b406582/cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", size = 172448 }, + { url = "https://files.pythonhosted.org/packages/50/b9/db34c4755a7bd1cb2d1603ac3863f22bcecbd1ba29e5ee841a4bc510b294/cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", size = 181976 }, { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989 }, { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802 }, { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792 }, @@ -2355,6 +444,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447 }, { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358 }, { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469 }, + { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475 }, + { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009 }, ] [[package]] @@ -2371,7 +462,7 @@ name = "cftime" version = "1.6.4.post1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ab/c8/1155d1d58003105307c7e5985f422ae5bcb2ca0cbc553cc828f3c5a934a7/cftime-1.6.4.post1.tar.gz", hash = "sha256:50ac76cc9f10ab7bd46e44a71c51a6927051b499b4407df4f29ab13d741b942f", size = 54631 } wheels = [ @@ -2380,21 +471,25 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/70/e3/1a56832b13ce0c5f3b798bf7bc60d4550fa1c514e04b613f9b0e48edc535/cftime-1.6.4.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d9bdeb9174962c9ca00015190bfd693de6b0ec3ec0b3dbc35c693a4f48efdcc", size = 1252052 }, { url = "https://files.pythonhosted.org/packages/5c/aa/f62ce24417ecb19f5ba1aa1dbe72394d11f11f5e53fc53497ccfaab83d3c/cftime-1.6.4.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e735cfd544878eb94d0108ff5a093bd1a332dba90f979a31a357756d609a90d5", size = 1289731 }, { url = "https://files.pythonhosted.org/packages/e4/21/0cf99e16e9953d17cc37286201922d07f17ffc1743dbc50d0c9e6f98ddda/cftime-1.6.4.post1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1dcd1b140bf50da6775c56bd7ca179e84bd258b2f159b53eefd5c514b341f2bf", size = 1317229 }, + { url = "https://files.pythonhosted.org/packages/68/0f/95ce359a3bd91a8ec9b79d4961753053c72a5115e820a072d451568684c3/cftime-1.6.4.post1-cp310-cp310-win_amd64.whl", hash = "sha256:e60b8f24b20753f7548f410f7510e28b941f336f84bd34e3cfd7874af6e70281", size = 189078 }, { url = "https://files.pythonhosted.org/packages/85/e6/6a7d2120fcffee208cf637d22b0d8f2701d91f69f68a96940056429950f3/cftime-1.6.4.post1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1bf7be0a0afc87628cb8c8483412aac6e48e83877004faa0936afb5bf8a877ba", size = 233445 }, { url = "https://files.pythonhosted.org/packages/1c/a0/fe0d14d52cffa72d3f1c281ff9f0f384968058d86ce24fdf9e736ce5b755/cftime-1.6.4.post1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0f64ca83acc4e3029f737bf3a32530ffa1fbf53124f5bee70b47548bc58671a7", size = 214458 }, { url = "https://files.pythonhosted.org/packages/55/c6/72f8fb5ee057f33ab747ba361f1396d2839a4689669aabd6217bc38430f7/cftime-1.6.4.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7ebdfd81726b0cfb8b524309224fa952898dfa177c13d5f6af5b18cefbf497d", size = 1379075 }, { url = "https://files.pythonhosted.org/packages/77/81/6b30815698ede50f89013f25e46d66ed3a290b8a2d6b97f95bacbbe1eb5c/cftime-1.6.4.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9ea0965a4c87739aebd84fe8eed966e5809d10065eeffd35c99c274b6f8da15", size = 1415218 }, { url = "https://files.pythonhosted.org/packages/24/0d/73ab09a32da1478d3ef5f4ab6c59d42f2db2a2383b427c87e05ad81b71ad/cftime-1.6.4.post1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:800a18aea4e8cb2b206450397cb8a53b154798738af3cdd3c922ce1ca198b0e6", size = 1450704 }, + { url = "https://files.pythonhosted.org/packages/79/b1/6551603f8ea31de55913c84e4def3c36670563bdea6e195fcc4b6225ddf7/cftime-1.6.4.post1-cp311-cp311-win_amd64.whl", hash = "sha256:5dcfc872f455db1f12eabe3c3ba98e93757cd60ed3526a53246e966ccde46c8a", size = 190200 }, { url = "https://files.pythonhosted.org/packages/50/81/0bb28d54088a61592f61a11e7fcabcea6d261c47af79e18d0f9cbcd940ae/cftime-1.6.4.post1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a590f73506f4704ba5e154ef55bfbaed5e1b4ac170f3caeb8c58e4f2c619ee4e", size = 226615 }, { url = "https://files.pythonhosted.org/packages/f3/1e/38dbbf8a828dfb5e0e6e5c912818b77aacf2e7bcb97b262ac6126beeb29f/cftime-1.6.4.post1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:933cb10e1af4e362e77f513e3eb92b34a688729ddbf938bbdfa5ac20a7f44ba0", size = 209193 }, { url = "https://files.pythonhosted.org/packages/9b/60/0db884c76311ecaaf31f628aa9358beae5fcb0fbbdc2eb0b790a93aa258f/cftime-1.6.4.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf17a1b36f62e9e73c4c9363dd811e1bbf1170f5ac26d343fb26012ccf482908", size = 1320215 }, { url = "https://files.pythonhosted.org/packages/8d/7d/2d5fc7af06da4f3bdea59a204f741bf7a30bc5019355991b2f083e557e4e/cftime-1.6.4.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e18021f421aa26527bad8688c1acf0c85fa72730beb6efce969c316743294f2", size = 1367426 }, { url = "https://files.pythonhosted.org/packages/5d/ab/e8b26d05323fc5629356c82a7f64026248f121ea1361b49df441bbc8f2d7/cftime-1.6.4.post1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5835b9d622f9304d1c23a35603a0f068739f428d902860f25e6e7e5a1b7cd8ea", size = 1385593 }, + { url = "https://files.pythonhosted.org/packages/af/7b/ca72a075a3f660315b031d62d39a3e9cfef71f7929da2621d5120077a75f/cftime-1.6.4.post1-cp312-cp312-win_amd64.whl", hash = "sha256:7f50bf0d1b664924aaee636eb2933746b942417d1f8b82ab6c1f6e8ba0da6885", size = 178918 }, { url = "https://files.pythonhosted.org/packages/da/d8/81f086dbdc6f5a4e0bb068263471f1d12861b72562fe8c18df38268e4e29/cftime-1.6.4.post1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5c89766ebf088c097832ea618c24ed5075331f0b7bf8e9c2d4144aefbf2f1850", size = 223418 }, { url = "https://files.pythonhosted.org/packages/4a/cc/60a825d92a4023655e330470758280a31e7b82665ef77d0e2a0fe71ea958/cftime-1.6.4.post1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f27113f7ccd1ca32881fdcb9a4bec806a5f54ae621fc1c374f1171f3ed98ef2", size = 207395 }, { url = "https://files.pythonhosted.org/packages/ca/90/f5b26949899decce262fc76a1e64915b92050473114e0160cd6f7297f854/cftime-1.6.4.post1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da367b23eea7cf4df071c88e014a1600d6c5bbf22e3393a4af409903fa397e28", size = 1318113 }, { url = "https://files.pythonhosted.org/packages/c3/f8/6f13d37abb7ade46e65a08acc31af776a96dde0eb569e05d4c4b01422ba6/cftime-1.6.4.post1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6579c5c83cdf09d73aa94c7bc34925edd93c5f2c7dd28e074f568f7e376271a0", size = 1366034 }, { url = "https://files.pythonhosted.org/packages/fa/08/335cb17f3b708f9a24f96ca4abb00889c7aa20b0ae273313e7c11faf1f97/cftime-1.6.4.post1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6b731c7133d17b479ca0c3c46a7a04f96197f0a4d753f4c2284c3ff0447279b4", size = 1390156 }, + { url = "https://files.pythonhosted.org/packages/f3/2d/980323fb5ec1ef369604b61ba259a41d0336cc1a85b639ed7bd210bd1290/cftime-1.6.4.post1-cp313-cp313-win_amd64.whl", hash = "sha256:d2a8c223faea7f1248ab469cc0d7795dd46f2a423789038f439fee7190bae259", size = 178496 }, ] [[package]] @@ -2425,6 +520,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/3a/a4/8633b0fc1a2d1834d5393dafecce4a1cc56727bfd82b4dc18fc92f0d3cc3/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95", size = 152437 }, { url = "https://files.pythonhosted.org/packages/64/ea/69af161062166b5975ccbb0961fd2384853190c70786f288684490913bf5/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e", size = 150087 }, { url = "https://files.pythonhosted.org/packages/3b/fd/e60a9d9fd967f4ad5a92810138192f825d77b4fa2a557990fd575a47695b/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe", size = 145142 }, + { url = "https://files.pythonhosted.org/packages/6d/02/8cb0988a1e49ac9ce2eed1e07b77ff118f2923e9ebd0ede41ba85f2dcb04/charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc", size = 94701 }, + { url = "https://files.pythonhosted.org/packages/d6/20/f1d4670a8a723c46be695dff449d86d6092916f9e99c53051954ee33a1bc/charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749", size = 102191 }, { url = "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", size = 193339 }, { url = "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", size = 124366 }, { url = "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", size = 118874 }, @@ -2438,6 +535,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", size = 150871 }, { url = "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", size = 148546 }, { url = "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", size = 143048 }, + { url = "https://files.pythonhosted.org/packages/01/f8/38842422988b795220eb8038745d27a675ce066e2ada79516c118f291f07/charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", size = 94389 }, + { url = "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", size = 101752 }, { url = "https://files.pythonhosted.org/packages/d3/0b/4b7a70987abf9b8196845806198975b6aab4ce016632f817ad758a5aa056/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", size = 194445 }, { url = "https://files.pythonhosted.org/packages/50/89/354cc56cf4dd2449715bc9a0f54f3aef3dc700d2d62d1fa5bbea53b13426/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", size = 125275 }, { url = "https://files.pythonhosted.org/packages/fa/44/b730e2a2580110ced837ac083d8ad222343c96bb6b66e9e4e706e4d0b6df/charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", size = 119020 }, @@ -2451,6 +550,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9d/be/5708ad18161dee7dc6a0f7e6cf3a88ea6279c3e8484844c0590e50e803ef/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", size = 151556 }, { url = "https://files.pythonhosted.org/packages/5a/bb/3d8bc22bacb9eb89785e83e6723f9888265f3a0de3b9ce724d66bd49884e/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", size = 149772 }, { url = "https://files.pythonhosted.org/packages/f7/fa/d3fc622de05a86f30beea5fc4e9ac46aead4731e73fd9055496732bcc0a4/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", size = 144800 }, + { url = "https://files.pythonhosted.org/packages/9a/65/bdb9bc496d7d190d725e96816e20e2ae3a6fa42a5cac99c3c3d6ff884118/charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", size = 94836 }, + { url = "https://files.pythonhosted.org/packages/3e/67/7b72b69d25b89c0b3cea583ee372c43aa24df15f0e0f8d3982c57804984b/charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", size = 102187 }, { url = "https://files.pythonhosted.org/packages/f3/89/68a4c86f1a0002810a27f12e9a7b22feb198c59b2f05231349fbce5c06f4/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", size = 194617 }, { url = "https://files.pythonhosted.org/packages/4f/cd/8947fe425e2ab0aa57aceb7807af13a0e4162cd21eee42ef5b053447edf5/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", size = 125310 }, { url = "https://files.pythonhosted.org/packages/5b/f0/b5263e8668a4ee9becc2b451ed909e9c27058337fda5b8c49588183c267a/charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", size = 119126 }, @@ -2464,6 +565,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ac/a0/c1b5298de4670d997101fef95b97ac440e8c8d8b4efa5a4d1ef44af82f0d/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", size = 151849 }, { url = "https://files.pythonhosted.org/packages/04/4f/b3961ba0c664989ba63e30595a3ed0875d6790ff26671e2aae2fdc28a399/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", size = 149781 }, { url = "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482", size = 144970 }, + { url = "https://files.pythonhosted.org/packages/cc/67/e5e7e0cbfefc4ca79025238b43cdf8a2037854195b37d6417f3d0895c4c2/charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", size = 94973 }, + { url = "https://files.pythonhosted.org/packages/65/97/fc9bbc54ee13d33dc54a7fcf17b26368b18505500fc01e228c27b5222d80/charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", size = 102308 }, { url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 }, ] @@ -2472,7 +575,7 @@ name = "click" version = "8.1.7" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "(platform_system == 'Windows' and sys_platform == 'darwin') or (platform_system == 'Windows' and sys_platform == 'linux')" }, + { name = "colorama", marker = "implementation_name == 'cpython' and platform_system == 'Windows' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121 } wheels = [ @@ -2509,6 +612,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5f/43/4ee66e496e726457758710ab8b3b5349b74b80c60ffa7970cf65ab1c226b/cmake-3.31.1-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:995d72c96feb64790bfc13a54bde5bd783685441c1532e1da7402a3f4705d0d9", size = 27942166 }, { url = "https://files.pythonhosted.org/packages/85/b1/5a1a4a93dc833b770d7bdaff92d0e6f33441317474d1c245b820b764c22c/cmake-3.31.1-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:585ef94540a99a7acbc7001721d5d897df2e80a549a05b17e660e8a813fc9cc1", size = 29465511 }, { url = "https://files.pythonhosted.org/packages/ba/9a/dc0ad5735d4f784afbf5a64b99b9f36c9cc1e3a188886a9cf0542ca87c8e/cmake-3.31.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7882f58fd4e7d7d87c9afa43e3e2b68f0621d5ad77bef76d9d5de99bb3d5f0d3", size = 32968611 }, + { url = "https://files.pythonhosted.org/packages/d9/af/3d2b63027e91a3e41b5ca8d28188689ef150a030768d477f3f8d312d23ef/cmake-3.31.1-py3-none-win32.whl", hash = "sha256:1b1e1f610ff11f7674dae4b048e92481ed3bb6f4d346fbd015ab548ef542c2be", size = 33325344 }, + { url = "https://files.pythonhosted.org/packages/1f/e3/b5259c734fc91e5ec0cad200e177dbc6434f7f3d414415c119617765b9b1/cmake-3.31.1-py3-none-win_amd64.whl", hash = "sha256:18e542c6e21b6f8d4ae1b219e894b00789ec78b4da800e3a60920dee4e33d575", size = 36424070 }, + { url = "https://files.pythonhosted.org/packages/55/8a/fcdb516b189b53847ea9e3a195acc37ac8b2310b4ebc9487f624d8a91656/cmake-3.31.1-py3-none-win_arm64.whl", hash = "sha256:9cee057f067c14bdee78ce3f56b9396051f744d20a409f0945052582f36020b5", size = 35549409 }, ] [[package]] @@ -2533,6 +639,9 @@ wheels = [ name = "colorlog" version = "6.9.0" source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "implementation_name == 'cpython' and sys_platform == 'win32'" }, +] sdist = { url = "https://files.pythonhosted.org/packages/d3/7a/359f4d5df2353f26172b3cc39ea32daa39af8de522205f512f458923e677/colorlog-6.9.0.tar.gz", hash = "sha256:bfba54a1b93b94f54e1f4fe48395725a3d92fd2a4af702f6bd70946bdc0c6ac2", size = 16624 } wheels = [ { url = "https://files.pythonhosted.org/packages/e3/51/9b208e85196941db2f0654ad0357ca6388ab3ed67efdbfc799f35d1f83aa/colorlog-6.9.0-py3-none-any.whl", hash = "sha256:5906e71acd67cb07a71e779c47c4bcb45fb8c2993eebe9e5adcd6a6f1b283eff", size = 11424 }, @@ -2552,7 +661,7 @@ name = "contourpy" version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/25/c2/fc7193cc5383637ff390a712e88e4ded0452c9fbcf84abe3de5ea3df1866/contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699", size = 13465753 } wheels = [ @@ -2564,6 +673,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a9/57/86c500d63b3e26e5b73a28b8291a67c5608d4aa87ebd17bd15bb33c178bc/contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3", size = 324969 }, { url = "https://files.pythonhosted.org/packages/b8/62/bb146d1289d6b3450bccc4642e7f4413b92ebffd9bf2e91b0404323704a7/contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277", size = 1265162 }, { url = "https://files.pythonhosted.org/packages/18/04/9f7d132ce49a212c8e767042cc80ae390f728060d2eea47058f55b9eff1c/contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595", size = 1324328 }, + { url = "https://files.pythonhosted.org/packages/46/23/196813901be3f97c83ababdab1382e13e0edc0bb4e7b49a7bff15fcf754e/contourpy-1.3.1-cp310-cp310-win32.whl", hash = "sha256:ac4578ac281983f63b400f7fe6c101bedc10651650eef012be1ccffcbacf3697", size = 173861 }, + { url = "https://files.pythonhosted.org/packages/e0/82/c372be3fc000a3b2005061ca623a0d1ecd2eaafb10d9e883a2fc8566e951/contourpy-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:174e758c66bbc1c8576992cec9599ce8b6672b741b5d336b5c74e35ac382b18e", size = 218566 }, { 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 }, @@ -2572,6 +683,8 @@ wheels = [ { 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 }, @@ -2580,6 +693,8 @@ wheels = [ { 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 }, @@ -2588,6 +703,8 @@ wheels = [ { 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 }, @@ -2596,8 +713,11 @@ wheels = [ { 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 }, { url = "https://files.pythonhosted.org/packages/3e/4f/e56862e64b52b55b5ddcff4090085521fc228ceb09a88390a2b103dccd1b/contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6", size = 265605 }, { url = "https://files.pythonhosted.org/packages/b0/2e/52bfeeaa4541889f23d8eadc6386b442ee2470bd3cff9baa67deb2dd5c57/contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750", size = 315040 }, + { url = "https://files.pythonhosted.org/packages/52/94/86bfae441707205634d80392e873295652fc313dfd93c233c52c4dc07874/contourpy-1.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:44a29502ca9c7b5ba389e620d44f2fbe792b1fb5734e8b931ad307071ec58c53", size = 218221 }, ] [[package]] @@ -2614,6 +734,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/18/43/b2cfd4413a5b64ab27c289228b0c45b4527d1b99381cc9d6a00bfd515da4/coverage-7.6.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e19122296822deafce89a0c5e8685704c067ae65d45e79718c92df7b3ec3d331", size = 234019 }, { url = "https://files.pythonhosted.org/packages/8e/95/8b2fbb9d1a79277963b6095cd51a90fb7088cd3618faf75550038331f78b/coverage-7.6.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:13618bed0c38acc418896005732e565b317aa9e98d855a0e9f211a7ffc2d6638", size = 232481 }, { url = "https://files.pythonhosted.org/packages/4d/d7/9e939508a39ef67605b715ca89c6522214aceb27c2db9152ae3ae1cf8626/coverage-7.6.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:193e3bffca48ad74b8c764fb4492dd875038a2f9925530cb094db92bb5e47bed", size = 233609 }, + { url = "https://files.pythonhosted.org/packages/ba/e2/1c5fb52eafcffeebaa9db084bff47e7c3cf4f97db752226c232cee4d530b/coverage-7.6.8-cp310-cp310-win32.whl", hash = "sha256:3988665ee376abce49613701336544041f2117de7b7fbfe91b93d8ff8b151c8e", size = 209669 }, + { url = "https://files.pythonhosted.org/packages/31/31/6a56469609a252549dd4b090815428d5521edd4642440d987573a450c069/coverage-7.6.8-cp310-cp310-win_amd64.whl", hash = "sha256:f56f49b2553d7dd85fd86e029515a221e5c1f8cb3d9c38b470bc38bde7b8445a", size = 210509 }, { url = "https://files.pythonhosted.org/packages/ab/9f/e98211980f6e2f439e251737482aa77906c9b9c507824c71a2ce7eea0402/coverage-7.6.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:86cffe9c6dfcfe22e28027069725c7f57f4b868a3f86e81d1c62462764dc46d4", size = 207093 }, { url = "https://files.pythonhosted.org/packages/fd/c7/8bab83fb9c20f7f8163c5a20dcb62d591b906a214a6dc6b07413074afc80/coverage-7.6.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d82ab6816c3277dc962cfcdc85b1efa0e5f50fb2c449432deaf2398a2928ab94", size = 207536 }, { url = "https://files.pythonhosted.org/packages/1e/d6/00243df625f1b282bb25c83ce153ae2c06f8e7a796a8d833e7235337b4d9/coverage-7.6.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13690e923a3932e4fad4c0ebfb9cb5988e03d9dcb4c5150b5fcbf58fd8bddfc4", size = 239482 }, @@ -2622,6 +744,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b5/e5/791bae13be3c6451e32ef7af1192e711c6a319f3c597e9b218d148fd0633/coverage-7.6.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:768939f7c4353c0fac2f7c37897e10b1414b571fd85dd9fc49e6a87e37a2e0d8", size = 237679 }, { url = "https://files.pythonhosted.org/packages/05/c6/bbfdfb03aada601fb8993ced17468c8c8e0b4aafb3097026e680fabb7ce1/coverage-7.6.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e44961e36cb13c495806d4cac67640ac2866cb99044e210895b506c26ee63d3a", size = 236317 }, { url = "https://files.pythonhosted.org/packages/67/f9/f8e5a4b2ce96d1b0e83ae6246369eb8437001dc80ec03bb51c87ff557cd8/coverage-7.6.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3ea8bb1ab9558374c0ab591783808511d135a833c3ca64a18ec927f20c4030f0", size = 237084 }, + { url = "https://files.pythonhosted.org/packages/f0/70/b05328901e4debe76e033717e1452d00246c458c44e9dbd893e7619c2967/coverage-7.6.8-cp311-cp311-win32.whl", hash = "sha256:629a1ba2115dce8bf75a5cce9f2486ae483cb89c0145795603d6554bdc83e801", size = 209638 }, + { url = "https://files.pythonhosted.org/packages/70/55/1efa24f960a2fa9fbc44a9523d3f3c50ceb94dd1e8cd732168ab2dc41b07/coverage-7.6.8-cp311-cp311-win_amd64.whl", hash = "sha256:fb9fc32399dca861584d96eccd6c980b69bbcd7c228d06fb74fe53e007aa8ef9", size = 210506 }, { url = "https://files.pythonhosted.org/packages/76/ce/3edf581c8fe429ed8ced6e6d9ac693c25975ef9093413276dab6ed68a80a/coverage-7.6.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e683e6ecc587643f8cde8f5da6768e9d165cd31edf39ee90ed7034f9ca0eefee", size = 207285 }, { url = "https://files.pythonhosted.org/packages/09/9c/cf102ab046c9cf8895c3f7aadcde6f489a4b2ec326757e8c6e6581829b5e/coverage-7.6.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1defe91d41ce1bd44b40fabf071e6a01a5aa14de4a31b986aa9dfd1b3e3e414a", size = 207522 }, { url = "https://files.pythonhosted.org/packages/39/06/42aa6dd13dbfca72e1fd8ffccadbc921b6e75db34545ebab4d955d1e7ad3/coverage-7.6.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7ad66e8e50225ebf4236368cc43c37f59d5e6728f15f6e258c8639fa0dd8e6d", size = 240543 }, @@ -2630,6 +754,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/77/52/b2537487d8f36241e518e84db6f79e26bc3343b14844366e35b090fae0d4/coverage-7.6.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4674f0daa1823c295845b6a740d98a840d7a1c11df00d1fd62614545c1583787", size = 239128 }, { url = "https://files.pythonhosted.org/packages/7c/99/7f007762012186547d0ecc3d328da6b6f31a8c99f05dc1e13dcd929918cd/coverage-7.6.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:74610105ebd6f33d7c10f8907afed696e79c59e3043c5f20eaa3a46fddf33b4c", size = 237434 }, { url = "https://files.pythonhosted.org/packages/97/53/e9b5cf0682a1cab9352adfac73caae0d77ae1d65abc88975d510f7816389/coverage-7.6.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37cda8712145917105e07aab96388ae76e787270ec04bcb9d5cc786d7cbb8443", size = 239095 }, + { url = "https://files.pythonhosted.org/packages/0c/50/054f0b464fbae0483217186478eefa2e7df3a79917ed7f1d430b6da2cf0d/coverage-7.6.8-cp312-cp312-win32.whl", hash = "sha256:9e89d5c8509fbd6c03d0dd1972925b22f50db0792ce06324ba069f10787429ad", size = 209895 }, + { url = "https://files.pythonhosted.org/packages/df/d0/09ba870360a27ecf09e177ca2ff59d4337fc7197b456f22ceff85cffcfa5/coverage-7.6.8-cp312-cp312-win_amd64.whl", hash = "sha256:379c111d3558272a2cae3d8e57e6b6e6f4fe652905692d54bad5ea0ca37c5ad4", size = 210684 }, { url = "https://files.pythonhosted.org/packages/9a/84/6f0ccf94a098ac3d6d6f236bd3905eeac049a9e0efcd9a63d4feca37ac4b/coverage-7.6.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0b0c69f4f724c64dfbfe79f5dfb503b42fe6127b8d479b2677f2b227478db2eb", size = 207313 }, { url = "https://files.pythonhosted.org/packages/db/2b/e3b3a3a12ebec738c545897ac9f314620470fcbc368cdac88cf14974ba20/coverage-7.6.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c15b32a7aca8038ed7644f854bf17b663bc38e1671b5d6f43f9a2b2bd0c46f63", size = 207574 }, { url = "https://files.pythonhosted.org/packages/db/c0/5bf95d42b6a8d21dfce5025ce187f15db57d6460a59b67a95fe8728162f1/coverage-7.6.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63068a11171e4276f6ece913bde059e77c713b48c3a848814a6537f35afb8365", size = 240090 }, @@ -2638,6 +764,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/31/9c/9b99b0591ec4555b7292d271e005f27b465388ce166056c435b288db6a69/coverage-7.6.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c9ebfb2507751f7196995142f057d1324afdab56db1d9743aab7f50289abd022", size = 238888 }, { url = "https://files.pythonhosted.org/packages/a6/85/285c2df9a04bc7c31f21fd9d4a24d19e040ec5e2ff06e572af1f6514c9e7/coverage-7.6.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c1b4474beee02ede1eef86c25ad4600a424fe36cff01a6103cb4533c6bf0169e", size = 236974 }, { url = "https://files.pythonhosted.org/packages/cb/a1/95ec8522206f76cdca033bf8bb61fff56429fb414835fc4d34651dfd29fc/coverage-7.6.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d9fd2547e6decdbf985d579cf3fc78e4c1d662b9b0ff7cc7862baaab71c9cc5b", size = 238815 }, + { url = "https://files.pythonhosted.org/packages/8d/ac/687e9ba5e6d0979e9dab5c02e01c4f24ac58260ef82d88d3b433b3f84f1e/coverage-7.6.8-cp313-cp313-win32.whl", hash = "sha256:8aae5aea53cbfe024919715eca696b1a3201886ce83790537d1c3668459c7146", size = 209957 }, + { url = "https://files.pythonhosted.org/packages/2f/a3/b61cc8e3fcf075293fb0f3dee405748453c5ba28ac02ceb4a87f52bdb105/coverage-7.6.8-cp313-cp313-win_amd64.whl", hash = "sha256:ae270e79f7e169ccfe23284ff5ea2d52a6f401dc01b337efb54b3783e2ce3f28", size = 210711 }, { url = "https://files.pythonhosted.org/packages/ee/4b/891c8b9acf1b62c85e4a71dac142ab9284e8347409b7355de02e3f38306f/coverage-7.6.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:de38add67a0af869b0d79c525d3e4588ac1ffa92f39116dbe0ed9753f26eba7d", size = 208053 }, { url = "https://files.pythonhosted.org/packages/18/a9/9e330409b291cc002723d339346452800e78df1ce50774ca439ade1d374f/coverage-7.6.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b07c25d52b1c16ce5de088046cd2432b30f9ad5e224ff17c8f496d9cb7d1d451", size = 208329 }, { url = "https://files.pythonhosted.org/packages/9c/0d/33635fd429f6589c6e1cdfc7bf581aefe4c1792fbff06383f9d37f59db60/coverage-7.6.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62a66ff235e4c2e37ed3b6104d8b478d767ff73838d1222132a7a026aa548764", size = 251052 }, @@ -2646,12 +774,14 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/36/cb/c4f081b9023f9fd8646dbc4ef77be0df090263e8f66f4ea47681e0dc2cff/coverage-7.6.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9a7b8ac36fd688c8361cbc7bf1cb5866977ece6e0b17c34aa0df58bda4fa18a4", size = 248615 }, { url = "https://files.pythonhosted.org/packages/32/ee/53bdbf67760928c44b57b2c28a8c0a4bf544f85a9ee129a63ba5c78fdee4/coverage-7.6.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:38c51297b35b3ed91670e1e4efb702b790002e3245a28c76e627478aa3c10d83", size = 246507 }, { url = "https://files.pythonhosted.org/packages/57/49/5a57910bd0af6d8e802b4ca65292576d19b54b49f81577fd898505dee075/coverage-7.6.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2e4e0f60cb4bd7396108823548e82fdab72d4d8a65e58e2c19bbbc2f1e2bfa4b", size = 247785 }, + { url = "https://files.pythonhosted.org/packages/bd/37/e450c9f6b297c79bb9858407396ed3e084dcc22990dd110ab01d5ceb9770/coverage-7.6.8-cp313-cp313t-win32.whl", hash = "sha256:6535d996f6537ecb298b4e287a855f37deaf64ff007162ec0afb9ab8ba3b8b71", size = 210605 }, + { url = "https://files.pythonhosted.org/packages/44/79/7d0c7dd237c6905018e2936cd1055fe1d42e7eba2ebab3c00f4aad2a27d7/coverage-7.6.8-cp313-cp313t-win_amd64.whl", hash = "sha256:c79c0685f142ca53256722a384540832420dff4ab15fec1863d7e5bc8691bdcc", size = 211777 }, { url = "https://files.pythonhosted.org/packages/32/df/0d2476121cd0bfb9ca2413efe02289c474b82c4b134863bef4b89ec7bcfa/coverage-7.6.8-pp39.pp310-none-any.whl", hash = "sha256:5c52a036535d12590c32c49209e79cabaad9f9ad8aa4cbd875b68c4d67a9cbce", size = 199230 }, ] [package.optional-dependencies] toml = [ - { name = "tomli", marker = "(python_full_version <= '3.11' and sys_platform == 'darwin') or (python_full_version <= '3.11' and sys_platform == 'linux')" }, + { name = "tomli", marker = "python_full_version <= '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [[package]] @@ -2659,7 +789,7 @@ name = "cssutils" version = "2.11.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "more-itertools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "more-itertools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/33/9f/329d26121fe165be44b1dfff21aa0dc348f04633931f1d20ed6cf448a236/cssutils-2.11.1.tar.gz", hash = "sha256:0563a76513b6af6eebbe788c3bf3d01c920e46b3f90c8416738c5cfc773ff8e2", size = 711657 } wheels = [ @@ -2671,16 +801,19 @@ name = "cupy-cuda11x" version = "13.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "fastrlock", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "fastrlock", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/2a/1b/3afbaea2b78114c82b33ecc9affc79b7d9f4899945940b9b50790c93fd33/cupy_cuda11x-13.3.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:ef854f0c63525d8163ab7af19f503d964de9dde0dd1cf9ea806a6ecb302cdce3", size = 109578634 }, { url = "https://files.pythonhosted.org/packages/82/94/1da4205249baa861ac848dcbc36208a0b08f2ba2c414634525e53dabf818/cupy_cuda11x-13.3.0-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:54bf12a6663d0471e3e37e62972add348c5263ce803688f48bbfab1b20ebdb02", size = 96619611 }, + { url = "https://files.pythonhosted.org/packages/3f/ef/6924de40b67d4a0176e9c27f1ea9b0c8700935424473afd104cf72b36eb0/cupy_cuda11x-13.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:972d133efa2af80bb8ef321858ffe7cabc3abf8f58bcc4f13541dd497c05077d", size = 76006133 }, { url = "https://files.pythonhosted.org/packages/4d/2d/9f01f25a81535572050f77ca618a54d8ad08afc13963c9fc57c162931e42/cupy_cuda11x-13.3.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:766ef1558a3ed967d5f092829bfb99edbcfaf75224925e1fb1a9f531e1e79f36", size = 110899612 }, { url = "https://files.pythonhosted.org/packages/96/8f/b92bbf066ed86ec9dbeb969a5d6e6b6597bf0bab730f9e8b4c589f7cf198/cupy_cuda11x-13.3.0-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:77a81fa48d1a392b731885555a53cf2febde39cc33db55f2d78ba64b5ef4689b", size = 97172154 }, + { url = "https://files.pythonhosted.org/packages/08/94/113cc947b06b45b950979441a4f12f257b203d9a33796b1dbe6b82a2c36c/cupy_cuda11x-13.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:a8e8b7f7f73677afe2f70c38562f01f82688e43147550b3e192a5a2206e17fe1", size = 75976673 }, { url = "https://files.pythonhosted.org/packages/06/45/a7423cbd38c6f2f6a62498cbc26cfb46a772fc1757db3ccf649df193d4c8/cupy_cuda11x-13.3.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:199f1b24bcd568b41705cb46870ee7086088932c78d46037fdf05d195636ab70", size = 109872563 }, { url = "https://files.pythonhosted.org/packages/63/dc/9e3b6854b97b91188f63331dc8b3fef7564c2ba414fe42339df88f23f551/cupy_cuda11x-13.3.0-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:ffe153d5c32bc033c1cd94460c04d90219367d7283fcaefa9f1cf7b461fbdd7d", size = 96988596 }, + { url = "https://files.pythonhosted.org/packages/3b/8d/0cae1fab97aa1934c824fae509c9e98253f4343803f08b29ad0742394e42/cupy_cuda11x-13.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:85df9054ed023adb5db04c4e9138cf4eff99746e7f3fb47479232da009ef8839", size = 75910534 }, ] [[package]] @@ -2688,16 +821,19 @@ name = "cupy-cuda12x" version = "13.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "fastrlock", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "fastrlock", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/34/60/dc268d1d9c5fdde4673a463feff5e9c70c59f477e647b54b501f65deef60/cupy_cuda12x-13.3.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:674488e990998042cc54d2486d3c37cae80a12ba3787636be5a10b9446dd6914", size = 103601326 }, { url = "https://files.pythonhosted.org/packages/7a/a9/1e19ecf008011df2935d038f26f721f22f2804c00077fc024f088e0996e6/cupy_cuda12x-13.3.0-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:cf4a2a0864364715881b50012927e88bd7ec1e6f1de3987970870861ae5ed25e", size = 90619949 }, + { url = "https://files.pythonhosted.org/packages/ce/6b/e77e3fc20648d323021f55d4e0fafc5572eff50c37750d6aeae868e110d8/cupy_cuda12x-13.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:7c0dc8c49d271d1c03e49a5d6c8e42e8fee3114b10f269a5ecc387731d693eaa", size = 69594183 }, { url = "https://files.pythonhosted.org/packages/95/c9/0b88c015e98aad808c18f938267585d79e6211fe08650e0de7132e235e40/cupy_cuda12x-13.3.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:c0cc095b9a3835fd5db66c45ed3c58ecdc5a3bb14e53e1defbfd4a0ce5c8ecdb", size = 104925909 }, { url = "https://files.pythonhosted.org/packages/8c/1f/596803c35833c01a41da21c6a7bb552f1ed56d807090ddc6727c8f396d7d/cupy_cuda12x-13.3.0-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:a0e3bead04e502ebde515f0343444ca3f4f7aed09cbc3a316a946cba97f2ea66", size = 91172049 }, + { url = "https://files.pythonhosted.org/packages/d0/a8/5b5929830d2da94608d8126bafe2c52d69929a197fd8698ac09142c068ba/cupy_cuda12x-13.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:5f11df1149c7219858b27e4c8be92cb4eaf7364c94af6b78c40dffb98050a61f", size = 69564719 }, { url = "https://files.pythonhosted.org/packages/0d/02/e94f7c26a5f446888d8753d4b6642e5107f9fde166d1ac23b7de95ccea7b/cupy_cuda12x-13.3.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:bbd0d916310391faf0d7dc9c58fff7a6dc996b67e5768199160bbceb5ebdda8c", size = 103894953 }, { url = "https://files.pythonhosted.org/packages/90/dc/da09e5184d94146b8cbf240c2bef1c4851cbafd7e2d60cc71b1530c766ec/cupy_cuda12x-13.3.0-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:e206bd8664f0763732b6012431f484ee535bffd77a5ae95e9bfe1c7c72396625", size = 90980377 }, + { url = "https://files.pythonhosted.org/packages/14/11/8bc53cab1466605ba88ba3c7243078a784ee2cd8974f5602a491882af9af/cupy_cuda12x-13.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:88ef1478f00ae252da0026e7f04f70c9bb6a2dc130ba5f1e5bc5e8069a928bf5", size = 69499349 }, ] [[package]] @@ -2714,7 +850,7 @@ name = "cytoolz" version = "1.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "toolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e2/4c/ca9b05bdfa28ddbb4a5365c27021a1d4be61db7d8f6b4e5d4e76aa4ba3b7/cytoolz-1.0.0.tar.gz", hash = "sha256:eb453b30182152f9917a5189b7d99046b6ce90cdf8aeb0feff4b2683e600defd", size = 626708 } wheels = [ @@ -2730,6 +866,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ae/01/9b00fa8956c6b76ffd72fc896b2ba4e06165d7f90e03cf4ff253a4282d01/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:49375aad431d76650f94877afb92f09f58b6ff9055079ef4f2cd55313f5a1b39", size = 1989871 }, { url = "https://files.pythonhosted.org/packages/30/5a/3857a60ce3083d083fffcac13938ae045d22ee0a55f88b83a22443132e5d/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:4c45106171c824a61e755355520b646cb35a1987b34bbf5789443823ee137f63", size = 1994484 }, { url = "https://files.pythonhosted.org/packages/6c/3d/8585a635ebeba67f234f7779926519fda732399dd875b7cdff2cb2a3bff7/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3b319a7f0fed5db07d189db4046162ebc183c108df3562a65ba6ebe862d1f634", size = 1896072 }, + { url = "https://files.pythonhosted.org/packages/4c/3f/9f208381c12d2c8437ea09eef56f12c6f44af74ef5bc7546ca4fb099979e/cytoolz-1.0.0-cp310-cp310-win32.whl", hash = "sha256:9770e1b09748ad0d751853d994991e2592a9f8c464a87014365f80dac2e83faa", size = 322319 }, + { url = "https://files.pythonhosted.org/packages/d7/95/cbc120ba4f70f874481f6ec650d26c265db1645fb5285a81e589d5831073/cytoolz-1.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:20194dd02954c00c1f0755e636be75a20781f91a4ac9270c7f747e82d3c7f5a5", size = 363803 }, { url = "https://files.pythonhosted.org/packages/bc/99/b489081777ad02c9bba294c757583416d0bdbd9403017145aba68145c16f/cytoolz-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dffc22fd2c91be64dbdbc462d0786f8e8ac9a275cfa1869a1084d1867d4f67e0", size = 406148 }, { url = "https://files.pythonhosted.org/packages/b2/d3/a4d58bf89924dbca34e8dbb643b26935e08c16b4a2ee255d43a8b7489939/cytoolz-1.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a99e7e29274e293f4ffe20e07f76c2ac753a78f1b40c1828dfc54b2981b2f6c4", size = 384956 }, { url = "https://files.pythonhosted.org/packages/81/d4/4d09e6571ef3b143f668c590a7a00c97ff24e6df6901f457ea7c782cd2ba/cytoolz-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c507a3e0a45c41d66b43f96797290d75d1e7a8549aa03a4a6b8854fdf3f7b8d8", size = 2091688 }, @@ -2742,6 +880,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/34/2a/26ac5a34e859c5ba32351f5a74492f4ed12e7a7e75b6afccf11c4100aa70/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:658dd85deb375ff7af990a674e5c9058cef1c9d1f5dc89bc87b77be499348144", size = 2155343 }, { url = "https://files.pythonhosted.org/packages/3d/41/f687d2e40407b29bfcce36a7d456dad368283ea543aa39da53bcc119974e/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9715d1ff5576919d10b68f17241375f6a1eec8961c25b78a83e6ef1487053f39", size = 2163507 }, { url = "https://files.pythonhosted.org/packages/39/7c/70d529f909d97ea214d59923c19e3d05a3768fe8e2066542b72550a31ca4/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f370a1f1f1afc5c1c8cc5edc1cfe0ba444263a0772af7ce094be8e734f41769d", size = 2054428 }, + { url = "https://files.pythonhosted.org/packages/5a/4a/7bb2eafe4077f6d9867547ca74ca4b75bc8a081e32a47e186e5c067f6cab/cytoolz-1.0.0-cp311-cp311-win32.whl", hash = "sha256:dbb2ec1177dca700f3db2127e572da20de280c214fc587b2a11c717fc421af56", size = 322300 }, + { url = "https://files.pythonhosted.org/packages/5a/ed/a1c955444343224ab1317a41f6575bc640055eb2495e8f9175f8f28bd776/cytoolz-1.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:0983eee73df86e54bb4a79fcc4996aa8b8368fdbf43897f02f9c3bf39c4dc4fb", size = 365539 }, { url = "https://files.pythonhosted.org/packages/28/2e/a8b71f74ee75f33164bfbc6324ddd1e8d0f425255b1c930141516f51d539/cytoolz-1.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:10e3986066dc379e30e225b230754d9f5996aa8d84c2accc69c473c21d261e46", size = 414110 }, { url = "https://files.pythonhosted.org/packages/c6/0a/999af6bb896375b0c687e292a3dcd4edb338a2764bbac40c0ce11eb21c64/cytoolz-1.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:16576f1bb143ee2cb9f719fcc4b845879fb121f9075c7c5e8a5ff4854bd02fc6", size = 390900 }, { url = "https://files.pythonhosted.org/packages/30/04/02f0ee5339f8c6ef785f06caee85e17e8e0b406e7e553c8fd99a55ff8390/cytoolz-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3faa25a1840b984315e8b3ae517312375f4273ffc9a2f035f548b7f916884f37", size = 2090729 }, @@ -2754,10 +894,13 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2e/9f/8d5940c953534a4d2ae4419bb4fdc1eb5559345fed1f4838708073d7e6b4/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:28bb88e1e2f7d6d4b8e0890b06d292c568984d717de3e8381f2ca1dd12af6470", size = 2154314 }, { url = "https://files.pythonhosted.org/packages/84/bf/a5414601c95afde30a0c038c5d6273c188f1da8ff25a057bd0c683679e5c/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:576a4f1fc73d8836b10458b583f915849da6e4f7914f4ecb623ad95c2508cad5", size = 2188368 }, { url = "https://files.pythonhosted.org/packages/67/fe/990ea30d56b9b6602f3bf4af77a1bfd9233e6ffb761b11b8864619fed508/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:509ed3799c47e4ada14f63e41e8f540ac6e2dab97d5d7298934e6abb9d3830ec", size = 2077906 }, + { url = "https://files.pythonhosted.org/packages/ab/95/94b936501e1e23460732631e5d7c6efc4f6c09df21a594dfca9bf30b9411/cytoolz-1.0.0-cp312-cp312-win32.whl", hash = "sha256:9ce25f02b910630f6dc2540dd1e26c9326027ddde6c59f8cab07c56acc70714c", size = 322445 }, + { url = "https://files.pythonhosted.org/packages/be/04/a49b73591b132be5a28c0670229629a3c002cfac59582a1d38b16bdc6fed/cytoolz-1.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:7e53cfcce87e05b7f0ae2fb2b3e5820048cd0bb7b701e92bd8f75c9fbb7c9ae9", size = 364595 }, { url = "https://files.pythonhosted.org/packages/16/7c/8b9fc006925b08579ae35293ad7d14fea4ee94edf1efaaa17e1bdde85b9a/cytoolz-1.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e672712d5dc3094afc6fb346dd4e9c18c1f3c69608ddb8cf3b9f8428f9c26a5c", size = 345694 }, { url = "https://files.pythonhosted.org/packages/76/d1/159cc7c0c86d6fb8177be437dd6112d90c7f40ef0ceda2102472242b0ccf/cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86fb208bfb7420e1d0d20065d661310e4a8a6884851d4044f47d37ed4cd7410e", size = 385691 }, { url = "https://files.pythonhosted.org/packages/43/99/21361970f2d7cce241f116d84e8f5c21f1440414be96d0c8cad7832d35cb/cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6dbe5fe3b835859fc559eb59bf2775b5a108f7f2cfab0966f3202859d787d8fd", size = 406251 }, { url = "https://files.pythonhosted.org/packages/d8/98/bc3d6eadb495de0d48c4d738e5ee6f011d8adbf6a3fcc1f7c17d05bc49d3/cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cace092dfda174eed09ed871793beb5b65633963bcda5b1632c73a5aceea1ce", size = 397203 }, + { url = "https://files.pythonhosted.org/packages/91/b1/df1ed78f08abe8781376bd197532e6e4b38bb3595dd82f6a2b8751407a52/cytoolz-1.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f7a9d816af3be9725c70efe0a6e4352a45d3877751b395014b8eb2f79d7d8d9d", size = 343504 }, ] [[package]] @@ -2765,18 +908,18 @@ name = "dace" version = "0.16.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "aenum", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "astunparse", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "dill", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "fparser", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "networkx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "ply", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyreadline", marker = "(platform_system == 'Windows' and sys_platform == 'darwin') or (platform_system == 'Windows' and sys_platform == 'linux')" }, - { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sympy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "websockets", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "aenum", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "astunparse", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "dill", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "fparser", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "networkx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "ply", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyreadline", marker = "implementation_name == 'cpython' and platform_system == 'Windows' and sys_platform != 'windows'" }, + { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sympy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "websockets", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/6a/4f/91260bf8b679572b5e0fd3410208ba3a724d7a23d675d1af0b362dac3e94/dace-0.16.1.tar.gz", hash = "sha256:9aef845f2f11964b587839a9ee3b4f914342b84d1d745aef44ace5227c3903f3", size = 5714118 } wheels = [ @@ -2788,14 +931,14 @@ name = "dask" version = "2024.11.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "cloudpickle", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "fsspec", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "importlib-metadata", marker = "(python_full_version < '3.12' and sys_platform == 'darwin') or (python_full_version < '3.12' and sys_platform == 'linux')" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "partd", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "toolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cloudpickle", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "fsspec", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "importlib-metadata", marker = "python_full_version < '3.12' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "partd", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/9d/a1/6d06c4cc93349377a9f318f2ebff5b637e6ffee373e38f363123b4b1afa7/dask-2024.11.2.tar.gz", hash = "sha256:9a72bee3f149ff89bc492340d4bcba33d5dd3e3a9d471d2b4b3872f2d71ddaae", size = 10688567 } wheels = [ @@ -2804,14 +947,14 @@ wheels = [ [package.optional-dependencies] complete = [ - { name = "bokeh", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "dask-expr", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "distributed", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "lz4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyarrow", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "bokeh", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "dask-expr", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "distributed", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "lz4", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyarrow", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [[package]] @@ -2819,9 +962,9 @@ name = "dask-expr" version = "1.1.19" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "dask", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyarrow", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "dask", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyarrow", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ef/b0/a0c1050ee70be7a0274529b15edacea769c395b392edb1925118937fdb7c/dask_expr-1.1.19.tar.gz", hash = "sha256:5c8a50924bf6718bb630d58f11311e3d928c7037af913e096fa0eb3f0a493b9f", size = 223876 } wheels = [ @@ -2833,20 +976,20 @@ name = "datashader" version = "0.16.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorcet", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "dask", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "multipledispatch", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numba", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "param", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pillow", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyct", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "requests", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "scipy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "toolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "xarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "colorcet", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "dask", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "multipledispatch", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numba", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "param", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pillow", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyct", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "requests", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "scipy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "xarray", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a0/15/3e28732b7ea0985929dd31612c073d5e49b99d67f6974de334ff81f22fb1/datashader-0.16.3.tar.gz", hash = "sha256:9d0040c7887f7a5a5edd374c297402fd208a62bf6845e87631b54f03b9ae479d", size = 35716446 } wheels = [ @@ -2858,7 +1001,7 @@ name = "deepdiff" version = "8.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "orderly-set", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "orderly-set", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/62/ba/aced1d6a7d988ca1b6f9b274faed7dafc7356a733e45a457819bddcf2dbc/deepdiff-8.0.1.tar.gz", hash = "sha256:245599a4586ab59bb599ca3517a9c42f3318ff600ded5e80a3432693c8ec3c4b", size = 427721 } wheels = [ @@ -2870,8 +1013,8 @@ name = "dependency-groups" version = "1.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b4/57/cd53c3e335eafbb0894449af078e2b71db47e9939ce2b45013e5a9fe89b7/dependency_groups-1.3.0.tar.gz", hash = "sha256:5b9751d5d98fbd6dfd038a560a69c8382e41afcbf7ffdbcc28a2a3f85498830f", size = 9832 } wheels = [ @@ -2883,9 +1026,9 @@ name = "devtools" version = "0.12.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "asttokens", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "executing", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pygments", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "asttokens", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "executing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pygments", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/84/75/b78198620640d394bc435c17bb49db18419afdd6cfa3ed8bcfe14034ec80/devtools-0.12.2.tar.gz", hash = "sha256:efceab184cb35e3a11fa8e602cc4fadacaa2e859e920fc6f87bf130b69885507", size = 75005 } wheels = [ @@ -2897,8 +1040,8 @@ name = "dict2css" version = "0.3.0.post1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cssutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "domdf-python-tools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cssutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "domdf-python-tools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/24/eb/776eef1f1aa0188c0fc165c3a60b71027539f71f2eedc43ad21b060e9c39/dict2css-0.3.0.post1.tar.gz", hash = "sha256:89c544c21c4ca7472c3fffb9d37d3d926f606329afdb751dc1de67a411b70719", size = 7845 } wheels = [ @@ -2937,21 +1080,21 @@ name = "distributed" version = "2024.11.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "cloudpickle", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "dask", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "locket", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "msgpack", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "psutil", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sortedcontainers", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tblib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "toolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tornado", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "urllib3", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "zict", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cloudpickle", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "dask", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "locket", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "msgpack", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "psutil", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sortedcontainers", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tblib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tornado", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "urllib3", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "zict", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ea/b5/f8b27f48694c11721e2bbed4eadfcc5fe399a083ee449113b2a2fcd962b6/distributed-2024.11.2.tar.gz", hash = "sha256:60e430ab9d438102535f342521bc2673db08fcd373a4474b042caf9fe9fcf990", size = 1113817 } wheels = [ @@ -2972,8 +1115,8 @@ name = "domdf-python-tools" version = "3.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "natsort", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "natsort", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/6b/78/974e10c583ba9d2302e748c9585313a7f2c7ba00e4f600324f432e38fe68/domdf_python_tools-3.9.0.tar.gz", hash = "sha256:1f8a96971178333a55e083e35610d7688cd7620ad2b99790164e1fc1a3614c18", size = 103792 } wheels = [ @@ -3012,7 +1155,7 @@ name = "factory-boy" version = "3.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "faker", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "faker", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/99/3d/8070dde623341401b1c80156583d4c793058fe250450178218bb6e45526c/factory_boy-3.3.1.tar.gz", hash = "sha256:8317aa5289cdfc45f9cae570feb07a6177316c82e34d14df3c2e1f22f26abef0", size = 163924 } wheels = [ @@ -3024,8 +1167,8 @@ name = "faker" version = "33.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "python-dateutil", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "python-dateutil", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/1e/9f/012fd6049fc86029951cba5112d32c7ba076c4290d7e8873b0413655b808/faker-33.1.0.tar.gz", hash = "sha256:1c925fc0e86a51fc46648b504078c88d0cd48da1da2595c4e712841cab43a1e4", size = 1850515 } wheels = [ @@ -3055,6 +1198,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bc/5d/d1f89b59f5b4b4710fd126e0df31ca4c58f46fc0a831058fc49010972d3d/fastrlock-0.8.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:08315bde19d0c2e6b06593d5a418be3dc8f9b1ee721afa96867b9853fceb45cf", size = 51280 }, { url = "https://files.pythonhosted.org/packages/d7/2d/99707885ce625d2a5deb0fcba3eaee86462914d05009ce04cf1cfa5bacd3/fastrlock-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e8b49b5743ede51e0bcf6805741f39f5e0e0fd6a172ba460cb39e3097ba803bb", size = 51646 }, { url = "https://files.pythonhosted.org/packages/3d/a3/cc2412acb468e0c59f966de22ea90e8b51f6e6e305251a2d94432a437575/fastrlock-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b443e73a4dfc7b6e0800ea4c13567b9694358e86f53bb2612a51c9e727cac67b", size = 51105 }, + { url = "https://files.pythonhosted.org/packages/72/26/3f773629d6367ef4764e0c77e6771bf0dc6390daf753e090947ea9c56a75/fastrlock-0.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:b3853ed4ce522598dc886160a7bab432a093051af85891fa2f5577c1dcac8ed6", size = 29775 }, { url = "https://files.pythonhosted.org/packages/1c/0e/2324d71832db47e2949f846e80f79a1391a5cb79661cb1111eb23c27c8d4/fastrlock-0.8.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:790fc19bccbd39426060047e53629f171a44745613bf360a045e9f9c8c4a2cea", size = 54924 }, { url = "https://files.pythonhosted.org/packages/92/d3/3fce38d4ed16db0936cc39fc7ea06ea0c2398d7033a37e49880edd0a8ca6/fastrlock-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:dbdce852e6bb66e1b8c36679d482971d69d93acf1785657522e51b7de30c3356", size = 48232 }, { url = "https://files.pythonhosted.org/packages/ba/51/d66763b993d4f2bbd816fc37f42b78e9b45e98fc0c141bc8605ce0a21c9d/fastrlock-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d47713ffe6d4a627fbf078be9836a95ac106b4a0543e3841572c91e292a5d885", size = 51531 }, @@ -3063,11 +1207,13 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7f/8a/24067b0c3e5a0896dbe5e1e547ae176f25b94ce38e21020d1bf78d18d3ba/fastrlock-0.8.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:75c07726c8b1a52147fd7987d6baaa318c5dced1416c3f25593e40f56e10755b", size = 52581 }, { url = "https://files.pythonhosted.org/packages/36/af/0f0dd7cfc7b202870a6d520b19f8d378ee638cd2b732a330bb16bcc8bc4b/fastrlock-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:88f079335e9da631efa64486c8207564a7bcd0c00526bb9e842e9d5b7e50a6cc", size = 52779 }, { url = "https://files.pythonhosted.org/packages/8e/ee/1ad545f904ad8cd1ce7598b5af501148749a65dff8b9a7498cf7ceedafbb/fastrlock-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4fb2e77ff04bc4beb71d63c8e064f052ce5a6ea1e001d528d4d7f4b37d736f2e", size = 52185 }, + { url = "https://files.pythonhosted.org/packages/1d/6d/ccd8fce45a3a724a1682ebe4dc70f00a274e2a178852595298a1c43d70d4/fastrlock-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:b4c9083ea89ab236b06e9ef2263971db3b4b507195fc7d5eecab95828dcae325", size = 29926 }, { url = "https://files.pythonhosted.org/packages/0d/54/b7c516be2039a4aabc4fbbc5d0346b9c4d878222346f7b37b85ae3624590/fastrlock-0.8.2-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:98195866d3a9949915935d40a88e4f1c166e82e378f622c88025f2938624a90a", size = 55286 }, { url = "https://files.pythonhosted.org/packages/21/02/fe8f8e38cb875d1a882ef44bbc181310fde55cdb9046058f150d09c2af9b/fastrlock-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b22ea9bf5f9fad2b0077e944a7813f91593a4f61adf8faf734a70aed3f2b3a40", size = 50652 }, { url = "https://files.pythonhosted.org/packages/3e/ca/16355012a2a5a029a524fd1eb8496eb43190f0e35f623a793ef73e16eb40/fastrlock-0.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc1bf0ac8a194313cf6e645e300a8a379674ceed8e0b1e910a2de3e3c28989e", size = 52435 }, { url = "https://files.pythonhosted.org/packages/e1/a5/a853ca4c0da19d98664ecc36e8104931f63a67e33dd187cb91848783ca94/fastrlock-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a3dcc876050b8f5cbc0ee84ef1e7f0c1dfe7c148f10098828bc4403683c33f10", size = 51501 }, { url = "https://files.pythonhosted.org/packages/10/84/7ee1705e4079f5eb54bf46d3a7eadf5b684fc2a8dce18a1df013c2d41c55/fastrlock-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:685e656048b59d8dfde8c601f188ad53a4d719eb97080cafc8696cda6d75865e", size = 52527 }, + { url = "https://files.pythonhosted.org/packages/f9/c0/c64e37a5b79966df6110942629dc483ffdeb6062f91afbdb60f848ddfbd1/fastrlock-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:fb5363cf0fddd9b50525ddbf64a1e1b28ec4c6dfb28670a940cb1cf988a6786b", size = 30150 }, ] [[package]] @@ -3084,12 +1230,12 @@ name = "flox" version = "0.9.15" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy-groupies", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "scipy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "toolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy-groupies", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "scipy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f0/25/de8d971737b1819a97f8867c1346f89c6cadd06979bbd35a22e0b2628b23/flox-0.9.15.tar.gz", hash = "sha256:99befd8bb26951e88db993649d577ac27009f5a1e31a8c1aab5d794fab55d75a", size = 704669 } wheels = [ @@ -3108,24 +1254,32 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c4/03/8136887d1b0b7a9831c7e8e2598c0e5851e31cc2231295769350349a236b/fonttools-4.55.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31d00f9852a6051dac23294a4cf2df80ced85d1d173a61ba90a3d8f5abc63c60", size = 4633411 }, { url = "https://files.pythonhosted.org/packages/a7/37/86ac06a7505e57de2daaf0a1cc885b7767c74d376ef2cf82933e8ef79399/fonttools-4.55.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e198e494ca6e11f254bac37a680473a311a88cd40e58f9cc4dc4911dfb686ec6", size = 4572887 }, { url = "https://files.pythonhosted.org/packages/0d/85/1e429359d1842a104b638433587ff62d9dc8339a8c467787087962502a53/fonttools-4.55.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7208856f61770895e79732e1dcbe49d77bd5783adf73ae35f87fcc267df9db81", size = 4745036 }, + { url = "https://files.pythonhosted.org/packages/81/65/763ac1fe2a3e52220f7a7fd2a5de0c784045e773aa9d299450019ac66f9e/fonttools-4.55.0-cp310-cp310-win32.whl", hash = "sha256:e7e6a352ff9e46e8ef8a3b1fe2c4478f8a553e1b5a479f2e899f9dc5f2055880", size = 2170126 }, + { url = "https://files.pythonhosted.org/packages/3e/67/93939482715e629c4bd6fd1f3d154c1bf45b81ee383f50e44d31fa542f83/fonttools-4.55.0-cp310-cp310-win_amd64.whl", hash = "sha256:636caaeefe586d7c84b5ee0734c1a5ab2dae619dc21c5cf336f304ddb8f6001b", size = 2213882 }, { url = "https://files.pythonhosted.org/packages/17/50/75461e050ded02b9eaa8097df52c2a8752cf4c24db8b44b150755b76c8f1/fonttools-4.55.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fa34aa175c91477485c44ddfbb51827d470011e558dfd5c7309eb31bef19ec51", size = 2771444 }, { url = "https://files.pythonhosted.org/packages/de/5e/98130db3770e8d12f70aa61f2555c32284d4e9c592862469d32b7ee48626/fonttools-4.55.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:37dbb3fdc2ef7302d3199fb12468481cbebaee849e4b04bc55b77c24e3c49189", size = 2296439 }, { url = "https://files.pythonhosted.org/packages/17/35/36fe271296fe7624811f5261a0662155e075b43b79ffacea85a03f36593d/fonttools-4.55.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5263d8e7ef3c0ae87fbce7f3ec2f546dc898d44a337e95695af2cd5ea21a967", size = 4883141 }, { url = "https://files.pythonhosted.org/packages/47/2b/9bf7527260d265281dd812951aa22f3d1c331bcc91e86e7038dc6b9737cb/fonttools-4.55.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f307f6b5bf9e86891213b293e538d292cd1677e06d9faaa4bf9c086ad5f132f6", size = 4931050 }, { url = "https://files.pythonhosted.org/packages/0b/7b/7324d3aa8424c71b63ba2e76eb4a46d6947e23065996e755c1682e666f42/fonttools-4.55.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f0a4b52238e7b54f998d6a56b46a2c56b59c74d4f8a6747fb9d4042190f37cd3", size = 4894154 }, { url = "https://files.pythonhosted.org/packages/2c/53/a54926be69e43d277877106a6cbfab467cb02f9c756258c7c9932e8eb382/fonttools-4.55.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3e569711464f777a5d4ef522e781dc33f8095ab5efd7548958b36079a9f2f88c", size = 5064715 }, + { url = "https://files.pythonhosted.org/packages/0c/f7/9602868af9a2dfc4659637a752da8691655e81a2d6138231dcaa1efe8840/fonttools-4.55.0-cp311-cp311-win32.whl", hash = "sha256:2b3ab90ec0f7b76c983950ac601b58949f47aca14c3f21eed858b38d7ec42b05", size = 2169536 }, + { url = "https://files.pythonhosted.org/packages/30/57/9e2ddd16ad84ab26616ae4346b3b15e9a50669ca1b442cbe760af073807c/fonttools-4.55.0-cp311-cp311-win_amd64.whl", hash = "sha256:aa046f6a63bb2ad521004b2769095d4c9480c02c1efa7d7796b37826508980b6", size = 2215265 }, { url = "https://files.pythonhosted.org/packages/ec/79/38209f8f6235021b6209147ec7b2f748afde65c59c6274ac96fef3912094/fonttools-4.55.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:838d2d8870f84fc785528a692e724f2379d5abd3fc9dad4d32f91cf99b41e4a7", size = 2765205 }, { url = "https://files.pythonhosted.org/packages/e3/07/434a21eab80524613c9753db2ff21d6bc3cf264412d8833a85022fd39088/fonttools-4.55.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f46b863d74bab7bb0d395f3b68d3f52a03444964e67ce5c43ce43a75efce9246", size = 2293908 }, { url = "https://files.pythonhosted.org/packages/c8/63/aa3274d9be36aaaef8c087e413cbc1dd682ff94776a82c111bad88482947/fonttools-4.55.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33b52a9cfe4e658e21b1f669f7309b4067910321757fec53802ca8f6eae96a5a", size = 4795901 }, { url = "https://files.pythonhosted.org/packages/fc/0b/dbe13f2c8d745ffdf5c2bc25391263927d4ec2b927e44d5d5f70cd372873/fonttools-4.55.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:732a9a63d6ea4a81b1b25a1f2e5e143761b40c2e1b79bb2b68e4893f45139a40", size = 4879252 }, { url = "https://files.pythonhosted.org/packages/46/85/eefb400ec66e9e7c159d13c72aba473d9c2a0c556d812b0916418aa9019e/fonttools-4.55.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7dd91ac3fcb4c491bb4763b820bcab6c41c784111c24172616f02f4bc227c17d", size = 4773177 }, { url = "https://files.pythonhosted.org/packages/93/75/f06d175df4d7dbad97061c8698210ce4231cce9aa56cc263f3b6b5340540/fonttools-4.55.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1f0e115281a32ff532118aa851ef497a1b7cda617f4621c1cdf81ace3e36fb0c", size = 5032809 }, + { url = "https://files.pythonhosted.org/packages/78/eb/f3520ba63b5e4a034f2bfd34d8ab32eb95a1bf37a1f792ea48461fba08f6/fonttools-4.55.0-cp312-cp312-win32.whl", hash = "sha256:6c99b5205844f48a05cb58d4a8110a44d3038c67ed1d79eb733c4953c628b0f6", size = 2157762 }, + { url = "https://files.pythonhosted.org/packages/aa/d1/5f007861cab890f2a35a19a1d2a2815655ec10b0ea7fd881b1d3aaab0076/fonttools-4.55.0-cp312-cp312-win_amd64.whl", hash = "sha256:f8c8c76037d05652510ae45be1cd8fb5dd2fd9afec92a25374ac82255993d57c", size = 2203746 }, { url = "https://files.pythonhosted.org/packages/c3/87/a669ac26c6077e37ffb06abf29c5571789eefe518d06c52df392181ee694/fonttools-4.55.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8118dc571921dc9e4b288d9cb423ceaf886d195a2e5329cc427df82bba872cd9", size = 2752519 }, { url = "https://files.pythonhosted.org/packages/0c/e9/4822ad238fe215133c7df20f1cdb1a58cfb634a31523e77ff0fb2033970a/fonttools-4.55.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01124f2ca6c29fad4132d930da69158d3f49b2350e4a779e1efbe0e82bd63f6c", size = 2286819 }, { url = "https://files.pythonhosted.org/packages/3e/a4/d7941c3897129e60fe68d20e4819fda4d0c4858d77badae0e80ca6440b36/fonttools-4.55.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ffd58d2691f11f7c8438796e9f21c374828805d33e83ff4b76e4635633674c", size = 4770382 }, { url = "https://files.pythonhosted.org/packages/31/cf/c51ea1348f9fba9c627439afad9dee0090040809ab431f4422b5bfdda34c/fonttools-4.55.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5435e5f1eb893c35c2bc2b9cd3c9596b0fcb0a59e7a14121562986dd4c47b8dd", size = 4858336 }, { url = "https://files.pythonhosted.org/packages/73/be/36c1fe0e5c9a96b068ddd7e82001243bbe7fe12549c8d14e1bd025bf40c9/fonttools-4.55.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d12081729280c39d001edd0f4f06d696014c26e6e9a0a55488fabc37c28945e4", size = 4756072 }, { url = "https://files.pythonhosted.org/packages/5c/18/6dd381c29f215a017f79aa9fea0722424a0046b47991c4390a78ff87ce0c/fonttools-4.55.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7ad1f1b98ab6cb927ab924a38a8649f1ffd7525c75fe5b594f5dab17af70e18", size = 5008668 }, + { url = "https://files.pythonhosted.org/packages/b8/95/316f20092b389b927dba1d1dccd3f541853f96e707e210f1b9f4e7bacdd5/fonttools-4.55.0-cp313-cp313-win32.whl", hash = "sha256:abe62987c37630dca69a104266277216de1023cf570c1643bb3a19a9509e7a1b", size = 2155841 }, + { url = "https://files.pythonhosted.org/packages/35/ca/b4638aa3e446184892e2f9cc8ef44bb506f47fea04580df7fb84f5a4363d/fonttools-4.55.0-cp313-cp313-win_amd64.whl", hash = "sha256:2863555ba90b573e4201feaf87a7e71ca3b97c05aa4d63548a4b69ea16c9e998", size = 2200587 }, { url = "https://files.pythonhosted.org/packages/b4/4a/786589606d4989cb34d8bc766cd687d955aaf3039c367fe7104bcf82dc98/fonttools-4.55.0-py3-none-any.whl", hash = "sha256:12db5888cd4dd3fcc9f0ee60c6edd3c7e1fd44b7dd0f31381ea03df68f8a153f", size = 1100249 }, ] @@ -3134,7 +1288,7 @@ name = "fparser" version = "0.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "setuptools-scm", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "setuptools-scm", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f6/af/570c36d7bc374646ab82f579e2bf9d24a619cc53d83f95b38b0992de3492/fparser-0.2.0.tar.gz", hash = "sha256:3901d31c104062c4e532248286929e7405e43b79a6a85815146a176673e69c82", size = 433559 } wheels = [ @@ -3146,7 +1300,7 @@ name = "fprettify" version = "0.3.7" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "configargparse", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "configargparse", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/39/15/d88681bd2be4a375a78b52443b8e87608240913623d9be5c47e3c328b068/fprettify-0.3.7.tar.gz", hash = "sha256:1488a813f7e60a9e86c56fd0b82bd9df1b75bfb4bf2ee8e433c12f63b7e54057", size = 29639 } wheels = [ @@ -3165,6 +1319,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/46/a6/34c760975e6f1cb4db59a990d58dcf22287e10241c851804670c74c6a27a/frozendict-2.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da6a10164c8a50b34b9ab508a9420df38f4edf286b9ca7b7df8a91767baecb34", size = 117444 }, { url = "https://files.pythonhosted.org/packages/62/dd/64bddd1ffa9617f50e7e63656b2a7ad7f0a46c86b5f4a3d2c714d0006277/frozendict-2.4.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9a8a43036754a941601635ea9c788ebd7a7efbed2becba01b54a887b41b175b9", size = 116801 }, { url = "https://files.pythonhosted.org/packages/45/ae/af06a8bde1947277aad895c2f26c3b8b8b6ee9c0c2ad988fb58a9d1dde3f/frozendict-2.4.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c9905dcf7aa659e6a11b8051114c9fa76dfde3a6e50e6dc129d5aece75b449a2", size = 117329 }, + { url = "https://files.pythonhosted.org/packages/d2/df/be3fa0457ff661301228f4c59c630699568c8ed9b5480f113b3eea7d0cb3/frozendict-2.4.6-cp310-cp310-win_amd64.whl", hash = "sha256:323f1b674a2cc18f86ab81698e22aba8145d7a755e0ac2cccf142ee2db58620d", size = 37522 }, + { url = "https://files.pythonhosted.org/packages/4a/6f/c22e0266b4c85f58b4613fec024e040e93753880527bf92b0c1bc228c27c/frozendict-2.4.6-cp310-cp310-win_arm64.whl", hash = "sha256:eabd21d8e5db0c58b60d26b4bb9839cac13132e88277e1376970172a85ee04b3", size = 34056 }, { url = "https://files.pythonhosted.org/packages/04/13/d9839089b900fa7b479cce495d62110cddc4bd5630a04d8469916c0e79c5/frozendict-2.4.6-py311-none-any.whl", hash = "sha256:d065db6a44db2e2375c23eac816f1a022feb2fa98cbb50df44a9e83700accbea", size = 16148 }, { url = "https://files.pythonhosted.org/packages/ba/d0/d482c39cee2ab2978a892558cf130681d4574ea208e162da8958b31e9250/frozendict-2.4.6-py312-none-any.whl", hash = "sha256:49344abe90fb75f0f9fdefe6d4ef6d4894e640fadab71f11009d52ad97f370b9", size = 16146 }, { url = "https://files.pythonhosted.org/packages/a5/8e/b6bf6a0de482d7d7d7a2aaac8fdc4a4d0bb24a809f5ddd422aa7060eb3d2/frozendict-2.4.6-py313-none-any.whl", hash = "sha256:7134a2bb95d4a16556bb5f2b9736dceb6ea848fa5b6f3f6c2d6dba93b44b4757", size = 16146 }, @@ -3184,8 +1340,8 @@ name = "ghex" version = "0.3.0" source = { git = "https://github.com/ghex-org/GHEX.git?subdirectory=bindings%2Fpython&branch=master#a078eb3a5e6baabed6202a94848d91a047ce142d" } dependencies = [ - { name = "mpi4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mpi4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [[package]] @@ -3193,7 +1349,7 @@ name = "gitdb" version = "4.0.11" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "smmap", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "smmap", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/19/0d/bbb5b5ee188dec84647a4664f3e11b06ade2bde568dbd489d9d64adef8ed/gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b", size = 394469 } wheels = [ @@ -3205,7 +1361,7 @@ name = "gitpython" version = "3.1.43" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "gitdb", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gitdb", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b6/a1/106fd9fa2dd989b6fb36e5893961f82992cf676381707253e0bf93eb1662/GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c", size = 214149 } wheels = [ @@ -3225,37 +1381,37 @@ name = "gt4py" version = "1.0.4" source = { git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113#5ce0d9d9c569c7172dd2284a45bf67ff1ba68b31" } dependencies = [ - { name = "attrs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "black", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "boltons", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "cached-property", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "cmake", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "cytoolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "deepdiff", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "devtools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "diskcache", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "factory-boy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "frozendict", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "gridtools-cpp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "lark", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "mako", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "nanobind", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "ninja", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pybind11", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "setuptools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tabulate", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "xxhash", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "attrs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "black", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "boltons", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cached-property", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cmake", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cytoolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "deepdiff", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "devtools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "diskcache", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "factory-boy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "frozendict", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "gridtools-cpp", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "lark", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "mako", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "nanobind", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "ninja", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pybind11", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "setuptools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tabulate", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "xxhash", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.optional-dependencies] dace = [ - { name = "dace", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sympy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "dace", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sympy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [[package]] @@ -3263,8 +1419,8 @@ name = "h5netcdf" version = "1.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "h5py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "h5py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d7/5d/d2ec815d797cd9f060f9791cc71223814f2830abcb2f7854a574c26225fb/h5netcdf-1.4.1.tar.gz", hash = "sha256:7c8401ab807ff37c9798edc90d99467595892e6c541a5d5abeb8f53aab5335fe", size = 64647 } wheels = [ @@ -3276,7 +1432,7 @@ name = "h5py" version = "3.12.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cc/0c/5c2b0a88158682aeafb10c1c2b735df5bc31f165bfe192f2ee9f2a23b5f1/h5py-3.12.1.tar.gz", hash = "sha256:326d70b53d31baa61f00b8aa5f95c2fcb9621a3ee8365d770c551a13dbbcbfdf", size = 411457 } wheels = [ @@ -3284,18 +1440,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/29/a7/3c2a33fba1da64a0846744726fd067a92fb8abb887875a0dd8e3bac8b45d/h5py-3.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cb65f619dfbdd15e662423e8d257780f9a66677eae5b4b3fc9dca70b5fd2d2a3", size = 2866436 }, { url = "https://files.pythonhosted.org/packages/1e/d0/4bf67c3937a2437c20844165766ddd1a1817ae6b9544c3743050d8e0f403/h5py-3.12.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b15d8dbd912c97541312c0e07438864d27dbca857c5ad634de68110c6beb1c2", size = 5168596 }, { url = "https://files.pythonhosted.org/packages/85/bc/e76f4b2096e0859225f5441d1b7f5e2041fffa19fc2c16756c67078417aa/h5py-3.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59685fe40d8c1fbbee088c88cd4da415a2f8bee5c270337dc5a1c4aa634e3307", size = 5341537 }, + { url = "https://files.pythonhosted.org/packages/99/bd/fb8ed45308bb97e04c02bd7aed324ba11e6a4bf9ed73967ca2a168e9cf92/h5py-3.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:577d618d6b6dea3da07d13cc903ef9634cde5596b13e832476dd861aaf651f3e", size = 2990575 }, { url = "https://files.pythonhosted.org/packages/33/61/c463dc5fc02fbe019566d067a9d18746cd3c664f29c9b8b3c3f9ed025365/h5py-3.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ccd9006d92232727d23f784795191bfd02294a4f2ba68708825cb1da39511a93", size = 3410828 }, { url = "https://files.pythonhosted.org/packages/95/9d/eb91a9076aa998bb2179d6b1788055ea09cdf9d6619cd967f1d3321ed056/h5py-3.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ad8a76557880aed5234cfe7279805f4ab5ce16b17954606cca90d578d3e713ef", size = 2872586 }, { url = "https://files.pythonhosted.org/packages/b0/62/e2b1f9723ff713e3bd3c16dfeceec7017eadc21ef063d8b7080c0fcdc58a/h5py-3.12.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1473348139b885393125126258ae2d70753ef7e9cec8e7848434f385ae72069e", size = 5273038 }, { url = "https://files.pythonhosted.org/packages/e1/89/118c3255d6ff2db33b062ec996a762d99ae50c21f54a8a6047ae8eda1b9f/h5py-3.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:018a4597f35092ae3fb28ee851fdc756d2b88c96336b8480e124ce1ac6fb9166", size = 5452688 }, + { url = "https://files.pythonhosted.org/packages/1d/4d/cbd3014eb78d1e449b29beba1f3293a841aa8086c6f7968c383c2c7ff076/h5py-3.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:3fdf95092d60e8130ba6ae0ef7a9bd4ade8edbe3569c13ebbaf39baefffc5ba4", size = 3006095 }, { url = "https://files.pythonhosted.org/packages/d4/e1/ea9bfe18a3075cdc873f0588ff26ce394726047653557876d7101bf0c74e/h5py-3.12.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:06a903a4e4e9e3ebbc8b548959c3c2552ca2d70dac14fcfa650d9261c66939ed", size = 3372538 }, { url = "https://files.pythonhosted.org/packages/0d/74/1009b663387c025e8fa5f3ee3cf3cd0d99b1ad5c72eeb70e75366b1ce878/h5py-3.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7b3b8f3b48717e46c6a790e3128d39c61ab595ae0a7237f06dfad6a3b51d5351", size = 2868104 }, { url = "https://files.pythonhosted.org/packages/af/52/c604adc06280c15a29037d4aa79a24fe54d8d0b51085e81ed24b2fa995f7/h5py-3.12.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:050a4f2c9126054515169c49cb900949814987f0c7ae74c341b0c9f9b5056834", size = 5194606 }, { url = "https://files.pythonhosted.org/packages/fa/63/eeaacff417b393491beebabb8a3dc5342950409eb6d7b39d437289abdbae/h5py-3.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c4b41d1019322a5afc5082864dfd6359f8935ecd37c11ac0029be78c5d112c9", size = 5413256 }, + { url = "https://files.pythonhosted.org/packages/86/f7/bb465dcb92ca3521a15cbe1031f6d18234dbf1fb52a6796a00bfaa846ebf/h5py-3.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:e4d51919110a030913201422fb07987db4338eba5ec8c5a15d6fab8e03d443fc", size = 2993055 }, { url = "https://files.pythonhosted.org/packages/23/1c/ecdd0efab52c24f2a9bf2324289828b860e8dd1e3c5ada3cf0889e14fdc1/h5py-3.12.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:513171e90ed92236fc2ca363ce7a2fc6f2827375efcbb0cc7fbdd7fe11fecafc", size = 3346239 }, { url = "https://files.pythonhosted.org/packages/93/cd/5b6f574bf3e318bbe305bc93ba45181676550eb44ba35e006d2e98004eaa/h5py-3.12.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:59400f88343b79655a242068a9c900001a34b63e3afb040bd7cdf717e440f653", size = 2843416 }, { url = "https://files.pythonhosted.org/packages/8a/4f/b74332f313bfbe94ba03fff784219b9db385e6139708e55b11490149f90a/h5py-3.12.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3e465aee0ec353949f0f46bf6c6f9790a2006af896cee7c178a8c3e5090aa32", size = 5154390 }, { url = "https://files.pythonhosted.org/packages/1a/57/93ea9e10a6457ea8d3b867207deb29a527e966a08a84c57ffd954e32152a/h5py-3.12.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba51c0c5e029bb5420a343586ff79d56e7455d496d18a30309616fdbeed1068f", size = 5378244 }, + { url = "https://files.pythonhosted.org/packages/50/51/0bbf3663062b2eeee78aa51da71e065f8a0a6e3cb950cc7020b4444999e6/h5py-3.12.1-cp313-cp313-win_amd64.whl", hash = "sha256:52ab036c6c97055b85b2a242cb540ff9590bacfda0c03dd0cf0661b311f522f8", size = 2979760 }, ] [[package]] @@ -3303,14 +1463,14 @@ name = "holoviews" version = "1.20.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "bokeh", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "colorcet", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "panel", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "param", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyviz-comms", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "bokeh", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "colorcet", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "panel", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "param", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyviz-comms", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/9b/6d/460e318557121a3d22fa1dd60db44cac7357cf83a2890b2f781a91b5be25/holoviews-1.20.0.tar.gz", hash = "sha256:29d183045fafa3d846deda999d9687b99b8abdc1a8c06712e54afa576bb02b3e", size = 4590760 } wheels = [ @@ -3322,8 +1482,8 @@ name = "html5lib" version = "1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "six", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "webencodings", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "six", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "webencodings", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ac/b6/b55c3f49042f1df3dcd422b7f224f939892ee94f22abcf503a9b7339eaf2/html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f", size = 272215 } wheels = [ @@ -3333,109 +1493,112 @@ wheels = [ [[package]] name = "icon4py" version = "0.0.6" -source = { virtual = "." } +source = { editable = "." } dependencies = [ - { name = "icon4py-atmosphere-advection", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-atmosphere-diffusion", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-atmosphere-dycore", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-atmosphere-subgrid-scale-physics-microphysics", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-driver", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-testing", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-atmosphere-advection", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-atmosphere-diffusion", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-atmosphere-dycore", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-atmosphere-subgrid-scale-physics-microphysics", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-driver", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.optional-dependencies] all = [ - { name = "dace", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", extra = ["dace", "distributed", "io"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4pytools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "dace", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", extra = ["dace", "distributed", "io"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-testing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4pytools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] dace = [ - { name = "dace", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", extra = ["dace"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "dace", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", extra = ["dace"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] distributed = [ - { name = "icon4py-common", extra = ["distributed"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", extra = ["distributed"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -integration = [ - { name = "icon4pytools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +fortran = [ + { name = "icon4pytools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] io = [ - { name = "icon4py-common", extra = ["io"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "icon4py-common", extra = ["io"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, +] +testing = [ + { name = "icon4py-testing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.dev-dependencies] build = [ - { name = "bump-my-version", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pip", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "setuptools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "wget", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "wheel", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "bump-my-version", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pip", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "setuptools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "wget", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "wheel", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] dev = [ - { name = "bump-my-version", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "coverage", extra = ["toml"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "mypy", extra = ["faster-cache"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "myst-parser", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "nox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pip", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pre-commit", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest-benchmark", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest-cache", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest-cov", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest-factoryboy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest-mpi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest-xdist", extra = ["psutil"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "ruff", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "setuptools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx-math-dollar", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx-rtd-theme", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx-toolbox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tach", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "texsoup", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "types-cffi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "wget", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "wheel", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "bump-my-version", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "coverage", extra = ["toml"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "mypy", extra = ["faster-cache"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "myst-parser", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "nox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pip", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pre-commit", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest-benchmark", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest-cache", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest-cov", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest-factoryboy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest-mpi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest-xdist", extra = ["psutil"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "ruff", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "setuptools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx-math-dollar", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx-rtd-theme", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx-toolbox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tach", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "texsoup", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "types-cffi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "wget", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "wheel", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] docs = [ - { name = "myst-parser", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx-math-dollar", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx-rtd-theme", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx-toolbox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "texsoup", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "myst-parser", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx-math-dollar", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx-rtd-theme", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx-toolbox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "texsoup", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] lint = [ - { name = "pre-commit", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "ruff", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tach", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pre-commit", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "ruff", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tach", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] test = [ - { name = "coverage", extra = ["toml"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "nox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest-benchmark", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest-cache", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest-cov", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest-factoryboy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest-mpi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest-xdist", extra = ["psutil"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "coverage", extra = ["toml"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "nox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest-benchmark", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest-cache", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest-cov", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest-factoryboy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest-mpi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest-xdist", extra = ["psutil"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] typing = [ - { name = "mypy", extra = ["faster-cache"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "types-cffi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mypy", extra = ["faster-cache"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "types-cffi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] requires-dist = [ { name = "dace", marker = "extra == 'dace'", specifier = "<1.0" }, - { name = "icon4py", extras = ["dace", "distributed", "integration", "io"], marker = "extra == 'all'" }, + { name = "icon4py", extras = ["dace", "distributed", "fortran", "io", "testing"], marker = "extra == 'all'" }, { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, @@ -3445,8 +1608,8 @@ requires-dist = [ { name = "icon4py-common", extras = ["distributed"], marker = "extra == 'distributed'", editable = "model/common" }, { name = "icon4py-common", extras = ["io"], marker = "extra == 'io'", editable = "model/common" }, { name = "icon4py-driver", editable = "model/driver" }, - { name = "icon4py-testing", editable = "model/testing" }, - { name = "icon4pytools", marker = "extra == 'integration'", editable = "tools" }, + { name = "icon4py-testing", marker = "extra == 'testing'", editable = "model/testing" }, + { name = "icon4pytools", marker = "extra == 'fortran'", editable = "tools" }, ] [package.metadata.requires-dev] @@ -3522,8 +1685,8 @@ name = "icon4py-atmosphere-advection" version = "0.0.6" source = { editable = "model/atmosphere/advection" } dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] @@ -3537,8 +1700,8 @@ name = "icon4py-atmosphere-diffusion" version = "0.0.6" source = { editable = "model/atmosphere/diffusion" } dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] @@ -3552,8 +1715,8 @@ name = "icon4py-atmosphere-dycore" version = "0.0.6" source = { editable = "model/atmosphere/dycore" } dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] @@ -3567,8 +1730,8 @@ name = "icon4py-atmosphere-subgrid-scale-physics-microphysics" version = "0.0.6" source = { editable = "model/atmosphere/subgrid_scale_physics/microphysics" } dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] @@ -3582,57 +1745,67 @@ name = "icon4py-common" version = "0.0.6" source = { editable = "model/common" } dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "serialbox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "serialbox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.optional-dependencies] all = [ - { name = "cartopy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "datashader", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "ghex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "gt4py", extra = ["dace"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "holoviews", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "mpi4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "scikit-learn", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "uxarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "xarray", extra = ["complete"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cartopy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cftime", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "datashader", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "ghex", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "gt4py", extra = ["dace"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "holoviews", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "mpi4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "netcdf4", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "scikit-learn", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "uxarray", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "xarray", extra = ["complete"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] dace = [ - { name = "gt4py", extra = ["dace"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gt4py", extra = ["dace"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] distributed = [ - { name = "ghex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "mpi4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "ghex", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "mpi4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] io = [ - { name = "cartopy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "datashader", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "holoviews", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "scikit-learn", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "uxarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "xarray", extra = ["complete"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cartopy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cftime", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "datashader", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "holoviews", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "netcdf4", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "scikit-learn", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "uxarray", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "xarray", extra = ["complete"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] netcdf = [ - { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "netcdf4", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] requires-dist = [ { name = "cartopy", marker = "extra == 'io'", specifier = ">=0.22.0" }, + { name = "cftime", marker = "extra == 'io'", specifier = ">=1.6.3" }, { name = "datashader", marker = "extra == 'io'", specifier = ">=0.16.1" }, { name = "ghex", marker = "extra == 'distributed'", git = "https://github.com/ghex-org/GHEX.git?subdirectory=bindings%2Fpython&branch=master" }, { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "gt4py", extras = ["dace"], marker = "extra == 'dace'", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "holoviews", marker = "extra == 'io'", specifier = ">=1.16.0" }, - { name = "icon4py-common", extras = ["dace", "distributed", "io"], marker = "extra == 'all'", editable = "model/common" }, + { name = "icon4py-common", extras = ["distributed", "io", "dace"], marker = "extra == 'all'", editable = "model/common" }, { name = "icon4py-common", extras = ["netcdf"], marker = "extra == 'io'", editable = "model/common" }, { name = "mpi4py", marker = "extra == 'distributed'", specifier = ">=3.1.5" }, { name = "netcdf4", marker = "extra == 'netcdf'", specifier = ">=1.6.1" }, + { name = "numpy", marker = "extra == 'io'", specifier = ">=1.23.3" }, + { name = "packaging", specifier = ">=20.0" }, { name = "scikit-learn", marker = "extra == 'io'", specifier = ">=1.4.0" }, { name = "serialbox", git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python" }, + { name = "typing-extensions", specifier = ">=4.11.0" }, { name = "uxarray", marker = "extra == 'io'", specifier = "==2024.3.0" }, { name = "xarray", extras = ["complete"], marker = "extra == 'io'", specifier = ">=2024.3.0" }, ] @@ -3642,10 +1815,10 @@ name = "icon4py-driver" version = "0.0.6" source = { editable = "model/driver" } dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-atmosphere-diffusion", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-atmosphere-dycore", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-atmosphere-diffusion", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-atmosphere-dycore", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] @@ -3661,18 +1834,22 @@ name = "icon4py-testing" version = "0.0.6" source = { editable = "model/testing" } dependencies = [ - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", extra = ["netcdf"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "serialbox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", extra = ["netcdf"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "serialbox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] requires-dist = [ { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "icon4py-common", extras = ["netcdf"], editable = "model/common" }, - { name = "numpy", specifier = ">1.24.0" }, + { name = "numpy", specifier = ">=1.23.3" }, + { name = "packaging", specifier = ">=20.0" }, + { name = "pytest", specifier = ">=8.0.1" }, { name = "serialbox", git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python" }, { name = "typing-extensions", specifier = ">=4.11.0" }, ] @@ -3682,22 +1859,23 @@ name = "icon4pytools" version = "0.0.6" source = { editable = "tools" } dependencies = [ - { name = "cffi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "fprettify", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "gt4py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-atmosphere-advection", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-atmosphere-diffusion", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-atmosphere-dycore", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "icon4py-common", extra = ["netcdf"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tabulate", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cffi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "fprettify", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-atmosphere-advection", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-atmosphere-diffusion", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-atmosphere-dycore", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", extra = ["netcdf"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.optional-dependencies] cupy11 = [ - { name = "cupy-cuda11x", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cupy-cuda11x", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] cupy12 = [ - { name = "cupy-cuda12x", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cupy-cuda12x", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] @@ -3711,7 +1889,8 @@ requires-dist = [ { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, { name = "icon4py-common", extras = ["netcdf"], editable = "model/common" }, - { name = "tabulate", specifier = ">=0.8.9" }, + { name = "numpy", specifier = ">=1.23.3" }, + { name = "packaging", specifier = ">=20.0" }, ] [[package]] @@ -3746,7 +1925,7 @@ name = "importlib-metadata" version = "8.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp", marker = "(python_full_version < '3.12' and sys_platform == 'darwin') or (python_full_version < '3.12' and sys_platform == 'linux')" }, + { name = "zipp", marker = "python_full_version < '3.12' and implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } wheels = [ @@ -3776,7 +1955,7 @@ name = "jinja2" version = "3.1.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "markupsafe", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "markupsafe", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", size = 240245 } wheels = [ @@ -3811,6 +1990,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/26/f6/453d1904c52ac3b400f4d5e240ac5fec25263716723e44be65f4d7149d13/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8f0ea6da6d393d8b2e187e6a5e3fb81f5862010a40c3945e2c6d12ae45cfb2ad", size = 2308688 }, { url = "https://files.pythonhosted.org/packages/5a/9a/d4968499441b9ae187e81745e3277a8b4d7c60840a52dc9d535a7909fac3/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f106407dda69ae456dd1227966bf445b157ccc80ba0dff3802bb63f30b74e895", size = 2445493 }, { url = "https://files.pythonhosted.org/packages/07/c9/032267192e7828520dacb64dfdb1d74f292765f179e467c1cba97687f17d/kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84ec80df401cfee1457063732d90022f93951944b5b58975d34ab56bb150dfb3", size = 2262191 }, + { url = "https://files.pythonhosted.org/packages/6c/ad/db0aedb638a58b2951da46ddaeecf204be8b4f5454df020d850c7fa8dca8/kiwisolver-1.4.7-cp310-cp310-win32.whl", hash = "sha256:71bb308552200fb2c195e35ef05de12f0c878c07fc91c270eb3d6e41698c3bcc", size = 46644 }, + { url = "https://files.pythonhosted.org/packages/12/ca/d0f7b7ffbb0be1e7c2258b53554efec1fd652921f10d7d85045aff93ab61/kiwisolver-1.4.7-cp310-cp310-win_amd64.whl", hash = "sha256:44756f9fd339de0fb6ee4f8c1696cfd19b2422e0d70b4cefc1cc7f1f64045a8c", size = 55877 }, + { url = "https://files.pythonhosted.org/packages/97/6c/cfcc128672f47a3e3c0d918ecb67830600078b025bfc32d858f2e2d5c6a4/kiwisolver-1.4.7-cp310-cp310-win_arm64.whl", hash = "sha256:78a42513018c41c2ffd262eb676442315cbfe3c44eed82385c2ed043bc63210a", size = 48347 }, { url = "https://files.pythonhosted.org/packages/e9/44/77429fa0a58f941d6e1c58da9efe08597d2e86bf2b2cce6626834f49d07b/kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54", size = 122442 }, { url = "https://files.pythonhosted.org/packages/e5/20/8c75caed8f2462d63c7fd65e16c832b8f76cda331ac9e615e914ee80bac9/kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95", size = 65762 }, { url = "https://files.pythonhosted.org/packages/f4/98/fe010f15dc7230f45bc4cf367b012d651367fd203caaa992fd1f5963560e/kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935", size = 64319 }, @@ -3824,6 +2006,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c1/ee/73de8385403faba55f782a41260210528fe3273d0cddcf6d51648202d6d0/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36", size = 2329024 }, { url = "https://files.pythonhosted.org/packages/a1/e7/cd101d8cd2cdfaa42dc06c433df17c8303d31129c9fdd16c0ea37672af91/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3", size = 2468484 }, { url = "https://files.pythonhosted.org/packages/e1/72/84f09d45a10bc57a40bb58b81b99d8f22b58b2040c912b7eb97ebf625bf2/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523", size = 2284078 }, + { url = "https://files.pythonhosted.org/packages/d2/d4/71828f32b956612dc36efd7be1788980cb1e66bfb3706e6dec9acad9b4f9/kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d", size = 46645 }, + { url = "https://files.pythonhosted.org/packages/a1/65/d43e9a20aabcf2e798ad1aff6c143ae3a42cf506754bcb6a7ed8259c8425/kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b", size = 56022 }, + { url = "https://files.pythonhosted.org/packages/35/b3/9f75a2e06f1b4ca00b2b192bc2b739334127d27f1d0625627ff8479302ba/kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376", size = 48536 }, { url = "https://files.pythonhosted.org/packages/97/9c/0a11c714cf8b6ef91001c8212c4ef207f772dd84540104952c45c1f0a249/kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2", size = 121808 }, { url = "https://files.pythonhosted.org/packages/f2/d8/0fe8c5f5d35878ddd135f44f2af0e4e1d379e1c7b0716f97cdcb88d4fd27/kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a", size = 65531 }, { url = "https://files.pythonhosted.org/packages/80/c5/57fa58276dfdfa612241d640a64ca2f76adc6ffcebdbd135b4ef60095098/kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee", size = 63894 }, @@ -3837,6 +2022,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8d/61/de5fb1ca7ad1f9ab7970e340a5b833d735df24689047de6ae71ab9d8d0e7/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038", size = 2352461 }, { url = "https://files.pythonhosted.org/packages/ba/d2/0edc00a852e369827f7e05fd008275f550353f1f9bcd55db9363d779fc63/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383", size = 2501358 }, { url = "https://files.pythonhosted.org/packages/84/15/adc15a483506aec6986c01fb7f237c3aec4d9ed4ac10b756e98a76835933/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520", size = 2314119 }, + { url = "https://files.pythonhosted.org/packages/36/08/3a5bb2c53c89660863a5aa1ee236912269f2af8762af04a2e11df851d7b2/kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b", size = 46367 }, + { url = "https://files.pythonhosted.org/packages/19/93/c05f0a6d825c643779fc3c70876bff1ac221f0e31e6f701f0e9578690d70/kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb", size = 55884 }, + { url = "https://files.pythonhosted.org/packages/d2/f9/3828d8f21b6de4279f0667fb50a9f5215e6fe57d5ec0d61905914f5b6099/kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a", size = 48528 }, { url = "https://files.pythonhosted.org/packages/c4/06/7da99b04259b0f18b557a4effd1b9c901a747f7fdd84cf834ccf520cb0b2/kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e", size = 121913 }, { url = "https://files.pythonhosted.org/packages/97/f5/b8a370d1aa593c17882af0a6f6755aaecd643640c0ed72dcfd2eafc388b9/kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6", size = 65627 }, { url = "https://files.pythonhosted.org/packages/2a/fc/6c0374f7503522539e2d4d1b497f5ebad3f8ed07ab51aed2af988dd0fb65/kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750", size = 63888 }, @@ -3850,11 +2038,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0f/6d/73ad36170b4bff4825dc588acf4f3e6319cb97cd1fb3eb04d9faa6b6f212/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27", size = 2352842 }, { url = "https://files.pythonhosted.org/packages/0b/16/fa531ff9199d3b6473bb4d0f47416cdb08d556c03b8bc1cccf04e756b56d/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a", size = 2501635 }, { url = "https://files.pythonhosted.org/packages/78/7e/aa9422e78419db0cbe75fb86d8e72b433818f2e62e2e394992d23d23a583/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee", size = 2314556 }, + { url = "https://files.pythonhosted.org/packages/a8/b2/15f7f556df0a6e5b3772a1e076a9d9f6c538ce5f05bd590eca8106508e06/kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07", size = 46364 }, + { url = "https://files.pythonhosted.org/packages/0b/db/32e897e43a330eee8e4770bfd2737a9584b23e33587a0812b8e20aac38f7/kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76", size = 55887 }, + { url = "https://files.pythonhosted.org/packages/c8/a4/df2bdca5270ca85fd25253049eb6708d4127be2ed0e5c2650217450b59e9/kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650", size = 48530 }, { url = "https://files.pythonhosted.org/packages/ac/59/741b79775d67ab67ced9bb38552da688c0305c16e7ee24bba7a2be253fb7/kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94252291e3fe68001b1dd747b4c0b3be12582839b95ad4d1b641924d68fd4643", size = 59491 }, { url = "https://files.pythonhosted.org/packages/58/cc/fb239294c29a5656e99e3527f7369b174dd9cc7c3ef2dea7cb3c54a8737b/kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b7dfa3b546da08a9f622bb6becdb14b3e24aaa30adba66749d38f3cc7ea9706", size = 57648 }, { url = "https://files.pythonhosted.org/packages/3b/ef/2f009ac1f7aab9f81efb2d837301d255279d618d27b6015780115ac64bdd/kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3de6481f4ed8b734da5df134cd5a6a64fe32124fe83dde1e5b5f29fe30b1e6", size = 84257 }, { url = "https://files.pythonhosted.org/packages/81/e1/c64f50987f85b68b1c52b464bb5bf73e71570c0f7782d626d1eb283ad620/kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91b5f9f1205845d488c928e8570dcb62b893372f63b8b6e98b863ebd2368ff2", size = 80906 }, { url = "https://files.pythonhosted.org/packages/fd/71/1687c5c0a0be2cee39a5c9c389e546f9c6e215e46b691d00d9f646892083/kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fa14dbd66b8b8f470d5fc79c089a66185619d31645f9b0773b88b19f7223c4", size = 79951 }, + { url = "https://files.pythonhosted.org/packages/ea/8b/d7497df4a1cae9367adf21665dd1f896c2a7aeb8769ad77b662c5e2bcce7/kiwisolver-1.4.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:eb542fe7933aa09d8d8f9d9097ef37532a7df6497819d16efe4359890a2f417a", size = 55715 }, ] [[package]] @@ -3871,7 +2063,7 @@ name = "linkify-it-py" version = "2.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "uc-micro-py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "uc-micro-py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/2a/ae/bb56c6828e4797ba5a4821eec7c43b8bf40f69cda4d4f5f8c8a2810ec96a/linkify-it-py-2.0.3.tar.gz", hash = "sha256:68cda27e162e9215c17d786649d1da0021a451bdc436ef9e0fa0ba5234b9b048", size = 27946 } wheels = [ @@ -3888,14 +2080,17 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ca/5c/a27f9257f86f0cda3f764ff21d9f4217b9f6a0d45e7a39ecfa7905f524ce/llvmlite-0.43.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d4fd101f571a31acb1559ae1af30f30b1dc4b3186669f92ad780e17c81e91bc", size = 28793153 }, { url = "https://files.pythonhosted.org/packages/7e/3c/4410f670ad0a911227ea2ecfcba9f672a77cf1924df5280c4562032ec32d/llvmlite-0.43.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d434ec7e2ce3cc8f452d1cd9a28591745de022f931d67be688a737320dfcead", size = 42857276 }, { url = "https://files.pythonhosted.org/packages/c6/21/2ffbab5714e72f2483207b4a1de79b2eecd9debbf666ff4e7067bcc5c134/llvmlite-0.43.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6912a87782acdff6eb8bf01675ed01d60ca1f2551f8176a300a886f09e836a6a", size = 43871781 }, + { url = "https://files.pythonhosted.org/packages/f2/26/b5478037c453554a61625ef1125f7e12bb1429ae11c6376f47beba9b0179/llvmlite-0.43.0-cp310-cp310-win_amd64.whl", hash = "sha256:14f0e4bf2fd2d9a75a3534111e8ebeb08eda2f33e9bdd6dfa13282afacdde0ed", size = 28123487 }, { url = "https://files.pythonhosted.org/packages/95/8c/de3276d773ab6ce3ad676df5fab5aac19696b2956319d65d7dd88fb10f19/llvmlite-0.43.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8d0618cb9bfe40ac38a9633f2493d4d4e9fcc2f438d39a4e854f39cc0f5f98", size = 31064409 }, { url = "https://files.pythonhosted.org/packages/ee/e1/38deed89ced4cf378c61e232265cfe933ccde56ae83c901aa68b477d14b1/llvmlite-0.43.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0a9a1a39d4bf3517f2af9d23d479b4175ead205c592ceeb8b89af48a327ea57", size = 28793149 }, { url = "https://files.pythonhosted.org/packages/2f/b2/4429433eb2dc8379e2cb582502dca074c23837f8fd009907f78a24de4c25/llvmlite-0.43.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1da416ab53e4f7f3bc8d4eeba36d801cc1894b9fbfbf2022b29b6bad34a7df2", size = 42857277 }, { url = "https://files.pythonhosted.org/packages/6b/99/5d00a7d671b1ba1751fc9f19d3b36f3300774c6eebe2bcdb5f6191763eb4/llvmlite-0.43.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:977525a1e5f4059316b183fb4fd34fa858c9eade31f165427a3977c95e3ee749", size = 43871781 }, + { url = "https://files.pythonhosted.org/packages/20/ab/ed5ed3688c6ba4f0b8d789da19fd8e30a9cf7fc5852effe311bc5aefe73e/llvmlite-0.43.0-cp311-cp311-win_amd64.whl", hash = "sha256:d5bd550001d26450bd90777736c69d68c487d17bf371438f975229b2b8241a91", size = 28107433 }, { url = "https://files.pythonhosted.org/packages/0b/67/9443509e5d2b6d8587bae3ede5598fa8bd586b1c7701696663ea8af15b5b/llvmlite-0.43.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f99b600aa7f65235a5a05d0b9a9f31150c390f31261f2a0ba678e26823ec38f7", size = 31064409 }, { url = "https://files.pythonhosted.org/packages/a2/9c/24139d3712d2d352e300c39c0e00d167472c08b3bd350c3c33d72c88ff8d/llvmlite-0.43.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:35d80d61d0cda2d767f72de99450766250560399edc309da16937b93d3b676e7", size = 28793145 }, { url = "https://files.pythonhosted.org/packages/bf/f1/4c205a48488e574ee9f6505d50e84370a978c90f08dab41a42d8f2c576b6/llvmlite-0.43.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eccce86bba940bae0d8d48ed925f21dbb813519169246e2ab292b5092aba121f", size = 42857276 }, { url = "https://files.pythonhosted.org/packages/00/5f/323c4d56e8401c50185fd0e875fcf06b71bf825a863699be1eb10aa2a9cb/llvmlite-0.43.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df6509e1507ca0760787a199d19439cc887bfd82226f5af746d6977bd9f66844", size = 43871781 }, + { url = "https://files.pythonhosted.org/packages/c6/94/dea10e263655ce78d777e78d904903faae39d1fc440762be4a9dc46bed49/llvmlite-0.43.0-cp312-cp312-win_amd64.whl", hash = "sha256:7a2872ee80dcf6b5dbdc838763d26554c2a18aa833d31a2635bff16aafefb9c9", size = 28107442 }, ] [[package]] @@ -3918,16 +2113,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/10/26/5287564a909d069fdd6c25f2f420c58c5758993fa3ad2e064a7b610e6e5f/lz4-4.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f76176492ff082657ada0d0f10c794b6da5800249ef1692b35cf49b1e93e8ef7", size = 1237799 }, { url = "https://files.pythonhosted.org/packages/cf/50/75c8f966dbcc524e7253f99b8e04c6cad7328f517eb0323abf8b4068f5bb/lz4-4.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1d18718f9d78182c6b60f568c9a9cec8a7204d7cb6fad4e511a2ef279e4cb05", size = 1263957 }, { url = "https://files.pythonhosted.org/packages/91/54/0f61c77a9599beb14ac5b828e8da20a04c6eaadb4f3fdbd79a817c66eb74/lz4-4.3.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6cdc60e21ec70266947a48839b437d46025076eb4b12c76bd47f8e5eb8a75dcc", size = 1184035 }, + { url = "https://files.pythonhosted.org/packages/8e/84/3be7fad87d84b67cd43174d67fc567e0aa3be154f8b0a1c2c0ff8df30854/lz4-4.3.3-cp310-cp310-win32.whl", hash = "sha256:c81703b12475da73a5d66618856d04b1307e43428a7e59d98cfe5a5d608a74c6", size = 87235 }, + { url = "https://files.pythonhosted.org/packages/21/08/dc4714eb771b502deec8a714e40e5fbd2242bacd5fe55dcd29a0cb35c567/lz4-4.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:43cf03059c0f941b772c8aeb42a0813d68d7081c009542301637e5782f8a33e2", size = 99781 }, { url = "https://files.pythonhosted.org/packages/f9/f7/cfb942edd53c8a6aba168720ccf3d6a0cac3e891a7feba97d5823b5dd047/lz4-4.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:30e8c20b8857adef7be045c65f47ab1e2c4fabba86a9fa9a997d7674a31ea6b6", size = 254267 }, { url = "https://files.pythonhosted.org/packages/71/ca/046bd7e7e1ed4639eb398192374bc3fbf5010d3c168361fec161b63e8bfa/lz4-4.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2f7b1839f795315e480fb87d9bc60b186a98e3e5d17203c6e757611ef7dcef61", size = 212353 }, { url = "https://files.pythonhosted.org/packages/0c/c2/5beb6a7bb7fd27cd5fe5bb93c15636d30987794b161e4609fbf20dc3b5c7/lz4-4.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edfd858985c23523f4e5a7526ca6ee65ff930207a7ec8a8f57a01eae506aaee7", size = 1239095 }, { url = "https://files.pythonhosted.org/packages/cf/d4/12915eb3083dfd1746d50b71b73334030b129cd25abbed9133dd2d413c21/lz4-4.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e9c410b11a31dbdc94c05ac3c480cb4b222460faf9231f12538d0074e56c563", size = 1265760 }, { url = "https://files.pythonhosted.org/packages/94/7b/5e72b7504d7675b484812bfc65fe958f7649a64e0d6fe35c11812511f0b5/lz4-4.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d2507ee9c99dbddd191c86f0e0c8b724c76d26b0602db9ea23232304382e1f21", size = 1185451 }, + { url = "https://files.pythonhosted.org/packages/2f/b5/3726a678b3a0c64d24e71179e35e7ff8e3553da9d32c2fddce879d042b63/lz4-4.3.3-cp311-cp311-win32.whl", hash = "sha256:f180904f33bdd1e92967923a43c22899e303906d19b2cf8bb547db6653ea6e7d", size = 87232 }, + { url = "https://files.pythonhosted.org/packages/55/f9/69ed96043dae4d982286a4dda2feb473f49e95e4c90a928ec583d93769a2/lz4-4.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:b14d948e6dce389f9a7afc666d60dd1e35fa2138a8ec5306d30cd2e30d36b40c", size = 99794 }, { url = "https://files.pythonhosted.org/packages/4d/6f/081811b17ccaec5f06b3030756af2737841447849118a6e1078481a78c6c/lz4-4.3.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e36cd7b9d4d920d3bfc2369840da506fa68258f7bb176b8743189793c055e43d", size = 254213 }, { url = "https://files.pythonhosted.org/packages/53/4d/8e04ef75feff8848ba3c624ce81c7732bdcea5f8f994758afa88cd3d7764/lz4-4.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:31ea4be9d0059c00b2572d700bf2c1bc82f241f2c3282034a759c9a4d6ca4dc2", size = 212354 }, { url = "https://files.pythonhosted.org/packages/a3/04/257a72d6a879dbc8c669018989f776fcdd5b4bf3c2c51c09a54f1ca31721/lz4-4.3.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33c9a6fd20767ccaf70649982f8f3eeb0884035c150c0b818ea660152cf3c809", size = 1238643 }, { url = "https://files.pythonhosted.org/packages/d9/93/4a7e489156fa7ded03ba9cde4a8ca7f373672b5787cac9a0391befa752a1/lz4-4.3.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca8fccc15e3add173da91be8f34121578dc777711ffd98d399be35487c934bf", size = 1265014 }, { url = "https://files.pythonhosted.org/packages/fd/a4/f84ebc23bc7602623b1b003b4e1120cbf86fb03a35c595c226be1985449b/lz4-4.3.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d84b479ddf39fe3ea05387f10b779155fc0990125f4fb35d636114e1c63a2e", size = 1184881 }, + { url = "https://files.pythonhosted.org/packages/de/3d/8ba48305378e84908221de143a21ba0c0ce52778893865cf85b66b1068da/lz4-4.3.3-cp312-cp312-win32.whl", hash = "sha256:337cb94488a1b060ef1685187d6ad4ba8bc61d26d631d7ba909ee984ea736be1", size = 87241 }, + { url = "https://files.pythonhosted.org/packages/c4/5d/7b70965a0692de29af2af1007fe837f46fd456bbe2aa8f838a8543a3b5cb/lz4-4.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:5d35533bf2cee56f38ced91f766cd0038b6abf46f438a80d50c52750088be93f", size = 99776 }, ] [[package]] @@ -3935,7 +2136,7 @@ name = "mako" version = "1.3.6" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "markupsafe", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "markupsafe", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/fa/0b/29bc5a230948bf209d3ed3165006d257e547c02c3c2a96f6286320dfe8dc/mako-1.3.6.tar.gz", hash = "sha256:9ec3a1583713479fae654f83ed9fa8c9a4c16b7bb0daba0e6bbebff50c0d983d", size = 390206 } wheels = [ @@ -3956,7 +2157,7 @@ name = "markdown-it-py" version = "3.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "mdurl", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mdurl", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 } wheels = [ @@ -3977,6 +2178,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cc/cd/07438f95f83e8bc028279909d9c9bd39e24149b0d60053a97b2bc4f8aa51/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b", size = 21977 }, { url = "https://files.pythonhosted.org/packages/29/01/84b57395b4cc062f9c4c55ce0df7d3108ca32397299d9df00fedd9117d3d/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c", size = 21366 }, { url = "https://files.pythonhosted.org/packages/bd/6e/61ebf08d8940553afff20d1fb1ba7294b6f8d279df9fd0c0db911b4bbcfd/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171", size = 21091 }, + { url = "https://files.pythonhosted.org/packages/11/23/ffbf53694e8c94ebd1e7e491de185124277964344733c45481f32ede2499/MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50", size = 15065 }, + { url = "https://files.pythonhosted.org/packages/44/06/e7175d06dd6e9172d4a69a72592cb3f7a996a9c396eee29082826449bbc3/MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a", size = 15514 }, { url = "https://files.pythonhosted.org/packages/6b/28/bbf83e3f76936960b850435576dd5e67034e200469571be53f69174a2dfd/MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", size = 14353 }, { url = "https://files.pythonhosted.org/packages/6c/30/316d194b093cde57d448a4c3209f22e3046c5bb2fb0820b118292b334be7/MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", size = 12392 }, { url = "https://files.pythonhosted.org/packages/f2/96/9cdafba8445d3a53cae530aaf83c38ec64c4d5427d975c974084af5bc5d2/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", size = 23984 }, @@ -3985,6 +2188,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/00/7b/e92c64e079b2d0d7ddf69899c98842f3f9a60a1ae72657c89ce2655c999d/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", size = 24057 }, { url = "https://files.pythonhosted.org/packages/f9/ac/46f960ca323037caa0a10662ef97d0a4728e890334fc156b9f9e52bcc4ca/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", size = 23359 }, { url = "https://files.pythonhosted.org/packages/69/84/83439e16197337b8b14b6a5b9c2105fff81d42c2a7c5b58ac7b62ee2c3b1/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", size = 23306 }, + { url = "https://files.pythonhosted.org/packages/9a/34/a15aa69f01e2181ed8d2b685c0d2f6655d5cca2c4db0ddea775e631918cd/MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", size = 15094 }, + { url = "https://files.pythonhosted.org/packages/da/b8/3a3bd761922d416f3dc5d00bfbed11f66b1ab89a0c2b6e887240a30b0f6b/MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", size = 15521 }, { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274 }, { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348 }, { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149 }, @@ -3993,6 +2198,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178 }, { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319 }, { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352 }, + { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097 }, + { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601 }, { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274 }, { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352 }, { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122 }, @@ -4001,6 +2208,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208 }, { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357 }, { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344 }, + { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101 }, + { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603 }, { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510 }, { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486 }, { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480 }, @@ -4009,6 +2218,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473 }, { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114 }, { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 }, + { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208 }, + { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, ] [[package]] @@ -4016,15 +2227,15 @@ name = "matplotlib" version = "3.9.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "contourpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "cycler", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "fonttools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "kiwisolver", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pillow", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyparsing", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "python-dateutil", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "contourpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cycler", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "fonttools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "kiwisolver", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pillow", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyparsing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "python-dateutil", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/9e/d8/3d7f706c69e024d4287c1110d74f7dabac91d9843b99eadc90de9efc8869/matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92", size = 36088381 } wheels = [ @@ -4033,21 +2244,25 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a8/a0/917f3c6d3a8774a3a1502d9f3dfc1456e07c1fa0c211a23b75a69e154180/matplotlib-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d94ff717eb2bd0b58fe66380bd8b14ac35f48a98e7c6765117fe67fb7684e64", size = 8192377 }, { url = "https://files.pythonhosted.org/packages/8d/9d/d06860390f9d154fa884f1740a5456378fb153ff57443c91a4a32bab7092/matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab68d50c06938ef28681073327795c5db99bb4666214d2d5f880ed11aeaded66", size = 8303983 }, { url = "https://files.pythonhosted.org/packages/9e/a7/c0e848ed7de0766c605af62d8097472a37f1a81d93e9afe94faa5890f24d/matplotlib-3.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:65aacf95b62272d568044531e41de26285d54aec8cb859031f511f84bd8b495a", size = 9083318 }, + { url = "https://files.pythonhosted.org/packages/09/6c/0fa50c001340a45cde44853c116d6551aea741e59a7261c38f473b53553b/matplotlib-3.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:3fd595f34aa8a55b7fc8bf9ebea8aa665a84c82d275190a61118d33fbc82ccae", size = 7819628 }, { url = "https://files.pythonhosted.org/packages/77/c2/f9d7fe80a8fcce9bb128d1381c6fe41a8d286d7e18395e273002e8e0fa34/matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772", size = 7902925 }, { url = "https://files.pythonhosted.org/packages/28/ba/8be09886eb56ac04a218a1dc3fa728a5c4cac60b019b4f1687885166da00/matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41", size = 7773193 }, { url = "https://files.pythonhosted.org/packages/e6/9a/5991972a560db3ab621312a7ca5efec339ae2122f25901c0846865c4b72f/matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f", size = 8202378 }, { url = "https://files.pythonhosted.org/packages/01/75/6c7ce560e95714a10fcbb3367d1304975a1a3e620f72af28921b796403f3/matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447", size = 8314361 }, { url = "https://files.pythonhosted.org/packages/6e/49/dc7384c6c092958e0b75e754efbd9e52500154939c3d715789cee9fb8a53/matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e", size = 9091428 }, + { url = "https://files.pythonhosted.org/packages/8b/ce/15b0bb2fb29b3d46211d8ca740b96b5232499fc49200b58b8d571292c9a6/matplotlib-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:ae82a14dab96fbfad7965403c643cafe6515e386de723e498cf3eeb1e0b70cc7", size = 7829377 }, { url = "https://files.pythonhosted.org/packages/82/de/54f7f38ce6de79cb77d513bb3eaa4e0b1031e9fd6022214f47943fa53a88/matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9", size = 7892511 }, { url = "https://files.pythonhosted.org/packages/35/3e/5713b84a02b24b2a4bd4d6673bfc03017e6654e1d8793ece783b7ed4d484/matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d", size = 7769370 }, { url = "https://files.pythonhosted.org/packages/5b/bd/c404502aa1824456d2862dd6b9b0c1917761a51a32f7f83ff8cf94b6d117/matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7", size = 8193260 }, { url = "https://files.pythonhosted.org/packages/27/75/de5b9cd67648051cae40039da0c8cbc497a0d99acb1a1f3d087cd66d27b7/matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c", size = 8306310 }, { url = "https://files.pythonhosted.org/packages/de/e3/2976e4e54d7ee76eaf54b7639fdc10a223d05c2bdded7045233e9871e469/matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e", size = 9086717 }, + { url = "https://files.pythonhosted.org/packages/d2/92/c2b9464a0562feb6ae780bdc152364810862e07ef5e6affa2b7686028db2/matplotlib-3.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:5413401594cfaff0052f9d8b1aafc6d305b4bd7c4331dccd18f561ff7e1d3bd3", size = 7832805 }, { url = "https://files.pythonhosted.org/packages/5c/7f/8932eac316b32f464b8f9069f151294dcd892c8fbde61fe8bcd7ba7f7f7e/matplotlib-3.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:18128cc08f0d3cfff10b76baa2f296fc28c4607368a8402de61bb3f2eb33c7d9", size = 7893012 }, { url = "https://files.pythonhosted.org/packages/90/89/9db9db3dd0ff3e2c49e452236dfe29e60b5586a88f8928ca1d153d0da8b5/matplotlib-3.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4876d7d40219e8ae8bb70f9263bcbe5714415acfdf781086601211335e24f8aa", size = 7769810 }, { url = "https://files.pythonhosted.org/packages/67/26/d2661cdc2e1410b8929c5f12dfd521e4528abfed1b3c3d5a28ac48258b43/matplotlib-3.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d9f07a80deab4bb0b82858a9e9ad53d1382fd122be8cde11080f4e7dfedb38b", size = 8193779 }, { url = "https://files.pythonhosted.org/packages/95/70/4839eaa672bf4eacc98ebc8d23633e02b6daf39e294e7433c4ab11a689be/matplotlib-3.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7c0410f181a531ec4e93bbc27692f2c71a15c2da16766f5ba9761e7ae518413", size = 8306260 }, { url = "https://files.pythonhosted.org/packages/88/62/7b263b2cb2724b45d3a4f9c8c6137696cc3ef037d44383fb01ac2a9555c2/matplotlib-3.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:909645cce2dc28b735674ce0931a4ac94e12f5b13f6bb0b5a5e65e7cea2c192b", size = 9086073 }, + { url = "https://files.pythonhosted.org/packages/b0/6d/3572fe243c74112fef120f0bc86f5edd21f49b60e8322fc7f6a01fe945dd/matplotlib-3.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:f32c7410c7f246838a77d6d1eff0c0f87f3cb0e7c4247aebea71a6d5a68cab49", size = 7833041 }, { url = "https://files.pythonhosted.org/packages/03/8f/9d505be3eb2f40ec731674fb6b47d10cc3147bbd6a9ea7a08c8da55415c6/matplotlib-3.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:37e51dd1c2db16ede9cfd7b5cabdfc818b2c6397c83f8b10e0e797501c963a03", size = 7933657 }, { url = "https://files.pythonhosted.org/packages/5d/68/44b458b9794bcff2a66921f8c9a8110a50a0bb099bd5f7cabb428a1dc765/matplotlib-3.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b82c5045cebcecd8496a4d694d43f9cc84aeeb49fe2133e036b207abe73f4d30", size = 7799276 }, { url = "https://files.pythonhosted.org/packages/47/79/8486d4ddcaaf676314b5fb58e8fe19d1a6210a443a7c31fa72d4215fcb87/matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f053c40f94bc51bc03832a41b4f153d83f2062d88c72b5e79997072594e97e51", size = 8221027 }, @@ -4060,7 +2275,7 @@ name = "mdit-py-plugins" version = "0.4.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "markdown-it-py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "markdown-it-py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/19/03/a2ecab526543b152300717cf232bb4bb8605b6edb946c845016fa9c9c9fd/mdit_py_plugins-0.4.2.tar.gz", hash = "sha256:5f2cd1fdb606ddf152d37ec30e46101a60512bc0e5fa1a7002c36647b09e26b5", size = 43542 } wheels = [ @@ -4090,6 +2305,13 @@ name = "mpi4py" version = "4.0.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/08/34/8499a92a387d24d0092c38089f8195f13c5c76f0f814126af3fe363e5636/mpi4py-4.0.1.tar.gz", hash = "sha256:f3174b245775d556f4fddb32519a2066ef0592edc810c5b5a59238f9a0a40c89", size = 466179 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/15/7d2fd2ca8b1ae362371b2bb9b2f787f9166b6ecd536e0e773dce6b98a5a9/mpi4py-4.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:600f26cae7f390b4ec525f5c1ccc374686c37a8c07f9c21320866c0a323f6dae", size = 1588594 }, + { url = "https://files.pythonhosted.org/packages/f4/f7/6dfdee53f9806361ab75cb83ee5feab06a738f7f6a42715c79d72a783d31/mpi4py-4.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:0cb209fcdc7fee0346d12edff1cfd1c1ffca1b807c53631ba0436b9c2bcf8229", size = 1599377 }, + { url = "https://files.pythonhosted.org/packages/35/28/7e5eae1a9940f48c41e208e9e6fdb56e497095030ab53e2d9ce702705cbb/mpi4py-4.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:b704e7db92b1ac94b96802e17cf28082455daa928e8e51398ad9f5e5eb8c9b7b", size = 1727556 }, + { url = "https://files.pythonhosted.org/packages/95/70/cc361869a2920476ecc5f29c98e0130aaf2e177a0087cb7ebbafb90414f1/mpi4py-4.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:52a7b1760b1aeb41a0ea38969314b2b170117a0ded2f689915f1cb89aaaf8a6f", size = 1726170 }, + { url = "https://files.pythonhosted.org/packages/17/23/81aed5da44f9d743f1e76909fd04ae5dc122ff7c9f97fa0b40b8f752245c/mpi4py-4.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:93f45dcc2fd5f3396f961b1bc8f0fb9d5db786fdc0d72e4f8611f47718b5dac8", size = 1584997 }, +] [[package]] name = "mpmath" @@ -4115,6 +2337,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d9/2c/82e73506dd55f9e43ac8aa007c9dd088c6f0de2aa19e8f7330e6a65879fc/msgpack-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f", size = 359863 }, { url = "https://files.pythonhosted.org/packages/cb/a0/3d093b248837094220e1edc9ec4337de3443b1cfeeb6e0896af8ccc4cc7a/msgpack-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68", size = 368166 }, { url = "https://files.pythonhosted.org/packages/e4/13/7646f14f06838b406cf5a6ddbb7e8dc78b4996d891ab3b93c33d1ccc8678/msgpack-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b", size = 370105 }, + { url = "https://files.pythonhosted.org/packages/67/fa/dbbd2443e4578e165192dabbc6a22c0812cda2649261b1264ff515f19f15/msgpack-1.1.0-cp310-cp310-win32.whl", hash = "sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044", size = 68513 }, + { url = "https://files.pythonhosted.org/packages/24/ce/c2c8fbf0ded750cb63cbcbb61bc1f2dfd69e16dca30a8af8ba80ec182dcd/msgpack-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f", size = 74687 }, { 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 }, @@ -4124,6 +2348,8 @@ wheels = [ { 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 }, @@ -4133,6 +2359,8 @@ wheels = [ { 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 }, @@ -4142,6 +2370,8 @@ wheels = [ { 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 }, ] [[package]] @@ -4158,9 +2388,9 @@ name = "mypy" version = "1.13.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "mypy-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mypy-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e8/21/7e9e523537991d145ab8a0a2fd98548d67646dc2aaaf6091c31ad883e7c1/mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e", size = 3152532 } wheels = [ @@ -4168,24 +2398,28 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ab/bb/b31695a29eea76b1569fd28b4ab141a1adc9842edde080d1e8e1776862c7/mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80", size = 10184276 }, { url = "https://files.pythonhosted.org/packages/a5/2d/4a23849729bb27934a0e079c9c1aad912167d875c7b070382a408d459651/mypy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b2353a44d2179846a096e25691d54d59904559f4232519d420d64da6828a3a7", size = 12587706 }, { url = "https://files.pythonhosted.org/packages/5c/c3/d318e38ada50255e22e23353a469c791379825240e71b0ad03e76ca07ae6/mypy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0730d1c6a2739d4511dc4253f8274cdd140c55c32dfb0a4cf8b7a43f40abfa6f", size = 13105586 }, + { url = "https://files.pythonhosted.org/packages/4a/25/3918bc64952370c3dbdbd8c82c363804678127815febd2925b7273d9482c/mypy-1.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:c5fc54dbb712ff5e5a0fca797e6e0aa25726c7e72c6a5850cfd2adbc1eb0a372", size = 9632318 }, { url = "https://files.pythonhosted.org/packages/d0/19/de0822609e5b93d02579075248c7aa6ceaddcea92f00bf4ea8e4c22e3598/mypy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:581665e6f3a8a9078f28d5502f4c334c0c8d802ef55ea0e7276a6e409bc0d82d", size = 10939027 }, { url = "https://files.pythonhosted.org/packages/c8/71/6950fcc6ca84179137e4cbf7cf41e6b68b4a339a1f5d3e954f8c34e02d66/mypy-1.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3ddb5b9bf82e05cc9a627e84707b528e5c7caaa1c55c69e175abb15a761cec2d", size = 10108699 }, { url = "https://files.pythonhosted.org/packages/26/50/29d3e7dd166e74dc13d46050b23f7d6d7533acf48f5217663a3719db024e/mypy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20c7ee0bc0d5a9595c46f38beb04201f2620065a93755704e141fcac9f59db2b", size = 12506263 }, { url = "https://files.pythonhosted.org/packages/3f/1d/676e76f07f7d5ddcd4227af3938a9c9640f293b7d8a44dd4ff41d4db25c1/mypy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3790ded76f0b34bc9c8ba4def8f919dd6a46db0f5a6610fb994fe8efdd447f73", size = 12984688 }, + { url = "https://files.pythonhosted.org/packages/9c/03/5a85a30ae5407b1d28fab51bd3e2103e52ad0918d1e68f02a7778669a307/mypy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51f869f4b6b538229c1d1bcc1dd7d119817206e2bc54e8e374b3dfa202defcca", size = 9626811 }, { url = "https://files.pythonhosted.org/packages/fb/31/c526a7bd2e5c710ae47717c7a5f53f616db6d9097caf48ad650581e81748/mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5", size = 11077900 }, { url = "https://files.pythonhosted.org/packages/83/67/b7419c6b503679d10bd26fc67529bc6a1f7a5f220bbb9f292dc10d33352f/mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e", size = 10074818 }, { url = "https://files.pythonhosted.org/packages/ba/07/37d67048786ae84e6612575e173d713c9a05d0ae495dde1e68d972207d98/mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2", size = 12589275 }, { url = "https://files.pythonhosted.org/packages/1f/17/b1018c6bb3e9f1ce3956722b3bf91bff86c1cefccca71cec05eae49d6d41/mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0", size = 13037783 }, + { url = "https://files.pythonhosted.org/packages/cb/32/cd540755579e54a88099aee0287086d996f5a24281a673f78a0e14dba150/mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2", size = 9726197 }, { url = "https://files.pythonhosted.org/packages/11/bb/ab4cfdc562cad80418f077d8be9b4491ee4fb257440da951b85cbb0a639e/mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7", size = 11069721 }, { url = "https://files.pythonhosted.org/packages/59/3b/a393b1607cb749ea2c621def5ba8c58308ff05e30d9dbdc7c15028bca111/mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62", size = 10063996 }, { url = "https://files.pythonhosted.org/packages/d1/1f/6b76be289a5a521bb1caedc1f08e76ff17ab59061007f201a8a18cc514d1/mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8", size = 12584043 }, { url = "https://files.pythonhosted.org/packages/a6/83/5a85c9a5976c6f96e3a5a7591aa28b4a6ca3a07e9e5ba0cec090c8b596d6/mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7", size = 13036996 }, + { url = "https://files.pythonhosted.org/packages/b4/59/c39a6f752f1f893fccbcf1bdd2aca67c79c842402b5283563d006a67cf76/mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc", size = 9737709 }, { url = "https://files.pythonhosted.org/packages/3b/86/72ce7f57431d87a7ff17d442f521146a6585019eb8f4f31b7c02801f78ad/mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a", size = 2647043 }, ] [package.optional-dependencies] faster-cache = [ - { name = "orjson", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "orjson", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [[package]] @@ -4202,12 +2436,12 @@ name = "myst-parser" version = "4.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "docutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "markdown-it-py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "mdit-py-plugins", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "docutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "markdown-it-py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "mdit-py-plugins", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/85/55/6d1741a1780e5e65038b74bce6689da15f620261c490c3511eb4c12bac4b/myst_parser-4.0.0.tar.gz", hash = "sha256:851c9dfb44e36e56d15d05e72f02b80da21a9e0d07cba96baf5e2d476bb91531", size = 93858 } wheels = [ @@ -4237,9 +2471,9 @@ name = "nc-time-axis" version = "1.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cftime", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "matplotlib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cftime", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "matplotlib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/39/c7/ceaba2047ef4e08660a5a89a71cea30547bddb0e51236dab2dcb771a6fe1/nc-time-axis-1.4.1.tar.gz", hash = "sha256:72d80f492f34bbf59490838d8cb3d92f14e88900b0ee35498b2b33c82795eb81", size = 66231 } wheels = [ @@ -4251,9 +2485,9 @@ name = "netcdf4" version = "1.7.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "certifi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "cftime", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "certifi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cftime", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/71/ed/4d27fcfa40ebfdad3d2088a3de7ee48dbff7f35163e815ec1870d2a7398c/netcdf4-1.7.2.tar.gz", hash = "sha256:a4c6375540b19989896136943abb6d44850ff6f1fa7d3f063253b1ad3f8b7fce", size = 835064 } wheels = [ @@ -4261,18 +2495,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/81/c2/a5001f25de53b7312609d2733ac887a5051c1ce196288af4b9777ead5a75/netCDF4-1.7.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:118b476fd00d7e3ab9aa7771186d547da645ae3b49c0c7bdab866793ebf22f07", size = 2461128 }, { url = "https://files.pythonhosted.org/packages/da/33/ecb4790d053c58ec03f940ab55aacb59a207e356e57792cfd4b4eedbcc4d/netCDF4-1.7.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abe5b1837ff209185ecfe50bd71884c866b3ee69691051833e410e57f177e059", size = 9210818 }, { url = "https://files.pythonhosted.org/packages/db/a6/54f0f335b28228b89e1598fda950382c83b1d7b1f75d28c5eebbcb7f113e/netCDF4-1.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28021c7e886e5bccf9a8ce504c032d1d7f98d86f67495fb7cf2c9564eba04510", size = 9059470 }, + { url = "https://files.pythonhosted.org/packages/a7/ea/80b9feddd36721f92bac056a7dea41cd48bd4fc676f3f248fc48332d0bd2/netCDF4-1.7.2-cp310-cp310-win_amd64.whl", hash = "sha256:7460b638e41c8ce4179d082a81cb6456f0ce083d4d959f4d9e87a95cd86f64cb", size = 7005418 }, { url = "https://files.pythonhosted.org/packages/a0/d8/b7079ecbab35f7c95ab27e5146fa91daf0e39ba76093f0fc1187fc748749/netCDF4-1.7.2-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:09d61c2ddb6011afb51e77ea0f25cd0bdc28887fb426ffbbc661d920f20c9749", size = 2981078 }, { url = "https://files.pythonhosted.org/packages/4b/c1/ae83fdcc05d1db00a340f5f3e252247d73f11f8eaa890c59e7b5c8e35b56/netCDF4-1.7.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:fd2a16dbddeb8fa7cf48c37bfc1967290332f2862bb82f984eec2007bb120aeb", size = 2462104 }, { url = "https://files.pythonhosted.org/packages/f2/bd/6f76916fae5d375eedd0cb48acd713d8d8db267d0c3cf3d209a4631923a5/netCDF4-1.7.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f54f5d39ffbcf1726a1e6fd90cb5fa74277ecea739a5fa0f424636d71beafe24", size = 9451498 }, { url = "https://files.pythonhosted.org/packages/18/c1/7e564dbd28228ba4a35a272bf53b9a2e8b0ba9ac06b2c84b57c03c84e87b/netCDF4-1.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:902aa50d70f49d002d896212a171d344c38f7b8ca520837c56c922ac1535c4a3", size = 9283073 }, + { url = "https://files.pythonhosted.org/packages/cf/ba/d26e8278ad8a2306580bab076b6d64cd16459a60e632e6c1a9cbb68dd3d9/netCDF4-1.7.2-cp311-cp311-win_amd64.whl", hash = "sha256:3291f9ad0c98c49a4dd16aefad1a9abd3a1b884171db6c81bdcee94671cfabe3", size = 7010215 }, { url = "https://files.pythonhosted.org/packages/52/7f/3a0f18a39efca0e093b54d634b66573c25ecab5c482d73138ae14aa55c6d/netCDF4-1.7.2-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:e73e3baa0b74afc414e53ff5095748fdbec7fb346eda351e567c23f2f0d247f1", size = 2952127 }, { url = "https://files.pythonhosted.org/packages/ed/c4/8aac0f8ca95a41bdf1364d34ff4e9bcc24494bfe69a1157301d884c2e392/netCDF4-1.7.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a51da09258b31776f474c1d47e484fc7214914cdc59edf4cee789ba632184591", size = 2460781 }, { url = "https://files.pythonhosted.org/packages/2d/1a/32b7427aaf62fed3d4e4456f874b25ce39373dbddf6cfde9edbcfc2417fc/netCDF4-1.7.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb95b11804fe051897d1f2044b05d82a1847bc2549631cdd2f655dde7de77a9c", size = 9377415 }, { url = "https://files.pythonhosted.org/packages/fd/bf/5e671495c8bdf6b628e091aa8980793579474a10e51bc6ba302a3af6a778/netCDF4-1.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9d8a848373723f41ef662590b4f5e1832227501c9fd4513e8ad8da58c269977", size = 9260579 }, + { url = "https://files.pythonhosted.org/packages/d4/57/0a0bcdebcfaf72e96e7bcaa512f80ee096bf71945a3318d38253338e9c25/netCDF4-1.7.2-cp312-cp312-win_amd64.whl", hash = "sha256:568ea369e00b581302d77fc5fd0b8f78e520c7e08d0b5af5219ba51f3f1cd694", size = 6991523 }, { url = "https://files.pythonhosted.org/packages/e6/7a/ce4f9038d8726c9c90e07b2d3a404ae111a27720d712cfcded0c8ef160e8/netCDF4-1.7.2-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:205a5f1de3ddb993c7c97fb204a923a22408cc2e5facf08d75a8eb89b3e7e1a8", size = 2948911 }, { url = "https://files.pythonhosted.org/packages/58/3e/5736880a607edabca4c4fc49f1ccf9a2bb2485f84478e4cd19ba11c3b803/netCDF4-1.7.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:96653fc75057df196010818367c63ba6d7e9af603df0a7fe43fcdad3fe0e9e56", size = 2455078 }, { url = "https://files.pythonhosted.org/packages/71/96/d5d8859a6dac29f8ebc815ff8e75770bd513db9f08d7a711e21ae562a948/netCDF4-1.7.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30d20e56b9ba2c48884eb89c91b63e6c0612b4927881707e34402719153ef17f", size = 9378149 }, { url = "https://files.pythonhosted.org/packages/d1/80/b9c19f1bb4ac6c5fa6f94a4f278bc68a778473d1814a86a375d7cffa193a/netCDF4-1.7.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d6bfd38ba0bde04d56f06c1554714a2ea9dab75811c89450dc3ec57a9d36b80", size = 9254471 }, + { url = "https://files.pythonhosted.org/packages/66/b5/e04550fd53de57001dbd5a87242da7ff784c80790adc48897977b6ccf891/netCDF4-1.7.2-cp313-cp313-win_amd64.whl", hash = "sha256:5c5fbee6134ee1246c397e1508e5297d825aa19221fdf3fa8dc9727ad824d7a5", size = 6990521 }, ] [[package]] @@ -4303,6 +2541,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/30/e4/7d02c7a633c36a9aa7433fb742931a62f0a3aa72b484ed23d73cc6415286/ninja-1.11.1.2-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:508fb93395a5c82a4d99d30fce0cbaf5cb2bd33e5c1dc9faaa080e199802dbc9", size = 416060 }, { url = "https://files.pythonhosted.org/packages/0d/11/4dc053f20c64f5a340d72f948bbad22818d242afd54e826e0c95ca3779fe/ninja-1.11.1.2-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:52af7f45750c5c288d566fd0c927ed9bb0d8f2e50803709f582a42bcc4ec167b", size = 379729 }, { url = "https://files.pythonhosted.org/packages/ab/57/adaa8052ae4854c5f8e228baa1a77aad68093bc1aedf32597fa5e7714118/ninja-1.11.1.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:99fc4b87299242e10d7edd1c7737fdfb1269019e32f9f4267630887f6183a49e", size = 434886 }, + { url = "https://files.pythonhosted.org/packages/41/81/b80ab3c02a2e25f71334e821852856cfc32d1339ccd7fe0858c556d8af4f/ninja-1.11.1.2-py3-none-win32.whl", hash = "sha256:949e23cb2e79a33ea37d23a07d26846d2e75464e8e6940f8751fe964bc141dfa", size = 255983 }, + { url = "https://files.pythonhosted.org/packages/72/97/4109961b899ff2decfc0439de442cbe846c94210f263260a211cbee2b29d/ninja-1.11.1.2-py3-none-win_amd64.whl", hash = "sha256:0bca4179119426a3c3c9d5661c3b244d68781064e50907a1e066bc55edc18e06", size = 296510 }, + { url = "https://files.pythonhosted.org/packages/6d/cc/9deb2b6385c7188ad873ed17afdb5f25931e1c07c8a2e2c452e25cd288e1/ninja-1.11.1.2-py3-none-win_arm64.whl", hash = "sha256:ee7b1924c28e6cab5b866f7b229f07777d25d8cfccbbedf3da5ffb4f72f57877", size = 270558 }, ] [[package]] @@ -4319,13 +2560,13 @@ name = "nox" version = "2024.10.9" source = { git = "https://github.com/wntrblm/nox.git?rev=aa09595437608dfe21eb776d8a4bcc0bd5f9916b#aa09595437608dfe21eb776d8a4bcc0bd5f9916b" } dependencies = [ - { name = "argcomplete", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "attrs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "colorlog", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "dependency-groups", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, - { name = "virtualenv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "argcomplete", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "attrs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "colorlog", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "dependency-groups", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "virtualenv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [[package]] @@ -4333,8 +2574,8 @@ name = "numba" version = "0.60.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "llvmlite", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "llvmlite", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3c/93/2849300a9184775ba274aba6f82f303343669b0592b7bb0849ea713dabb0/numba-0.60.0.tar.gz", hash = "sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16", size = 2702171 } wheels = [ @@ -4342,14 +2583,17 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ac/ba/4b57fa498564457c3cc9fc9e570a6b08e6086c74220f24baaf04e54b995f/numba-0.60.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:159e618ef213fba758837f9837fb402bbe65326e60ba0633dbe6c7f274d42c1b", size = 2650322 }, { url = "https://files.pythonhosted.org/packages/28/98/7ea97ee75870a54f938a8c70f7e0be4495ba5349c5f9db09d467c4a5d5b7/numba-0.60.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1527dc578b95c7c4ff248792ec33d097ba6bef9eda466c948b68dfc995c25781", size = 3407390 }, { url = "https://files.pythonhosted.org/packages/79/58/cb4ac5b8f7ec64200460aef1fed88258fb872ceef504ab1f989d2ff0f684/numba-0.60.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe0b28abb8d70f8160798f4de9d486143200f34458d34c4a214114e445d7124e", size = 3699694 }, + { url = "https://files.pythonhosted.org/packages/1c/b0/c61a93ca947d12233ff45de506ddbf52af3f752066a0b8be4d27426e16da/numba-0.60.0-cp310-cp310-win_amd64.whl", hash = "sha256:19407ced081d7e2e4b8d8c36aa57b7452e0283871c296e12d798852bc7d7f198", size = 2687030 }, { url = "https://files.pythonhosted.org/packages/98/ad/df18d492a8f00d29a30db307904b9b296e37507034eedb523876f3a2e13e/numba-0.60.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a17b70fc9e380ee29c42717e8cc0bfaa5556c416d94f9aa96ba13acb41bdece8", size = 2647254 }, { url = "https://files.pythonhosted.org/packages/9a/51/a4dc2c01ce7a850b8e56ff6d5381d047a5daea83d12bad08aa071d34b2ee/numba-0.60.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3fb02b344a2a80efa6f677aa5c40cd5dd452e1b35f8d1c2af0dfd9ada9978e4b", size = 2649970 }, { url = "https://files.pythonhosted.org/packages/f9/4c/8889ac94c0b33dca80bed11564b8c6d9ea14d7f094e674c58e5c5b05859b/numba-0.60.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5f4fde652ea604ea3c86508a3fb31556a6157b2c76c8b51b1d45eb40c8598703", size = 3412492 }, { url = "https://files.pythonhosted.org/packages/57/03/2b4245b05b71c0cee667e6a0b51606dfa7f4157c9093d71c6b208385a611/numba-0.60.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4142d7ac0210cc86432b818338a2bc368dc773a2f5cf1e32ff7c5b378bd63ee8", size = 3705018 }, + { url = "https://files.pythonhosted.org/packages/79/89/2d924ca60dbf949f18a6fec223a2445f5f428d9a5f97a6b29c2122319015/numba-0.60.0-cp311-cp311-win_amd64.whl", hash = "sha256:cac02c041e9b5bc8cf8f2034ff6f0dbafccd1ae9590dc146b3a02a45e53af4e2", size = 2686920 }, { url = "https://files.pythonhosted.org/packages/eb/5c/b5ec752c475e78a6c3676b67c514220dbde2725896bbb0b6ec6ea54b2738/numba-0.60.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7da4098db31182fc5ffe4bc42c6f24cd7d1cb8a14b59fd755bfee32e34b8404", size = 2647866 }, { url = "https://files.pythonhosted.org/packages/65/42/39559664b2e7c15689a638c2a38b3b74c6e69a04e2b3019b9f7742479188/numba-0.60.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38d6ea4c1f56417076ecf8fc327c831ae793282e0ff51080c5094cb726507b1c", size = 2650208 }, { url = "https://files.pythonhosted.org/packages/67/88/c4459ccc05674ef02119abf2888ccd3e2fed12a323f52255f4982fc95876/numba-0.60.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:62908d29fb6a3229c242e981ca27e32a6e606cc253fc9e8faeb0e48760de241e", size = 3466946 }, { url = "https://files.pythonhosted.org/packages/8b/41/ac11cf33524def12aa5bd698226ae196a1185831c05ed29dc0c56eaa308b/numba-0.60.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0ebaa91538e996f708f1ab30ef4d3ddc344b64b5227b67a57aa74f401bb68b9d", size = 3761463 }, + { url = "https://files.pythonhosted.org/packages/ca/bd/0fe29fcd1b6a8de479a4ed25c6e56470e467e3611c079d55869ceef2b6d1/numba-0.60.0-cp312-cp312-win_amd64.whl", hash = "sha256:f75262e8fe7fa96db1dca93d53a194a38c46da28b112b8a4aca168f0df860347", size = 2707588 }, ] [[package]] @@ -4357,8 +2601,8 @@ name = "numbagg" version = "0.8.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numba", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numba", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/45/f1/c10725336d4cf9704d83921bdbec72849691b271e0a250d8d3cae4ee79e0/numbagg-0.8.2.tar.gz", hash = "sha256:636fc6756b8ca9adca730512dd15c5dcc9b28a93ffc003f0258dec72ee90937a", size = 56491 } wheels = [ @@ -4370,22 +2614,26 @@ name = "numcodecs" version = "0.13.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/85/56/8895a76abe4ec94ebd01eeb6d74f587bc4cddd46569670e1402852a5da13/numcodecs-0.13.1.tar.gz", hash = "sha256:a3cf37881df0898f3a9c0d4477df88133fe85185bffe57ba31bcc2fa207709bc", size = 5955215 } wheels = [ { url = "https://files.pythonhosted.org/packages/14/c0/6d72cde772bcec196b7188731d41282993b2958440f77fdf0db216f722da/numcodecs-0.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:96add4f783c5ce57cc7e650b6cac79dd101daf887c479a00a29bc1487ced180b", size = 1580012 }, { url = "https://files.pythonhosted.org/packages/94/1d/f81fc1fa9210bbea97258242393a1f9feab4f6d8fb201f81f76003005e4b/numcodecs-0.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:237b7171609e868a20fd313748494444458ccd696062f67e198f7f8f52000c15", size = 1176919 }, { url = "https://files.pythonhosted.org/packages/16/e4/b9ec2f4dfc34ecf724bc1beb96a9f6fa9b91801645688ffadacd485089da/numcodecs-0.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96e42f73c31b8c24259c5fac6adba0c3ebf95536e37749dc6c62ade2989dca28", size = 8625842 }, + { url = "https://files.pythonhosted.org/packages/fe/90/299952e1477954ec4f92813fa03e743945e3ff711bb4f6c9aace431cb3da/numcodecs-0.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:eda7d7823c9282e65234731fd6bd3986b1f9e035755f7fed248d7d366bb291ab", size = 828638 }, { url = "https://files.pythonhosted.org/packages/f0/78/34b8e869ef143e88d62e8231f4dbfcad85e5c41302a11fc5bd2228a13df5/numcodecs-0.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2eda97dd2f90add98df6d295f2c6ae846043396e3d51a739ca5db6c03b5eb666", size = 1580199 }, { url = "https://files.pythonhosted.org/packages/3b/cf/f70797d86bb585d258d1e6993dced30396f2044725b96ce8bcf87a02be9c/numcodecs-0.13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2a86f5367af9168e30f99727ff03b27d849c31ad4522060dde0bce2923b3a8bc", size = 1177203 }, { url = "https://files.pythonhosted.org/packages/a8/b5/d14ad69b63fde041153dfd05d7181a49c0d4864de31a7a1093c8370da957/numcodecs-0.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233bc7f26abce24d57e44ea8ebeb5cd17084690b4e7409dd470fdb75528d615f", size = 8868743 }, + { url = "https://files.pythonhosted.org/packages/13/d4/27a7b5af0b33f6d61e198faf177fbbf3cb83ff10d9d1a6857b7efc525ad5/numcodecs-0.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:796b3e6740107e4fa624cc636248a1580138b3f1c579160f260f76ff13a4261b", size = 829603 }, { url = "https://files.pythonhosted.org/packages/37/3a/bc09808425e7d3df41e5fc73fc7a802c429ba8c6b05e55f133654ade019d/numcodecs-0.13.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5195bea384a6428f8afcece793860b1ab0ae28143c853f0b2b20d55a8947c917", size = 1575806 }, { url = "https://files.pythonhosted.org/packages/3a/cc/dc74d0bfdf9ec192332a089d199f1e543e747c556b5659118db7a437dcca/numcodecs-0.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3501a848adaddce98a71a262fee15cd3618312692aa419da77acd18af4a6a3f6", size = 1178233 }, { url = "https://files.pythonhosted.org/packages/d4/ce/434e8e3970b8e92ae9ab6d9db16cb9bc7aa1cd02e17c11de6848224100a1/numcodecs-0.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2230484e6102e5fa3cc1a5dd37ca1f92dfbd183d91662074d6f7574e3e8f53", size = 8857827 }, + { url = "https://files.pythonhosted.org/packages/83/e7/1d8b1b266a92f9013c755b1c146c5ad71a2bff147ecbc67f86546a2e4d6a/numcodecs-0.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:e5db4824ebd5389ea30e54bc8aeccb82d514d28b6b68da6c536b8fa4596f4bca", size = 826539 }, { url = "https://files.pythonhosted.org/packages/83/8b/06771dead2cc4a8ae1ea9907737cf1c8d37a323392fa28f938a586373468/numcodecs-0.13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a60d75179fd6692e301ddfb3b266d51eb598606dcae7b9fc57f986e8d65cb43", size = 1571660 }, { url = "https://files.pythonhosted.org/packages/f9/ea/d925bf85f92dfe4635356018da9fe4bfecb07b1c72f62b01c1bc47f936b1/numcodecs-0.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f593c7506b0ab248961a3b13cb148cc6e8355662ff124ac591822310bc55ecf", size = 1169925 }, { url = "https://files.pythonhosted.org/packages/0f/d6/643a3839d571d8e439a2c77dc4b0b8cab18d96ac808e4a81dbe88e959ab6/numcodecs-0.13.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80d3071465f03522e776a31045ddf2cfee7f52df468b977ed3afdd7fe5869701", size = 8814257 }, + { url = "https://files.pythonhosted.org/packages/a6/c5/f3e56bc9b4e438a287fff738993d6d11abef368c0328a612ac2842ba9fca/numcodecs-0.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:90d3065ae74c9342048ae0046006f99dcb1388b7288da5a19b3bddf9c30c3176", size = 821887 }, ] [[package]] @@ -4400,18 +2648,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4b/d7/ecf66c1cd12dc28b4040b15ab4d17b773b87fa9d29ca16125de01adb36cd/numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f", size = 18240889 }, { url = "https://files.pythonhosted.org/packages/24/03/6f229fe3187546435c4f6f89f6d26c129d4f5bed40552899fcf1f0bf9e50/numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a", size = 13876746 }, { url = "https://files.pythonhosted.org/packages/39/fe/39ada9b094f01f5a35486577c848fe274e374bbf8d8f472e1423a0bbd26d/numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2", size = 18078620 }, + { url = "https://files.pythonhosted.org/packages/d5/ef/6ad11d51197aad206a9ad2286dc1aac6a378059e06e8cf22cd08ed4f20dc/numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07", size = 5972659 }, + { url = "https://files.pythonhosted.org/packages/19/77/538f202862b9183f54108557bfda67e17603fc560c384559e769321c9d92/numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5", size = 15808905 }, { url = "https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71", size = 20630554 }, { url = "https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef", size = 13997127 }, { url = "https://files.pythonhosted.org/packages/79/ae/7e5b85136806f9dadf4878bf73cf223fe5c2636818ba3ab1c585d0403164/numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e", size = 14222994 }, { url = "https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5", size = 18252005 }, { url = "https://files.pythonhosted.org/packages/09/bf/2b1aaf8f525f2923ff6cfcf134ae5e750e279ac65ebf386c75a0cf6da06a/numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a", size = 13885297 }, { url = "https://files.pythonhosted.org/packages/df/a0/4e0f14d847cfc2a633a1c8621d00724f3206cfeddeb66d35698c4e2cf3d2/numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a", size = 18093567 }, + { url = "https://files.pythonhosted.org/packages/d2/b7/a734c733286e10a7f1a8ad1ae8c90f2d33bf604a96548e0a4a3a6739b468/numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20", size = 5968812 }, + { url = "https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2", size = 15811913 }, { url = "https://files.pythonhosted.org/packages/95/12/8f2020a8e8b8383ac0177dc9570aad031a3beb12e38847f7129bacd96228/numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218", size = 20335901 }, { url = "https://files.pythonhosted.org/packages/75/5b/ca6c8bd14007e5ca171c7c03102d17b4f4e0ceb53957e8c44343a9546dcc/numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b", size = 13685868 }, { url = "https://files.pythonhosted.org/packages/79/f8/97f10e6755e2a7d027ca783f63044d5b1bc1ae7acb12afe6a9b4286eac17/numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b", size = 13925109 }, { url = "https://files.pythonhosted.org/packages/0f/50/de23fde84e45f5c4fda2488c759b69990fd4512387a8632860f3ac9cd225/numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed", size = 17950613 }, { url = "https://files.pythonhosted.org/packages/4c/0c/9c603826b6465e82591e05ca230dfc13376da512b25ccd0894709b054ed0/numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a", size = 13572172 }, { url = "https://files.pythonhosted.org/packages/76/8c/2ba3902e1a0fc1c74962ea9bb33a534bb05984ad7ff9515bf8d07527cadd/numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0", size = 17786643 }, + { url = "https://files.pythonhosted.org/packages/28/4a/46d9e65106879492374999e76eb85f87b15328e06bd1550668f79f7b18c6/numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110", size = 5677803 }, + { url = "https://files.pythonhosted.org/packages/16/2e/86f24451c2d530c88daf997cb8d6ac622c1d40d19f5a031ed68a4b73a374/numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818", size = 15517754 }, ] [[package]] @@ -4419,7 +2673,7 @@ name = "numpy-groupies" version = "0.11.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/26/56/4fdd73388ec13a1ac3d4b27856a67b098eac6c120bbb43b42b2822e20f6c/numpy_groupies-0.11.2.tar.gz", hash = "sha256:2fda978c4d28d2f1633a63972f425d0a7f2f12a75505d215b41b6de712e2ec4b", size = 159015 } wheels = [ @@ -4461,6 +2715,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2a/05/f32acc2500e3fafee9445eb8b2a6ff19c4641035e6059c6c8d7bdb3abc9e/orjson-3.10.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:802a3935f45605c66fb4a586488a38af63cb37aaad1c1d94c982c40dcc452e85", size = 415782 }, { url = "https://files.pythonhosted.org/packages/06/03/6cc740d998d8bb60e75d4b7e228d18964475239ac842cc1865d49d092545/orjson-3.10.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1da1ef0113a2be19bb6c557fb0ec2d79c92ebd2fed4cfb1b26bab93f021fb885", size = 142383 }, { url = "https://files.pythonhosted.org/packages/f8/30/39cac82547fe021615376245c558b216d3ae8c99bd6b2274f312e49f1c94/orjson-3.10.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a3273e99f367f137d5b3fecb5e9f45bcdbfac2a8b2f32fbc72129bbd48789c2", size = 130661 }, + { url = "https://files.pythonhosted.org/packages/95/29/c6837f4fc1eaa742eaf5abcd767ab6805493f44fe1f72b37c1743706c1d8/orjson-3.10.12-cp310-none-win32.whl", hash = "sha256:475661bf249fd7907d9b0a2a2421b4e684355a77ceef85b8352439a9163418c3", size = 143625 }, + { url = "https://files.pythonhosted.org/packages/f6/62/c6b955f2144421108fa441b5471e1d5f8654a7df9840b261106e04d5d15c/orjson-3.10.12-cp310-none-win_amd64.whl", hash = "sha256:87251dc1fb2b9e5ab91ce65d8f4caf21910d99ba8fb24b49fd0c118b2362d509", size = 135075 }, { url = "https://files.pythonhosted.org/packages/d3/48/7c3cd094488f5a3bc58488555244609a8c4d105bc02f2b77e509debf0450/orjson-3.10.12-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a734c62efa42e7df94926d70fe7d37621c783dea9f707a98cdea796964d4cf74", size = 248687 }, { url = "https://files.pythonhosted.org/packages/ff/90/e55f0e25c7fdd1f82551fe787f85df6f378170caca863c04c810cd8f2730/orjson-3.10.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:750f8b27259d3409eda8350c2919a58b0cfcd2054ddc1bd317a643afc646ef23", size = 136953 }, { url = "https://files.pythonhosted.org/packages/2a/b3/109c020cf7fee747d400de53b43b183ca9d3ebda3906ad0b858eb5479718/orjson-3.10.12-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb52c22bfffe2857e7aa13b4622afd0dd9d16ea7cc65fd2bf318d3223b1b6252", size = 149090 }, @@ -4472,6 +2728,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c4/45/febee5951aef6db5cd8cdb260548101d7ece0ca9d4ddadadf1766306b7a4/orjson-3.10.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5dee91b8dfd54557c1a1596eb90bcd47dbcd26b0baaed919e6861f076583e9da", size = 415783 }, { url = "https://files.pythonhosted.org/packages/27/a5/5a8569e49f3a6c093bee954a3de95062a231196f59e59df13a48e2420081/orjson-3.10.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a4e1cfb72de6f905bdff061172adfb3caf7a4578ebf481d8f0530879476c07", size = 142387 }, { url = "https://files.pythonhosted.org/packages/6e/05/02550fb38c5bf758f3994f55401233a2ef304e175f473f2ac6dbf464cc8b/orjson-3.10.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:038d42c7bc0606443459b8fe2d1f121db474c49067d8d14c6a075bbea8bf14dd", size = 130664 }, + { url = "https://files.pythonhosted.org/packages/8c/f4/ba31019d0646ce51f7ac75af6dabf98fd89dbf8ad87a9086da34710738e7/orjson-3.10.12-cp311-none-win32.whl", hash = "sha256:03b553c02ab39bed249bedd4abe37b2118324d1674e639b33fab3d1dafdf4d79", size = 143623 }, + { url = "https://files.pythonhosted.org/packages/83/fe/babf08842b989acf4c46103fefbd7301f026423fab47e6f3ba07b54d7837/orjson-3.10.12-cp311-none-win_amd64.whl", hash = "sha256:8b8713b9e46a45b2af6b96f559bfb13b1e02006f4242c156cbadef27800a55a8", size = 135074 }, { url = "https://files.pythonhosted.org/packages/a1/2f/989adcafad49afb535da56b95d8f87d82e748548b2a86003ac129314079c/orjson-3.10.12-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53206d72eb656ca5ac7d3a7141e83c5bbd3ac30d5eccfe019409177a57634b0d", size = 248678 }, { url = "https://files.pythonhosted.org/packages/69/b9/8c075e21a50c387649db262b618ebb7e4d40f4197b949c146fc225dd23da/orjson-3.10.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac8010afc2150d417ebda810e8df08dd3f544e0dd2acab5370cfa6bcc0662f8f", size = 136763 }, { url = "https://files.pythonhosted.org/packages/87/d3/78edf10b4ab14c19f6d918cf46a145818f4aca2b5a1773c894c5490d3a4c/orjson-3.10.12-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed459b46012ae950dd2e17150e838ab08215421487371fa79d0eced8d1461d70", size = 149137 }, @@ -4483,6 +2741,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e8/29/dddbb2ea6e7af426fcc3da65a370618a88141de75c6603313d70768d1df1/orjson-3.10.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ff70ef093895fd53f4055ca75f93f047e088d1430888ca1229393a7c0521100f", size = 415788 }, { url = "https://files.pythonhosted.org/packages/53/df/4aea59324ac539975919b4705ee086aced38e351a6eb3eea0f5071dd5661/orjson-3.10.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f4244b7018b5753ecd10a6d324ec1f347da130c953a9c88432c7fbc8875d13be", size = 142347 }, { url = "https://files.pythonhosted.org/packages/55/55/a52d83d7c49f8ff44e0daab10554490447d6c658771569e1c662aa7057fe/orjson-3.10.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:16135ccca03445f37921fa4b585cff9a58aa8d81ebcb27622e69bfadd220b32c", size = 130829 }, + { url = "https://files.pythonhosted.org/packages/a1/8b/b1beb1624dd4adf7d72e2d9b73c4b529e7851c0c754f17858ea13e368b33/orjson-3.10.12-cp312-none-win32.whl", hash = "sha256:2d879c81172d583e34153d524fcba5d4adafbab8349a7b9f16ae511c2cee8708", size = 143659 }, + { url = "https://files.pythonhosted.org/packages/13/91/634c9cd0bfc6a857fc8fab9bf1a1bd9f7f3345e0d6ca5c3d4569ceb6dcfa/orjson-3.10.12-cp312-none-win_amd64.whl", hash = "sha256:fc23f691fa0f5c140576b8c365bc942d577d861a9ee1142e4db468e4e17094fb", size = 135221 }, { url = "https://files.pythonhosted.org/packages/1b/bb/3f560735f46fa6f875a9d7c4c2171a58cfb19f56a633d5ad5037a924f35f/orjson-3.10.12-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:47962841b2a8aa9a258b377f5188db31ba49af47d4003a32f55d6f8b19006543", size = 248662 }, { url = "https://files.pythonhosted.org/packages/a3/df/54817902350636cc9270db20486442ab0e4db33b38555300a1159b439d16/orjson-3.10.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6334730e2532e77b6054e87ca84f3072bee308a45a452ea0bffbbbc40a67e296", size = 126055 }, { url = "https://files.pythonhosted.org/packages/2e/77/55835914894e00332601a74540840f7665e81f20b3e2b9a97614af8565ed/orjson-3.10.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:accfe93f42713c899fdac2747e8d0d5c659592df2792888c6c5f829472e4f85e", size = 131507 }, @@ -4490,6 +2750,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b2/15/08ce117d60a4d2d3fd24e6b21db463139a658e9f52d22c9c30af279b4187/orjson-3.10.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3f250ce7727b0b2682f834a3facff88e310f52f07a5dcfd852d99637d386e79e", size = 415710 }, { url = "https://files.pythonhosted.org/packages/71/af/c09da5ed58f9c002cf83adff7a4cdf3e6cee742aa9723395f8dcdb397233/orjson-3.10.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f31422ff9486ae484f10ffc51b5ab2a60359e92d0716fcce1b3593d7bb8a9af6", size = 142305 }, { url = "https://files.pythonhosted.org/packages/17/d1/8612038d44f33fae231e9ba480d273bac2b0383ce9e77cb06bede1224ae3/orjson-3.10.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5f29c5d282bb2d577c2a6bbde88d8fdcc4919c593f806aac50133f01b733846e", size = 130815 }, + { url = "https://files.pythonhosted.org/packages/67/2c/d5f87834be3591555cfaf9aecdf28f480a6f0b4afeaac53bad534bf9518f/orjson-3.10.12-cp313-none-win32.whl", hash = "sha256:f45653775f38f63dc0e6cd4f14323984c3149c05d6007b58cb154dd080ddc0dc", size = 143664 }, + { url = "https://files.pythonhosted.org/packages/6a/05/7d768fa3ca23c9b3e1e09117abeded1501119f1d8de0ab722938c91ab25d/orjson-3.10.12-cp313-none-win_amd64.whl", hash = "sha256:229994d0c376d5bdc91d92b3c9e6be2f1fbabd4cc1b59daae1443a46ee5e9825", size = 134944 }, ] [[package]] @@ -4506,10 +2768,10 @@ name = "pandas" version = "2.2.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "python-dateutil", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tzdata", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "python-dateutil", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tzdata", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/9c/d6/9f8431bacc2e19dca897724cd097b1bb224a6ad5433784a44b587c7c13af/pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667", size = 4399213 } wheels = [ @@ -4519,24 +2781,28 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/44/50/7db2cd5e6373ae796f0ddad3675268c8d59fb6076e66f0c339d61cea886b/pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57", size = 13064210 }, { url = "https://files.pythonhosted.org/packages/61/61/a89015a6d5536cb0d6c3ba02cebed51a95538cf83472975275e28ebf7d0c/pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42", size = 16754292 }, { url = "https://files.pythonhosted.org/packages/ce/0d/4cc7b69ce37fac07645a94e1d4b0880b15999494372c1523508511b09e40/pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f", size = 14416379 }, + { url = "https://files.pythonhosted.org/packages/31/9e/6ebb433de864a6cd45716af52a4d7a8c3c9aaf3a98368e61db9e69e69a9c/pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645", size = 11598471 }, { 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 }, @@ -4550,19 +2816,19 @@ name = "panel" version = "1.5.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "bleach", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "bokeh", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "linkify-it-py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "markdown", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "markdown-it-py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "mdit-py-plugins", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "param", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyviz-comms", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "requests", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tqdm", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "bleach", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "bokeh", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "linkify-it-py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "markdown", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "markdown-it-py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "mdit-py-plugins", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "param", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyviz-comms", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "requests", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tqdm", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/6d/66/7f13691d577c3096d8605c307cfc6f662014896086a0c53778cf6e5828ea/panel-1.5.4.tar.gz", hash = "sha256:7644e87afe9b94c32b4fca939d645c5b958d671691bd841d3391e31941090092", size = 29378323 } wheels = [ @@ -4583,8 +2849,8 @@ name = "partd" version = "1.4.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "locket", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "toolz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "locket", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b2/3a/3f06f34820a31257ddcabdfafc2672c5816be79c7e353b02c1f318daa7d4/partd-1.4.2.tar.gz", hash = "sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c", size = 21029 } wheels = [ @@ -4614,6 +2880,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/41/c3/94f33af0762ed76b5a237c5797e088aa57f2b7fa8ee7932d399087be66a8/pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f", size = 4366117 }, { url = "https://files.pythonhosted.org/packages/ba/3c/443e7ef01f597497268899e1cca95c0de947c9bbf77a8f18b3c126681e5d/pillow-11.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb", size = 4278607 }, { url = "https://files.pythonhosted.org/packages/26/95/1495304448b0081e60c0c5d63f928ef48bb290acee7385804426fa395a21/pillow-11.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97", size = 4410685 }, + { url = "https://files.pythonhosted.org/packages/45/da/861e1df971ef0de9870720cb309ca4d553b26a9483ec9be3a7bf1de4a095/pillow-11.0.0-cp310-cp310-win32.whl", hash = "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50", size = 2249185 }, + { url = "https://files.pythonhosted.org/packages/d5/4e/78f7c5202ea2a772a5ab05069c1b82503e6353cd79c7e474d4945f4b82c3/pillow-11.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c", size = 2566726 }, + { url = "https://files.pythonhosted.org/packages/77/e4/6e84eada35cbcc646fc1870f72ccfd4afacb0fae0c37ffbffe7f5dc24bf1/pillow-11.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1", size = 2254585 }, { url = "https://files.pythonhosted.org/packages/f0/eb/f7e21b113dd48a9c97d364e0915b3988c6a0b6207652f5a92372871b7aa4/pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc", size = 3154705 }, { url = "https://files.pythonhosted.org/packages/25/b3/2b54a1d541accebe6bd8b1358b34ceb2c509f51cb7dcda8687362490da5b/pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a", size = 2979222 }, { url = "https://files.pythonhosted.org/packages/20/12/1a41eddad8265c5c19dda8fb6c269ce15ee25e0b9f8f26286e6202df6693/pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3", size = 4190220 }, @@ -4622,6 +2891,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/39/63/b3fc299528d7df1f678b0666002b37affe6b8751225c3d9c12cf530e73ed/pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa", size = 4372556 }, { url = "https://files.pythonhosted.org/packages/c6/a6/694122c55b855b586c26c694937d36bb8d3b09c735ff41b2f315c6e66a10/pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306", size = 4287187 }, { url = "https://files.pythonhosted.org/packages/ba/a9/f9d763e2671a8acd53d29b1e284ca298bc10a595527f6be30233cdb9659d/pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9", size = 4418468 }, + { url = "https://files.pythonhosted.org/packages/6e/0e/b5cbad2621377f11313a94aeb44ca55a9639adabcaaa073597a1925f8c26/pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5", size = 2249249 }, + { url = "https://files.pythonhosted.org/packages/dc/83/1470c220a4ff06cd75fc609068f6605e567ea51df70557555c2ab6516b2c/pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291", size = 2566769 }, + { url = "https://files.pythonhosted.org/packages/52/98/def78c3a23acee2bcdb2e52005fb2810ed54305602ec1bfcfab2bda6f49f/pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9", size = 2254611 }, { url = "https://files.pythonhosted.org/packages/1c/a3/26e606ff0b2daaf120543e537311fa3ae2eb6bf061490e4fea51771540be/pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923", size = 3147642 }, { url = "https://files.pythonhosted.org/packages/4f/d5/1caabedd8863526a6cfa44ee7a833bd97f945dc1d56824d6d76e11731939/pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903", size = 2978999 }, { url = "https://files.pythonhosted.org/packages/d9/ff/5a45000826a1aa1ac6874b3ec5a856474821a1b59d838c4f6ce2ee518fe9/pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4", size = 4196794 }, @@ -4630,6 +2902,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7f/42/6e0f2c2d5c60f499aa29be14f860dd4539de322cd8fb84ee01553493fb4d/pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7", size = 4381824 }, { url = "https://files.pythonhosted.org/packages/31/69/1ef0fb9d2f8d2d114db982b78ca4eeb9db9a29f7477821e160b8c1253f67/pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6", size = 4296436 }, { url = "https://files.pythonhosted.org/packages/44/ea/dad2818c675c44f6012289a7c4f46068c548768bc6c7f4e8c4ae5bbbc811/pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc", size = 4429714 }, + { url = "https://files.pythonhosted.org/packages/af/3a/da80224a6eb15bba7a0dcb2346e2b686bb9bf98378c0b4353cd88e62b171/pillow-11.0.0-cp312-cp312-win32.whl", hash = "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6", size = 2249631 }, + { url = "https://files.pythonhosted.org/packages/57/97/73f756c338c1d86bb802ee88c3cab015ad7ce4b838f8a24f16b676b1ac7c/pillow-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47", size = 2567533 }, + { url = "https://files.pythonhosted.org/packages/0b/30/2b61876e2722374558b871dfbfcbe4e406626d63f4f6ed92e9c8e24cac37/pillow-11.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25", size = 2254890 }, { url = "https://files.pythonhosted.org/packages/63/24/e2e15e392d00fcf4215907465d8ec2a2f23bcec1481a8ebe4ae760459995/pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699", size = 3147300 }, { url = "https://files.pythonhosted.org/packages/43/72/92ad4afaa2afc233dc44184adff289c2e77e8cd916b3ddb72ac69495bda3/pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38", size = 2978742 }, { url = "https://files.pythonhosted.org/packages/9e/da/c8d69c5bc85d72a8523fe862f05ababdc52c0a755cfe3d362656bb86552b/pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2", size = 4194349 }, @@ -4638,17 +2913,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/44/ae/7e4f6662a9b1cb5f92b9cc9cab8321c381ffbee309210940e57432a4063a/pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa", size = 4380055 }, { url = "https://files.pythonhosted.org/packages/74/d5/1a807779ac8a0eeed57f2b92a3c32ea1b696e6140c15bd42eaf908a261cd/pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f", size = 4296751 }, { url = "https://files.pythonhosted.org/packages/38/8c/5fa3385163ee7080bc13026d59656267daaaaf3c728c233d530e2c2757c8/pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb", size = 4430378 }, + { url = "https://files.pythonhosted.org/packages/ca/1d/ad9c14811133977ff87035bf426875b93097fb50af747793f013979facdb/pillow-11.0.0-cp313-cp313-win32.whl", hash = "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798", size = 2249588 }, + { url = "https://files.pythonhosted.org/packages/fb/01/3755ba287dac715e6afdb333cb1f6d69740a7475220b4637b5ce3d78cec2/pillow-11.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de", size = 2567509 }, + { url = "https://files.pythonhosted.org/packages/c0/98/2c7d727079b6be1aba82d195767d35fcc2d32204c7a5820f822df5330152/pillow-11.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84", size = 2254791 }, { url = "https://files.pythonhosted.org/packages/eb/38/998b04cc6f474e78b563716b20eecf42a2fa16a84589d23c8898e64b0ffd/pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b", size = 3150854 }, { url = "https://files.pythonhosted.org/packages/13/8e/be23a96292113c6cb26b2aa3c8b3681ec62b44ed5c2bd0b258bd59503d3c/pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003", size = 2982369 }, { url = "https://files.pythonhosted.org/packages/97/8a/3db4eaabb7a2ae8203cd3a332a005e4aba00067fc514aaaf3e9721be31f1/pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2", size = 4333703 }, { url = "https://files.pythonhosted.org/packages/28/ac/629ffc84ff67b9228fe87a97272ab125bbd4dc462745f35f192d37b822f1/pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a", size = 4412550 }, { url = "https://files.pythonhosted.org/packages/d6/07/a505921d36bb2df6868806eaf56ef58699c16c388e378b0dcdb6e5b2fb36/pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8", size = 4461038 }, + { url = "https://files.pythonhosted.org/packages/d6/b9/fb620dd47fc7cc9678af8f8bd8c772034ca4977237049287e99dda360b66/pillow-11.0.0-cp313-cp313t-win32.whl", hash = "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8", size = 2253197 }, + { url = "https://files.pythonhosted.org/packages/df/86/25dde85c06c89d7fc5db17940f07aae0a56ac69aa9ccb5eb0f09798862a8/pillow-11.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904", size = 2572169 }, + { url = "https://files.pythonhosted.org/packages/51/85/9c33f2517add612e17f3381aee7c4072779130c634921a756c97bc29fb49/pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3", size = 2256828 }, { url = "https://files.pythonhosted.org/packages/36/57/42a4dd825eab762ba9e690d696d894ba366e06791936056e26e099398cda/pillow-11.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2", size = 3119239 }, { url = "https://files.pythonhosted.org/packages/98/f7/25f9f9e368226a1d6cf3507081a1a7944eddd3ca7821023377043f5a83c8/pillow-11.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2", size = 2950803 }, { url = "https://files.pythonhosted.org/packages/59/01/98ead48a6c2e31e6185d4c16c978a67fe3ccb5da5c2ff2ba8475379bb693/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b", size = 3281098 }, { url = "https://files.pythonhosted.org/packages/51/c0/570255b2866a0e4d500a14f950803a2ec273bac7badc43320120b9262450/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2", size = 3323665 }, { url = "https://files.pythonhosted.org/packages/0e/75/689b4ec0483c42bfc7d1aacd32ade7a226db4f4fac57c6fdcdf90c0731e3/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830", size = 3310533 }, { url = "https://files.pythonhosted.org/packages/3d/30/38bd6149cf53da1db4bad304c543ade775d225961c4310f30425995cb9ec/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734", size = 3414886 }, + { url = "https://files.pythonhosted.org/packages/ec/3d/c32a51d848401bd94cabb8767a39621496491ee7cd5199856b77da9b18ad/pillow-11.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316", size = 2567508 }, ] [[package]] @@ -4692,9 +2974,9 @@ name = "pooch" version = "1.8.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "platformdirs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "requests", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "platformdirs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "requests", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/c6/77/b3d3e00c696c16cf99af81ef7b1f5fe73bd2a307abca41bd7605429fe6e5/pooch-1.8.2.tar.gz", hash = "sha256:76561f0de68a01da4df6af38e9955c4c9d1a5c90da73f7e40276a5728ec83d10", size = 59353 } wheels = [ @@ -4706,11 +2988,11 @@ name = "pre-commit" version = "4.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cfgv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "identify", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "nodeenv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "virtualenv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cfgv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "identify", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "nodeenv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "virtualenv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/2e/c8/e22c292035f1bac8b9f5237a2622305bc0304e776080b246f3df57c4ff9f/pre_commit-4.0.1.tar.gz", hash = "sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2", size = 191678 } wheels = [ @@ -4722,7 +3004,7 @@ name = "prompt-toolkit" version = "3.0.36" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "wcwidth", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "wcwidth", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/fb/93/180be2342f89f16543ec4eb3f25083b5b84eba5378f68efff05409fb39a9/prompt_toolkit-3.0.36.tar.gz", hash = "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63", size = 423863 } wheels = [ @@ -4740,6 +3022,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/65/8e/bcbe2025c587b5d703369b6a75b65d41d1367553da6e3f788aff91eaf5bd/psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38", size = 284259 }, { url = "https://files.pythonhosted.org/packages/58/4d/8245e6f76a93c98aab285a43ea71ff1b171bcd90c9d238bf81f7021fb233/psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b", size = 287255 }, { url = "https://files.pythonhosted.org/packages/27/c2/d034856ac47e3b3cdfa9720d0e113902e615f4190d5d1bdb8df4b2015fb2/psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a", size = 288804 }, + { url = "https://files.pythonhosted.org/packages/ea/55/5389ed243c878725feffc0d6a3bc5ef6764312b6fc7c081faaa2cfa7ef37/psutil-6.1.0-cp37-abi3-win32.whl", hash = "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e", size = 250386 }, + { url = "https://files.pythonhosted.org/packages/11/91/87fa6f060e649b1e1a7b19a4f5869709fbf750b7c8c262ee776ec32f3028/psutil-6.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be", size = 254228 }, ] [[package]] @@ -4763,24 +3047,28 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8a/77/4b3fab91a30e19e233e738d0c5eca5a8f6dd05758bc349a2ca262c65de79/pyarrow-18.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0a03da7f2758645d17b7b4f83c8bffeae5bbb7f974523fe901f36288d2eab71", size = 40128881 }, { url = "https://files.pythonhosted.org/packages/aa/e2/a88e16c5e45e562449c52305bd3bc2f9d704295322d3434656e7ccac1444/pyarrow-18.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ba17845efe3aa358ec266cf9cc2800fa73038211fb27968bfa88acd09261a470", size = 38627517 }, { url = "https://files.pythonhosted.org/packages/6d/84/8037c20005ccc7b869726465be0957bd9c29cfc88612962030f08292ad06/pyarrow-18.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:3c35813c11a059056a22a3bef520461310f2f7eea5c8a11ef9de7062a23f8d56", size = 40060187 }, + { url = "https://files.pythonhosted.org/packages/2a/38/d6435c723ff73df8ae74626ea778262fbcc2b9b0d1a4f3db915b61711b05/pyarrow-18.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:9736ba3c85129d72aefa21b4f3bd715bc4190fe4426715abfff90481e7d00812", size = 25118314 }, { url = "https://files.pythonhosted.org/packages/9e/4d/a4988e7d82f4fbc797715db4185939a658eeffb07a25bab7262bed1ea076/pyarrow-18.1.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:eaeabf638408de2772ce3d7793b2668d4bb93807deed1725413b70e3156a7854", size = 29554860 }, { url = "https://files.pythonhosted.org/packages/59/03/3a42c5c1e4bd4c900ab62aa1ff6b472bdb159ba8f1c3e5deadab7222244f/pyarrow-18.1.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:3b2e2239339c538f3464308fd345113f886ad031ef8266c6f004d49769bb074c", size = 30867076 }, { url = "https://files.pythonhosted.org/packages/75/7e/332055ac913373e89256dce9d14b7708f55f7bd5be631456c897f0237738/pyarrow-18.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f39a2e0ed32a0970e4e46c262753417a60c43a3246972cfc2d3eb85aedd01b21", size = 39212135 }, { url = "https://files.pythonhosted.org/packages/8c/64/5099cdb325828722ef7ffeba9a4696f238eb0cdeae227f831c2d77fcf1bd/pyarrow-18.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e31e9417ba9c42627574bdbfeada7217ad8a4cbbe45b9d6bdd4b62abbca4c6f6", size = 40125195 }, { url = "https://files.pythonhosted.org/packages/83/88/1938d783727db1b178ff71bc6a6143d7939e406db83a9ec23cad3dad325c/pyarrow-18.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:01c034b576ce0eef554f7c3d8c341714954be9b3f5d5bc7117006b85fcf302fe", size = 38641884 }, { url = "https://files.pythonhosted.org/packages/5e/b5/9e14e9f7590e0eaa435ecea84dabb137284a4dbba7b3c337b58b65b76d95/pyarrow-18.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f266a2c0fc31995a06ebd30bcfdb7f615d7278035ec5b1cd71c48d56daaf30b0", size = 40076877 }, + { url = "https://files.pythonhosted.org/packages/4d/a3/817ac7fe0891a2d66e247e223080f3a6a262d8aefd77e11e8c27e6acf4e1/pyarrow-18.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:d4f13eee18433f99adefaeb7e01d83b59f73360c231d4782d9ddfaf1c3fbde0a", size = 25119811 }, { url = "https://files.pythonhosted.org/packages/6a/50/12829e7111b932581e51dda51d5cb39207a056c30fe31ef43f14c63c4d7e/pyarrow-18.1.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:9f3a76670b263dc41d0ae877f09124ab96ce10e4e48f3e3e4257273cee61ad0d", size = 29514620 }, { url = "https://files.pythonhosted.org/packages/d1/41/468c944eab157702e96abab3d07b48b8424927d4933541ab43788bb6964d/pyarrow-18.1.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:da31fbca07c435be88a0c321402c4e31a2ba61593ec7473630769de8346b54ee", size = 30856494 }, { url = "https://files.pythonhosted.org/packages/68/f9/29fb659b390312a7345aeb858a9d9c157552a8852522f2c8bad437c29c0a/pyarrow-18.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:543ad8459bc438efc46d29a759e1079436290bd583141384c6f7a1068ed6f992", size = 39203624 }, { url = "https://files.pythonhosted.org/packages/6e/f6/19360dae44200e35753c5c2889dc478154cd78e61b1f738514c9f131734d/pyarrow-18.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0743e503c55be0fdb5c08e7d44853da27f19dc854531c0570f9f394ec9671d54", size = 40139341 }, { url = "https://files.pythonhosted.org/packages/bb/e6/9b3afbbcf10cc724312e824af94a2e993d8ace22994d823f5c35324cebf5/pyarrow-18.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d4b3d2a34780645bed6414e22dda55a92e0fcd1b8a637fba86800ad737057e33", size = 38618629 }, { url = "https://files.pythonhosted.org/packages/3a/2e/3b99f8a3d9e0ccae0e961978a0d0089b25fb46ebbcfb5ebae3cca179a5b3/pyarrow-18.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c52f81aa6f6575058d8e2c782bf79d4f9fdc89887f16825ec3a66607a5dd8e30", size = 40078661 }, + { url = "https://files.pythonhosted.org/packages/76/52/f8da04195000099d394012b8d42c503d7041b79f778d854f410e5f05049a/pyarrow-18.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ad4892617e1a6c7a551cfc827e072a633eaff758fa09f21c4ee548c30bcaf99", size = 25092330 }, { url = "https://files.pythonhosted.org/packages/cb/87/aa4d249732edef6ad88899399047d7e49311a55749d3c373007d034ee471/pyarrow-18.1.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:84e314d22231357d473eabec709d0ba285fa706a72377f9cc8e1cb3c8013813b", size = 29497406 }, { url = "https://files.pythonhosted.org/packages/3c/c7/ed6adb46d93a3177540e228b5ca30d99fc8ea3b13bdb88b6f8b6467e2cb7/pyarrow-18.1.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:f591704ac05dfd0477bb8f8e0bd4b5dc52c1cadf50503858dce3a15db6e46ff2", size = 30835095 }, { url = "https://files.pythonhosted.org/packages/41/d7/ed85001edfb96200ff606943cff71d64f91926ab42828676c0fc0db98963/pyarrow-18.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acb7564204d3c40babf93a05624fc6a8ec1ab1def295c363afc40b0c9e66c191", size = 39194527 }, { url = "https://files.pythonhosted.org/packages/59/16/35e28eab126342fa391593415d79477e89582de411bb95232f28b131a769/pyarrow-18.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74de649d1d2ccb778f7c3afff6085bd5092aed4c23df9feeb45dd6b16f3811aa", size = 40131443 }, { url = "https://files.pythonhosted.org/packages/0c/95/e855880614c8da20f4cd74fa85d7268c725cf0013dc754048593a38896a0/pyarrow-18.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:f96bd502cb11abb08efea6dab09c003305161cb6c9eafd432e35e76e7fa9b90c", size = 38608750 }, { url = "https://files.pythonhosted.org/packages/54/9d/f253554b1457d4fdb3831b7bd5f8f00f1795585a606eabf6fec0a58a9c38/pyarrow-18.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:36ac22d7782554754a3b50201b607d553a8d71b78cdf03b33c1125be4b52397c", size = 40066690 }, + { url = "https://files.pythonhosted.org/packages/2f/58/8912a2563e6b8273e8aa7b605a345bba5a06204549826f6493065575ebc0/pyarrow-18.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:25dbacab8c5952df0ca6ca0af28f50d45bd31c1ff6fcf79e2d120b4a65ee7181", size = 25081054 }, { url = "https://files.pythonhosted.org/packages/82/f9/d06ddc06cab1ada0c2f2fd205ac8c25c2701182de1b9c4bf7a0a44844431/pyarrow-18.1.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a276190309aba7bc9d5bd2933230458b3521a4317acfefe69a354f2fe59f2bc", size = 29525542 }, { url = "https://files.pythonhosted.org/packages/ab/94/8917e3b961810587ecbdaa417f8ebac0abb25105ae667b7aa11c05876976/pyarrow-18.1.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:ad514dbfcffe30124ce655d72771ae070f30bf850b48bc4d9d3b25993ee0e386", size = 30829412 }, { url = "https://files.pythonhosted.org/packages/5e/e3/3b16c3190f3d71d3b10f6758d2d5f7779ef008c4fd367cedab3ed178a9f7/pyarrow-18.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aebc13a11ed3032d8dd6e7171eb6e86d40d67a5639d96c35142bd568b9299324", size = 39119106 }, @@ -4812,7 +3100,7 @@ name = "pyct" version = "0.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "param", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "param", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/2e/3b/b5b9d4215bc98df9186a5dfb9f2b4ce6db0b33b1728f63143f1431542e20/pyct-0.5.0.tar.gz", hash = "sha256:dd9f4ac5cbd8e37c352c04036062d3c5f67efec76d404761ef16b0cbf26aa6a0", size = 15837 } wheels = [ @@ -4824,9 +3112,9 @@ name = "pydantic" version = "2.10.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "annotated-types", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pydantic-core", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "annotated-types", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pydantic-core", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/41/86/a03390cb12cf64e2a8df07c267f3eb8d5035e0f9a04bb20fb79403d2a00e/pydantic-2.10.2.tar.gz", hash = "sha256:2bc2d7f17232e0841cbba4641e65ba1eb6fafb3a08de3a091ff3ce14a197c4fa", size = 785401 } wheels = [ @@ -4838,7 +3126,7 @@ name = "pydantic-core" version = "2.27.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a6/9f/7de1f19b6aea45aeb441838782d68352e71bfa98ee6fa048d5041991b33e/pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235", size = 412785 } wheels = [ @@ -4853,6 +3141,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/49/ec/557dd4ff5287ffffdf16a31d08d723de6762bb1b691879dc4423392309bc/pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807", size = 1995829 }, { url = "https://files.pythonhosted.org/packages/6e/b2/610dbeb74d8d43921a7234555e4c091cb050a2bdb8cfea86d07791ce01c5/pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c", size = 2091257 }, { url = "https://files.pythonhosted.org/packages/8c/7f/4bf8e9d26a9118521c80b229291fa9558a07cdd9a968ec2d5c1026f14fbc/pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206", size = 2143894 }, + { url = "https://files.pythonhosted.org/packages/1f/1c/875ac7139c958f4390f23656fe696d1acc8edf45fb81e4831960f12cd6e4/pydantic_core-2.27.1-cp310-none-win32.whl", hash = "sha256:f5a823165e6d04ccea61a9f0576f345f8ce40ed533013580e087bd4d7442b52c", size = 1816081 }, + { url = "https://files.pythonhosted.org/packages/d7/41/55a117acaeda25ceae51030b518032934f251b1dac3704a53781383e3491/pydantic_core-2.27.1-cp310-none-win_amd64.whl", hash = "sha256:57866a76e0b3823e0b56692d1a0bf722bffb324839bb5b7226a7dbd6c9a40b17", size = 1981109 }, { url = "https://files.pythonhosted.org/packages/27/39/46fe47f2ad4746b478ba89c561cafe4428e02b3573df882334bd2964f9cb/pydantic_core-2.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8", size = 1895553 }, { url = "https://files.pythonhosted.org/packages/1c/00/0804e84a78b7fdb394fff4c4f429815a10e5e0993e6ae0e0b27dd20379ee/pydantic_core-2.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330", size = 1807220 }, { url = "https://files.pythonhosted.org/packages/01/de/df51b3bac9820d38371f5a261020f505025df732ce566c2a2e7970b84c8c/pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52", size = 1829727 }, @@ -4864,6 +3154,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/05/72/257b5824d7988af43460c4e22b63932ed651fe98804cc2793068de7ec554/pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919", size = 1994625 }, { url = "https://files.pythonhosted.org/packages/73/c3/78ed6b7f3278a36589bcdd01243189ade7fc9b26852844938b4d7693895b/pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c", size = 2090089 }, { url = "https://files.pythonhosted.org/packages/8d/c8/b4139b2f78579960353c4cd987e035108c93a78371bb19ba0dc1ac3b3220/pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc", size = 2142496 }, + { url = "https://files.pythonhosted.org/packages/3e/f8/171a03e97eb36c0b51981efe0f78460554a1d8311773d3d30e20c005164e/pydantic_core-2.27.1-cp311-none-win32.whl", hash = "sha256:2cdf7d86886bc6982354862204ae3b2f7f96f21a3eb0ba5ca0ac42c7b38598b9", size = 1811758 }, + { url = "https://files.pythonhosted.org/packages/6a/fe/4e0e63c418c1c76e33974a05266e5633e879d4061f9533b1706a86f77d5b/pydantic_core-2.27.1-cp311-none-win_amd64.whl", hash = "sha256:3af385b0cee8df3746c3f406f38bcbfdc9041b5c2d5ce3e5fc6637256e60bbc5", size = 1980864 }, + { url = "https://files.pythonhosted.org/packages/50/fc/93f7238a514c155a8ec02fc7ac6376177d449848115e4519b853820436c5/pydantic_core-2.27.1-cp311-none-win_arm64.whl", hash = "sha256:81f2ec23ddc1b476ff96563f2e8d723830b06dceae348ce02914a37cb4e74b89", size = 1864327 }, { url = "https://files.pythonhosted.org/packages/be/51/2e9b3788feb2aebff2aa9dfbf060ec739b38c05c46847601134cc1fed2ea/pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f", size = 1895239 }, { url = "https://files.pythonhosted.org/packages/7b/9e/f8063952e4a7d0127f5d1181addef9377505dcce3be224263b25c4f0bfd9/pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02", size = 1805070 }, { url = "https://files.pythonhosted.org/packages/2c/9d/e1d6c4561d262b52e41b17a7ef8301e2ba80b61e32e94520271029feb5d8/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c", size = 1828096 }, @@ -4875,6 +3168,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/77/29/4bb008823a7f4cc05828198153f9753b3bd4c104d93b8e0b1bfe4e187540/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381", size = 2001468 }, { url = "https://files.pythonhosted.org/packages/f2/a9/0eaceeba41b9fad851a4107e0cf999a34ae8f0d0d1f829e2574f3d8897b0/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb", size = 2091413 }, { url = "https://files.pythonhosted.org/packages/d8/36/eb8697729725bc610fd73940f0d860d791dc2ad557faaefcbb3edbd2b349/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae", size = 2154735 }, + { url = "https://files.pythonhosted.org/packages/52/e5/4f0fbd5c5995cc70d3afed1b5c754055bb67908f55b5cb8000f7112749bf/pydantic_core-2.27.1-cp312-none-win32.whl", hash = "sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c", size = 1833633 }, + { url = "https://files.pythonhosted.org/packages/ee/f2/c61486eee27cae5ac781305658779b4a6b45f9cc9d02c90cb21b940e82cc/pydantic_core-2.27.1-cp312-none-win_amd64.whl", hash = "sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16", size = 1986973 }, + { url = "https://files.pythonhosted.org/packages/df/a6/e3f12ff25f250b02f7c51be89a294689d175ac76e1096c32bf278f29ca1e/pydantic_core-2.27.1-cp312-none-win_arm64.whl", hash = "sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e", size = 1883215 }, { url = "https://files.pythonhosted.org/packages/0f/d6/91cb99a3c59d7b072bded9959fbeab0a9613d5a4935773c0801f1764c156/pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073", size = 1895033 }, { url = "https://files.pythonhosted.org/packages/07/42/d35033f81a28b27dedcade9e967e8a40981a765795c9ebae2045bcef05d3/pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08", size = 1807542 }, { url = "https://files.pythonhosted.org/packages/41/c2/491b59e222ec7e72236e512108ecad532c7f4391a14e971c963f624f7569/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf", size = 1827854 }, @@ -4886,6 +3182,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bf/ba/ae4480bc0292d54b85cfb954e9d6bd226982949f8316338677d56541b85f/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc", size = 2001477 }, { url = "https://files.pythonhosted.org/packages/55/b7/e26adf48c2f943092ce54ae14c3c08d0d221ad34ce80b18a50de8ed2cba8/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960", size = 2091186 }, { url = "https://files.pythonhosted.org/packages/ba/cc/8491fff5b608b3862eb36e7d29d36a1af1c945463ca4c5040bf46cc73f40/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23", size = 2154429 }, + { url = "https://files.pythonhosted.org/packages/78/d8/c080592d80edd3441ab7f88f865f51dae94a157fc64283c680e9f32cf6da/pydantic_core-2.27.1-cp313-none-win32.whl", hash = "sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05", size = 1833713 }, + { url = "https://files.pythonhosted.org/packages/83/84/5ab82a9ee2538ac95a66e51f6838d6aba6e0a03a42aa185ad2fe404a4e8f/pydantic_core-2.27.1-cp313-none-win_amd64.whl", hash = "sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337", size = 1987897 }, + { url = "https://files.pythonhosted.org/packages/df/c3/b15fb833926d91d982fde29c0624c9f225da743c7af801dace0d4e187e71/pydantic_core-2.27.1-cp313-none-win_arm64.whl", hash = "sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5", size = 1882983 }, { url = "https://files.pythonhosted.org/packages/7c/60/e5eb2d462595ba1f622edbe7b1d19531e510c05c405f0b87c80c1e89d5b1/pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6", size = 1894016 }, { url = "https://files.pythonhosted.org/packages/61/20/da7059855225038c1c4326a840908cc7ca72c7198cb6addb8b92ec81c1d6/pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676", size = 1771648 }, { url = "https://files.pythonhosted.org/packages/8f/fc/5485cf0b0bb38da31d1d292160a4d123b5977841ddc1122c671a30b76cfd/pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d", size = 1826929 }, @@ -4894,6 +3193,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/06/aa/6f1b2747f811a9c66b5ef39d7f02fbb200479784c75e98290d70004b1253/pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f", size = 1989205 }, { url = "https://files.pythonhosted.org/packages/7a/d2/8ce2b074d6835f3c88d85f6d8a399790043e9fdb3d0e43455e72d19df8cc/pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed", size = 2079616 }, { url = "https://files.pythonhosted.org/packages/65/71/af01033d4e58484c3db1e5d13e751ba5e3d6b87cc3368533df4c50932c8b/pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f", size = 2133265 }, + { url = "https://files.pythonhosted.org/packages/33/72/f881b5e18fbb67cf2fb4ab253660de3c6899dbb2dba409d0b757e3559e3d/pydantic_core-2.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:981fb88516bd1ae8b0cbbd2034678a39dedc98752f264ac9bc5839d3923fa04c", size = 2001864 }, ] [[package]] @@ -4901,8 +3201,8 @@ name = "pydantic-settings" version = "2.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pydantic", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "python-dotenv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pydantic", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "python-dotenv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b5/d4/9dfbe238f45ad8b168f5c96ee49a3df0598ce18a0795a983b419949ce65b/pydantic_settings-2.6.1.tar.gz", hash = "sha256:e0f92546d8a9923cb8941689abf85d6601a8c19a23e97a34b2964a2e3f813ca0", size = 75646 } wheels = [ @@ -4914,7 +3214,7 @@ name = "pydot" version = "3.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pyparsing", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyparsing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/85/10/4e4da8c271540dc35914e927546cbb821397f0f9477f4079cd8732946699/pydot-3.0.2.tar.gz", hash = "sha256:9180da540b51b3aa09fbf81140b3edfbe2315d778e8589a7d0a4a69c41332bae", size = 167979 } wheels = [ @@ -4944,7 +3244,7 @@ name = "pyproj" version = "3.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "certifi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "certifi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/47/c2/0572c8e31aebf0270f15f3368adebd10fc473de9f09567a0743a3bc41c8d/pyproj-3.7.0.tar.gz", hash = "sha256:bf658f4aaf815d9d03c8121650b6f0b8067265c36e31bc6660b98ef144d81813", size = 225577 } wheels = [ @@ -4952,18 +3252,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/82/65/ee312dc4cdd2499cc5984144e05c582604afd76ba01289d89d74b50ab654/pyproj-3.7.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:448958c46bd3fe2da91c89ba551ac5835e63073ca861422c6eb1af89979dfab1", size = 4633387 }, { url = "https://files.pythonhosted.org/packages/f8/0d/d300194f021e3d56b30bb45bd19447bb00761c62f5342371bd389b774f82/pyproj-3.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f673ca345bb92afc93d4235938ca0c9a76237aa7addf42a95965c8dc8cad9b49", size = 6330358 }, { url = "https://files.pythonhosted.org/packages/52/30/c82c12cea9a5c17fac146212cd914ec587f646eef91986dcb7f629fe0f7f/pyproj-3.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee60895f60cbd1a9c903ab2bc22adea63004296a1c28b8775a11cf50905cf085", size = 9227537 }, + { url = "https://files.pythonhosted.org/packages/09/94/34bd5a5e637e8839beb17cc09410785bad24098ef01e52f66fe32bcf74fa/pyproj-3.7.0-cp310-cp310-win32.whl", hash = "sha256:0dd31b0740ee010934234f848d2d092c66146cb8d0ba009a64e41d192caa7686", size = 5822094 }, + { url = "https://files.pythonhosted.org/packages/9e/04/33835c6ca0edf266b56495555c375994c42f914eb65a639b363d6f2c47f9/pyproj-3.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:7943d85ba39e89c51b920339ff63162d63bf89da161f0acb6206b0d39b11661e", size = 6230436 }, { url = "https://files.pythonhosted.org/packages/e2/8f/15ff6ab10a08050e94afcd544962a1a930d0bb7ca102ad39795a847eb340/pyproj-3.7.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:e66d8d42dbdf232e121546c5a1dec097caf0454e4885c09a8e03cdcee0753c03", size = 6272213 }, { url = "https://files.pythonhosted.org/packages/2d/4d/610fe2a17de71b4fe210af69ce25f2d65379ba0a48299129894d0d0988ee/pyproj-3.7.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:7764b64a0aefe40134a2828b3a40be88f6c8b7832c45d8a9f2bd592ace4b2a3b", size = 4634548 }, { url = "https://files.pythonhosted.org/packages/d6/27/0327d0b0fcdfc4cf72696a2effca2963e524dcd846a0274ba503f8bf2648/pyproj-3.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53c442c5081dc95346996f5c4323fde2caafc69c6e60b4707aa46e88244f1e04", size = 6333913 }, { url = "https://files.pythonhosted.org/packages/3c/e5/2cb256148c730b9c3f74bfb3c03904f5070499c6dcaea153073a9642c6c6/pyproj-3.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc5b305d4d5d7697885681d9b660623e328227612823d5c660e0a9566cb48838", size = 9460363 }, + { url = "https://files.pythonhosted.org/packages/ba/a3/4aa1e8e78ad18aa170efd2c94c1931bf2a34c526683b874d06e40fa323f6/pyproj-3.7.0-cp311-cp311-win32.whl", hash = "sha256:de2b47d748dc41cccb6b3b713d4d7dc9aa1046a82141c8665026908726426abc", size = 5820551 }, + { url = "https://files.pythonhosted.org/packages/26/0c/b084e8839a117eaad8cb4fbaa81bbb24c6f183de0ee95c6c4e2770ab6f09/pyproj-3.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:38cba7c4c5679e40242dd959133e95b908d3b912dd66291094fd13510e8517ff", size = 6231788 }, { url = "https://files.pythonhosted.org/packages/bd/19/be806b711e9ebfb80411c653054157db128fffdd7f8493e3064136c8d880/pyproj-3.7.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:8cbec92bdd6e9933ca08795c12717d1384e9b51cf4b1acf0d753db255a75c51e", size = 6261400 }, { url = "https://files.pythonhosted.org/packages/99/3b/8497995e8cae0049d013679c6a7ac6c57b816d590c733a388748dafe5af5/pyproj-3.7.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8c4a8e4d3ba76c3adac3c087544cf92f7f9a19ea34946904a13fca48cc1c0106", size = 4637848 }, { url = "https://files.pythonhosted.org/packages/ea/f7/2a5b46d6f8da913d58d44942ab06ca4803b5424b73259b15344cf90040f6/pyproj-3.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82624fb42aa31f6b1a860fbc0316babd07fd712642bc31022df4e9b4056bf463", size = 6324856 }, { url = "https://files.pythonhosted.org/packages/36/83/c257771077bcf9da20d0e97abc834f9037c219986cc76d40183903a30464/pyproj-3.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34e1bbb3f89c68d4a6835c40b2da8b27680eec60e8cc7cdb08c09bcc725b2b62", size = 9525831 }, + { url = "https://files.pythonhosted.org/packages/d6/50/a635de79def69fe03cdef3a4bd3bec780c30987bce3a15dd7099afb2506f/pyproj-3.7.0-cp312-cp312-win32.whl", hash = "sha256:952515d5592167ad4436b355485f82acebed2a49b46722159e4584b75a763dd3", size = 5811864 }, + { url = "https://files.pythonhosted.org/packages/a1/8b/96bc8c8f3eca4eb7fa3758fde0b755d1df30a19f494376e3ee8de1ef4e79/pyproj-3.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:0692f806224e8ed82fe4acfa57268ff444fdaf9f330689f24c0d96e59480cce1", size = 6224720 }, { url = "https://files.pythonhosted.org/packages/bf/da/a17c452bea1ff4cd58d6dc573055b9c8fb6af114b7d2c694782aec770865/pyproj-3.7.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:94e8b903a9e83448fd2379c49dec3e8cd83c9ed36f54354e68b601cef56d5426", size = 6254898 }, { url = "https://files.pythonhosted.org/packages/c2/31/ab07b389f2caa527c95ab2ea1940d28879bd2a19e67b2529cb3e94648d26/pyproj-3.7.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:64cb5c17d6f6305a8b978a40f95560c87c5b363fcac40632337955664437875a", size = 4628612 }, { url = "https://files.pythonhosted.org/packages/1d/24/def3ded6529db3e3d8351ad73481730249ab57d8d876d502f86d7958ce06/pyproj-3.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c54e9bdda7ab9c4a5af50f9d6e6ee7704e05fafd504896b96ed1208c7aea098", size = 6315895 }, { url = "https://files.pythonhosted.org/packages/dd/14/07314f78302105d199fb25e73376d723efe9c2ef3906463aae209913a6d3/pyproj-3.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24fa4e9e0abba875f9524808410cc520067eaf38fd5549ed0ef7c43ac39923c9", size = 9466144 }, + { url = "https://files.pythonhosted.org/packages/00/f2/2a116920db3496e3ff3c94d7d8d15da41374f35cfe1b9e79682eca500a61/pyproj-3.7.0-cp313-cp313-win32.whl", hash = "sha256:b9e8353fc3c79dc14d1f5ac758a1a6e4eee04102c3c0b138670f121f5ac52eb4", size = 5807180 }, + { url = "https://files.pythonhosted.org/packages/f8/33/3c8c6302717096b54aa14ccbb271045ba04629e21cbf348f2f2dc94f69b4/pyproj-3.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:10a8dc6ec61af97c89ff032647d743f8dc023645773da42ef43f7ae1125b3509", size = 6218036 }, ] [[package]] @@ -4971,8 +3279,8 @@ name = "pyproject-api" version = "1.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/bb/19/441e0624a8afedd15bbcce96df1b80479dd0ff0d965f5ce8fde4f2f6ffad/pyproject_api-1.8.0.tar.gz", hash = "sha256:77b8049f2feb5d33eefcc21b57f1e279636277a8ac8ad6b5871037b243778496", size = 22340 } wheels = [ @@ -4999,11 +3307,12 @@ name = "pytest" version = "8.3.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "exceptiongroup", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, - { name = "iniconfig", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pluggy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "colorama", marker = "implementation_name == 'cpython' and sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "iniconfig", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pluggy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/8b/6c/62bbd536103af674e227c41a8f3dcd022d591f6eed5facb5a0f31ee33bbc/pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181", size = 1442487 } wheels = [ @@ -5015,8 +3324,8 @@ name = "pytest-benchmark" version = "5.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "py-cpuinfo", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "py-cpuinfo", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/39/d0/a8bd08d641b393db3be3819b03e2d9bb8760ca8479080a26a5f6e540e99c/pytest-benchmark-5.1.0.tar.gz", hash = "sha256:9ea661cdc292e8231f7cd4c10b0319e56a2118e2c09d9f50e1b3d150d2aca105", size = 337810 } wheels = [ @@ -5028,8 +3337,8 @@ name = "pytest-cache" version = "1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "execnet", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "execnet", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d1/15/082fd0428aab33d2bafa014f3beb241830427ba803a8912a5aaeaf3a5663/pytest-cache-1.0.tar.gz", hash = "sha256:be7468edd4d3d83f1e844959fd6e3fd28e77a481440a7118d430130ea31b07a9", size = 16242 } @@ -5038,8 +3347,8 @@ name = "pytest-cov" version = "6.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "coverage", extra = ["toml"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "coverage", extra = ["toml"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/be/45/9b538de8cef30e17c7b45ef42f538a94889ed6a16f2387a6c89e73220651/pytest-cov-6.0.0.tar.gz", hash = "sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0", size = 66945 } wheels = [ @@ -5051,11 +3360,11 @@ name = "pytest-factoryboy" version = "2.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "factory-boy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "inflection", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "factory-boy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "inflection", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a6/bc/179653e8cce651575ac95377e4fdf9afd3c4821ab4bba101aae913ebcc27/pytest_factoryboy-2.7.0.tar.gz", hash = "sha256:67fc54ec8669a3feb8ac60094dd57cd71eb0b20b2c319d2957873674c776a77b", size = 17398 } wheels = [ @@ -5067,7 +3376,7 @@ name = "pytest-mpi" version = "0.6" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/6c/db/b9d4b23750eb91865787656dce02a2864397aa1ee130df00ec73d3954e7e/pytest-mpi-0.6.tar.gz", hash = "sha256:09b3cd3511f8f3cd4d205f54d4a7223724fed0ab68b872ed1123d312152325a9", size = 35329 } wheels = [ @@ -5079,8 +3388,8 @@ name = "pytest-xdist" version = "3.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "execnet", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "execnet", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060 } wheels = [ @@ -5089,7 +3398,7 @@ wheels = [ [package.optional-dependencies] psutil = [ - { name = "psutil", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "psutil", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [[package]] @@ -5097,7 +3406,7 @@ name = "python-dateutil" version = "2.9.0.post0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "six", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "six", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } wheels = [ @@ -5127,7 +3436,7 @@ name = "pyviz-comms" version = "3.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "param", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "param", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0d/d6/21460c434d01fe94bd97b9a5b41726ae79b68024b634dcaf7d77f8254c6f/pyviz_comms-3.0.3.tar.gz", hash = "sha256:fde4a017c2213ecee63a9a6741431c845e42a5c7b1588e4a7ba2e4370c583728", size = 196501 } wheels = [ @@ -5147,6 +3456,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6b/4e/1523cb902fd98355e2e9ea5e5eb237cbc5f3ad5f3075fa65087aa0ecb669/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", size = 751239 }, { url = "https://files.pythonhosted.org/packages/b7/33/5504b3a9a4464893c32f118a9cc045190a91637b119a9c881da1cf6b7a72/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", size = 695802 }, { url = "https://files.pythonhosted.org/packages/5c/20/8347dcabd41ef3a3cdc4f7b7a2aff3d06598c8779faa189cdbf878b626a4/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", size = 720527 }, + { url = "https://files.pythonhosted.org/packages/be/aa/5afe99233fb360d0ff37377145a949ae258aaab831bde4792b32650a4378/PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", size = 144052 }, + { url = "https://files.pythonhosted.org/packages/b5/84/0fa4b06f6d6c958d207620fc60005e241ecedceee58931bb20138e1e5776/PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", size = 161774 }, { url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612 }, { url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040 }, { url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829 }, @@ -5154,6 +3465,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952 }, { url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301 }, { url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638 }, + { url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850 }, + { url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980 }, { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 }, { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 }, { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 }, @@ -5161,6 +3474,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 }, { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 }, { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 }, { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 }, { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 }, { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 }, @@ -5168,6 +3483,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 }, { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 }, { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, ] [[package]] @@ -5175,7 +3492,7 @@ name = "questionary" version = "2.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "prompt-toolkit", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "prompt-toolkit", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/84/d0/d73525aeba800df7030ac187d09c59dc40df1c878b4fab8669bdc805535d/questionary-2.0.1.tar.gz", hash = "sha256:bcce898bf3dbb446ff62830c86c5c6fb9a22a54146f0f5597d3da43b10d8fc8b", size = 24726 } wheels = [ @@ -5187,10 +3504,10 @@ name = "requests" version = "2.32.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "certifi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "charset-normalizer", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "idna", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "urllib3", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "certifi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "charset-normalizer", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "idna", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "urllib3", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } wheels = [ @@ -5202,9 +3519,9 @@ name = "rich" version = "13.9.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "markdown-it-py", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pygments", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "typing-extensions", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "markdown-it-py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pygments", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 } wheels = [ @@ -5216,9 +3533,9 @@ name = "rich-click" version = "1.8.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "rich", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "rich", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/fc/f4/e48dc2850662526a26fb0961aacb0162c6feab934312b109b748ae4efee2/rich_click-1.8.4.tar.gz", hash = "sha256:0f49471f04439269d0e66a6f43120f52d11d594869a2a0be600cfb12eb0616b9", size = 38247 } wheels = [ @@ -5230,7 +3547,7 @@ name = "ruamel-yaml" version = "0.18.6" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "ruamel-yaml-clib", marker = "(python_full_version < '3.13' and platform_python_implementation == 'CPython' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_python_implementation == 'CPython' and sys_platform == 'linux')" }, + { name = "ruamel-yaml-clib", marker = "python_full_version < '3.13' and implementation_name == 'cpython' and platform_python_implementation == 'CPython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/29/81/4dfc17eb6ebb1aac314a3eb863c1325b907863a1b8b1382cdffcb6ac0ed9/ruamel.yaml-0.18.6.tar.gz", hash = "sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b", size = 143362 } wheels = [ @@ -5249,24 +3566,32 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7f/b7/20c6f3c0b656fe609675d69bc135c03aac9e3865912444be6339207b6648/ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f66efbc1caa63c088dead1c4170d148eabc9b80d95fb75b6c92ac0aad2437d76", size = 686712 }, { url = "https://files.pythonhosted.org/packages/cd/11/d12dbf683471f888d354dac59593873c2b45feb193c5e3e0f2ebf85e68b9/ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22353049ba4181685023b25b5b51a574bce33e7f51c759371a7422dcae5402a6", size = 663936 }, { url = "https://files.pythonhosted.org/packages/72/14/4c268f5077db5c83f743ee1daeb236269fa8577133a5cfa49f8b382baf13/ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:932205970b9f9991b34f55136be327501903f7c66830e9760a8ffb15b07f05cd", size = 696580 }, + { url = "https://files.pythonhosted.org/packages/80/29/c0a017b704aaf3cbf704989785cd9c5d5b8ccec2dae6ac0c53833c84e677/ruamel.yaml.clib-0.2.12-cp310-cp310-win32.whl", hash = "sha256:3eac5a91891ceb88138c113f9db04f3cebdae277f5d44eaa3651a4f573e6a5da", size = 100326 }, + { url = "https://files.pythonhosted.org/packages/3a/65/fa39d74db4e2d0cd252355732d966a460a41cd01c6353b820a0952432839/ruamel.yaml.clib-0.2.12-cp310-cp310-win_amd64.whl", hash = "sha256:ab007f2f5a87bd08ab1499bdf96f3d5c6ad4dcfa364884cb4549aa0154b13a28", size = 118079 }, { url = "https://files.pythonhosted.org/packages/fb/8f/683c6ad562f558cbc4f7c029abcd9599148c51c54b5ef0f24f2638da9fbb/ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6", size = 132224 }, { url = "https://files.pythonhosted.org/packages/3c/d2/b79b7d695e2f21da020bd44c782490578f300dd44f0a4c57a92575758a76/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:d84318609196d6bd6da0edfa25cedfbabd8dbde5140a0a23af29ad4b8f91fb1e", size = 641480 }, { url = "https://files.pythonhosted.org/packages/68/6e/264c50ce2a31473a9fdbf4fa66ca9b2b17c7455b31ef585462343818bd6c/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb43a269eb827806502c7c8efb7ae7e9e9d0573257a46e8e952f4d4caba4f31e", size = 739068 }, { url = "https://files.pythonhosted.org/packages/86/29/88c2567bc893c84d88b4c48027367c3562ae69121d568e8a3f3a8d363f4d/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:811ea1594b8a0fb466172c384267a4e5e367298af6b228931f273b111f17ef52", size = 703012 }, { url = "https://files.pythonhosted.org/packages/11/46/879763c619b5470820f0cd6ca97d134771e502776bc2b844d2adb6e37753/ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cf12567a7b565cbf65d438dec6cfbe2917d3c1bdddfce84a9930b7d35ea59642", size = 704352 }, { url = "https://files.pythonhosted.org/packages/02/80/ece7e6034256a4186bbe50dee28cd032d816974941a6abf6a9d65e4228a7/ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7dd5adc8b930b12c8fc5b99e2d535a09889941aa0d0bd06f4749e9a9397c71d2", size = 737344 }, + { url = "https://files.pythonhosted.org/packages/67/58/b1f60a1d591b771298ffa0428237afb092c7f29ae23bad93420b1eb10703/ruamel.yaml.clib-0.2.12-cp311-cp311-win32.whl", hash = "sha256:bd0a08f0bab19093c54e18a14a10b4322e1eacc5217056f3c063bd2f59853ce4", size = 100205 }, + { url = "https://files.pythonhosted.org/packages/b4/4f/b52f634c9548a9291a70dfce26ca7ebce388235c93588a1068028ea23fcc/ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl", hash = "sha256:a274fb2cb086c7a3dea4322ec27f4cb5cc4b6298adb583ab0e211a4682f241eb", size = 118185 }, { url = "https://files.pythonhosted.org/packages/48/41/e7a405afbdc26af961678474a55373e1b323605a4f5e2ddd4a80ea80f628/ruamel.yaml.clib-0.2.12-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:20b0f8dc160ba83b6dcc0e256846e1a02d044e13f7ea74a3d1d56ede4e48c632", size = 133433 }, { url = "https://files.pythonhosted.org/packages/ec/b0/b850385604334c2ce90e3ee1013bd911aedf058a934905863a6ea95e9eb4/ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:943f32bc9dedb3abff9879edc134901df92cfce2c3d5c9348f172f62eb2d771d", size = 647362 }, { url = "https://files.pythonhosted.org/packages/44/d0/3f68a86e006448fb6c005aee66565b9eb89014a70c491d70c08de597f8e4/ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95c3829bb364fdb8e0332c9931ecf57d9be3519241323c5274bd82f709cebc0c", size = 754118 }, { url = "https://files.pythonhosted.org/packages/52/a9/d39f3c5ada0a3bb2870d7db41901125dbe2434fa4f12ca8c5b83a42d7c53/ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:749c16fcc4a2b09f28843cda5a193e0283e47454b63ec4b81eaa2242f50e4ccd", size = 706497 }, { url = "https://files.pythonhosted.org/packages/b0/fa/097e38135dadd9ac25aecf2a54be17ddf6e4c23e43d538492a90ab3d71c6/ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bf165fef1f223beae7333275156ab2022cffe255dcc51c27f066b4370da81e31", size = 698042 }, { url = "https://files.pythonhosted.org/packages/ec/d5/a659ca6f503b9379b930f13bc6b130c9f176469b73b9834296822a83a132/ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:32621c177bbf782ca5a18ba4d7af0f1082a3f6e517ac2a18b3974d4edf349680", size = 745831 }, + { url = "https://files.pythonhosted.org/packages/b1/82/85cb92f15a4231c89b95dfe08b09eb6adca929ef7df7e17ab59902b6f589/ruamel.yaml.clib-0.2.12-cp312-cp312-win32.whl", hash = "sha256:e8c4ebfcfd57177b572e2040777b8abc537cdef58a2120e830124946aa9b42c5", size = 98777 }, + { url = "https://files.pythonhosted.org/packages/d7/8f/c3654f6f1ddb75daf3922c3d8fc6005b1ab56671ad56ffb874d908bfa668/ruamel.yaml.clib-0.2.12-cp312-cp312-win_amd64.whl", hash = "sha256:0467c5965282c62203273b838ae77c0d29d7638c8a4e3a1c8bdd3602c10904e4", size = 115523 }, { url = "https://files.pythonhosted.org/packages/29/00/4864119668d71a5fa45678f380b5923ff410701565821925c69780356ffa/ruamel.yaml.clib-0.2.12-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4c8c5d82f50bb53986a5e02d1b3092b03622c02c2eb78e29bec33fd9593bae1a", size = 132011 }, { url = "https://files.pythonhosted.org/packages/7f/5e/212f473a93ae78c669ffa0cb051e3fee1139cb2d385d2ae1653d64281507/ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux2014_aarch64.whl", hash = "sha256:e7e3736715fbf53e9be2a79eb4db68e4ed857017344d697e8b9749444ae57475", size = 642488 }, { url = "https://files.pythonhosted.org/packages/1f/8f/ecfbe2123ade605c49ef769788f79c38ddb1c8fa81e01f4dbf5cf1a44b16/ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7e75b4965e1d4690e93021adfcecccbca7d61c7bddd8e22406ef2ff20d74ef", size = 745066 }, { url = "https://files.pythonhosted.org/packages/e2/a9/28f60726d29dfc01b8decdb385de4ced2ced9faeb37a847bd5cf26836815/ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96777d473c05ee3e5e3c3e999f5d23c6f4ec5b0c38c098b3a5229085f74236c6", size = 701785 }, { url = "https://files.pythonhosted.org/packages/84/7e/8e7ec45920daa7f76046578e4f677a3215fe8f18ee30a9cb7627a19d9b4c/ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:3bc2a80e6420ca8b7d3590791e2dfc709c88ab9152c00eeb511c9875ce5778bf", size = 693017 }, { url = "https://files.pythonhosted.org/packages/c5/b3/d650eaade4ca225f02a648321e1ab835b9d361c60d51150bac49063b83fa/ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e188d2699864c11c36cdfdada94d781fd5d6b0071cd9c427bceb08ad3d7c70e1", size = 741270 }, + { url = "https://files.pythonhosted.org/packages/30/8c/ed73f047a73638257aa9377ad356bea4d96125b305c34a28766f4445cc0f/ruamel.yaml.clib-0.2.12-cp313-cp313-win32.whl", hash = "sha256:6442cb36270b3afb1b4951f060eccca1ce49f3d087ca1ca4563a6eb479cb3de6", size = 98583 }, + { 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]] @@ -5289,6 +3614,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bb/ee/4c3981c47147c72647a198a94202633130cfda0fc95cd863a553b6f65c6a/ruff-0.8.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:adf314fc458374c25c5c4a4a9270c3e8a6a807b1bec018cfa2813d6546215540", size = 10391071 }, { url = "https://files.pythonhosted.org/packages/6b/e6/083eb61300214590b188616a8ac6ae1ef5730a0974240fb4bec9c17de78b/ruff-0.8.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a885d68342a231b5ba4d30b8c6e1b1ee3a65cf37e3d29b3c74069cdf1ee1e3c9", size = 10896657 }, { url = "https://files.pythonhosted.org/packages/77/bd/aacdb8285d10f1b943dbeb818968efca35459afc29f66ae3bd4596fbf954/ruff-0.8.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d2c16e3508c8cc73e96aa5127d0df8913d2290098f776416a4b157657bee44c5", size = 11228362 }, + { url = "https://files.pythonhosted.org/packages/39/72/fcb7ad41947f38b4eaa702aca0a361af0e9c2bf671d7fd964480670c297e/ruff-0.8.1-py3-none-win32.whl", hash = "sha256:93335cd7c0eaedb44882d75a7acb7df4b77cd7cd0d2255c93b28791716e81790", size = 8803476 }, + { url = "https://files.pythonhosted.org/packages/e4/ea/cae9aeb0f4822c44651c8407baacdb2e5b4dcd7b31a84e1c5df33aa2cc20/ruff-0.8.1-py3-none-win_amd64.whl", hash = "sha256:2954cdbe8dfd8ab359d4a30cd971b589d335a44d444b6ca2cb3d1da21b75e4b6", size = 9614463 }, + { url = "https://files.pythonhosted.org/packages/eb/76/fbb4bd23dfb48fa7758d35b744413b650a9fd2ddd93bca77e30376864414/ruff-0.8.1-py3-none-win_arm64.whl", hash = "sha256:55873cc1a473e5ac129d15eccb3c008c096b94809d693fc7053f588b67822737", size = 8959621 }, ] [[package]] @@ -5296,10 +3624,10 @@ name = "scikit-learn" version = "1.5.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "joblib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "scipy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "threadpoolctl", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "joblib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "scipy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "threadpoolctl", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/37/59/44985a2bdc95c74e34fef3d10cb5d93ce13b0e2a7baefffe1b53853b502d/scikit_learn-1.5.2.tar.gz", hash = "sha256:b4237ed7b3fdd0a4882792e68ef2545d5baa50aca3bb45aa7df468138ad8f94d", size = 7001680 } wheels = [ @@ -5307,18 +3635,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bf/e0/3b6d777d375f3b685f433c93384cdb724fb078e1dc8f8ff0950467e56c30/scikit_learn-1.5.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:2d4cad1119c77930b235579ad0dc25e65c917e756fe80cab96aa3b9428bd3fb0", size = 10971758 }, { url = "https://files.pythonhosted.org/packages/7b/31/eb7dd56c371640753953277de11356c46a3149bfeebb3d7dcd90b993715a/scikit_learn-1.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c412ccc2ad9bf3755915e3908e677b367ebc8d010acbb3f182814524f2e5540", size = 12500080 }, { url = "https://files.pythonhosted.org/packages/4c/1e/a7c7357e704459c7d56a18df4a0bf08669442d1f8878cc0864beccd6306a/scikit_learn-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a686885a4b3818d9e62904d91b57fa757fc2bed3e465c8b177be652f4dd37c8", size = 13347241 }, + { url = "https://files.pythonhosted.org/packages/48/76/154ebda6794faf0b0f3ccb1b5cd9a19f0a63cb9e1f3d2c61b6114002677b/scikit_learn-1.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:c15b1ca23d7c5f33cc2cb0a0d6aaacf893792271cddff0edbd6a40e8319bc113", size = 11000477 }, { url = "https://files.pythonhosted.org/packages/ff/91/609961972f694cb9520c4c3d201e377a26583e1eb83bc5a334c893729214/scikit_learn-1.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:03b6158efa3faaf1feea3faa884c840ebd61b6484167c711548fce208ea09445", size = 12088580 }, { url = "https://files.pythonhosted.org/packages/cd/7a/19fe32c810c5ceddafcfda16276d98df299c8649e24e84d4f00df4a91e01/scikit_learn-1.5.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1ff45e26928d3b4eb767a8f14a9a6efbf1cbff7c05d1fb0f95f211a89fd4f5de", size = 10975994 }, { url = "https://files.pythonhosted.org/packages/4c/75/62e49f8a62bf3c60b0e64d0fce540578ee4f0e752765beb2e1dc7c6d6098/scikit_learn-1.5.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f763897fe92d0e903aa4847b0aec0e68cadfff77e8a0687cabd946c89d17e675", size = 12465782 }, { url = "https://files.pythonhosted.org/packages/49/21/3723de321531c9745e40f1badafd821e029d346155b6c79704e0b7197552/scikit_learn-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8b0ccd4a902836493e026c03256e8b206656f91fbcc4fde28c57a5b752561f1", size = 13322034 }, + { url = "https://files.pythonhosted.org/packages/17/1c/ccdd103cfcc9435a18819856fbbe0c20b8fa60bfc3343580de4be13f0668/scikit_learn-1.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:6c16d84a0d45e4894832b3c4d0bf73050939e21b99b01b6fd59cbb0cf39163b6", size = 11015224 }, { url = "https://files.pythonhosted.org/packages/a4/db/b485c1ac54ff3bd9e7e6b39d3cc6609c4c76a65f52ab0a7b22b6c3ab0e9d/scikit_learn-1.5.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f932a02c3f4956dfb981391ab24bda1dbd90fe3d628e4b42caef3e041c67707a", size = 12110344 }, { url = "https://files.pythonhosted.org/packages/54/1a/7deb52fa23aebb855431ad659b3c6a2e1709ece582cb3a63d66905e735fe/scikit_learn-1.5.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:3b923d119d65b7bd555c73be5423bf06c0105678ce7e1f558cb4b40b0a5502b1", size = 11033502 }, { url = "https://files.pythonhosted.org/packages/a1/32/4a7a205b14c11225609b75b28402c196e4396ac754dab6a81971b811781c/scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f60021ec1574e56632be2a36b946f8143bf4e5e6af4a06d85281adc22938e0dd", size = 12085794 }, { url = "https://files.pythonhosted.org/packages/c6/29/044048c5e911373827c0e1d3051321b9183b2a4f8d4e2f11c08fcff83f13/scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:394397841449853c2290a32050382edaec3da89e35b3e03d6cc966aebc6a8ae6", size = 12945797 }, + { url = "https://files.pythonhosted.org/packages/aa/ce/c0b912f2f31aeb1b756a6ba56bcd84dd1f8a148470526a48515a3f4d48cd/scikit_learn-1.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:57cc1786cfd6bd118220a92ede80270132aa353647684efa385a74244a41e3b1", size = 10985467 }, { url = "https://files.pythonhosted.org/packages/a4/50/8891028437858cc510e13578fe7046574a60c2aaaa92b02d64aac5b1b412/scikit_learn-1.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9a702e2de732bbb20d3bad29ebd77fc05a6b427dc49964300340e4c9328b3f5", size = 12025584 }, { url = "https://files.pythonhosted.org/packages/d2/79/17feef8a1c14149436083bec0e61d7befb4812e272d5b20f9d79ea3e9ab1/scikit_learn-1.5.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:b0768ad641981f5d3a198430a1d31c3e044ed2e8a6f22166b4d546a5116d7908", size = 10959795 }, { url = "https://files.pythonhosted.org/packages/b1/c8/f08313f9e2e656bd0905930ae8bf99a573ea21c34666a813b749c338202f/scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:178ddd0a5cb0044464fc1bfc4cca5b1833bfc7bb022d70b05db8530da4bb3dd3", size = 12077302 }, { url = "https://files.pythonhosted.org/packages/a7/48/fbfb4dc72bed0fe31fe045fb30e924909ad03f717c36694351612973b1a9/scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7284ade780084d94505632241bf78c44ab3b6f1e8ccab3d2af58e0e950f9c12", size = 13002811 }, + { url = "https://files.pythonhosted.org/packages/a5/e7/0c869f9e60d225a77af90d2aefa7a4a4c0e745b149325d1450f0f0ce5399/scikit_learn-1.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:b7b0f9a0b1040830d38c39b91b3a44e1b643f4b36e36567b80b7c6bd2202a27f", size = 10951354 }, ] [[package]] @@ -5326,7 +3658,7 @@ name = "scipy" version = "1.14.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/62/11/4d44a1f274e002784e4dbdb81e0ea96d2de2d1045b2132d5af62cc31fd28/scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417", size = 58620554 } wheels = [ @@ -5337,6 +3669,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d8/df/cdb6be5274bc694c4c22862ac3438cb04f360ed9df0aecee02ce0b798380/scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d", size = 35606631 }, { url = "https://files.pythonhosted.org/packages/47/78/b0c2c23880dd1e99e938ad49ccfb011ae353758a2dc5ed7ee59baff684c3/scipy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69", size = 41178528 }, { url = "https://files.pythonhosted.org/packages/5d/aa/994b45c34b897637b853ec04334afa55a85650a0d11dacfa67232260fb0a/scipy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad", size = 42784535 }, + { url = "https://files.pythonhosted.org/packages/e7/1c/8daa6df17a945cb1a2a1e3bae3c49643f7b3b94017ff01a4787064f03f84/scipy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:a49f6ed96f83966f576b33a44257d869756df6cf1ef4934f59dd58b25e0327e5", size = 44772117 }, { url = "https://files.pythonhosted.org/packages/b2/ab/070ccfabe870d9f105b04aee1e2860520460ef7ca0213172abfe871463b9/scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675", size = 39076999 }, { url = "https://files.pythonhosted.org/packages/a7/c5/02ac82f9bb8f70818099df7e86c3ad28dae64e1347b421d8e3adf26acab6/scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2", size = 29894570 }, { url = "https://files.pythonhosted.org/packages/ed/05/7f03e680cc5249c4f96c9e4e845acde08eb1aee5bc216eff8a089baa4ddb/scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617", size = 23103567 }, @@ -5344,6 +3677,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c2/4b/b44bee3c2ddc316b0159b3d87a3d467ef8d7edfd525e6f7364a62cd87d90/scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37", size = 35586346 }, { url = "https://files.pythonhosted.org/packages/93/6b/701776d4bd6bdd9b629c387b5140f006185bd8ddea16788a44434376b98f/scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2", size = 41165244 }, { url = "https://files.pythonhosted.org/packages/06/57/e6aa6f55729a8f245d8a6984f2855696c5992113a5dc789065020f8be753/scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2", size = 42817917 }, + { url = "https://files.pythonhosted.org/packages/ea/c2/5ecadc5fcccefaece775feadcd795060adf5c3b29a883bff0e678cfe89af/scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94", size = 44781033 }, { url = "https://files.pythonhosted.org/packages/c0/04/2bdacc8ac6387b15db6faa40295f8bd25eccf33f1f13e68a72dc3c60a99e/scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d", size = 39128781 }, { url = "https://files.pythonhosted.org/packages/c8/53/35b4d41f5fd42f5781dbd0dd6c05d35ba8aa75c84ecddc7d44756cd8da2e/scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07", size = 29939542 }, { url = "https://files.pythonhosted.org/packages/66/67/6ef192e0e4d77b20cc33a01e743b00bc9e68fb83b88e06e636d2619a8767/scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5", size = 23148375 }, @@ -5351,6 +3685,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f0/5a/efa92a58dc3a2898705f1dc9dbaf390ca7d4fba26d6ab8cfffb0c72f656f/scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310", size = 35319299 }, { url = "https://files.pythonhosted.org/packages/8e/ee/8a26858ca517e9c64f84b4c7734b89bda8e63bec85c3d2f432d225bb1886/scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066", size = 40849331 }, { url = "https://files.pythonhosted.org/packages/a5/cd/06f72bc9187840f1c99e1a8750aad4216fc7dfdd7df46e6280add14b4822/scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1", size = 42544049 }, + { url = "https://files.pythonhosted.org/packages/aa/7d/43ab67228ef98c6b5dd42ab386eae2d7877036970a0d7e3dd3eb47a0d530/scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f", size = 44521212 }, { url = "https://files.pythonhosted.org/packages/50/ef/ac98346db016ff18a6ad7626a35808f37074d25796fd0234c2bb0ed1e054/scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79", size = 39091068 }, { url = "https://files.pythonhosted.org/packages/b9/cc/70948fe9f393b911b4251e96b55bbdeaa8cca41f37c26fd1df0232933b9e/scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e", size = 29875417 }, { url = "https://files.pythonhosted.org/packages/3b/2e/35f549b7d231c1c9f9639f9ef49b815d816bf54dd050da5da1c11517a218/scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73", size = 23084508 }, @@ -5358,6 +3693,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a7/2f/6c142b352ac15967744d62b165537a965e95d557085db4beab2a11f7943b/scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d", size = 35292639 }, { url = "https://files.pythonhosted.org/packages/56/46/2449e6e51e0d7c3575f289f6acb7f828938eaab8874dbccfeb0cd2b71a27/scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e", size = 40798288 }, { url = "https://files.pythonhosted.org/packages/32/cd/9d86f7ed7f4497c9fd3e39f8918dd93d9f647ba80d7e34e4946c0c2d1a7c/scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06", size = 42524647 }, + { url = "https://files.pythonhosted.org/packages/f5/1b/6ee032251bf4cdb0cc50059374e86a9f076308c1512b61c4e003e241efb7/scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84", size = 44469524 }, ] [[package]] @@ -5365,9 +3701,9 @@ name = "seaborn" version = "0.13.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "matplotlib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "matplotlib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/86/59/a451d7420a77ab0b98f7affa3a1d78a313d2f7281a57afb1a34bae8ab412/seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7", size = 1457696 } wheels = [ @@ -5379,7 +3715,7 @@ name = "serialbox" version = "0.0.1" source = { git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python#7987f8cf2027e0051414aefd5f72149f0e7bb193" } dependencies = [ - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [[package]] @@ -5396,9 +3732,9 @@ name = "setuptools-scm" version = "8.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "setuptools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "setuptools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/4f/a4/00a9ac1b555294710d4a68d2ce8dfdf39d72aa4d769a7395d05218d88a42/setuptools_scm-8.1.0.tar.gz", hash = "sha256:42dea1b65771cba93b7a515d65a65d8246e560768a66b9106a592c8e7f26c8a7", size = 76465 } wheels = [ @@ -5410,7 +3746,7 @@ name = "shapely" version = "2.0.6" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/4a/89/0d20bac88016be35ff7d3c0c2ae64b477908f1b1dfa540c5d69ac7af07fe/shapely-2.0.6.tar.gz", hash = "sha256:997f6159b1484059ec239cacaa53467fd8b5564dabe186cd84ac2944663b0bf6", size = 282361 } wheels = [ @@ -5418,18 +3754,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/03/10/bd6edb66ed0a845f0809f7ce653596f6fd9c6be675b3653872f47bf49f82/shapely-2.0.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c84c3f53144febf6af909d6b581bc05e8785d57e27f35ebaa5c1ab9baba13b", size = 1296756 }, { url = "https://files.pythonhosted.org/packages/af/09/6374c11cb493a9970e8c04d7be25f578a37f6494a2fecfbed3a447b16b2c/shapely-2.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ad2fae12dca8d2b727fa12b007e46fbc522148a584f5d6546c539f3464dccde", size = 2381960 }, { url = "https://files.pythonhosted.org/packages/2b/a6/302e0d9c210ccf4d1ffadf7ab941797d3255dcd5f93daa73aaf116a4db39/shapely-2.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3304883bd82d44be1b27a9d17f1167fda8c7f5a02a897958d86c59ec69b705e", size = 2468133 }, + { url = "https://files.pythonhosted.org/packages/8c/be/e448681dc485f2931d4adee93d531fce93608a3ee59433303cc1a46e21a5/shapely-2.0.6-cp310-cp310-win32.whl", hash = "sha256:3ec3a0eab496b5e04633a39fa3d5eb5454628228201fb24903d38174ee34565e", size = 1294982 }, + { url = "https://files.pythonhosted.org/packages/cd/4c/6f4a6fc085e3be01c4c9de0117a2d373bf9fec5f0426cf4d5c94090a5a4d/shapely-2.0.6-cp310-cp310-win_amd64.whl", hash = "sha256:28f87cdf5308a514763a5c38de295544cb27429cfa655d50ed8431a4796090c4", size = 1441141 }, { url = "https://files.pythonhosted.org/packages/37/15/269d8e1f7f658a37e61f7028683c546f520e4e7cedba1e32c77ff9d3a3c7/shapely-2.0.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5aeb0f51a9db176da9a30cb2f4329b6fbd1e26d359012bb0ac3d3c7781667a9e", size = 1449578 }, { url = "https://files.pythonhosted.org/packages/37/63/e182e43081fffa0a2d970c480f2ef91647a6ab94098f61748c23c2a485f2/shapely-2.0.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a7a78b0d51257a367ee115f4d41ca4d46edbd0dd280f697a8092dd3989867b2", size = 1296792 }, { url = "https://files.pythonhosted.org/packages/6e/5a/d019f69449329dcd517355444fdb9ddd58bec5e080b8bdba007e8e4c546d/shapely-2.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f32c23d2f43d54029f986479f7c1f6e09c6b3a19353a3833c2ffb226fb63a855", size = 2443997 }, { url = "https://files.pythonhosted.org/packages/25/aa/53f145e5a610a49af9ac49f2f1be1ec8659ebd5c393d66ac94e57c83b00e/shapely-2.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3dc9fb0eb56498912025f5eb352b5126f04801ed0e8bdbd867d21bdbfd7cbd0", size = 2528334 }, + { url = "https://files.pythonhosted.org/packages/64/64/0c7b0a22b416d36f6296b92bb4219d82b53d0a7c47e16fd0a4c85f2f117c/shapely-2.0.6-cp311-cp311-win32.whl", hash = "sha256:d93b7e0e71c9f095e09454bf18dad5ea716fb6ced5df3cb044564a00723f339d", size = 1294669 }, + { url = "https://files.pythonhosted.org/packages/b1/5a/6a67d929c467a1973b6bb9f0b00159cc343b02bf9a8d26db1abd2f87aa23/shapely-2.0.6-cp311-cp311-win_amd64.whl", hash = "sha256:c02eb6bf4cfb9fe6568502e85bb2647921ee49171bcd2d4116c7b3109724ef9b", size = 1442032 }, { url = "https://files.pythonhosted.org/packages/46/77/efd9f9d4b6a762f976f8b082f54c9be16f63050389500fb52e4f6cc07c1a/shapely-2.0.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cec9193519940e9d1b86a3b4f5af9eb6910197d24af02f247afbfb47bcb3fab0", size = 1450326 }, { url = "https://files.pythonhosted.org/packages/68/53/5efa6e7a4036a94fe6276cf7bbb298afded51ca3396b03981ad680c8cc7d/shapely-2.0.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83b94a44ab04a90e88be69e7ddcc6f332da7c0a0ebb1156e1c4f568bbec983c3", size = 1298480 }, { url = "https://files.pythonhosted.org/packages/88/a2/1be1db4fc262e536465a52d4f19d85834724fedf2299a1b9836bc82fe8fa/shapely-2.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:537c4b2716d22c92036d00b34aac9d3775e3691f80c7aa517c2c290351f42cd8", size = 2439311 }, { url = "https://files.pythonhosted.org/packages/d5/7d/9a57e187cbf2fbbbdfd4044a4f9ce141c8d221f9963750d3b001f0ec080d/shapely-2.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98fea108334be345c283ce74bf064fa00cfdd718048a8af7343c59eb40f59726", size = 2524835 }, + { url = "https://files.pythonhosted.org/packages/6d/0a/f407509ab56825f39bf8cfce1fb410238da96cf096809c3e404e5bc71ea1/shapely-2.0.6-cp312-cp312-win32.whl", hash = "sha256:42fd4cd4834747e4990227e4cbafb02242c0cffe9ce7ef9971f53ac52d80d55f", size = 1295613 }, + { url = "https://files.pythonhosted.org/packages/7b/b3/857afd9dfbfc554f10d683ac412eac6fa260d1f4cd2967ecb655c57e831a/shapely-2.0.6-cp312-cp312-win_amd64.whl", hash = "sha256:665990c84aece05efb68a21b3523a6b2057e84a1afbef426ad287f0796ef8a48", size = 1442539 }, { url = "https://files.pythonhosted.org/packages/34/e8/d164ef5b0eab86088cde06dee8415519ffd5bb0dd1bd9d021e640e64237c/shapely-2.0.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:42805ef90783ce689a4dde2b6b2f261e2c52609226a0438d882e3ced40bb3013", size = 1445344 }, { url = "https://files.pythonhosted.org/packages/ce/e2/9fba7ac142f7831757a10852bfa465683724eadbc93d2d46f74a16f9af04/shapely-2.0.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6d2cb146191a47bd0cee8ff5f90b47547b82b6345c0d02dd8b25b88b68af62d7", size = 1296182 }, { url = "https://files.pythonhosted.org/packages/cf/dc/790d4bda27d196cd56ec66975eaae3351c65614cafd0e16ddde39ec9fb92/shapely-2.0.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3fdef0a1794a8fe70dc1f514440aa34426cc0ae98d9a1027fb299d45741c381", size = 2423426 }, { url = "https://files.pythonhosted.org/packages/af/b0/f8169f77eac7392d41e231911e0095eb1148b4d40c50ea9e34d999c89a7e/shapely-2.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c665a0301c645615a107ff7f52adafa2153beab51daf34587170d85e8ba6805", size = 2513249 }, + { url = "https://files.pythonhosted.org/packages/f6/1d/a8c0e9ab49ff2f8e4dedd71b0122eafb22a18ad7e9d256025e1f10c84704/shapely-2.0.6-cp313-cp313-win32.whl", hash = "sha256:0334bd51828f68cd54b87d80b3e7cee93f249d82ae55a0faf3ea21c9be7b323a", size = 1294848 }, + { url = "https://files.pythonhosted.org/packages/23/38/2bc32dd1e7e67a471d4c60971e66df0bdace88656c47a9a728ace0091075/shapely-2.0.6-cp313-cp313-win_amd64.whl", hash = "sha256:d37d070da9e0e0f0a530a621e17c0b8c3c9d04105655132a87cfff8bd77cc4c2", size = 1441371 }, ] [[package]] @@ -5482,9 +3826,9 @@ name = "sparse" version = "0.15.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numba", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "scipy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numba", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "scipy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/26/6a/a1d00d932597c00509d333d9cde6f10d6c85470a3701455b0c48fc45886b/sparse-0.15.4.tar.gz", hash = "sha256:d4b1c57d24ff0f64f2fd5b5a95b49b7fb84ed207a26d7d58ce2764dcc5c72b84", size = 359721 } wheels = [ @@ -5496,22 +3840,23 @@ name = "sphinx" version = "7.3.7" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "alabaster", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "babel", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "docutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "imagesize", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pygments", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "requests", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "snowballstemmer", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinxcontrib-applehelp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinxcontrib-devhelp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinxcontrib-htmlhelp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinxcontrib-jsmath", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinxcontrib-qthelp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinxcontrib-serializinghtml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, + { name = "alabaster", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "babel", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "colorama", marker = "implementation_name == 'cpython' and sys_platform == 'win32'" }, + { name = "docutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "imagesize", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pygments", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "requests", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "snowballstemmer", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinxcontrib-applehelp", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinxcontrib-devhelp", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinxcontrib-htmlhelp", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinxcontrib-jsmath", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinxcontrib-qthelp", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinxcontrib-serializinghtml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b7/0a/b88033900b1582f5ed8f880263363daef968d1cd064175e32abfd9714410/sphinx-7.3.7.tar.gz", hash = "sha256:a4a7db75ed37531c05002d56ed6948d4c42f473a36f46e1382b0bd76ca9627bc", size = 7094808 } wheels = [ @@ -5523,7 +3868,7 @@ name = "sphinx-autodoc-typehints" version = "2.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/74/cd/03e7b917230dc057922130a79ba0240df1693bfd76727ea33fae84b39138/sphinx_autodoc_typehints-2.3.0.tar.gz", hash = "sha256:535c78ed2d6a1bad393ba9f3dfa2602cf424e2631ee207263e07874c38fde084", size = 40709 } wheels = [ @@ -5535,9 +3880,9 @@ name = "sphinx-jinja2-compat" version = "0.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "jinja2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "markupsafe", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "standard-imghdr", marker = "(python_full_version >= '3.13' and sys_platform == 'darwin') or (python_full_version >= '3.13' and sys_platform == 'linux')" }, + { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "markupsafe", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "standard-imghdr", marker = "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/26/df/27282da6f8c549f765beca9de1a5fc56f9651ed87711a5cac1e914137753/sphinx_jinja2_compat-0.3.0.tar.gz", hash = "sha256:f3c1590b275f42e7a654e081db5e3e5fb97f515608422bde94015ddf795dfe7c", size = 4998 } wheels = [ @@ -5549,7 +3894,7 @@ name = "sphinx-math-dollar" version = "1.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/9f/63/9227668066d044b6b6a582f000ade4b9e679978466555710dd2a15f21a3a/sphinx-math-dollar-1.2.1.tar.gz", hash = "sha256:03427240f21fdf23c7b8415289aa1a0e307ac32c198e02f840c59a4b1b0d950c", size = 25758 } wheels = [ @@ -5561,9 +3906,9 @@ name = "sphinx-prompt" version = "1.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "docutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pygments", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "docutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pygments", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e7/fb/7a07b8df1ca2418147a6b13e3f6b445071f2565198b45efa631d0d6ef0cd/sphinx_prompt-1.8.0.tar.gz", hash = "sha256:47482f86fcec29662fdfd23e7c04ef03582714195d01f5d565403320084372ed", size = 5121 } wheels = [ @@ -5575,9 +3920,9 @@ name = "sphinx-rtd-theme" version = "3.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "docutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinxcontrib-jquery", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "docutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinxcontrib-jquery", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/91/44/c97faec644d29a5ceddd3020ae2edffa69e7d00054a8c7a6021e82f20335/sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85", size = 7620463 } wheels = [ @@ -5589,9 +3934,9 @@ name = "sphinx-tabs" version = "3.4.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "docutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pygments", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "docutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pygments", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/27/32/ab475e252dc2b704e82a91141fa404cdd8901a5cf34958fd22afacebfccd/sphinx-tabs-3.4.5.tar.gz", hash = "sha256:ba9d0c1e3e37aaadd4b5678449eb08176770e0fc227e769b6ce747df3ceea531", size = 16070 } wheels = [ @@ -5603,23 +3948,23 @@ name = "sphinx-toolbox" version = "3.8.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "apeye", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "autodocsumm", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "beautifulsoup4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "cachecontrol", extra = ["filecache"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "dict2css", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "docutils", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "domdf-python-tools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "filelock", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "html5lib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "ruamel-yaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx-autodoc-typehints", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx-jinja2-compat", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx-prompt", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sphinx-tabs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tabulate", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "apeye", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "autodocsumm", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "beautifulsoup4", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cachecontrol", extra = ["filecache"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "dict2css", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "docutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "domdf-python-tools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "filelock", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "html5lib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "ruamel-yaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx-autodoc-typehints", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx-jinja2-compat", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx-prompt", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx-tabs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tabulate", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/30/80/f837e85c8c216cdeef9b60393e4b00c9092a1e3d734106e0021abbf5930c/sphinx_toolbox-3.8.1.tar.gz", hash = "sha256:a4b39a6ea24fc8f10e24f052199bda17837a0bf4c54163a56f521552395f5e1a", size = 111977 } wheels = [ @@ -5658,7 +4003,7 @@ name = "sphinxcontrib-jquery" version = "4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "sphinx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/de/f3/aa67467e051df70a6330fe7770894b3e4f09436dea6881ae0b4f3d87cad8/sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a", size = 122331 } wheels = [ @@ -5706,7 +4051,7 @@ name = "sympy" version = "1.12.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "mpmath", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "mpmath", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/41/8a/0d1bbd33cd3091c913d298746e56f40586fa954788f51b816c6336424675/sympy-1.12.1.tar.gz", hash = "sha256:2877b03f998cd8c08f07cd0de5b767119cd3ef40d09f41c30d722f6686b0fb88", size = 6722359 } wheels = [ @@ -5727,14 +4072,14 @@ name = "tach" version = "0.16.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "gitpython", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "networkx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "prompt-toolkit", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pydot", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "rich", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tomli", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tomli-w", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "gitpython", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "networkx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "prompt-toolkit", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pydot", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "rich", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomli", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomli-w", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a7/97/e1cfb1f6e7b9505c9fb4af436f3b159121918217c8f1bd7154ece0ec7ead/tach-0.16.0.tar.gz", hash = "sha256:557a1840b716f57fecbab20b84bd305c35bd2a0a399897f10ee743fbc9e70ed0", size = 725266 } wheels = [ @@ -5746,6 +4091,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/46/9e/e6291f985a684e592e309603492f0abb84f9d11c4883d86f9b718af06ce6/tach-0.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8d55047e49e1f5675ea9e21adc1e37bd274ddb8d5abf430832df1f64709faf9b", size = 2955232 }, { url = "https://files.pythonhosted.org/packages/09/cc/e3697b6407df54465391df65eb464b1af52c6952d0622937ba7f752a253f/tach-0.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d85fe12897f54735e603754e6ac4a11e4fa841a71c7f4c852c324ecf66e38594", size = 3121238 }, { url = "https://files.pythonhosted.org/packages/7f/7b/a1bc84d60f708348d4990ba1d5cc1893821aa1f50ff1fee8b0efceb44219/tach-0.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f09b92350fa008c2e18c4f61974dc565ccbcb83baa75453f92e1cbd7a800c63", size = 2813457 }, + { url = "https://files.pythonhosted.org/packages/06/cd/482dfb31a22a292eedabc32d8204451f73f23e4c76bb72c2c4693c2bb3a5/tach-0.16.0-cp310-none-win32.whl", hash = "sha256:7da8c9dd7d78e51bcd7d0d17218b0fa3c6ac7132b7f1fa54dd2904bf59997ce8", size = 2226189 }, + { url = "https://files.pythonhosted.org/packages/fe/35/b5cba4a667dfd9601f04ac158d49041fd484e9c2080c879ef4c4896883af/tach-0.16.0-cp310-none-win_amd64.whl", hash = "sha256:fe7bc8182d7c8bbd55e56b38cfcab8a6c44272fe761dd1e538b6c127222b7483", size = 2381600 }, { url = "https://files.pythonhosted.org/packages/af/a3/2cb275eef3ef49a9ae86566543b506c018e3a3913020febd9699f8c945ef/tach-0.16.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9ef79ebcdba2f9d63b0728e1125dd547b6a4f30c55da58d5429ef5e123ab2ca3", size = 2604432 }, { url = "https://files.pythonhosted.org/packages/a1/1d/63a46ba916d7bc26c27845b129c8819a4592b1f77591ad1bdddfc43c0033/tach-0.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c150a8600c2dbba66f53c324e658cd904995c2e011606b68859dbb05fa6d940", size = 2469633 }, { url = "https://files.pythonhosted.org/packages/cd/6d/d58e7c3d37fec58230f0cbb7e2a4601e9efbd59b168fdfbedb3e0772aec2/tach-0.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5165f0285c2ea47bbb34a37c13d736c0fe93c53df2e42b8ff6cd7ac43417db27", size = 2713242 }, @@ -5754,6 +4101,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fa/9b/592ac2b3e3f560efcba0c32c61f733c9acef5c4efaccdc2bb1319a31949a/tach-0.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d27e977bf75047f9d9db0146c74ddf285e4a05b369a1d63a93adfd5bc3fddad", size = 2955196 }, { url = "https://files.pythonhosted.org/packages/ef/0c/6b137d58643100773ff78fcd46170f42b5b6a567c5542119bdeae84e4180/tach-0.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1845646b2ceef5d3031359a136375bb7d4dffa7cbf3573ac71bcd55f0e19e8c6", size = 3119902 }, { url = "https://files.pythonhosted.org/packages/be/6e/88a817a2f683ee99f80449ab5359acf2c7b3f6e3334917dd088c105ebf7d/tach-0.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4dd77a2df7847c72596382ffb4e430639815feb14b99d5c5562c1510827fc323", size = 2813161 }, + { url = "https://files.pythonhosted.org/packages/53/3f/270b3a8374e78e55146491aa2a6c7d7c429c1aacede0d245650003631e35/tach-0.16.0-cp311-none-win32.whl", hash = "sha256:63d8c9bd0fdefbf0c57c41f24e2cba8fefbb72f32ea2b339811145eb8f5c8418", size = 2225909 }, + { url = "https://files.pythonhosted.org/packages/e0/80/74486b1736b2628beb37e1c4e0515469f987b0661e7f4f4ca79843f13a7a/tach-0.16.0-cp311-none-win_amd64.whl", hash = "sha256:e658e5b0b7defecea0cbc25ea8d3f541a9e5fbe460b341b4d1a93ec0648c0f37", size = 2381822 }, { url = "https://files.pythonhosted.org/packages/03/d8/7b158c2b728651fa35dbc1db3560257a85d303145860a6dd841cbc2ee06f/tach-0.16.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:81e65b42da5a8dd174cd3328ed587b42264990740b580d5f099b910a8dc47566", size = 2605253 }, { url = "https://files.pythonhosted.org/packages/30/dd/21a162d9db236a76beb5ea50b4d67410cddec1929ecbbf9d879f10b2d9ec/tach-0.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39722c773d06b1d8fff781bc8c41f1b11f2bff103dfdb328f5933fc3dcc8f153", size = 2470209 }, { url = "https://files.pythonhosted.org/packages/0e/cc/44ca0e3cf76b20f416d063422a6cdb47014607978718935e4345c22c8dc9/tach-0.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:675b142fdeb1fc40eecfd1e500853a12aec1193124aa1a4711fea35f4103e07f", size = 2712574 }, @@ -5762,6 +4111,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a7/41/551a81245e2e591148d302a2933351e1539221e2e5a7d2c5c43b8192eb2f/tach-0.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80517a2dbe33965149d737f89067fc83861e0c188b6015aa28f47bbb7864e9f7", size = 2954366 }, { url = "https://files.pythonhosted.org/packages/09/bc/29f6c1fe606eac62b0ff57c5fe50a9bb4f61ef4421bb0079a2127feaf2f3/tach-0.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d8dd67881719ba8090d22c28240b6ce9aa51fe5e4f41cf2fd101f924af4b6e1", size = 3115713 }, { url = "https://files.pythonhosted.org/packages/2b/e6/b086a2bba693b1b020f7da9b1d0339f297248531430ec4f11ab4dd324d25/tach-0.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a5fcad3d7992a02228229175e5f15e88574b0af53dfdfbabea104e090c5f667", size = 2812609 }, + { url = "https://files.pythonhosted.org/packages/f1/2a/85eabd3240976ae51cd185b7f766871754be17eef62b95a2941f3b4e86b8/tach-0.16.0-cp312-none-win32.whl", hash = "sha256:586abd41f835f5839fbf9bcd10abd32178e9007684604fde0b0a14724c097eed", size = 2230554 }, + { url = "https://files.pythonhosted.org/packages/9c/c1/33b1d9ad507eece310aba46bcfb5026050da0a9b84c12988de0b288d7206/tach-0.16.0-cp312-none-win_amd64.whl", hash = "sha256:db52f6bd97417bb1d4f71d0cc488133f430a594203483f85f70fea7c0f25862f", size = 2382453 }, { url = "https://files.pythonhosted.org/packages/40/b3/2dd89c30f3266de14b439cfba54e67baa4f9e34a1e5cfbaf0c7102b9cdf1/tach-0.16.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e6be354bc177ef07148089ea147f8bbbfe65a3e0ecbe38ebb4c88aa8f4eafc26", size = 2604458 }, { url = "https://files.pythonhosted.org/packages/1f/8e/2ec85316a8bc60e7ad2325c313da33148f47349181f4bf2eaa6d172bc4a2/tach-0.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:192951278d5a5291b3d4a0805b0d990eca592ccfb2774ded23bf23a0b5780dca", size = 2470492 }, { url = "https://files.pythonhosted.org/packages/8f/30/fde606583558cb2e0f7ccd8c807b77ea63130394f765846da59d22d66714/tach-0.16.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e23ea9c96599a5d9851438d29e2078cfcee2f16036cbd15612b467a5bdda29d1", size = 2712249 }, @@ -5770,6 +4121,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f4/84/724bb077cf1d4f56deee7e54d92692d881a31849e6221531d98f154db09a/tach-0.16.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64c8c71ebfd0ad5c63dbc1ce3e0635ec0ee1b3e3c78f650f808f0c2f3456404b", size = 2953698 }, { url = "https://files.pythonhosted.org/packages/e3/2e/dbfeccf45ba2e38b286473f770d917508cbf3f2b19209f4d99719805107f/tach-0.16.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5f8a84e778f46bf234d0462cfddc2277c5495778a15077420d20803920acd1be", size = 3115563 }, { url = "https://files.pythonhosted.org/packages/a7/7d/ed6ffb77581659b1043bc47a708add75a65200b59e730167d7496c33fd1e/tach-0.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a4b2a1f2b87c6100382f8cc47be83abfabf9fe1213ca3f17e643215218aaf2c", size = 2812031 }, + { url = "https://files.pythonhosted.org/packages/f5/c1/bed0a70cc6b2e34a6f7c98170f48e8b43554b1bfba8a7340191106cd1e00/tach-0.16.0-cp313-none-win32.whl", hash = "sha256:27f6c9076f97e2a0d73ab56602035ae949f57b9b719bf813f9a7911e3b6d7136", size = 2230351 }, + { url = "https://files.pythonhosted.org/packages/f6/2d/69a5da5f99c677096bbec20ce3090a7aced91e1bfed19379b4cc5e3e3bc2/tach-0.16.0-cp313-none-win_amd64.whl", hash = "sha256:b1ea36848c158ca5f67e06eef7a920c58a341081d4e77353cd9821569ea8de43", size = 2381937 }, { url = "https://files.pythonhosted.org/packages/fa/88/5838f2f94f1175cd5f909093b343ed6bbbd6e8363984ebc0dcea97f7c5ac/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:af9fc63ffe261017e63b854574be0d409bfe662b45e72841ce1b08c9507fe63e", size = 2715843 }, { url = "https://files.pythonhosted.org/packages/48/ad/52ddd324544f67c9a4d2d8d17a05edf3864f37418e5202c590d12cf967c3/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:079041abbba2f23129a9c2ef8e81888080c8c6129ba5d489614a65bb9e424081", size = 2689909 }, { url = "https://files.pythonhosted.org/packages/ac/1d/2d4c67e27375bd858b5f3ab9291c1610ac245a84eeac73a95167d72a3266/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b755bc0884ca3981eb919db60b04c0a5d1efddc053bf83f6116ace714a475c71", size = 2930649 }, @@ -5819,6 +4172,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894 }, { url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319 }, { url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273 }, + { url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", size = 98310 }, + { url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", size = 108309 }, { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762 }, { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453 }, { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486 }, @@ -5827,6 +4182,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243 }, { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645 }, { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584 }, + { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875 }, + { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418 }, { url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", size = 132708 }, { url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", size = 123582 }, { url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", size = 232543 }, @@ -5835,6 +4192,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", size = 236530 }, { url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", size = 258666 }, { url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", size = 243954 }, + { url = "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", size = 98724 }, + { url = "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", size = 109383 }, { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 }, ] @@ -5879,6 +4238,8 @@ wheels = [ { 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 }, ] [[package]] @@ -5886,17 +4247,17 @@ name = "tox" version = "4.23.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cachetools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "chardet", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "colorama", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "filelock", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "platformdirs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pluggy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pyproject-api", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "tomli", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, - { name = "typing-extensions", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" }, - { name = "virtualenv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "cachetools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "chardet", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "colorama", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "filelock", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "platformdirs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pluggy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyproject-api", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "virtualenv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/1f/86/32b10f91b4b975a37ac402b0f9fa016775088e0565c93602ba0b3c729ce8/tox-4.23.2.tar.gz", hash = "sha256:86075e00e555df6e82e74cfc333917f91ecb47ffbc868dcafbd2672e332f4a2c", size = 189998 } wheels = [ @@ -5908,7 +4269,7 @@ name = "tqdm" version = "4.67.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "(platform_system == 'Windows' and sys_platform == 'darwin') or (platform_system == 'Windows' and sys_platform == 'linux')" }, + { name = "colorama", marker = "implementation_name == 'cpython' and platform_system == 'Windows' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } wheels = [ @@ -5920,7 +4281,7 @@ name = "types-cffi" version = "1.16.0.20240331" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "types-setuptools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "types-setuptools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/91/c8/81e5699160b91f0f91eea852d84035c412bfb4b3a29389701044400ab379/types-cffi-1.16.0.20240331.tar.gz", hash = "sha256:b8b20d23a2b89cfed5f8c5bc53b0cb8677c3aac6d970dbc771e28b9c698f5dee", size = 11318 } wheels = [ @@ -5977,7 +4338,7 @@ name = "uxarray" version = "2024.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "xarray", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "xarray", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0b/80/e6277088ab809a7d331c4660c85ddb1bbf43b8e2688b3ccdda74fa1b6b58/uxarray-2024.3.0.tar.gz", hash = "sha256:72ffa45069fe86c6998cdd516cdf07860cfe6995f04b433b2f232e929ba43db7", size = 14460765 } wheels = [ @@ -5989,9 +4350,9 @@ name = "virtualenv" version = "20.28.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "distlib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "filelock", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "platformdirs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "distlib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "filelock", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "platformdirs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/bf/75/53316a5a8050069228a2f6d11f32046cfa94fbb6cc3f08703f59b873de2e/virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa", size = 7650368 } wheels = [ @@ -6003,7 +4364,7 @@ name = "wcmatch" version = "10.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "bracex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "bracex", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/41/ab/b3a52228538ccb983653c446c1656eddf1d5303b9cb8b9aef6a91299f862/wcmatch-10.0.tar.gz", hash = "sha256:e72f0de09bba6a04e0de70937b0cf06e55f36f37b3deb422dfaf854b867b840a", size = 115578 } wheels = [ @@ -6043,6 +4404,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b3/bc/99e5f511838c365ac6ecae19674eb5e94201aa4235bd1af3e6fa92c12905/websockets-14.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bea45f19b7ca000380fbd4e02552be86343080120d074b87f25593ce1700ad58", size = 168561 }, { url = "https://files.pythonhosted.org/packages/c6/e7/251491585bad61c79e525ac60927d96e4e17b18447cc9c3cfab47b2eb1b8/websockets-14.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:219c8187b3ceeadbf2afcf0f25a4918d02da7b944d703b97d12fb01510869078", size = 167979 }, { url = "https://files.pythonhosted.org/packages/ac/98/7ac2e4eeada19bdbc7a3a66a58e3ebdf33648b9e1c5b3f08c3224df168cf/websockets-14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ad2ab2547761d79926effe63de21479dfaf29834c50f98c4bf5b5480b5838434", size = 167925 }, + { url = "https://files.pythonhosted.org/packages/ab/3d/09e65c47ee2396b7482968068f6e9b516221e1032b12dcf843b9412a5dfb/websockets-14.1-cp310-cp310-win32.whl", hash = "sha256:1288369a6a84e81b90da5dbed48610cd7e5d60af62df9851ed1d1d23a9069f10", size = 162831 }, + { url = "https://files.pythonhosted.org/packages/8a/67/59828a3d09740e6a485acccfbb66600632f2178b6ed1b61388ee96f17d5a/websockets-14.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0744623852f1497d825a49a99bfbec9bea4f3f946df6eb9d8a2f0c37a2fec2e", size = 163266 }, { url = "https://files.pythonhosted.org/packages/97/ed/c0d03cb607b7fe1f7ff45e2cd4bb5cd0f9e3299ced79c2c303a6fff44524/websockets-14.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:449d77d636f8d9c17952628cc7e3b8faf6e92a17ec581ec0c0256300717e1512", size = 161949 }, { url = "https://files.pythonhosted.org/packages/06/91/bf0a44e238660d37a2dda1b4896235d20c29a2d0450f3a46cd688f43b239/websockets-14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a35f704be14768cea9790d921c2c1cc4fc52700410b1c10948511039be824aac", size = 159606 }, { url = "https://files.pythonhosted.org/packages/ff/b8/7185212adad274c2b42b6a24e1ee6b916b7809ed611cbebc33b227e5c215/websockets-14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b1f3628a0510bd58968c0f60447e7a692933589b791a6b572fcef374053ca280", size = 159854 }, @@ -6052,6 +4415,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6d/d6/7063e3f5c1b612e9f70faae20ebaeb2e684ffa36cb959eb0862ee2809b32/websockets-14.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cc1fc87428c1d18b643479caa7b15db7d544652e5bf610513d4a3478dbe823d0", size = 169083 }, { url = "https://files.pythonhosted.org/packages/49/69/e6f3d953f2fa0f8a723cf18cd011d52733bd7f6e045122b24e0e7f49f9b0/websockets-14.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f95ba34d71e2fa0c5d225bde3b3bdb152e957150100e75c86bc7f3964c450d89", size = 168529 }, { url = "https://files.pythonhosted.org/packages/70/ff/f31fa14561fc1d7b8663b0ed719996cf1f581abee32c8fb2f295a472f268/websockets-14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9481a6de29105d73cf4515f2bef8eb71e17ac184c19d0b9918a3701c6c9c4f23", size = 168475 }, + { url = "https://files.pythonhosted.org/packages/f1/15/b72be0e4bf32ff373aa5baef46a4c7521b8ea93ad8b49ca8c6e8e764c083/websockets-14.1-cp311-cp311-win32.whl", hash = "sha256:368a05465f49c5949e27afd6fbe0a77ce53082185bbb2ac096a3a8afaf4de52e", size = 162833 }, + { url = "https://files.pythonhosted.org/packages/bc/ef/2d81679acbe7057ffe2308d422f744497b52009ea8bab34b6d74a2657d1d/websockets-14.1-cp311-cp311-win_amd64.whl", hash = "sha256:6d24fc337fc055c9e83414c94e1ee0dee902a486d19d2a7f0929e49d7d604b09", size = 163263 }, { url = "https://files.pythonhosted.org/packages/55/64/55698544ce29e877c9188f1aee9093712411a8fc9732cca14985e49a8e9c/websockets-14.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ed907449fe5e021933e46a3e65d651f641975a768d0649fee59f10c2985529ed", size = 161957 }, { url = "https://files.pythonhosted.org/packages/a2/b1/b088f67c2b365f2c86c7b48edb8848ac27e508caf910a9d9d831b2f343cb/websockets-14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:87e31011b5c14a33b29f17eb48932e63e1dcd3fa31d72209848652310d3d1f0d", size = 159620 }, { url = "https://files.pythonhosted.org/packages/c1/89/2a09db1bbb40ba967a1b8225b07b7df89fea44f06de9365f17f684d0f7e6/websockets-14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bc6ccf7d54c02ae47a48ddf9414c54d48af9c01076a2e1023e3b486b6e72c707", size = 159852 }, @@ -6061,6 +4426,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ad/ed/1532786f55922c1e9c4d329608e36a15fdab186def3ca9eb10d7465bc1cc/websockets-14.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6a6c9bcf7cdc0fd41cc7b7944447982e8acfd9f0d560ea6d6845428ed0562058", size = 169345 }, { url = "https://files.pythonhosted.org/packages/ea/fb/160f66960d495df3de63d9bcff78e1b42545b2a123cc611950ffe6468016/websockets-14.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4b6caec8576e760f2c7dd878ba817653144d5f369200b6ddf9771d64385b84d4", size = 168725 }, { url = "https://files.pythonhosted.org/packages/cf/53/1bf0c06618b5ac35f1d7906444b9958f8485682ab0ea40dee7b17a32da1e/websockets-14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eb6d38971c800ff02e4a6afd791bbe3b923a9a57ca9aeab7314c21c84bf9ff05", size = 168712 }, + { url = "https://files.pythonhosted.org/packages/e5/22/5ec2f39fff75f44aa626f86fa7f20594524a447d9c3be94d8482cd5572ef/websockets-14.1-cp312-cp312-win32.whl", hash = "sha256:1d045cbe1358d76b24d5e20e7b1878efe578d9897a25c24e6006eef788c0fdf0", size = 162838 }, + { url = "https://files.pythonhosted.org/packages/74/27/28f07df09f2983178db7bf6c9cccc847205d2b92ced986cd79565d68af4f/websockets-14.1-cp312-cp312-win_amd64.whl", hash = "sha256:90f4c7a069c733d95c308380aae314f2cb45bd8a904fb03eb36d1a4983a4993f", size = 163277 }, { url = "https://files.pythonhosted.org/packages/34/77/812b3ba5110ed8726eddf9257ab55ce9e85d97d4aa016805fdbecc5e5d48/websockets-14.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3630b670d5057cd9e08b9c4dab6493670e8e762a24c2c94ef312783870736ab9", size = 161966 }, { url = "https://files.pythonhosted.org/packages/8d/24/4fcb7aa6986ae7d9f6d083d9d53d580af1483c5ec24bdec0978307a0f6ac/websockets-14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36ebd71db3b89e1f7b1a5deaa341a654852c3518ea7a8ddfdf69cc66acc2db1b", size = 159625 }, { url = "https://files.pythonhosted.org/packages/f8/47/2a0a3a2fc4965ff5b9ce9324d63220156bd8bedf7f90824ab92a822e65fd/websockets-14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5b918d288958dc3fa1c5a0b9aa3256cb2b2b84c54407f4813c45d52267600cd3", size = 159857 }, @@ -6070,11 +4437,14 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8c/05/ea1fec05cc3a60defcdf0bb9f760c3c6bd2dd2710eff7ac7f891864a22ba/websockets-14.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cf5201a04550136ef870aa60ad3d29d2a59e452a7f96b94193bee6d73b8ad9a9", size = 169383 }, { url = "https://files.pythonhosted.org/packages/21/1d/eac1d9ed787f80754e51228e78855f879ede1172c8b6185aca8cef494911/websockets-14.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:88cf9163ef674b5be5736a584c999e98daf3aabac6e536e43286eb74c126b9c7", size = 168773 }, { url = "https://files.pythonhosted.org/packages/0e/1b/e808685530185915299740d82b3a4af3f2b44e56ccf4389397c7a5d95d39/websockets-14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:836bef7ae338a072e9d1863502026f01b14027250a4545672673057997d5c05a", size = 168757 }, + { url = "https://files.pythonhosted.org/packages/b6/19/6ab716d02a3b068fbbeb6face8a7423156e12c446975312f1c7c0f4badab/websockets-14.1-cp313-cp313-win32.whl", hash = "sha256:0d4290d559d68288da9f444089fd82490c8d2744309113fc26e2da6e48b65da6", size = 162834 }, + { url = "https://files.pythonhosted.org/packages/6c/fd/ab6b7676ba712f2fc89d1347a4b5bdc6aa130de10404071f2b2606450209/websockets-14.1-cp313-cp313-win_amd64.whl", hash = "sha256:8621a07991add373c3c5c2cf89e1d277e49dc82ed72c75e3afc74bd0acc446f0", size = 163277 }, { url = "https://files.pythonhosted.org/packages/fb/cd/382a05a1ba2a93bd9fb807716a660751295df72e77204fb130a102fcdd36/websockets-14.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e5dc25a9dbd1a7f61eca4b7cb04e74ae4b963d658f9e4f9aad9cd00b688692c8", size = 159633 }, { url = "https://files.pythonhosted.org/packages/b7/a0/fa7c62e2952ef028b422fbf420f9353d9dd4dfaa425de3deae36e98c0784/websockets-14.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:04a97aca96ca2acedf0d1f332c861c5a4486fdcba7bcef35873820f940c4231e", size = 159867 }, { url = "https://files.pythonhosted.org/packages/c1/94/954b4924f868db31d5f0935893c7a8446515ee4b36bb8ad75a929469e453/websockets-14.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df174ece723b228d3e8734a6f2a6febbd413ddec39b3dc592f5a4aa0aff28098", size = 161121 }, { url = "https://files.pythonhosted.org/packages/7a/2e/f12bbb41a8f2abb76428ba4fdcd9e67b5b364a3e7fa97c88f4d6950aa2d4/websockets-14.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:034feb9f4286476f273b9a245fb15f02c34d9586a5bc936aff108c3ba1b21beb", size = 160731 }, { url = "https://files.pythonhosted.org/packages/13/97/b76979401f2373af1fe3e08f960b265cecab112e7dac803446fb98351a52/websockets-14.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c308dabd2b380807ab64b62985eaccf923a78ebc572bd485375b9ca2b7dc7", size = 160681 }, + { url = "https://files.pythonhosted.org/packages/39/9c/16916d9a436c109a1d7ba78817e8fee357b78968be3f6e6f517f43afa43d/websockets-14.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5a42d3ecbb2db5080fc578314439b1d79eef71d323dc661aa616fb492436af5d", size = 163316 }, { url = "https://files.pythonhosted.org/packages/b0/0b/c7e5d11020242984d9d37990310520ed663b942333b83a033c2f20191113/websockets-14.1-py3-none-any.whl", hash = "sha256:4d4fc827a20abe6d544a119896f6b78ee13fe81cbfef416f3f2ddf09a03f0e2e", size = 156277 }, ] @@ -6098,9 +4468,9 @@ name = "xarray" version = "2024.11.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pandas", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3f/d6/5ae0a721bd6cac85b30cff6b119dc6b5e73b735aacbfb43d3ed2680504d7/xarray-2024.11.0.tar.gz", hash = "sha256:1ccace44573ddb862e210ad3ec204210654d2c750bec11bbe7d842dfc298591f", size = 3247277 } wheels = [ @@ -6109,24 +4479,24 @@ wheels = [ [package.optional-dependencies] complete = [ - { name = "bottleneck", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "cartopy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "cftime", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "dask", extra = ["complete"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "flox", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "fsspec", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "h5netcdf", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "matplotlib", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "nc-time-axis", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "netcdf4", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numba", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numbagg", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "opt-einsum", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "pooch", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "scipy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "seaborn", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "sparse", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "zarr", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "bottleneck", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cartopy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cftime", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "dask", extra = ["complete"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "flox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "fsspec", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "h5netcdf", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "matplotlib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "nc-time-axis", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "netcdf4", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numba", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numbagg", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "opt-einsum", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pooch", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "scipy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "seaborn", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sparse", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "zarr", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [[package]] @@ -6142,6 +4512,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d2/6f/eafbb4ec3baf499423f2de3a5f3b6c5898f3bf4a8714e100d5dfb911fbad/xxhash-3.0.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a1403e4f551c9ef7bcef09af55f1adb169f13e4de253db0887928e5129f87af1", size = 286394 }, { url = "https://files.pythonhosted.org/packages/64/05/504e1a7accc8f115ebfba96104c2f4a4aea3fb415bd664a6a1cc8915671e/xxhash-3.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa7f6ca53170189a2268c83af0980e6c10aae69e6a5efa7ca989f89fff9f8c02", size = 211550 }, { url = "https://files.pythonhosted.org/packages/f8/b9/b6558ba62479dbdd18f894842f6ec01bbbf94aa8a26340f889c1af550fa8/xxhash-3.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b63fbeb6d9c93d50ae0dc2b8a8b7f52f2de19e40fe9edc86637bfa5743b8ba2", size = 219718 }, + { url = "https://files.pythonhosted.org/packages/19/7a/270f9c47d9748b7d43ec2ce0ee1d50c189ccf21e7ba6adc39e4045fcd450/xxhash-3.0.0-cp310-cp310-win32.whl", hash = "sha256:31f25efd10b6f1f6d5c34cd231986d8aae9a42e042daa90b783917f170807869", size = 30157 }, + { url = "https://files.pythonhosted.org/packages/67/54/f98d6eccb96da4fc51f4397123828c593c6f2731ede141f2318d1aab8a6b/xxhash-3.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:807e88ed56e0fb347cb57d5bf44851f9878360fed700f2f63e622ef4eede87a5", size = 29918 }, ] [[package]] @@ -6158,10 +4530,10 @@ name = "zarr" version = "2.18.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "asciitree", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "fasteners", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numcodecs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "numpy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "asciitree", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "fasteners", marker = "implementation_name == 'cpython' and sys_platform != 'emscripten' and sys_platform != 'windows'" }, + { name = "numcodecs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/23/c4/187a21ce7cf7c8f00c060dd0e04c2a81139bb7b1ab178bba83f2e1134ce2/zarr-2.18.3.tar.gz", hash = "sha256:2580d8cb6dd84621771a10d31c4d777dca8a27706a1a89b29f42d2d37e2df5ce", size = 3603224 } wheels = [ From 9bc7b1fcd2bd0d2db29871d9bd130a8387c63069 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Thu, 5 Dec 2024 14:38:09 +0100 Subject: [PATCH 17/83] Finished main work in `icon4py.testing` --- .../icon4py/model/common/utils/__init__.py | 3 +- .../src/icon4py/model/common/utils/fields.py | 28 ++--- model/testing/pyproject.toml | 1 + noxfile.py | 3 +- pyproject.toml | 3 + tach.toml | 10 ++ tools/pyproject.toml | 2 - uv.lock | 102 ++++++++++++++++++ 8 files changed, 136 insertions(+), 16 deletions(-) diff --git a/model/common/src/icon4py/model/common/utils/__init__.py b/model/common/src/icon4py/model/common/utils/__init__.py index 0e651cc3ad..c77b6ecd59 100644 --- a/model/common/src/icon4py/model/common/utils/__init__.py +++ b/model/common/src/icon4py/model/common/utils/__init__.py @@ -8,7 +8,6 @@ from __future__ import annotations -from . import fields from ._common import ( DoubleBuffering, Pair, @@ -17,6 +16,7 @@ chainable, named_property, ) +from . import fields, serialbox __all__ = [ @@ -30,4 +30,5 @@ "chainable", # Modules "fields", + "serialbox", ] diff --git a/model/common/src/icon4py/model/common/utils/fields.py b/model/common/src/icon4py/model/common/utils/fields.py index 9fc763a8ce..76fcb36896 100644 --- a/model/common/src/icon4py/model/common/utils/fields.py +++ b/model/common/src/icon4py/model/common/utils/fields.py @@ -5,8 +5,11 @@ # # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause + +from __future__ import annotations + import logging as log -from typing import Optional, TypeAlias, Union +from typing import Optional, TypeAlias, Union, TYPE_CHECKING import gt4py._core.definitions as gt_core_defs import gt4py.next as gtx @@ -14,13 +17,16 @@ import numpy as np import numpy.typing as npt -from icon4py.model.common import dimension, type_alias as ta -from icon4py.model.common.grid.base import BaseGrid +from icon4py.model.common import type_alias as ta + +if TYPE_CHECKING: + from icon4py.model.common import dimension + from icon4py.model.common.grid import base as grid_base -""" Enum values from Enum values taken from DLPack reference implementation at: - https://github.com/dmlc/dlpack/blob/main/include/dlpack/dlpack.h - via GT4Py -""" + +#: Enum values from Enum values taken from DLPack reference implementation at: +#: https://github.com/dmlc/dlpack/blob/main/include/dlpack/dlpack.h +#: via GT4Py CUDA_DEVICE_TYPES = ( gt_core_defs.DeviceType.CUDA, gt_core_defs.DeviceType.CUDA_MANAGED, @@ -129,7 +135,7 @@ def random_field( return as_field(dims, arr) def zero_field( - grid: BaseGrid, + grid: grid_base.BaseGrid, *dims: gtx.Dimension, dtype=ta.wpfloat, extend: Optional[dict[gtx.Dimension, int]] = None, @@ -138,7 +144,7 @@ def zero_field( def constant_field( - grid: BaseGrid, value: float, *dims: gtx.Dimension, dtype=ta.wpfloat + grid: grid_base.BaseGrid, value: float, *dims: gtx.Dimension, dtype=ta.wpfloat ) -> gtx.Field: return as_field( dims, @@ -157,7 +163,7 @@ def _shape( def random_mask( - grid: BaseGrid, + grid: grid_base.BaseGrid, *dims: gtx.Dimension, dtype: Optional[npt.DTypeLike] = None, extend: Optional[dict[gtx.Dimension, int]] = None, @@ -196,5 +202,3 @@ def allocate_indices( xp = import_array_ns(backend) shapex = _size(grid, dim, is_halfdim) return gtx.as_field((dim,), xp.arange(shapex, dtype=dtype), allocator=backend) - - diff --git a/model/testing/pyproject.toml b/model/testing/pyproject.toml index a21bcd8e1c..c9b50f9008 100644 --- a/model/testing/pyproject.toml +++ b/model/testing/pyproject.toml @@ -29,6 +29,7 @@ dependencies = [ "pytest>=8.0.1", "serialbox>=0.0.1", "typing-extensions>=4.11.0", + "wget>=3.2", ] description = "Testing utils for the icon4py model." license = {text = "BSD-3 License"} diff --git a/noxfile.py b/noxfile.py index 53a2079262..4e2831c4e8 100644 --- a/noxfile.py +++ b/noxfile.py @@ -9,7 +9,7 @@ import nox nox.options.default_venv_backend = "uv" -nox.options.sessions = ["lint", "test"] +#nox.options.sessions = ["lint", "test"] def session_install( @@ -36,6 +36,7 @@ def session_install( def test_tools(session: nox.Session) -> None: """Run the unit and regular tests for the integration tools.""" session_install(session, groups=("test",)) + session.cd("tools") session.run("pytest", "-sv", "-n", session.env.get("NUM_PROCESSES", "1"), *session.posargs) diff --git a/pyproject.toml b/pyproject.toml index f9c2b14d10..2dd3be97a2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,6 +65,9 @@ docs = [ ] lint = ["pre-commit>=4.0.1", "ruff>=0.8.0", "tach>=0.16.0"] test = [ + # workspace members + "icon4py-testing>=0.0.6", + # external dependencies "coverage[toml]>=7.5.0", "nox @ git+https://github.com/wntrblm/nox.git@aa09595437608dfe21eb776d8a4bcc0bd5f9916b", # TODO: remove once next version is released "pytest>=8.0.1", diff --git a/tach.toml b/tach.toml index 3ac439c0f5..8600356970 100644 --- a/tach.toml +++ b/tach.toml @@ -1,4 +1,7 @@ +exact = true exclude = [] +forbid_circular_dependencies = true +interfaces = [] source_roots = [ "model/atmosphere/advection/src", "model/atmosphere/diffusion/src", @@ -6,6 +9,7 @@ source_roots = [ "model/atmosphere/subgrid_scale_physics/microphysics/src", "model/common/src", "model/driver/src", + "model/testing/src", "tools/src", ] @@ -45,6 +49,12 @@ depends_on = [ { path = "icon4py.model.common" }, ] +[[modules]] +path = "icon4py.model.testing" +depends_on = [ + { path = "icon4py.model.common" }, +] + [[modules]] path = "icon4pytools" depends_on = [] diff --git a/tools/pyproject.toml b/tools/pyproject.toml index b0e5c35d7a..fd8a566254 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -102,8 +102,6 @@ parallel = true source_pkgs = ['icon4pytools'] # -- pytest -- -[tool.pytest] - [tool.pytest.ini_options] addopts = ['-p icon4py.model.testing.pytest_config'] markers = [ diff --git a/uv.lock b/uv.lock index e7895f0c4e..8f79440fbc 100644 --- a/uv.lock +++ b/uv.lock @@ -2,17 +2,113 @@ version = 1 requires-python = ">=3.10" resolution-markers = [ "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", ] supported-markers = [ "implementation_name == 'cpython' and sys_platform != 'windows'", @@ -1538,6 +1634,7 @@ build = [ dev = [ { name = "bump-my-version", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "coverage", extra = ["toml"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-testing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "mypy", extra = ["faster-cache"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "myst-parser", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "nox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, @@ -1579,6 +1676,7 @@ lint = [ ] test = [ { name = "coverage", extra = ["toml"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-testing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "nox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "pytest-benchmark", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, @@ -1623,6 +1721,7 @@ build = [ dev = [ { name = "bump-my-version", specifier = ">=0.16.0" }, { name = "coverage", extras = ["toml"], specifier = ">=7.5.0" }, + { name = "icon4py-testing", editable = "model/testing" }, { name = "mypy", extras = ["faster-cache"], specifier = ">=1.13.0" }, { name = "myst-parser", specifier = ">=4.0.0" }, { name = "nox", git = "https://github.com/wntrblm/nox.git?rev=aa09595437608dfe21eb776d8a4bcc0bd5f9916b#aa09595437608dfe21eb776d8a4bcc0bd5f9916b" }, @@ -1664,6 +1763,7 @@ lint = [ ] test = [ { name = "coverage", extras = ["toml"], specifier = ">=7.5.0" }, + { name = "icon4py-testing", editable = "model/testing" }, { name = "nox", git = "https://github.com/wntrblm/nox.git?rev=aa09595437608dfe21eb776d8a4bcc0bd5f9916b#aa09595437608dfe21eb776d8a4bcc0bd5f9916b" }, { name = "pytest", specifier = ">=8.0.1" }, { name = "pytest-benchmark", specifier = ">=5.0.0" }, @@ -1841,6 +1941,7 @@ dependencies = [ { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "serialbox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "wget", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] @@ -1852,6 +1953,7 @@ requires-dist = [ { name = "pytest", specifier = ">=8.0.1" }, { name = "serialbox", git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python" }, { name = "typing-extensions", specifier = ">=4.11.0" }, + { name = "wget", specifier = ">=3.2" }, ] [[package]] From 72584af04a873b68190d23994087b7926da2ce4b Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 6 Dec 2024 16:10:08 +0100 Subject: [PATCH 18/83] Fixes for common tests --- model/common/pyproject.toml | 39 ++++----- .../src/icon4py/model/common/type_alias.py | 25 ++++-- .../src/icon4py/model/common/utils/fields.py | 12 +-- model/common/tests/conftest.py | 34 +++++--- .../test_mpi_decomposition.py | 2 +- model/common/tests/io_tests/test_io.py | 11 +-- model/common/tests/math_tests/test_helpers.py | 19 ++-- .../tests/math_tests/test_smagorinsky.py | 6 +- .../test_compute_diffusion_metrics.py | 9 +- .../metric_tests/test_compute_nudgecoeffs.py | 2 +- .../metric_tests/test_compute_wgtfac_c.py | 9 +- .../test_compute_zdiff_gradp_dsl.py | 3 +- .../tests/metric_tests/test_metric_fields.py | 80 +++++++++-------- .../tests/metric_tests/test_metric_scalars.py | 4 +- ...est_mo_intp_rbf_rbf_vec_interpol_vertex.py | 13 +-- .../icon4py/model/testing/pytest_config.py | 29 ++++--- noxfile.py | 86 +++++++++++-------- tools/pyproject.toml | 41 +++++---- tools/tests/conftest.py | 44 ++++++++-- 19 files changed, 264 insertions(+), 204 deletions(-) diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index d103b07b3d..3b62ca909e 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -83,34 +83,31 @@ version = "{new_version}" [[tool.bumpversion.files]] filename = "src/icon4py/model/common/__init__.py" -# -- coverage -- -[tool.coverage] +# # -- coverage -- +# [tool.coverage] -[tool.coverage.html] -directory = 'tests/_reports/coverage_html' +# [tool.coverage.html] +# directory = 'tests/_reports/coverage_html' -[tool.coverage.paths] -source = ['src/icon4py/model/'] +# [tool.coverage.paths] +# source = ['src/icon4py/model/'] -[tool.coverage.report] -exclude_lines = [ - 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code - 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code - 'if 0:', # Don't complain if non-runnable code isn't run - 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run -] -ignore_errors = true +# [tool.coverage.report] +# exclude_lines = [ +# 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code +# 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code +# 'if 0:', # Don't complain if non-runnable code isn't run +# 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run +# ] +# ignore_errors = true -[tool.coverage.run] -branch = true -parallel = true -source_pkgs = ['common'] +# [tool.coverage.run] +# branch = true +# parallel = true +# source_pkgs = ['common'] # -- pytest -- -[tool.pytest] - [tool.pytest.ini_options] -addopts = ['-p icon4py.model.testing.pytest_config'] markers = [ "datatest: test depending on serialized data generated by a full model run", "with_netcdf: test depending on a compatible version of netCDF4" diff --git a/model/common/src/icon4py/model/common/type_alias.py b/model/common/src/icon4py/model/common/type_alias.py index 2ffd7ff3b8..709df30f86 100644 --- a/model/common/src/icon4py/model/common/type_alias.py +++ b/model/common/src/icon4py/model/common/type_alias.py @@ -7,7 +7,7 @@ # SPDX-License-Identifier: BSD-3-Clause import os -from typing import TypeAlias +from typing import Literal, TypeAlias from gt4py.next.ffront.fbuiltins import float32, float64 @@ -15,12 +15,21 @@ DEFAULT_PRECISION = "double" wpfloat: TypeAlias = float64 +vpfloat: type[float64] | type[float64] = wpfloat precision = os.environ.get("FLOAT_PRECISION", DEFAULT_PRECISION).lower() -match precision: - case "double": - vpfloat = wpfloat - case "mixed": - vpfloat: TypeAlias = float32 - case other: - raise ValueError("Only 'double' and 'mixed' precision are supported.") + +def set_precision(new_precision: Literal["double", "mixed"]) -> None: + global precision + global vpfloat + + precision = new_precision.lower() + match precision: + case "double": + vpfloat = wpfloat + case "mixed": + vpfloat = float32 + case _: + raise ValueError("Only 'double' and 'mixed' precision are supported.") + +set_precision(precision) diff --git a/model/common/src/icon4py/model/common/utils/fields.py b/model/common/src/icon4py/model/common/utils/fields.py index 76fcb36896..bb251d0aa6 100644 --- a/model/common/src/icon4py/model/common/utils/fields.py +++ b/model/common/src/icon4py/model/common/utils/fields.py @@ -90,7 +90,7 @@ def numpy_to_1D_sparse_field(field: np.ndarray, dim: gtx.Dimension) -> gtx.Field old_shape = field.shape assert len(old_shape) == 2 new_shape = (old_shape[0] * old_shape[1],) - return as_field((dim,), field.reshape(new_shape)) + return gtx.as_field((dim,), field.reshape(new_shape)) def flatten_first_two_dims(*dims: gtx.Dimension, field: gtx.Field) -> gtx.Field: @@ -102,7 +102,7 @@ def flatten_first_two_dims(*dims: gtx.Dimension, field: gtx.Field) -> gtx.Field: flattened_shape = (flattened_size,) new_shape = flattened_shape + old_shape[2:] newarray = buffer.reshape(new_shape) - return as_field(dims, newarray) + return gtx.as_field(dims, newarray) def unflatten_first_two_dims(field: gtx.Field) -> np.array: @@ -132,7 +132,7 @@ def random_field( ) if dtype: arr = arr.astype(dtype) - return as_field(dims, arr) + return gtx.as_field(dims, arr) def zero_field( grid: grid_base.BaseGrid, @@ -140,13 +140,13 @@ def zero_field( dtype=ta.wpfloat, extend: Optional[dict[gtx.Dimension, int]] = None, ) -> gtx.Field: - return as_field(dims, xp.zeros(shape=_shape(grid, *dims, extend=extend), dtype=dtype)) + return gtx.as_field(dims, xp.zeros(shape=_shape(grid, *dims, extend=extend), dtype=dtype)) def constant_field( grid: grid_base.BaseGrid, value: float, *dims: gtx.Dimension, dtype=ta.wpfloat ) -> gtx.Field: - return as_field( + return gtx.as_field( dims, value * np.ones(shape=tuple(map(lambda x: grid.size[x], dims)), dtype=dtype), ) @@ -177,7 +177,7 @@ def random_mask( arr = np.reshape(arr, newshape=shape) if dtype: arr = arr.astype(dtype) - return as_field(dims, arr) + return gtx.as_field(dims, arr) diff --git a/model/common/tests/conftest.py b/model/common/tests/conftest.py index c6a86c84e0..ee5bb7726b 100644 --- a/model/common/tests/conftest.py +++ b/model/common/tests/conftest.py @@ -11,26 +11,36 @@ import pytest -from icon4py.model.testing.helpers import backend, grid # noqa: F401 # fixtures +from icon4py.model.testing.helpers import backend, grid +from icon4py.model.testing.pytest_config import * # noqa: F401 + +__all__ = [ + # local: + "random_name", + "test_path", + # imported fixtures: + "backend", + "grid", +] @pytest.fixture -def random_name(): +def random_name() -> str: return "test" + str(random.randint(0, 100000)) -def delete_recursive(p: pathlib.Path): - for child in p.iterdir(): - if child.is_file(): - child.unlink() - else: - delete_recursive(child) - p.rmdir() - - @pytest.fixture def test_path(tmp_path): base_path = tmp_path.joinpath("io_tests") base_path.mkdir(exist_ok=True, parents=True, mode=0o777) yield base_path - delete_recursive(base_path) + _delete_recursive(base_path) + + +def _delete_recursive(p: pathlib.Path) -> None: + for child in p.iterdir(): + if child.is_file(): + child.unlink() + else: + _delete_recursive(child) + p.rmdir() diff --git a/model/common/tests/decomposition_tests/test_mpi_decomposition.py b/model/common/tests/decomposition_tests/test_mpi_decomposition.py index c114475dca..50d5510324 100644 --- a/model/common/tests/decomposition_tests/test_mpi_decomposition.py +++ b/model/common/tests/decomposition_tests/test_mpi_decomposition.py @@ -9,7 +9,7 @@ import numpy as np import pytest -from icon4py.model.testing.helpers import constant_field +from icon4py.model.common.utils.fields import constant_field try: diff --git a/model/common/tests/io_tests/test_io.py b/model/common/tests/io_tests/test_io.py index c07dcf4f87..7a8e49cb84 100644 --- a/model/common/tests/io_tests/test_io.py +++ b/model/common/tests/io_tests/test_io.py @@ -29,6 +29,7 @@ to_delta, ) from icon4py.model.common.states import data +from icon4py.model.common.utils import fields as field_utils from icon4py.model.testing import datatest_utils, grid_utils, helpers @@ -46,11 +47,11 @@ def model_state(grid: base.BaseGrid) -> dict[str, xr.DataArray]: - rho = helpers.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) - exner = helpers.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) - theta_v = helpers.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) - w = helpers.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}, dtype=np.float32) - vn = helpers.random_field(grid, dims.EdgeDim, dims.KDim, dtype=np.float32) + rho = field_utils.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) + exner = field_utils.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) + theta_v = field_utils.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) + w = field_utils.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}, dtype=np.float32) + vn = field_utils.random_field(grid, dims.EdgeDim, dims.KDim, dtype=np.float32) return { "air_density": utils.to_data_array(rho, data.PROGNOSTIC_CF_ATTRIBUTES["air_density"]), "exner_function": utils.to_data_array( diff --git a/model/common/tests/math_tests/test_helpers.py b/model/common/tests/math_tests/test_helpers.py index 52f19edfdd..0a5f45c830 100644 --- a/model/common/tests/math_tests/test_helpers.py +++ b/model/common/tests/math_tests/test_helpers.py @@ -7,6 +7,7 @@ # SPDX-License-Identifier: BSD-3-Clause from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import fields as field_utils from icon4py.model.common.grid import simple from icon4py.model.common.math import helpers from icon4py.model.common.settings import xp @@ -15,15 +16,15 @@ def test_cross_product(backend): mesh = simple.SimpleGrid() - x1 = test_helpers.random_field(mesh, dims.EdgeDim) - y1 = test_helpers.random_field(mesh, dims.EdgeDim) - z1 = test_helpers.random_field(mesh, dims.EdgeDim) - x2 = test_helpers.random_field(mesh, dims.EdgeDim) - y2 = test_helpers.random_field(mesh, dims.EdgeDim) - z2 = test_helpers.random_field(mesh, dims.EdgeDim) - x = test_helpers.zero_field(mesh, dims.EdgeDim) - y = test_helpers.zero_field(mesh, dims.EdgeDim) - z = test_helpers.zero_field(mesh, dims.EdgeDim) + x1 = field_utils.random_field(mesh, dims.EdgeDim) + y1 = field_utils.random_field(mesh, dims.EdgeDim) + z1 = field_utils.random_field(mesh, dims.EdgeDim) + x2 = field_utils.random_field(mesh, dims.EdgeDim) + y2 = field_utils.random_field(mesh, dims.EdgeDim) + z2 = field_utils.random_field(mesh, dims.EdgeDim) + x = field_utils.zero_field(mesh, dims.EdgeDim) + y = field_utils.zero_field(mesh, dims.EdgeDim) + z = field_utils.zero_field(mesh, dims.EdgeDim) helpers.cross_product_on_edges.with_backend(backend)( x1, x2, y1, y2, z1, z2, out=(x, y, z), offset_provider={} diff --git a/model/common/tests/math_tests/test_smagorinsky.py b/model/common/tests/math_tests/test_smagorinsky.py index b1ac38f399..a796f156db 100644 --- a/model/common/tests/math_tests/test_smagorinsky.py +++ b/model/common/tests/math_tests/test_smagorinsky.py @@ -11,7 +11,7 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.math.smagorinsky import en_smag_fac_for_zero_nshift -from icon4py.model.testing.helpers import random_field, zero_field +from icon4py.model.common.utils import fields as field_utils from icon4py.model.testing.reference_funcs import ( enhanced_smagorinski_factor_numpy, ) @@ -21,8 +21,8 @@ def test_init_enh_smag_fac(backend, grid): if backend is None: pytest.skip("test does not run on embedded backend") - enh_smag_fac = zero_field(grid, dims.KDim) - a_vec = random_field(grid, dims.KDim, low=1.0, high=10.0, extend={dims.KDim: 1}) + enh_smag_fac = field_utils.zero_field(grid, dims.KDim) + a_vec = field_utils.random_field(grid, dims.KDim, low=1.0, high=10.0, extend={dims.KDim: 1}) fac = (0.67, 0.5, 1.3, 0.8) z = (0.1, 0.2, 0.3, 0.4) diff --git a/model/common/tests/metric_tests/test_compute_diffusion_metrics.py b/model/common/tests/metric_tests/test_compute_diffusion_metrics.py index eb2f92735c..7f596cd4c4 100644 --- a/model/common/tests/metric_tests/test_compute_diffusion_metrics.py +++ b/model/common/tests/metric_tests/test_compute_diffusion_metrics.py @@ -20,14 +20,13 @@ compute_weighted_cell_neighbor_sum, compute_z_mc, ) -from icon4py.model.testing import datatest_utils as dt_utils -from icon4py.model.testing.helpers import ( +from icon4py.model.common.utils.fields import ( constant_field, - dallclose, flatten_first_two_dims, - is_roundtrip, - zero_field, + zero_field ) +from icon4py.model.testing import datatest_utils as dt_utils +from icon4py.model.testing.helpers import dallclose, is_roundtrip # TODO (halungge) fails in embedded diff --git a/model/common/tests/metric_tests/test_compute_nudgecoeffs.py b/model/common/tests/metric_tests/test_compute_nudgecoeffs.py index 7b14f584bd..533ac1117b 100644 --- a/model/common/tests/metric_tests/test_compute_nudgecoeffs.py +++ b/model/common/tests/metric_tests/test_compute_nudgecoeffs.py @@ -23,7 +23,7 @@ processor_props, ranked_data_path, ) -from icon4py.model.testing.helpers import zero_field +from icon4py.model.common.utils.fields import zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/common/tests/metric_tests/test_compute_wgtfac_c.py b/model/common/tests/metric_tests/test_compute_wgtfac_c.py index a5daa371b0..9c3ba8335e 100644 --- a/model/common/tests/metric_tests/test_compute_wgtfac_c.py +++ b/model/common/tests/metric_tests/test_compute_wgtfac_c.py @@ -10,19 +10,18 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.metrics.compute_wgtfac_c import compute_wgtfac_c -from icon4py.model.testing import datatest_utils as dt_utils -from icon4py.model.testing.helpers import dallclose, zero_field from icon4py.model.common.type_alias import wpfloat from icon4py.model.common.utils import fields as field_utils - +from icon4py.model.testing import datatest_utils as dt_utils +from icon4py.model.testing.helpers import dallclose @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_wgtfac_c(icon_grid, metrics_savepoint): # fixture - wgtfac_c = zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=wpfloat, extend={dims.KDim: 1}) + wgtfac_c = field_utils(icon_grid, dims.CellDim, dims.KDim, dtype=wpfloat, extend={dims.KDim: 1}) wgtfac_c_ref = metrics_savepoint.wgtfac_c() z_ifc = metrics_savepoint.z_ifc() - k = field_alloc.allocate_indices(dims.KDim, grid=icon_grid, is_halfdim=True) + k = field_utils.allocate_indices(dims.KDim, grid=icon_grid, is_halfdim=True) vertical_end = icon_grid.num_levels diff --git a/model/common/tests/metric_tests/test_compute_zdiff_gradp_dsl.py b/model/common/tests/metric_tests/test_compute_zdiff_gradp_dsl.py index 2be2da2a27..6d17d4cb0c 100644 --- a/model/common/tests/metric_tests/test_compute_zdiff_gradp_dsl.py +++ b/model/common/tests/metric_tests/test_compute_zdiff_gradp_dsl.py @@ -20,11 +20,10 @@ _compute_z_aux2, compute_z_mc, ) +from icon4py.model.common.utils.fields import flatten_first_two_dims, zero_field from icon4py.model.testing.helpers import ( dallclose, - flatten_first_two_dims, is_roundtrip, - zero_field, ) diff --git a/model/common/tests/metric_tests/test_metric_fields.py b/model/common/tests/metric_tests/test_metric_fields.py index ca1a9c5d21..be40b8bc35 100644 --- a/model/common/tests/metric_tests/test_metric_fields.py +++ b/model/common/tests/metric_tests/test_metric_fields.py @@ -48,14 +48,12 @@ compute_z_mc, ) from icon4py.model.testing import datatest_utils as dt_utils +from icon4py.model.common.utils import fields as field_utils from icon4py.model.testing.helpers import ( StencilTest, - constant_field, dallclose, is_python, is_roundtrip, - random_field, - zero_field, ) @@ -80,8 +78,8 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - z_mc = zero_field(grid, dims.CellDim, dims.KDim) - z_if = random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + z_mc = field_utils.zero_field(grid, dims.CellDim, dims.KDim) + z_if = field_utils.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) horizontal_start = 0 horizontal_end = grid.num_cells vertical_start = 0 @@ -104,7 +102,7 @@ def test_compute_ddq_z_half(icon_grid, metrics_savepoint, backend): pytest.skip("skipping: unsupported backend") ddq_z_half_ref = metrics_savepoint.ddqz_z_half() z_ifc = metrics_savepoint.z_ifc() - z_mc = zero_field(icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + z_mc = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) nlevp1 = icon_grid.num_levels + 1 k_index = gtx.as_field((dims.KDim,), np.arange(nlevp1, dtype=gtx.int32)) compute_z_mc.with_backend(backend)( @@ -116,7 +114,7 @@ def test_compute_ddq_z_half(icon_grid, metrics_savepoint, backend): vertical_end=gtx.int32(icon_grid.num_levels), offset_provider={"Koff": icon_grid.get_offset_provider("Koff")}, ) - ddqz_z_half = zero_field(icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + ddqz_z_half = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) compute_ddqz_z_half.with_backend(backend=backend)( z_ifc=z_ifc, @@ -141,8 +139,8 @@ def test_compute_ddqz_z_full_and_inverse(icon_grid, metrics_savepoint, backend): pytest.skip("skipping: slow backend") z_ifc = metrics_savepoint.z_ifc() inv_ddqz_full_ref = metrics_savepoint.inv_ddqz_z_full() - ddqz_z_full = zero_field(icon_grid, dims.CellDim, dims.KDim) - inv_ddqz_z_full = zero_field(icon_grid, dims.CellDim, dims.KDim) + ddqz_z_full = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) + inv_ddqz_z_full = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) compute_ddqz_z_full_and_inverse.with_backend(backend)( z_ifc=z_ifc, @@ -163,7 +161,7 @@ def test_compute_ddqz_z_full_and_inverse(icon_grid, metrics_savepoint, backend): @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_scalfac_dd3d(icon_grid, metrics_savepoint, grid_savepoint, backend): scalfac_dd3d_ref = metrics_savepoint.scalfac_dd3d() - scalfac_dd3d_full = zero_field(icon_grid, dims.KDim) + scalfac_dd3d_full = field_utils.zero_field(icon_grid, dims.KDim) divdamp_trans_start = 12500.0 divdamp_trans_end = 17500.0 divdamp_type = 3 @@ -188,7 +186,7 @@ def test_compute_scalfac_dd3d(icon_grid, metrics_savepoint, grid_savepoint, back def test_compute_rayleigh_w(icon_grid, experiment, metrics_savepoint, grid_savepoint, backend): rayleigh_w_ref = metrics_savepoint.rayleigh_w() vct_a_1 = grid_savepoint.vct_a().asnumpy()[0] - rayleigh_w_full = zero_field(icon_grid, dims.KDim, extend={dims.KDim: 1}) + rayleigh_w_full = field_utils.zero_field(icon_grid, dims.KDim, extend={dims.KDim: 1}) rayleigh_type = 2 rayleigh_coeff = 0.1 if experiment == dt_utils.GLOBAL_EXPERIMENT else 5.0 damping_height = 50000.0 if experiment == dt_utils.GLOBAL_EXPERIMENT else 12500.0 @@ -218,8 +216,8 @@ def test_compute_coeff_dwdz(icon_grid, metrics_savepoint, grid_savepoint, backen coeff1_dwdz_ref = metrics_savepoint.coeff1_dwdz() coeff2_dwdz_ref = metrics_savepoint.coeff2_dwdz() - coeff1_dwdz_full = zero_field(icon_grid, dims.CellDim, dims.KDim) - coeff2_dwdz_full = zero_field(icon_grid, dims.CellDim, dims.KDim) + coeff1_dwdz_full = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) + coeff2_dwdz_full = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) ddqz_z_full = gtx.as_field( (dims.CellDim, dims.KDim), 1 / metrics_savepoint.inv_ddqz_z_full().asnumpy() ) @@ -247,7 +245,7 @@ def test_compute_d2dexdz2_fac_mc(icon_grid, metrics_savepoint, grid_savepoint, b if is_roundtrip(backend): pytest.skip("skipping: slow backend") z_ifc = metrics_savepoint.z_ifc() - z_mc = zero_field(icon_grid, dims.CellDim, dims.KDim) + z_mc = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) compute_z_mc.with_backend(backend)( z_ifc=z_ifc, z_mc=z_mc, @@ -261,8 +259,8 @@ def test_compute_d2dexdz2_fac_mc(icon_grid, metrics_savepoint, grid_savepoint, b d2dexdz2_fac1_mc_ref = metrics_savepoint.d2dexdz2_fac1_mc() d2dexdz2_fac2_mc_ref = metrics_savepoint.d2dexdz2_fac2_mc() - d2dexdz2_fac1_mc_full = zero_field(icon_grid, dims.CellDim, dims.KDim) - d2dexdz2_fac2_mc_full = zero_field(icon_grid, dims.CellDim, dims.KDim) + d2dexdz2_fac1_mc_full = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) + d2dexdz2_fac2_mc_full = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) cpd = constants.CPD grav = constants.GRAV del_t_bg = constants.DEL_T_BG @@ -315,7 +313,7 @@ def test_compute_ddxt_z_full_e( vertical_start = 0 vertical_end = icon_grid.num_levels + 1 cells_aw_verts = interpolation_savepoint.c_intp().asnumpy() - z_ifv = zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) + z_ifv = field_utils.zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) compute_cell_2_vertex_interpolation.with_backend(backend)( z_ifc, gtx.as_field((dims.VertexDim, dims.V2CDim), cells_aw_verts), @@ -326,7 +324,7 @@ def test_compute_ddxt_z_full_e( vertical_end=vertical_end, offset_provider={"V2C": icon_grid.get_offset_provider("V2C")}, ) - ddxt_z_half_e = zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + ddxt_z_half_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) compute_ddxt_z_half_e.with_backend(backend)( z_ifv=z_ifv, inv_primal_edge_length=inv_primal_edge_length, @@ -338,7 +336,7 @@ def test_compute_ddxt_z_full_e( vertical_end=vertical_end, offset_provider={"E2V": icon_grid.get_offset_provider("E2V")}, ) - ddxt_z_full = zero_field(icon_grid, dims.EdgeDim, dims.KDim) + ddxt_z_full = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) compute_ddxn_z_full.with_backend(backend)( z_ddxnt_z_half_e=ddxt_z_half_e, ddxn_z_full=ddxt_z_full, @@ -351,7 +349,7 @@ def test_compute_ddxt_z_full_e( @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_vwind_expl_wgt(icon_grid, metrics_savepoint, backend): - vwind_expl_wgt_full = zero_field(icon_grid, dims.CellDim) + vwind_expl_wgt_full = field_utils.zero_field(icon_grid, dims.CellDim) vwind_expl_wgt_ref = metrics_savepoint.vwind_expl_wgt() vwind_impl_wgt = metrics_savepoint.vwind_impl_wgt() @@ -380,7 +378,7 @@ def test_compute_ddqz_z_full_e( ddqz_z_full_e_ref = metrics_savepoint.ddqz_z_full_e().asnumpy() vertical_start = 0 vertical_end = icon_grid.num_levels - ddqz_z_full_e = zero_field(icon_grid, dims.EdgeDim, dims.KDim) + ddqz_z_full_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) cell_2_edge_interpolation.with_backend(backend)( in_field=ddqz_z_full, coeff=c_lin_e, @@ -408,7 +406,7 @@ def test_compute_ddxn_z_full( horizontal_end = icon_grid.end_index(edge_domain(horizontal.Zone.INTERIOR)) vertical_start = 0 vertical_end = icon_grid.num_levels + 1 - ddxn_z_half_e = zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + ddxn_z_half_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) compute_ddxn_z_half_e.with_backend(backend)( z_ifc=z_ifc, inv_dual_edge_length=inv_dual_edge_length, @@ -419,7 +417,7 @@ def test_compute_ddxn_z_full( vertical_end=vertical_end, offset_provider={"E2C": icon_grid.get_offset_provider("E2C")}, ) - ddxn_z_full = zero_field(icon_grid, dims.EdgeDim, dims.KDim) + ddxn_z_full = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) compute_ddxn_z_full.with_backend(backend)( z_ddxnt_z_half_e=ddxn_z_half_e, ddxn_z_full=ddxn_z_full, @@ -451,7 +449,7 @@ def test_compute_ddxt_z_full( vertical_start = 0 vertical_end = icon_grid.num_levels + 1 cells_aw_verts = interpolation_savepoint.c_intp().asnumpy() - z_ifv = zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) + z_ifv = field_utils.zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) compute_cell_2_vertex_interpolation( z_ifc, gtx.as_field((dims.VertexDim, dims.V2CDim), cells_aw_verts), @@ -462,7 +460,7 @@ def test_compute_ddxt_z_full( vertical_start=vertical_start, vertical_end=vertical_end, ) - ddxt_z_half_e = zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + ddxt_z_half_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) compute_ddxt_z_half_e.with_backend(backend)( z_ifv=z_ifv, inv_primal_edge_length=inv_primal_edge_length, @@ -474,7 +472,7 @@ def test_compute_ddxt_z_full( vertical_end=vertical_end, offset_provider={"E2V": icon_grid.get_offset_provider("E2V")}, ) - ddxt_z_full = zero_field(icon_grid, dims.EdgeDim, dims.KDim) + ddxt_z_full = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) compute_ddxn_z_full.with_backend(backend)( z_ddxnt_z_half_e=ddxt_z_half_e, ddxn_z_full=ddxt_z_full, @@ -525,11 +523,11 @@ def test_compute_vwind_impl_wgt( pytest.skip("skipping: slow backend") z_ifc = metrics_savepoint.z_ifc() inv_dual_edge_length = grid_savepoint.inv_dual_edge_length() - z_ddxn_z_half_e = zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + z_ddxn_z_half_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) tangent_orientation = grid_savepoint.tangent_orientation() inv_primal_edge_length = grid_savepoint.inverse_primal_edge_lengths() - z_ddxt_z_half_e = zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) - z_ifv = zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) + z_ddxt_z_half_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + z_ifv = field_utils.zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) horizontal_start = icon_grid.start_index(edge_domain(horizontal.Zone.LATERAL_BOUNDARY_LEVEL_2)) horizontal_end = icon_grid.end_index(edge_domain(horizontal.Zone.INTERIOR)) @@ -617,7 +615,7 @@ def test_compute_vwind_impl_wgt( def test_compute_wgtfac_e(metrics_savepoint, interpolation_savepoint, icon_grid, backend): if is_roundtrip(backend): pytest.skip("skipping: slow backend") - wgtfac_e = zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + wgtfac_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) wgtfac_e_ref = metrics_savepoint.wgtfac_e() compute_wgtfac_e.with_backend(backend)( wgtfac_c=metrics_savepoint.wgtfac_c(), @@ -642,13 +640,13 @@ def test_compute_pg_exdist_dsl( pg_exdist_ref = metrics_savepoint.pg_exdist() nlev = icon_grid.num_levels k_lev = gtx.as_field((dims.KDim,), np.arange(nlev, dtype=gtx.int32)) - pg_edgeidx = zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - pg_vertidx = zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - pg_exdist_dsl = zero_field(icon_grid, dims.EdgeDim, dims.KDim) - z_me = zero_field(icon_grid, dims.EdgeDim, dims.KDim) - z_aux2 = zero_field(icon_grid, dims.EdgeDim) - z_mc = zero_field(icon_grid, dims.CellDim, dims.KDim) - flat_idx = zero_field(icon_grid, dims.EdgeDim, dims.KDim) + pg_edgeidx = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + pg_vertidx = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + pg_exdist_dsl = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) + z_me = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) + z_aux2 = field_utils.zero_field(icon_grid, dims.EdgeDim) + z_mc = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) + flat_idx = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) z_ifc = metrics_savepoint.z_ifc() z_ifc_sliced = gtx.as_field((dims.CellDim,), z_ifc.asnumpy()[:, nlev]) start_edge_nudging = icon_grid.end_index(edge_domain(horizontal.Zone.NUDGING)) @@ -726,7 +724,7 @@ def test_compute_pg_exdist_dsl( }, ) - pg_edgeidx_dsl = zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=bool) + pg_edgeidx_dsl = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=bool) pg_edgeidx_dsl_ref = metrics_savepoint.pg_edgeidx_dsl() compute_pg_edgeidx_dsl.with_backend(backend)( @@ -747,7 +745,7 @@ def test_compute_pg_exdist_dsl( @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_mask_prog_halo_c(metrics_savepoint, icon_grid, grid_savepoint, backend): - mask_prog_halo_c_full = zero_field(icon_grid, dims.CellDim, dtype=bool) + mask_prog_halo_c_full = field_utils.zero_field(icon_grid, dims.CellDim, dtype=bool) c_refin_ctrl = grid_savepoint.refin_ctrl(dims.CellDim) mask_prog_halo_c_ref = metrics_savepoint.mask_prog_halo_c() horizontal_start = icon_grid.start_index(cell_domain(horizontal.Zone.HALO)) @@ -765,7 +763,7 @@ def test_compute_mask_prog_halo_c(metrics_savepoint, icon_grid, grid_savepoint, @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_bdy_halo_c(metrics_savepoint, icon_grid, grid_savepoint, backend): - bdy_halo_c_full = zero_field(icon_grid, dims.CellDim, dtype=bool) + bdy_halo_c_full = field_utils.zero_field(icon_grid, dims.CellDim, dtype=bool) c_refin_ctrl = grid_savepoint.refin_ctrl(dims.CellDim) bdy_halo_c_ref = metrics_savepoint.bdy_halo_c() horizontal_start = icon_grid.start_index(cell_domain(horizontal.Zone.HALO)) @@ -785,7 +783,7 @@ def test_compute_bdy_halo_c(metrics_savepoint, icon_grid, grid_savepoint, backen @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_hmask_dd3d(metrics_savepoint, icon_grid, grid_savepoint, backend): - hmask_dd3d_full = zero_field(icon_grid, dims.EdgeDim) + hmask_dd3d_full = field_utils.zero_field(icon_grid, dims.EdgeDim) e_refin_ctrl = grid_savepoint.refin_ctrl(dims.EdgeDim) horizontal_start = icon_grid.start_index(cell_domain(horizontal.Zone.LATERAL_BOUNDARY_LEVEL_2)) hmask_dd3d_ref = metrics_savepoint.hmask_dd3d() diff --git a/model/common/tests/metric_tests/test_metric_scalars.py b/model/common/tests/metric_tests/test_metric_scalars.py index 0a55fd40c0..7acfe0ae46 100644 --- a/model/common/tests/metric_tests/test_metric_scalars.py +++ b/model/common/tests/metric_tests/test_metric_scalars.py @@ -7,16 +7,16 @@ # SPDX-License-Identifier: BSD-3-Clause from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import fields as field_utils from icon4py.model.common.grid.simple import SimpleGrid from icon4py.model.common.metrics.metric_scalars import compute_kstart_dd3d -from icon4py.model.testing.helpers import random_field from icon4py.model.common.type_alias import wpfloat def test_compute_kstart_dd3d(): grid = SimpleGrid() - scalfac_dd3d_full = random_field(grid, dims.KDim, low=0.1, high=3.0, dtype=wpfloat).asnumpy() + scalfac_dd3d_full = field_utils.random_field(grid, dims.KDim, low=0.1, high=3.0, dtype=wpfloat).asnumpy() scalfac_dd3d_full[0:3] = 0.0 kstart_dd3d_ref = 3 diff --git a/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py b/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py index 81a4f99a40..0df163ce71 100644 --- a/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py +++ b/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py @@ -13,7 +13,8 @@ from icon4py.model.common.interpolation.stencils.mo_intp_rbf_rbf_vec_interpol_vertex import ( mo_intp_rbf_rbf_vec_interpol_vertex, ) -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils import fields as field_utils from icon4py.model.common.type_alias import wpfloat @@ -36,11 +37,11 @@ def reference( @pytest.fixture def input_data(self, grid): - p_e_in = random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) - ptr_coeff_1 = random_field(grid, dims.VertexDim, dims.V2EDim, dtype=wpfloat) - ptr_coeff_2 = random_field(grid, dims.VertexDim, dims.V2EDim, dtype=wpfloat) - p_v_out = zero_field(grid, dims.VertexDim, dims.KDim, dtype=wpfloat) - p_u_out = zero_field(grid, dims.VertexDim, dims.KDim, dtype=wpfloat) + p_e_in = field_utils.random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) + ptr_coeff_1 = field_utils.random_field(grid, dims.VertexDim, dims.V2EDim, dtype=wpfloat) + ptr_coeff_2 = field_utils.random_field(grid, dims.VertexDim, dims.V2EDim, dtype=wpfloat) + p_v_out = field_utils.zero_field(grid, dims.VertexDim, dims.KDim, dtype=wpfloat) + p_u_out = field_utils.zero_field(grid, dims.VertexDim, dims.KDim, dtype=wpfloat) return dict( p_e_in=p_e_in, diff --git a/model/testing/src/icon4py/model/testing/pytest_config.py b/model/testing/src/icon4py/model/testing/pytest_config.py index 7c62816866..7f07e7cd2b 100644 --- a/model/testing/src/icon4py/model/testing/pytest_config.py +++ b/model/testing/src/icon4py/model/testing/pytest_config.py @@ -7,6 +7,8 @@ # SPDX-License-Identifier: BSD-3-Clause import os +from collections.abc import Callable +from typing import Final import pytest from gt4py.next import gtfn_cpu, gtfn_gpu, itir_python @@ -18,15 +20,16 @@ ) -DEFAULT_BACKEND = "roundtrip" +DEFAULT_BACKEND: Final = "roundtrip" -backends = { +BACKENDS: dict[str, Callable] = { "embedded": None, "roundtrip": itir_python, "gtfn_cpu": gtfn_cpu, "gtfn_gpu": gtfn_gpu, } -gpu_backends = ["gtfn_gpu"] + +GPU_BACKENDS: list[str] =["gtfn_gpu"] try: from gt4py.next.program_processors.runners.dace import ( @@ -36,7 +39,7 @@ run_dace_gpu_noopt, ) - backends.update( + BACKENDS.update( { "dace_cpu": run_dace_cpu, "dace_gpu": run_dace_gpu, @@ -44,16 +47,16 @@ "dace_gpu_noopt": run_dace_gpu_noopt, } ) - gpu_backends.extend(["dace_gpu", "dace_gpu_noopt"]) + GPU_BACKENDS.extend(["dace_gpu", "dace_gpu_noopt"]) except ImportError: # dace module not installed, ignore dace backends pass -def check_backend_validity(backend_name: str) -> None: - if backend_name not in backends: - available_backends = ", ".join([f"'{k}'" for k in backends.keys()]) +def _check_backend_validity(backend_name: str) -> None: + if backend_name not in BACKENDS: + available_backends = ", ".join([f"'{k}'" for k in BACKENDS.keys()]) raise Exception( "Need to select a backend. Select from: [" + available_backends @@ -74,8 +77,8 @@ def pytest_configure(config): if config.getoption("--backend"): backend = config.getoption("--backend") - check_backend_validity(backend) - settings.backend = backends[backend] + _check_backend_validity(backend) + settings.backend = BACKENDS[backend] if config.getoption("--dace-orchestration"): settings.dace_orchestration = True @@ -142,14 +145,14 @@ def pytest_runtest_setup(item): def pytest_generate_tests(metafunc): - selected_backend = backends[DEFAULT_BACKEND] + selected_backend = BACKENDS[DEFAULT_BACKEND] # parametrise backend if "backend" in metafunc.fixturenames: backend_option = metafunc.config.getoption("backend") - check_backend_validity(backend_option) + _check_backend_validity(backend_option) - selected_backend = backends[backend_option] + selected_backend = BACKENDS[backend_option] metafunc.parametrize("backend", [selected_backend], ids=[f"backend={backend_option}"]) # parametrise grid diff --git a/noxfile.py b/noxfile.py index 4e2831c4e8..ba497e4354 100644 --- a/noxfile.py +++ b/noxfile.py @@ -6,68 +6,79 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause +from collections.abc import Sequence + import nox nox.options.default_venv_backend = "uv" -#nox.options.sessions = ["lint", "test"] +# nox.options.sessions = ["lint", "test"] -def session_install( - session: nox.Session, *, groups: tuple[str, ...]= (), requirements: tuple[tuple[str, ...], ...] = () +def install_session_venv( + session: nox.Session, + *args: str | Sequence[str], + extras: Sequence[str] = (), + groups: Sequence[str] = (), ) -> None: """Install session packages using uv.""" session.run_install( "uv", "sync", "--no-dev", + *(f"--extra={e}" for e in extras), *(f"--group={g}" for g in groups), env={"UV_PROJECT_ENVIRONMENT": session.virtualenv.location}, ) - for item in requirements: + for item in args: session.run_install( "uv", "pip", "install", - *item + *((item,) if isinstance(item, str) else item), + env={"UV_PROJECT_ENVIRONMENT": session.virtualenv.location}, ) @nox.session(python=["3.10", "3.11"]) def test_tools(session: nox.Session) -> None: - """Run the unit and regular tests for the integration tools.""" - session_install(session, groups=("test",)) - session.cd("tools") - session.run("pytest", "-sv", "-n", session.env.get("NUM_PROCESSES", "1"), *session.posargs) - - -# @nox.session(python=["3.10", "3.11"]) -# @nox.parametrize("package", ["atmosphere.dycore", "atmosphere.advection", "atmosphere.diffusion"]) -# def tests_model(session: nox.Session, package: str) -> None: -# """Run the unit and regular tests for the model.""" -# session_install(session, groups=("test",)) -# session.run( -# "pytest", "-v", "-m", "not slow_tests", "--cov", "--cov-append", "--benchmark-skip", "-n", session.env.get("NUM_PROCESSES", "1"), -# "atmosphere/diffusion/tests/diffusion_stencil_tests", *session.posargs -# ) -# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dcore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} -# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} - - - - + """Run tests for the integration tools.""" + install_session_venv(session, extras=["all"], groups=["test"]) + + with session.chdir("tools"): + session.run( + "pytest", + "-sv", + "-n", + session.env.get("NUM_PROCESSES", "auto"), + *session.posargs, + ) -# @nox.session(python=["3.10", "3.11"]) -# @nox.parametrize("package", ["atmosphere.dycore", "atmosphere.advection", "atmosphere.diffusion"]) -# def tests_model(session: nox.Session, package: str) -> None: -# """Run the unit and regular tests for the model.""" -# session_install(session, groups=("test",)) -# session.run( -# "pytest", "-v", "-m", "not slow_tests", "--cov", "--cov-append", "--benchmark-skip", "-n", session.env.get("NUM_PROCESSES", "1"), -# "atmosphere/diffusion/tests/diffusion_stencil_tests", *session.posargs -# ) -# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dcore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} -# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} +@nox.session(python=["3.10", "3.11"]) +@nox.parametrize("selection", ["regular_tests", "slow_tests"]) +def test_common(session: nox.Session, selection: str) -> None: + """Run tests for the common package of the icon4py model.""" + install_session_venv(session, extras=["all"], groups=["test"]) + + pytest_args = [] + match selection: + case "regular_tests": + pytest_args += ["-m", "not slow_tests"] + case "slow_tests": + pytest_args += ["-m", "slow_tests"] + case _: + assert False, "unreachable" + + with session.chdir("model/common"): + session.run( + "pytest", + "-sv", + "--benchmark-skip", + "-n", + session.env.get("NUM_PROCESSES", "auto"), + *pytest_args, + *session.posargs, + ) # [testenv:run_stencil_tests] @@ -86,5 +97,4 @@ def test_tools(session: nox.Session) -> None: # commands = # pytest -v -m "not slow_tests" --datatest {posargs} - # addopts = ["-p", "icon4py.model.testing.pytest_config"] diff --git a/tools/pyproject.toml b/tools/pyproject.toml index fd8a566254..579a92ded4 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -78,32 +78,31 @@ version = "{new_version}" [[tool.bumpversion.files]] filename = "src/icon4pytools/__init__.py" -# -- coverage -- -[tool.coverage] +# # -- coverage -- +# [tool.coverage] -[tool.coverage.html] -directory = 'tests/_reports/coverage_html' +# [tool.coverage.html] +# directory = 'tests/_reports/coverage_html' -[tool.coverage.paths] -source = ['src/icon4pytools/'] +# [tool.coverage.paths] +# source = ['src/icon4pytools/'] -[tool.coverage.report] -exclude_lines = [ - 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code - 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code - 'if 0:', # Don't complain if non-runnable code isn't run - 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run -] -ignore_errors = true +# [tool.coverage.report] +# exclude_lines = [ +# 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code +# 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code +# 'if 0:', # Don't complain if non-runnable code isn't run +# 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run +# ] +# ignore_errors = true -[tool.coverage.run] -branch = true -parallel = true -source_pkgs = ['icon4pytools'] +# [tool.coverage.run] +# branch = true +# parallel = true +# source_pkgs = ['icon4pytools'] # -- pytest -- [tool.pytest.ini_options] -addopts = ['-p icon4py.model.testing.pytest_config'] markers = [ "datatest: test depending on serialized data generated by a full model run", "slow_tests: mark test as slow", @@ -115,8 +114,8 @@ testpaths = 'tests' extend = "../pyproject.toml" [tool.ruff.lint.isort] -known-first-party = ['icon4pytools'] -known-third-party = ['gt4py', 'icon4py'] +known-first-party = ['icon4py', 'icon4pytools'] +known-third-party = ['gt4py'] # -- setuptools -- [tool.setuptools.package-data] diff --git a/tools/tests/conftest.py b/tools/tests/conftest.py index 5c78a44e35..bdc40af51e 100644 --- a/tools/tests/conftest.py +++ b/tools/tests/conftest.py @@ -7,11 +7,11 @@ # SPDX-License-Identifier: BSD-3-Clause import os -from importlib import reload -import icon4py.model.common.type_alias as type_alias +import click.testing as click_testing import pytest -from click.testing import CliRunner + +import icon4py.model.common.type_alias as type_alias from icon4py.model.testing.datatest_fixtures import ( # noqa F401 damping_height, data_provider, @@ -40,13 +40,47 @@ step_date_init, stretch_factor, ) +from icon4py.model.testing.pytest_config import * # noqa: F401 + +__all__ = [ + # local: + "cli", + "test_temp_dir", + # imported fixtures: + "damping_height", + "data_provider", + "download_ser_data", + "experiment", + "grid_savepoint", + "icon_grid", + "interpolation_savepoint", + "istep_exit", + "istep_init", + "jstep_exit", + "jstep_init", + "linit", + "lowest_layer_thickness", + "metrics_savepoint", + "model_top_height", + "ndyn_substeps", + "processor_props", + "ranked_data_path", + "savepoint_diffusion_exit", + "savepoint_diffusion_init", + "savepoint_nonhydro_exit", + "savepoint_nonhydro_init", + "savepoint_nonhydro_step_exit", + "step_date_exit", + "step_date_init", + "stretch_factor", +] @pytest.fixture def cli(): - yield CliRunner() + yield click_testing.CliRunner() os.environ["FLOAT_PRECISION"] = type_alias.DEFAULT_PRECISION - reload(type_alias) + type_alias.set_precision(type_alias.DEFAULT_PRECISION) @pytest.fixture From 6c486719b253f2b1427f1231b32a7101d293a10e Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Mon, 9 Dec 2024 16:08:08 +0100 Subject: [PATCH 19/83] Migrate all subpackages --- model/atmosphere/advection/.flake8 | 44 - .../advection/.pre-commit-config.yaml | 80 -- model/atmosphere/advection/LICENSE | 31 - model/atmosphere/advection/pyproject.toml | 200 ++-- .../atmosphere/advection/requirements-dev.txt | 3 - model/atmosphere/advection/requirements.txt | 3 - model/atmosphere/diffusion/.bumpversion.cfg | 10 - model/atmosphere/diffusion/.flake8 | 44 - .../diffusion/.pre-commit-config.yaml | 80 -- model/atmosphere/diffusion/pyproject.toml | 196 ++-- .../atmosphere/diffusion/requirements-dev.txt | 3 - model/atmosphere/diffusion/requirements.txt | 3 - model/atmosphere/dycore/.bumpversion.cfg | 10 - model/atmosphere/dycore/.flake8 | 44 - .../atmosphere/dycore/.pre-commit-config.yaml | 80 -- model/atmosphere/dycore/LICENSE | 31 - model/atmosphere/dycore/pyproject.toml | 200 ++-- model/atmosphere/dycore/requirements-dev.txt | 3 - model/atmosphere/dycore/requirements.txt | 3 - .../microphysics/.bumpversion.cfg | 10 - .../microphysics/.flake8 | 44 - .../microphysics/.pre-commit-config.yaml | 80 -- .../microphysics/LICENSE | 31 - .../microphysics/pyproject.toml | 197 ++-- .../microphysics/requirements-dev.txt | 3 - .../microphysics/requirements.txt | 3 - model/common/pyproject.toml | 7 +- model/driver/.bumpversion.cfg | 10 - model/driver/.pre-commit-config.yaml | 80 -- model/driver/pyproject.toml | 205 ++-- model/driver/requirements-dev.txt | 5 - model/driver/requirements.txt | 5 - .../model/driver/initialization_utils.py | 1 + model/testing/pyproject.toml | 4 +- noxfile.py | 46 +- pyproject.toml | 5 +- uv.lock | 928 +++++++++++++++++- 37 files changed, 1360 insertions(+), 1372 deletions(-) delete mode 100644 model/atmosphere/advection/.flake8 delete mode 100644 model/atmosphere/advection/.pre-commit-config.yaml delete mode 100644 model/atmosphere/advection/LICENSE delete mode 100644 model/atmosphere/advection/requirements-dev.txt delete mode 100644 model/atmosphere/advection/requirements.txt delete mode 100644 model/atmosphere/diffusion/.bumpversion.cfg delete mode 100644 model/atmosphere/diffusion/.flake8 delete mode 100644 model/atmosphere/diffusion/.pre-commit-config.yaml delete mode 100644 model/atmosphere/diffusion/requirements-dev.txt delete mode 100644 model/atmosphere/diffusion/requirements.txt delete mode 100644 model/atmosphere/dycore/.bumpversion.cfg delete mode 100644 model/atmosphere/dycore/.flake8 delete mode 100644 model/atmosphere/dycore/.pre-commit-config.yaml delete mode 100644 model/atmosphere/dycore/LICENSE delete mode 100644 model/atmosphere/dycore/requirements-dev.txt delete mode 100644 model/atmosphere/dycore/requirements.txt delete mode 100644 model/atmosphere/subgrid_scale_physics/microphysics/.bumpversion.cfg delete mode 100644 model/atmosphere/subgrid_scale_physics/microphysics/.flake8 delete mode 100644 model/atmosphere/subgrid_scale_physics/microphysics/.pre-commit-config.yaml delete mode 100644 model/atmosphere/subgrid_scale_physics/microphysics/LICENSE delete mode 100644 model/atmosphere/subgrid_scale_physics/microphysics/requirements-dev.txt delete mode 100644 model/atmosphere/subgrid_scale_physics/microphysics/requirements.txt delete mode 100644 model/driver/.bumpversion.cfg delete mode 100644 model/driver/.pre-commit-config.yaml delete mode 100644 model/driver/requirements-dev.txt delete mode 100644 model/driver/requirements.txt diff --git a/model/atmosphere/advection/.flake8 b/model/atmosphere/advection/.flake8 deleted file mode 100644 index 44124e1dd6..0000000000 --- a/model/atmosphere/advection/.flake8 +++ /dev/null @@ -1,44 +0,0 @@ -[flake8] -# Some sane defaults for the code style checker flake8 -max-line-length = 100 -max-complexity = 15 -doctests = true -extend-ignore = - # Do not perform function calls in argument defaults - B008, - # Public code object needs docstring - D1, - # Disable dargling errors by default - DAR, - # Whitespace before ':' (black formatter breaks this sometimes) - E203, - # Line too long (using Bugbear's B950 warning) - E501, - # Line break occurred before a binary operator - W503, - # import statement "abs" is shadowing a Python builtin - A004 - -exclude = - .eggs, - .gt_cache, - .ipynb_checkpoints, - .tox, - _local_, - build, - dist, - docs, - _external_src, - tests/_disabled, - setup.py - -rst-roles = - py:mod, mod, - py:func, func, - py:data, data, - py:const, const, - py:class, class, - py:meth, meth, - py:attr, attr, - py:exc, exc, - py:obj, obj, diff --git a/model/atmosphere/advection/.pre-commit-config.yaml b/model/atmosphere/advection/.pre-commit-config.yaml deleted file mode 100644 index e7b4593506..0000000000 --- a/model/atmosphere/advection/.pre-commit-config.yaml +++ /dev/null @@ -1,80 +0,0 @@ -# NOTE: pre-commit runs all hooks from the root folder of the repository, -# as regular git hooks do. Therefore, paths passed as arguments to the plugins -# should always be relative to the root folder. - -default_stages: [commit, push] -default_language_version: - python: python3.10 -minimum_pre_commit_version: 3.8.0 -files: "model/atmosphere/advection/.*" - -repos: -- repo: meta - hooks: - - id: check-hooks-apply - stages: [manual] - - id: check-useless-excludes - stages: [manual] - -- repo: https://github.com/asottile/setup-cfg-fmt - rev: v1.20.1 - hooks: - # Run only manually because it deletes comments - - id: setup-cfg-fmt - name: format setup.cfg - stages: [manual] - -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 - hooks: - - id: check-case-conflict - - id: check-merge-conflict - - id: check-shebang-scripts-are-executable - - id: check-symlinks - - id: check-yaml - - id: debug-statements - - id: destroyed-symlinks - -- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks - rev: v2.6.0 - hooks: - - id: pretty-format-ini - args: [--autofix] - - id: pretty-format-toml - args: [--autofix] - - id: pretty-format-yaml - args: [--autofix, --preserve-quotes, --indent, "2"] - -- repo: https://github.com/pre-commit/mirrors-prettier - rev: v3.0.0-alpha.4 - hooks: - - id: prettier - types_or: [markdown, json] - -- repo: https://github.com/Lucas-C/pre-commit-hooks - rev: v1.5.5 - hooks: - - id: insert-license - name: add license for all ICON4Py Python source files - types: [python] - args: [--comment-style, "|#|", --license-filepath, model/.license_header.txt, --fuzzy-match-generates-todo] - -- repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.2.2 - hooks: - - id: ruff - args: [--fix] - - id: ruff-format - -- repo: local - hooks: - - id: mypy - name: mypy static type checker - entry: bash -c 'echo mypy temporarily disabled' - #entry: bash -c 'cd model/atmosphere/dycore; mypy src/' -- - language: system - types_or: [python, pyi] - always_run: true - #pass_filenames: false - require_serial: true - stages: [commit] diff --git a/model/atmosphere/advection/LICENSE b/model/atmosphere/advection/LICENSE deleted file mode 100644 index 61241df23f..0000000000 --- a/model/atmosphere/advection/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ - ICON4Py - ICON inspired code in Python and GT4Py - - Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/model/atmosphere/advection/pyproject.toml b/model/atmosphere/advection/pyproject.toml index 737b0d853b..da865c37d8 100644 --- a/model/atmosphere/advection/pyproject.toml +++ b/model/atmosphere/advection/pyproject.toml @@ -3,137 +3,107 @@ build-backend = "setuptools.build_meta" requires = ["setuptools>=61.0", "wheel>=0.40.0"] [project] -authors = [ - {email = "gridtools@cscs.ch"}, - {name = "ETH Zurich"} -] +authors = [{email = "gridtools@cscs.ch"}, {name = "ETH Zurich"}] classifiers = [ - "Development Status :: 3 - Alpha", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: BSD License", - "Operating System :: POSIX", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: Implementation :: CPython", - "Topic :: Scientific/Engineering :: Atmospheric Science", - "Topic :: Scientific/Engineering :: Mathematics", - "Topic :: Scientific/Engineering :: Physics" + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: BSD License', + 'Operating System :: POSIX', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3 :: Only', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: Implementation :: CPython', + 'Topic :: Scientific/Engineering :: Atmospheric Science', + 'Topic :: Scientific/Engineering :: Mathematics', + 'Topic :: Scientific/Engineering :: Physics' ] dependencies = [ + # workspace members + "icon4py-common>=0.0.6", + # external dependencies "gt4py>=1.0.4", - "icon4py-common>=0.0.5" + 'packaging>=20.0', ] description = "ICON advection." -dynamic = ['version'] -license = {file = "LICENSE"} +license = {text = "BSD-3 License"} name = "icon4py-atmosphere-advection" readme = "README.md" requires-python = ">=3.10" +# bump-my-version marker: +version = "0.0.6" [project.urls] -repository = "https://github.com/C2SM/icon4py" - -[tool.coverage] - -[tool.coverage.html] -directory = 'tests/_reports/coverage_html' - -[tool.coverage.paths] -source = ['src/icon4py/model/'] - -[tool.coverage.report] -exclude_lines = [ - 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code - 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code - 'if 0:', # Don't complain if non-runnable code isn't run - 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run -] -ignore_errors = true - -[tool.coverage.run] -branch = true -parallel = true -source_pkgs = ['advection'] - -[tool.mypy] -disallow_incomplete_defs = true -disallow_untyped_defs = true -exclude = [ - '^tests/*.py' -] -ignore_missing_imports = false -implicit_reexport = true -install_types = true -non_interactive = true -show_column_numbers = true -show_error_codes = true -warn_redundant_casts = true -warn_unused_configs = true -warn_unused_ignores = true - -[tool.pytest] - +Homepage = "https://github.com/C2SM/icon4py" + +# -- bumpversion -- +[tool.bumpversion] +allow_dirty = false +commit = false +current_version = "0.0.6" +ignore_missing_version = false +message = 'Bump icon4py-atmosphere-advection version: {current_version} → {new_version}' +parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" +serialize = ["{major}.{minor}.{patch}"] +tag = false + +[[tool.bumpversion.files]] +filename = "pyproject.toml" +search = ''' +# bump-my-version marker: +version = "{current_version}" +''' +replace = ''' +# bump-my-version marker: +version = "{new_version}" +''' + +[[tool.bumpversion.files]] +filename = "src/icon4py/model/atmosphere/advection/__init__.py" + +# # -- coverage -- +# [tool.coverage] + +# [tool.coverage.html] +# directory = 'tests/_reports/coverage_html' + +# [tool.coverage.paths] +# source = ['src/icon4py/model/'] + +# [tool.coverage.report] +# exclude_lines = [ +# 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code +# 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code +# 'if 0:', # Don't complain if non-runnable code isn't run +# 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run +# ] +# ignore_errors = true + +# [tool.coverage.run] +# branch = true +# parallel = true +# source_pkgs = ['driver'] + +# -- pytest -- [tool.pytest.ini_options] -addopts = ['-p icon4py.model.testing.pytest_config'] +markers = [ + "datatest: test depending on serialized data generated by a full model run", + "slow_tests: mark test as slow", +] testpaths = 'tests' +# --ruff -- [tool.ruff] -extend-exclude = [ - '.eggs', - '.gt_cache', - '.ipynb_checkpoints', - '.tox', - '_local_', - 'build', - 'dist', - 'docs', - '_external_src', - 'tests/_disabled', - 'setup.py' -] -indent-width = 4 -line-length = 100 -respect-gitignore = true -show-fixes = true -# Assume Python 3.10 -target-version = "py310" - -[tool.ruff.format] -docstring-code-format = true - -[tool.ruff.lint] -extend-select = ['E', 'F', 'I', 'B', 'A', 'T10', 'ERA', 'NPY', 'RUF'] -# # Rules sets: -# E: pycodestyle -# F: Pyflakes -# I: isort -# B: flake8-bugbear -# A: flake8-builtins -# T10: flake8-debugger -# ERA: eradicate -# NPY: NumPy-specific rules -# RUF: Ruff-specific rules -ignore = [ - 'E501', # Line too long (using Bugbear's B950 warning) - 'RUF009' # Do not perform function call in dataclass defaults -] +extend = "../../../pyproject.toml" [tool.ruff.lint.isort] -combine-as-imports = true -known-first-party = ['icon4py.model'] -known-third-party = [ - 'gt4py', - 'icon4pytools' -] -lines-after-imports = 2 - -[tool.ruff.lint.mccabe] -max-complexity = 15 - -[tool.setuptools.dynamic] -version = {attr = 'icon4py.model.atmosphere.advection.__init__.__version__'} +known-first-party = ['icon4py'] +known-third-party = ['gt4py'] +# -- setuptools -- [tool.setuptools.package-data] -'icon4py.model.atmosphere.advection' = ['py.typed'] +'*' = ['*.in', '*.md', '*.rst', '*.txt', 'LICENSE', 'py.typed'] + +[tool.setuptools.packages] +find = {namespaces = true, where = ['src']} diff --git a/model/atmosphere/advection/requirements-dev.txt b/model/atmosphere/advection/requirements-dev.txt deleted file mode 100644 index 32d385e08d..0000000000 --- a/model/atmosphere/advection/requirements-dev.txt +++ /dev/null @@ -1,3 +0,0 @@ --r ../../../base-requirements-dev.txt --e ../../common --e . diff --git a/model/atmosphere/advection/requirements.txt b/model/atmosphere/advection/requirements.txt deleted file mode 100644 index 79787ec137..0000000000 --- a/model/atmosphere/advection/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ --r ../../../base-requirements.txt -../../common -. diff --git a/model/atmosphere/diffusion/.bumpversion.cfg b/model/atmosphere/diffusion/.bumpversion.cfg deleted file mode 100644 index ef8bea214e..0000000000 --- a/model/atmosphere/diffusion/.bumpversion.cfg +++ /dev/null @@ -1,10 +0,0 @@ -[bumpversion] -current_version = 0.0.6 -parse = (?P\d+)\.(?P\d+)(\.(?P\d+))? -serialize = - {major}.{minor}.{patch} - -[bumpversion:file:src/icon4py/model/atmosphere/diffusion/__init__.py] -parse = \"(?P\d+)\.(?P\d+)(\.(?P\d+))?\" -serialize = - {major}.{minor}.{patch} diff --git a/model/atmosphere/diffusion/.flake8 b/model/atmosphere/diffusion/.flake8 deleted file mode 100644 index 44124e1dd6..0000000000 --- a/model/atmosphere/diffusion/.flake8 +++ /dev/null @@ -1,44 +0,0 @@ -[flake8] -# Some sane defaults for the code style checker flake8 -max-line-length = 100 -max-complexity = 15 -doctests = true -extend-ignore = - # Do not perform function calls in argument defaults - B008, - # Public code object needs docstring - D1, - # Disable dargling errors by default - DAR, - # Whitespace before ':' (black formatter breaks this sometimes) - E203, - # Line too long (using Bugbear's B950 warning) - E501, - # Line break occurred before a binary operator - W503, - # import statement "abs" is shadowing a Python builtin - A004 - -exclude = - .eggs, - .gt_cache, - .ipynb_checkpoints, - .tox, - _local_, - build, - dist, - docs, - _external_src, - tests/_disabled, - setup.py - -rst-roles = - py:mod, mod, - py:func, func, - py:data, data, - py:const, const, - py:class, class, - py:meth, meth, - py:attr, attr, - py:exc, exc, - py:obj, obj, diff --git a/model/atmosphere/diffusion/.pre-commit-config.yaml b/model/atmosphere/diffusion/.pre-commit-config.yaml deleted file mode 100644 index 20b26dc795..0000000000 --- a/model/atmosphere/diffusion/.pre-commit-config.yaml +++ /dev/null @@ -1,80 +0,0 @@ -# NOTE: pre-commit runs all hooks from the root folder of the repository, -# as regular git hooks do. Therefore, paths passed as arguments to the plugins -# should always be relative to the root folder. - -default_stages: [commit, push] -default_language_version: - python: python3.10 -minimum_pre_commit_version: 3.8.0 -files: "model/atmosphere/diffusion/.*" - -repos: -- repo: meta - hooks: - - id: check-hooks-apply - stages: [manual] - - id: check-useless-excludes - stages: [manual] - -- repo: https://github.com/asottile/setup-cfg-fmt - rev: v1.20.1 - hooks: - # Run only manually because it deletes comments - - id: setup-cfg-fmt - name: format setup.cfg - stages: [manual] - -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 - hooks: - - id: check-case-conflict - - id: check-merge-conflict - - id: check-shebang-scripts-are-executable - - id: check-symlinks - - id: check-yaml - - id: debug-statements - - id: destroyed-symlinks - -- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks - rev: v2.6.0 - hooks: - - id: pretty-format-ini - args: [--autofix] - - id: pretty-format-toml - args: [--autofix] - - id: pretty-format-yaml - args: [--autofix, --preserve-quotes, --indent, "2"] - -- repo: https://github.com/pre-commit/mirrors-prettier - rev: v3.0.0-alpha.4 - hooks: - - id: prettier - types_or: [markdown, json] - -- repo: https://github.com/Lucas-C/pre-commit-hooks - rev: v1.5.5 - hooks: - - id: insert-license - name: add license for all ICON4Py Python source files - types: [python] - args: [--comment-style, "|#|", --license-filepath, model/.license_header.txt, --fuzzy-match-generates-todo] - -- repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.2.2 - hooks: - - id: ruff - args: [--fix] - - id: ruff-format - -- repo: local - hooks: - - id: mypy - name: mypy static type checker - entry: bash -c 'echo mypy temporarily disabled' - #entry: bash -c 'cd model/atmosphere/dycore; mypy src/' -- - language: system - types_or: [python, pyi] - always_run: true - #pass_filenames: false - require_serial: true - stages: [commit] diff --git a/model/atmosphere/diffusion/pyproject.toml b/model/atmosphere/diffusion/pyproject.toml index 90d3f73a94..ae2a4a652c 100644 --- a/model/atmosphere/diffusion/pyproject.toml +++ b/model/atmosphere/diffusion/pyproject.toml @@ -3,137 +3,103 @@ build-backend = "setuptools.build_meta" requires = ["setuptools>=61.0", "wheel>=0.40.0"] [project] -authors = [ - {email = "gridtools@cscs.ch"}, - {name = "ETH Zurich"} -] +authors = [{email = "gridtools@cscs.ch"}, {name = "ETH Zurich"}] classifiers = [ - "Development Status :: 3 - Alpha", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: BSD License", - "Operating System :: POSIX", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: Implementation :: CPython", - "Topic :: Scientific/Engineering :: Atmospheric Science", - "Topic :: Scientific/Engineering :: Mathematics", - "Topic :: Scientific/Engineering :: Physics" + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: BSD License', + 'Operating System :: POSIX', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3 :: Only', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: Implementation :: CPython', + 'Topic :: Scientific/Engineering :: Atmospheric Science', + 'Topic :: Scientific/Engineering :: Mathematics', + 'Topic :: Scientific/Engineering :: Physics' ] dependencies = [ + # workspace members + "icon4py-common>=0.0.6", + # external dependencies "gt4py>=1.0.4", - "icon4py-common>=0.0.5" + 'packaging>=20.0', ] description = "ICON diffusion." -dynamic = ['version'] -license = {file = "LICENSE"} +license = {text = "BSD-3 License"} name = "icon4py-atmosphere-diffusion" readme = "README.md" requires-python = ">=3.10" +# bump-my-version marker: +version = "0.0.6" [project.urls] -repository = "https://github.com/C2SM/icon4py" - -[tool.coverage] - -[tool.coverage.html] -directory = 'tests/_reports/coverage_html' - -[tool.coverage.paths] -source = ['src/icon4py/model/'] - -[tool.coverage.report] -exclude_lines = [ - 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code - 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code - 'if 0:', # Don't complain if non-runnable code isn't run - 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run -] -ignore_errors = true - -[tool.coverage.run] -branch = true -parallel = true -source_pkgs = ['diffusion'] - -[tool.mypy] -disallow_incomplete_defs = true -disallow_untyped_defs = true -exclude = [ - '^tests/*.py' -] -ignore_missing_imports = false -implicit_reexport = true -install_types = true -non_interactive = true -show_column_numbers = true -show_error_codes = true -warn_redundant_casts = true -warn_unused_configs = true -warn_unused_ignores = true - -[tool.pytest] - +Homepage = "https://github.com/C2SM/icon4py" + +# -- bumpversion -- +[tool.bumpversion] +allow_dirty = false +commit = false +current_version = "0.0.6" +ignore_missing_version = false +message = 'Bump icon4py-atmosphere-diffusion version: {current_version} → {new_version}' +parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" +serialize = ["{major}.{minor}.{patch}"] +tag = false + +[[tool.bumpversion.files]] +filename = "pyproject.toml" +search = ''' +# bump-my-version marker: +version = "{current_version}" +''' +replace = ''' +# bump-my-version marker: +version = "{new_version}" +''' + +[[tool.bumpversion.files]] +filename = "src/icon4py/model/atmosphere/diffusion/__init__.py" + +# # -- coverage -- +# [tool.coverage] + +# [tool.coverage.html] +# directory = 'tests/_reports/coverage_html' + +# [tool.coverage.paths] +# source = ['src/icon4py/model/'] + +# [tool.coverage.report] +# exclude_lines = [ +# 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code +# 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code +# 'if 0:', # Don't complain if non-runnable code isn't run +# 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run +# ] +# ignore_errors = true + +# [tool.coverage.run] +# branch = true +# parallel = true +# source_pkgs = ['driver'] + +# -- pytest -- [tool.pytest.ini_options] -addopts = ['-p icon4py.model.testing.pytest_config'] testpaths = 'tests' +# --ruff -- [tool.ruff] -extend-exclude = [ - '.eggs', - '.gt_cache', - '.ipynb_checkpoints', - '.tox', - '_local_', - 'build', - 'dist', - 'docs', - '_external_src', - 'tests/_disabled', - 'setup.py' -] -indent-width = 4 -line-length = 100 -respect-gitignore = true -show-fixes = true -# Assume Python 3.10 -target-version = "py310" - -[tool.ruff.format] -docstring-code-format = true - -[tool.ruff.lint] -extend-select = ['E', 'F', 'I', 'B', 'A', 'T10', 'ERA', 'NPY', 'RUF'] -# # Rules sets: -# E: pycodestyle -# F: Pyflakes -# I: isort -# B: flake8-bugbear -# A: flake8-builtins -# T10: flake8-debugger -# ERA: eradicate -# NPY: NumPy-specific rules -# RUF: Ruff-specific rules -ignore = [ - 'E501', # Line too long (using Bugbear's B950 warning) - 'RUF009' # Do not perform function call in dataclass defaults -] +extend = "../../../pyproject.toml" [tool.ruff.lint.isort] -combine-as-imports = true -known-first-party = ['icon4py.model'] -known-third-party = [ - 'gt4py', - 'icon4pytools' -] -lines-after-imports = 2 - -[tool.ruff.lint.mccabe] -max-complexity = 15 - -[tool.setuptools.dynamic] -version = {attr = 'icon4py.model.atmosphere.diffusion.__init__.__version__'} +known-first-party = ['icon4py'] +known-third-party = ['gt4py'] +# -- setuptools -- [tool.setuptools.package-data] -'icon4py.model.atmosphere.diffusion' = ['py.typed'] +'*' = ['*.in', '*.md', '*.rst', '*.txt', 'LICENSE', 'py.typed'] + +[tool.setuptools.packages] +find = {namespaces = true, where = ['src']} \ No newline at end of file diff --git a/model/atmosphere/diffusion/requirements-dev.txt b/model/atmosphere/diffusion/requirements-dev.txt deleted file mode 100644 index 32d385e08d..0000000000 --- a/model/atmosphere/diffusion/requirements-dev.txt +++ /dev/null @@ -1,3 +0,0 @@ --r ../../../base-requirements-dev.txt --e ../../common --e . diff --git a/model/atmosphere/diffusion/requirements.txt b/model/atmosphere/diffusion/requirements.txt deleted file mode 100644 index 79787ec137..0000000000 --- a/model/atmosphere/diffusion/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ --r ../../../base-requirements.txt -../../common -. diff --git a/model/atmosphere/dycore/.bumpversion.cfg b/model/atmosphere/dycore/.bumpversion.cfg deleted file mode 100644 index 1cad57c0b4..0000000000 --- a/model/atmosphere/dycore/.bumpversion.cfg +++ /dev/null @@ -1,10 +0,0 @@ -[bumpversion] -current_version = 0.0.6 -parse = (?P\d+)\.(?P\d+)(\.(?P\d+))? -serialize = - {major}.{minor}.{patch} - -[bumpversion:file:src/icon4py/model/atmosphere/dycore/__init__.py] -parse = \"(?P\d+)\.(?P\d+)(\.(?P\d+))?\" -serialize = - {major}.{minor}.{patch} diff --git a/model/atmosphere/dycore/.flake8 b/model/atmosphere/dycore/.flake8 deleted file mode 100644 index 44124e1dd6..0000000000 --- a/model/atmosphere/dycore/.flake8 +++ /dev/null @@ -1,44 +0,0 @@ -[flake8] -# Some sane defaults for the code style checker flake8 -max-line-length = 100 -max-complexity = 15 -doctests = true -extend-ignore = - # Do not perform function calls in argument defaults - B008, - # Public code object needs docstring - D1, - # Disable dargling errors by default - DAR, - # Whitespace before ':' (black formatter breaks this sometimes) - E203, - # Line too long (using Bugbear's B950 warning) - E501, - # Line break occurred before a binary operator - W503, - # import statement "abs" is shadowing a Python builtin - A004 - -exclude = - .eggs, - .gt_cache, - .ipynb_checkpoints, - .tox, - _local_, - build, - dist, - docs, - _external_src, - tests/_disabled, - setup.py - -rst-roles = - py:mod, mod, - py:func, func, - py:data, data, - py:const, const, - py:class, class, - py:meth, meth, - py:attr, attr, - py:exc, exc, - py:obj, obj, diff --git a/model/atmosphere/dycore/.pre-commit-config.yaml b/model/atmosphere/dycore/.pre-commit-config.yaml deleted file mode 100644 index e3f2a72122..0000000000 --- a/model/atmosphere/dycore/.pre-commit-config.yaml +++ /dev/null @@ -1,80 +0,0 @@ -# NOTE: pre-commit runs all hooks from the root folder of the repository, -# as regular git hooks do. Therefore, paths passed as arguments to the plugins -# should always be relative to the root folder. - -default_stages: [commit, push] -default_language_version: - python: python3.10 -minimum_pre_commit_version: 3.8.0 -files: "model/atmosphere/dycore/.*" - -repos: -- repo: meta - hooks: - - id: check-hooks-apply - stages: [manual] - - id: check-useless-excludes - stages: [manual] - -- repo: https://github.com/asottile/setup-cfg-fmt - rev: v1.20.1 - hooks: - # Run only manually because it deletes comments - - id: setup-cfg-fmt - name: format setup.cfg - stages: [manual] - -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 - hooks: - - id: check-case-conflict - - id: check-merge-conflict - - id: check-shebang-scripts-are-executable - - id: check-symlinks - - id: check-yaml - - id: debug-statements - - id: destroyed-symlinks - -- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks - rev: v2.6.0 - hooks: - - id: pretty-format-ini - args: [--autofix] - - id: pretty-format-toml - args: [--autofix] - - id: pretty-format-yaml - args: [--autofix, --preserve-quotes, --indent, "2"] - -- repo: https://github.com/pre-commit/mirrors-prettier - rev: v3.0.0-alpha.4 - hooks: - - id: prettier - types_or: [markdown, json] - -- repo: https://github.com/Lucas-C/pre-commit-hooks - rev: v1.5.5 - hooks: - - id: insert-license - name: add license for all ICON4Py Python source files - types: [python] - args: [--comment-style, "|#|", --license-filepath, model/.license_header.txt, --fuzzy-match-generates-todo] - -- repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.2.2 - hooks: - - id: ruff - args: [--fix] - - id: ruff-format - -- repo: local - hooks: - - id: mypy - name: mypy static type checker - entry: bash -c 'echo mypy temporarily disabled' - #entry: bash -c 'cd model/atmosphere/dycore; mypy src/' -- - language: system - types_or: [python, pyi] - always_run: true - #pass_filenames: false - require_serial: true - stages: [commit] diff --git a/model/atmosphere/dycore/LICENSE b/model/atmosphere/dycore/LICENSE deleted file mode 100644 index 61241df23f..0000000000 --- a/model/atmosphere/dycore/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ - ICON4Py - ICON inspired code in Python and GT4Py - - Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/model/atmosphere/dycore/pyproject.toml b/model/atmosphere/dycore/pyproject.toml index 08dd06e0fa..befe86d0fe 100644 --- a/model/atmosphere/dycore/pyproject.toml +++ b/model/atmosphere/dycore/pyproject.toml @@ -3,136 +3,108 @@ build-backend = "setuptools.build_meta" requires = ["setuptools>=61.0", "wheel>=0.40.0"] [project] -authors = [ - {email = "gridtools@cscs.ch"}, - {name = "ETH Zurich"} -] +authors = [{email = "gridtools@cscs.ch"}, {name = "ETH Zurich"}] classifiers = [ - "Development Status :: 3 - Alpha", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: BSD License", - "Operating System :: POSIX", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: Implementation :: CPython", - "Topic :: Scientific/Engineering :: Atmospheric Science", - "Topic :: Scientific/Engineering :: Mathematics", - "Topic :: Scientific/Engineering :: Physics" + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: BSD License', + 'Operating System :: POSIX', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3 :: Only', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: Implementation :: CPython', + 'Topic :: Scientific/Engineering :: Atmospheric Science', + 'Topic :: Scientific/Engineering :: Mathematics', + 'Topic :: Scientific/Engineering :: Physics' ] dependencies = [ + # workspace members + "icon4py-common>=0.0.6", + # external dependencies "gt4py>=1.0.4", - "icon4py-common>=0.0.5" + 'packaging>=20.0', ] description = "ICON dynamical core." -dynamic = ['version'] -license = {file = "LICENSE"} +license = {text = "BSD-3 License"} name = "icon4py-atmosphere-dycore" readme = "README.md" requires-python = ">=3.10" +# bump-my-version marker: +version = "0.0.6" [project.urls] -repository = "https://github.com/C2SM/icon4py" - -[tool.coverage] - -[tool.coverage.html] -directory = 'tests/_reports/coverage_html' - -[tool.coverage.paths] -source = ['src/icon4py/model/'] - -[tool.coverage.report] -exclude_lines = [ - 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code - 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code - 'if 0:', # Don't complain if non-runnable code isn't run - 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run -] -ignore_errors = true - -[tool.coverage.run] -branch = true -parallel = true -source_pkgs = ['dycore'] - -[tool.mypy] -disallow_incomplete_defs = true -disallow_untyped_defs = true -exclude = [ - '^tests/*.py' -] -ignore_missing_imports = false -implicit_reexport = true -install_types = true -non_interactive = true -show_column_numbers = true -show_error_codes = true -warn_redundant_casts = true -warn_unused_configs = true -warn_unused_ignores = true - -[tool.pytest] - +Homepage = "https://github.com/C2SM/icon4py" + + +# -- bumpversion -- +[tool.bumpversion] +allow_dirty = false +commit = false +current_version = "0.0.6" +ignore_missing_version = false +message = 'Bump icon4py-atmosphere-dycore version: {current_version} → {new_version}' +parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" +serialize = ["{major}.{minor}.{patch}"] +tag = false + +[[tool.bumpversion.files]] +filename = "pyproject.toml" +search = ''' +# bump-my-version marker: +version = "{current_version}" +''' +replace = ''' +# bump-my-version marker: +version = "{new_version}" +''' + +[[tool.bumpversion.files]] +filename = "src/icon4py/model/atmosphere/dycore/__init__.py" + +# # -- coverage -- +# [tool.coverage] + +# [tool.coverage.html] +# directory = 'tests/_reports/coverage_html' + +# [tool.coverage.paths] +# source = ['src/icon4py/model/'] + +# [tool.coverage.report] +# exclude_lines = [ +# 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code +# 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code +# 'if 0:', # Don't complain if non-runnable code isn't run +# 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run +# ] +# ignore_errors = true + +# [tool.coverage.run] +# branch = true +# parallel = true +# source_pkgs = ['driver'] + +# -- pytest -- [tool.pytest.ini_options] -addopts = ['-p icon4py.model.testing.pytest_config'] +markers = [ + "datatest: test depending on serialized data generated by a full model run", + "slow_tests: mark test as slow", +] testpaths = 'tests' +# --ruff -- [tool.ruff] -extend-exclude = [ - '.eggs', - '.gt_cache', - '.ipynb_checkpoints', - '.tox', - '_local_', - 'build', - 'dist', - '_external_src', - 'tests/_disabled', - 'setup.py' -] -indent-width = 4 -line-length = 100 -respect-gitignore = true -show-fixes = true -# Assume Python 3.10 -target-version = "py310" - -[tool.ruff.format] -docstring-code-format = true - -[tool.ruff.lint] -extend-select = ['E', 'F', 'I', 'B', 'A', 'T10', 'ERA', 'NPY', 'RUF'] -# # Rules sets: -# E: pycodestyle -# F: Pyflakes -# I: isort -# B: flake8-bugbear -# A: flake8-builtins -# T10: flake8-debugger -# ERA: eradicate -# NPY: NumPy-specific rules -# RUF: Ruff-specific rules -ignore = [ - 'E501', # Line too long (using Bugbear's B950 warning) - 'RUF009' # Do not perform function call in dataclass defaults -] +extend = "../../../pyproject.toml" [tool.ruff.lint.isort] -combine-as-imports = true -known-first-party = ['icon4py.model'] -known-third-party = [ - 'gt4py', - 'icon4pytools' -] -lines-after-imports = 2 - -[tool.ruff.lint.mccabe] -max-complexity = 15 - -[tool.setuptools.dynamic] -version = {attr = 'icon4py.model.atmosphere.dycore.__init__.__version__'} +known-first-party = ['icon4py'] +known-third-party = ['gt4py'] +# -- setuptools -- [tool.setuptools.package-data] -'icon4py.model.atmosphere.dycore' = ['py.typed'] +'*' = ['*.in', '*.md', '*.rst', '*.txt', 'LICENSE', 'py.typed'] + +[tool.setuptools.packages] +find = {namespaces = true, where = ['src']} diff --git a/model/atmosphere/dycore/requirements-dev.txt b/model/atmosphere/dycore/requirements-dev.txt deleted file mode 100644 index 32d385e08d..0000000000 --- a/model/atmosphere/dycore/requirements-dev.txt +++ /dev/null @@ -1,3 +0,0 @@ --r ../../../base-requirements-dev.txt --e ../../common --e . diff --git a/model/atmosphere/dycore/requirements.txt b/model/atmosphere/dycore/requirements.txt deleted file mode 100644 index 79787ec137..0000000000 --- a/model/atmosphere/dycore/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ --r ../../../base-requirements.txt -../../common -. diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/.bumpversion.cfg b/model/atmosphere/subgrid_scale_physics/microphysics/.bumpversion.cfg deleted file mode 100644 index 98f18b110b..0000000000 --- a/model/atmosphere/subgrid_scale_physics/microphysics/.bumpversion.cfg +++ /dev/null @@ -1,10 +0,0 @@ -[bumpversion] -current_version = 0.0.6 -parse = (?P\d+)\.(?P\d+)(\.(?P\d+))? -serialize = - {major}.{minor}.{patch} - -[bumpversion:file:src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/__init__.py] -parse = \"(?P\d+)\.(?P\d+)(\.(?P\d+))?\" -serialize = - {major}.{minor}.{patch} diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/.flake8 b/model/atmosphere/subgrid_scale_physics/microphysics/.flake8 deleted file mode 100644 index 44124e1dd6..0000000000 --- a/model/atmosphere/subgrid_scale_physics/microphysics/.flake8 +++ /dev/null @@ -1,44 +0,0 @@ -[flake8] -# Some sane defaults for the code style checker flake8 -max-line-length = 100 -max-complexity = 15 -doctests = true -extend-ignore = - # Do not perform function calls in argument defaults - B008, - # Public code object needs docstring - D1, - # Disable dargling errors by default - DAR, - # Whitespace before ':' (black formatter breaks this sometimes) - E203, - # Line too long (using Bugbear's B950 warning) - E501, - # Line break occurred before a binary operator - W503, - # import statement "abs" is shadowing a Python builtin - A004 - -exclude = - .eggs, - .gt_cache, - .ipynb_checkpoints, - .tox, - _local_, - build, - dist, - docs, - _external_src, - tests/_disabled, - setup.py - -rst-roles = - py:mod, mod, - py:func, func, - py:data, data, - py:const, const, - py:class, class, - py:meth, meth, - py:attr, attr, - py:exc, exc, - py:obj, obj, diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/.pre-commit-config.yaml b/model/atmosphere/subgrid_scale_physics/microphysics/.pre-commit-config.yaml deleted file mode 100644 index f88578fdd7..0000000000 --- a/model/atmosphere/subgrid_scale_physics/microphysics/.pre-commit-config.yaml +++ /dev/null @@ -1,80 +0,0 @@ -# NOTE: pre-commit runs all hooks from the root folder of the repository, -# as regular git hooks do. Therefore, paths passed as arguments to the plugins -# should always be relative to the root folder. - -default_stages: [commit, push] -default_language_version: - python: python3.10 -minimum_pre_commit_version: 3.8.0 -files: "model/atmosphere/subgrid_scale_physics/microphysics/.*" - -repos: -- repo: meta - hooks: - - id: check-hooks-apply - stages: [manual] - - id: check-useless-excludes - stages: [manual] - -- repo: https://github.com/asottile/setup-cfg-fmt - rev: v1.20.1 - hooks: - # Run only manually because it deletes comments - - id: setup-cfg-fmt - name: format setup.cfg - stages: [manual] - -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 - hooks: - - id: check-case-conflict - - id: check-merge-conflict - - id: check-shebang-scripts-are-executable - - id: check-symlinks - - id: check-yaml - - id: debug-statements - - id: destroyed-symlinks - -- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks - rev: v2.6.0 - hooks: - - id: pretty-format-ini - args: [--autofix] - - id: pretty-format-toml - args: [--autofix] - - id: pretty-format-yaml - args: [--autofix, --preserve-quotes, --indent, "2"] - -- repo: https://github.com/pre-commit/mirrors-prettier - rev: v3.0.0-alpha.4 - hooks: - - id: prettier - types_or: [markdown, json] - -- repo: https://github.com/Lucas-C/pre-commit-hooks - rev: v1.5.5 - hooks: - - id: insert-license - name: add license for all ICON4Py Python source files - types: [python] - args: [--comment-style, "|#|", --license-filepath, model/.license_header.txt, --fuzzy-match-generates-todo] - -- repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.2.2 - hooks: - - id: ruff - args: [--fix] - - id: ruff-format - -- repo: local - hooks: - - id: mypy - name: mypy static type checker - entry: bash -c 'echo mypy temporarily disabled' - #entry: bash -c 'cd model/atmosphere/subgrid_scale_physics/microphysics; mypy src/' -- - language: system - types_or: [python, pyi] - always_run: true - #pass_filenames: false - require_serial: true - stages: [commit] diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/LICENSE b/model/atmosphere/subgrid_scale_physics/microphysics/LICENSE deleted file mode 100644 index 61241df23f..0000000000 --- a/model/atmosphere/subgrid_scale_physics/microphysics/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ - ICON4Py - ICON inspired code in Python and GT4Py - - Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml b/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml index aff33ae3e2..846e71cbad 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml +++ b/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml @@ -3,136 +3,103 @@ build-backend = "setuptools.build_meta" requires = ["setuptools>=61.0", "wheel>=0.40.0"] [project] -authors = [ - {email = "gridtools@cscs.ch"}, - {name = "ETH Zurich"} -] +authors = [{email = "gridtools@cscs.ch"}, {name = "ETH Zurich"}] classifiers = [ - "Development Status :: 3 - Alpha", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: BSD License", - "Operating System :: POSIX", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: Implementation :: CPython", - "Topic :: Scientific/Engineering :: Atmospheric Science", - "Topic :: Scientific/Engineering :: Mathematics", - "Topic :: Scientific/Engineering :: Physics" + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: BSD License', + 'Operating System :: POSIX', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3 :: Only', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: Implementation :: CPython', + 'Topic :: Scientific/Engineering :: Atmospheric Science', + 'Topic :: Scientific/Engineering :: Mathematics', + 'Topic :: Scientific/Engineering :: Physics' ] dependencies = [ + # workspace members + "icon4py-common>=0.0.6", + # external dependencies "gt4py>=1.0.4", - "icon4py-common>=0.0.5" + 'packaging>=20.0', ] description = "ICON microphysics." -dynamic = ['version'] -license = {file = "LICENSE"} -name = "icon4py-atmosphere-subgrid_scale_physics-microphysics" +license = {text = "BSD-3 License"} +name = "icon4py-atmosphere-microphysics" readme = "README.md" requires-python = ">=3.10" +# bump-my-version marker: +version = "0.0.6" [project.urls] -repository = "https://github.com/C2SM/icon4py" - -[tool.coverage] - -[tool.coverage.html] -directory = 'tests/_reports/coverage_html' - -[tool.coverage.paths] -source = ['src/icon4py/model/'] - -[tool.coverage.report] -exclude_lines = [ - 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code - 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code - 'if 0:', # Don't complain if non-runnable code isn't run - 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run -] -ignore_errors = true - -[tool.coverage.run] -branch = true -parallel = true -source_pkgs = ['microphysics'] - -[tool.mypy] -disallow_incomplete_defs = true -disallow_untyped_defs = true -exclude = [ - '^tests/*.py' -] -ignore_missing_imports = false -implicit_reexport = true -install_types = true -non_interactive = true -show_column_numbers = true -show_error_codes = true -warn_redundant_casts = true -warn_unused_configs = true -warn_unused_ignores = true - -[tool.pytest] - +Homepage = "https://github.com/C2SM/icon4py" + +# -- bumpversion -- +[tool.bumpversion] +allow_dirty = false +commit = false +current_version = "0.0.6" +ignore_missing_version = false +message = 'Bump icon4py-atmosphere-microphysics version: {current_version} → {new_version}' +parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" +serialize = ["{major}.{minor}.{patch}"] +tag = false + +[[tool.bumpversion.files]] +filename = "pyproject.toml" +search = ''' +# bump-my-version marker: +version = "{current_version}" +''' +replace = ''' +# bump-my-version marker: +version = "{new_version}" +''' + +[[tool.bumpversion.files]] +filename = "src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/__init__.py" + +# # -- coverage -- +# [tool.coverage] + +# [tool.coverage.html] +# directory = 'tests/_reports/coverage_html' + +# [tool.coverage.paths] +# source = ['src/icon4py/model/'] + +# [tool.coverage.report] +# exclude_lines = [ +# 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code +# 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code +# 'if 0:', # Don't complain if non-runnable code isn't run +# 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run +# ] +# ignore_errors = true + +# [tool.coverage.run] +# branch = true +# parallel = true +# source_pkgs = ['driver'] + +# -- pytest -- [tool.pytest.ini_options] -addopts = ['-p icon4py.model.testing.pytest_config'] testpaths = 'tests' +# --ruff -- [tool.ruff] -extend-exclude = [ - '.eggs', - '.gt_cache', - '.ipynb_checkpoints', - '.tox', - '_local_', - 'build', - 'dist', - 'docs', - '_external_src', - 'tests/_disabled', - 'setup.py' -] -indent-width = 4 -line-length = 100 -respect-gitignore = true -show-fixes = true -# Assume Python 3.10 -target-version = "py310" - -[tool.ruff.format] -docstring-code-format = true - -[tool.ruff.lint] -extend-select = ['E', 'F', 'I', 'B', 'A', 'T10', 'ERA', 'NPY', 'RUF'] -# # Rules sets: -# E: pycodestyle -# F: Pyflakes -# I: isort -# B: flake8-bugbear -# A: flake8-builtins -# T10: flake8-debugger -# ERA: eradicate -# NPY: NumPy-specific rules -# RUF: Ruff-specific rules -ignore = [ - 'E501', # Line too long (using Bugbear's B950 warning) - 'RUF009' # Do not perform function call in dataclass defaults -] +extend = "../../../../pyproject.toml" [tool.ruff.lint.isort] -combine-as-imports = true -known-first-party = ['icon4py.model'] -known-third-party = [ - 'gt4py' -] -lines-after-imports = 2 - -[tool.ruff.lint.mccabe] -max-complexity = 15 - -[tool.setuptools.dynamic] -version = {attr = 'icon4py.model.atmosphere.subgrid_scale_physics.microphysics.__init__.__version__'} +known-first-party = ['icon4py'] +known-third-party = ['gt4py'] +# -- setuptools -- [tool.setuptools.package-data] -'icon4py.model.atmosphere.subgrid_scale_physics.microphysics' = ['py.typed'] +'*' = ['*.in', '*.md', '*.rst', '*.txt', 'LICENSE', 'py.typed'] + +[tool.setuptools.packages] +find = {namespaces = true, where = ['src']} diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/requirements-dev.txt b/model/atmosphere/subgrid_scale_physics/microphysics/requirements-dev.txt deleted file mode 100644 index 300ebc5f9e..0000000000 --- a/model/atmosphere/subgrid_scale_physics/microphysics/requirements-dev.txt +++ /dev/null @@ -1,3 +0,0 @@ --r ../../../../base-requirements-dev.txt --e ../../../common --e . diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/requirements.txt b/model/atmosphere/subgrid_scale_physics/microphysics/requirements.txt deleted file mode 100644 index 552d5aaa45..0000000000 --- a/model/atmosphere/subgrid_scale_physics/microphysics/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ --r ../../../../base-requirements.txt -../../../common -. diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index 3b62ca909e..2f170f1486 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -23,6 +23,7 @@ dependencies = [ "gt4py>=1.0.4", 'packaging>=20.0', "serialbox>=0.0.1", + 'packaging>=20.0', "typing-extensions>=4.11.0" ] description = "Shared code for the icon4py model." @@ -64,7 +65,7 @@ allow_dirty = false commit = false current_version = "0.0.6" ignore_missing_version = false -message = 'Bump icon4pytools version: {current_version} → {new_version}' +message = 'Bump icon4py-common version: {current_version} → {new_version}' parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" serialize = ["{major}.{minor}.{patch}"] tag = false @@ -119,8 +120,8 @@ testpaths = 'tests' extend = "../../pyproject.toml" [tool.ruff.lint.isort] -known-first-party = ['icon4py.model'] -known-third-party = ['gt4py', 'icon4py'] +known-first-party = ['icon4py'] +known-third-party = ['gt4py'] # -- setuptools -- [tool.setuptools.package-data] diff --git a/model/driver/.bumpversion.cfg b/model/driver/.bumpversion.cfg deleted file mode 100644 index ae24af96da..0000000000 --- a/model/driver/.bumpversion.cfg +++ /dev/null @@ -1,10 +0,0 @@ -[bumpversion] -current_version = 0.0.6 -parse = (?P\d+)\.(?P\d+)(\.(?P\d+))? -serialize = - {major}.{minor}.{patch} - -[bumpversion:file:src/icon4py/model/driver/__init__.py] -parse = \"(?P\d+)\.(?P\d+)(\.(?P\d+))?\" -serialize = - {major}.{minor}.{patch} diff --git a/model/driver/.pre-commit-config.yaml b/model/driver/.pre-commit-config.yaml deleted file mode 100644 index 48984f36fc..0000000000 --- a/model/driver/.pre-commit-config.yaml +++ /dev/null @@ -1,80 +0,0 @@ -# NOTE: pre-commit runs all hooks from the root folder of the repository, -# as regular git hooks do. Therefore, paths passed as arguments to the plugins -# should always be relative to the root folder. - -default_stages: [commit, push] -default_language_version: - python: python3.10 -minimum_pre_commit_version: 3.8.0 -files: "model/driver/.*" - -repos: -- repo: meta - hooks: - - id: check-hooks-apply - stages: [manual] - - id: check-useless-excludes - stages: [manual] - -- repo: https://github.com/asottile/setup-cfg-fmt - rev: v1.20.1 - hooks: - # Run only manually because it deletes comments - - id: setup-cfg-fmt - name: format setup.cfg - stages: [manual] - -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 - hooks: - - id: check-case-conflict - - id: check-merge-conflict - - id: check-shebang-scripts-are-executable - - id: check-symlinks - - id: check-yaml - - id: debug-statements - - id: destroyed-symlinks - -- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks - rev: v2.6.0 - hooks: - - id: pretty-format-ini - args: [--autofix] - - id: pretty-format-toml - args: [--autofix] - - id: pretty-format-yaml - args: [--autofix, --preserve-quotes, --indent, "2"] - -- repo: https://github.com/pre-commit/mirrors-prettier - rev: v3.0.0-alpha.4 - hooks: - - id: prettier - types_or: [markdown, json] - -- repo: https://github.com/Lucas-C/pre-commit-hooks - rev: v1.5.5 - hooks: - - id: insert-license - name: add license for all ICON4Py Python source files - types: [python] - args: [--comment-style, "|#|", --license-filepath, model/.license_header.txt, --fuzzy-match-generates-todo] - -- repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.2.2 - hooks: - - id: ruff - args: [--fix] - - id: ruff-format - -- repo: local - hooks: - - id: mypy - name: mypy static type checker - entry: bash -c 'echo mypy temporarily disabled' - #entry: bash -c 'cd model/atmosphere/dycore; mypy src/' -- - language: system - types_or: [python, pyi] - always_run: true - #pass_filenames: false - require_serial: true - stages: [commit] diff --git a/model/driver/pyproject.toml b/model/driver/pyproject.toml index ecdd71f69a..b545996416 100644 --- a/model/driver/pyproject.toml +++ b/model/driver/pyproject.toml @@ -3,142 +3,113 @@ build-backend = "setuptools.build_meta" requires = ["setuptools>=61.0", "wheel>=0.40.0"] [project] -authors = [ - {email = "gridtools@cscs.ch"}, - {name = "ETH Zurich"} -] +authors = [{email = "gridtools@cscs.ch"}, {name = "ETH Zurich"}] classifiers = [ - "Development Status :: 3 - Alpha", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: BSD License", - "Operating System :: POSIX", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: Implementation :: CPython", - "Topic :: Scientific/Engineering :: Atmospheric Science", - "Topic :: Scientific/Engineering :: Mathematics", - "Topic :: Scientific/Engineering :: Physics" + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: BSD License', + 'Operating System :: POSIX', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3 :: Only', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: Implementation :: CPython', + 'Topic :: Scientific/Engineering :: Atmospheric Science', + 'Topic :: Scientific/Engineering :: Mathematics', + 'Topic :: Scientific/Engineering :: Physics' ] dependencies = [ + # workspace members + "icon4py-common>=0.0.6", + "icon4py-atmosphere-dycore>=0.0.6", + "icon4py-atmosphere-diffusion>=0.0.6", + # external dependencies + "click>=8.0.1", + "devtools>=0.12", "gt4py>=1.0.4", - "icon4py-common>=0.0.5", - "icon4py-atmosphere-dycore>=0.0.5", - "icon4py-atmosphere-diffusion>=0.0.5" + 'packaging>=20.0', ] description = "ICON model driver." -dynamic = ['version'] -license = {file = "LICENSE"} +license = {text = "BSD-3 License"} name = "icon4py-driver" readme = "README.md" requires-python = ">=3.10" +# bump-my-version marker: +version = "0.0.6" [project.scripts] icon4py_driver = "icon4py.model.driver.icon4py_driver:main" [project.urls] -repository = "https://github.com/C2SM/icon4py" - -[tool.coverage] - -[tool.coverage.html] -directory = 'tests/_reports/coverage_html' - -[tool.coverage.paths] -source = ['src/icon4py/model/'] - -[tool.coverage.report] -exclude_lines = [ - 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code - 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code - 'if 0:', # Don't complain if non-runnable code isn't run - 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run -] -ignore_errors = true - -[tool.coverage.run] -branch = true -parallel = true -source_pkgs = ['driver'] - -[tool.mypy] -disallow_incomplete_defs = true -disallow_untyped_defs = true -exclude = [ - '^tests/*.py' -] -ignore_missing_imports = false -implicit_reexport = true -install_types = true -non_interactive = true -show_column_numbers = true -show_error_codes = true -warn_redundant_casts = true -warn_unused_configs = true -warn_unused_ignores = true - -[tool.pytest] - +Homepage = "https://github.com/C2SM/icon4py" + +# -- bumpversion -- +[tool.bumpversion] +allow_dirty = false +commit = false +current_version = "0.0.6" +ignore_missing_version = false +message = 'Bump icon4py-driver version: {current_version} → {new_version}' +parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" +serialize = ["{major}.{minor}.{patch}"] +tag = false + +[[tool.bumpversion.files]] +filename = "pyproject.toml" +search = ''' +# bump-my-version marker: +version = "{current_version}" +''' +replace = ''' +# bump-my-version marker: +version = "{new_version}" +''' + +[[tool.bumpversion.files]] +filename = "src/icon4py/model/driver/__init__.py" + +# # -- coverage -- +# [tool.coverage] + +# [tool.coverage.html] +# directory = 'tests/_reports/coverage_html' + +# [tool.coverage.paths] +# source = ['src/icon4py/model/'] + +# [tool.coverage.report] +# exclude_lines = [ +# 'raise AssertionError', # Don't complain if tests don't hit defensive assertion code +# 'raise NotImplementedError', # Don't complain if tests don't hit defensive assertion code +# 'if 0:', # Don't complain if non-runnable code isn't run +# 'if __name__ == .__main__.:' # Don't complain if non-runnable code isn't run +# ] +# ignore_errors = true + +# [tool.coverage.run] +# branch = true +# parallel = true +# source_pkgs = ['driver'] + +# -- pytest -- [tool.pytest.ini_options] -addopts = ['-p icon4py.model.testing.pytest_config'] +markers = [ + "datatest: test depending on serialized data generated by a full model run", +] testpaths = 'tests' +# --ruff -- [tool.ruff] -extend-exclude = [ - '.eggs', - '.gt_cache', - '.ipynb_checkpoints', - '.tox', - '_local_', - 'build', - 'dist', - 'docs', - '_external_src', - 'tests/_disabled', - 'setup.py' -] -indent-width = 4 -line-length = 100 -respect-gitignore = true -show-fixes = true -# Assume Python 3.10 -target-version = "py310" - -[tool.ruff.format] -docstring-code-format = true - -[tool.ruff.lint] -extend-select = ['E', 'F', 'I', 'B', 'A', 'T10', 'ERA', 'NPY', 'RUF'] -# # Rules sets: -# E: pycodestyle -# F: Pyflakes -# I: isort -# B: flake8-bugbear -# A: flake8-builtins -# T10: flake8-debugger -# ERA: eradicate -# NPY: NumPy-specific rules -# RUF: Ruff-specific rules -ignore = [ - 'E501', # Line too long (using Bugbear's B950 warning) - 'RUF009' # Do not perform function call in dataclass defaults -] +extend = "../../pyproject.toml" [tool.ruff.lint.isort] -combine-as-imports = true -known-first-party = ['icon4py.model'] -known-third-party = [ - 'gt4py', - 'icon4pytools' -] -lines-after-imports = 2 - -[tool.ruff.lint.mccabe] -max-complexity = 15 - -[tool.setuptools.dynamic] -version = {attr = 'icon4py.model.driver.__init__.__version__'} +known-first-party = ['icon4py'] +known-third-party = ['gt4py'] +# -- setuptools -- [tool.setuptools.package-data] -'icon4py.model.driver' = ['py.typed'] +'*' = ['*.in', '*.md', '*.rst', '*.txt', 'LICENSE', 'py.typed'] + +[tool.setuptools.packages] +find = {namespaces = true, where = ['src']} diff --git a/model/driver/requirements-dev.txt b/model/driver/requirements-dev.txt deleted file mode 100644 index c0a507f40e..0000000000 --- a/model/driver/requirements-dev.txt +++ /dev/null @@ -1,5 +0,0 @@ --r ../../base-requirements-dev.txt --e ../common[io] --e ../atmosphere/diffusion --e ../atmosphere/dycore --e . diff --git a/model/driver/requirements.txt b/model/driver/requirements.txt deleted file mode 100644 index 1281cb97b5..0000000000 --- a/model/driver/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ --r ../../base-requirements.txt -../common[io] -../atmosphere/dycore -../atmosphere/diffusion -. diff --git a/model/driver/src/icon4py/model/driver/initialization_utils.py b/model/driver/src/icon4py/model/driver/initialization_utils.py index 44a968f834..781353d9d1 100644 --- a/model/driver/src/icon4py/model/driver/initialization_utils.py +++ b/model/driver/src/icon4py/model/driver/initialization_utils.py @@ -32,6 +32,7 @@ # TODO(egparedes): Read these hardcoded constants from configuration files +GRID_LEVEL = 4 GRID_ROOT = 2 GLOBAL_GRID_ID = uuid.UUID("af122aca-1dd2-11b2-a7f8-c7bf6bc21eba") diff --git a/model/testing/pyproject.toml b/model/testing/pyproject.toml index c9b50f9008..a4e423bc99 100644 --- a/model/testing/pyproject.toml +++ b/model/testing/pyproject.toml @@ -48,7 +48,7 @@ allow_dirty = false commit = false current_version = "0.0.6" ignore_missing_version = false -message = 'Bump icon4py.testing version: {current_version} → {new_version}' +message = 'Bump icon4py-testing version: {current_version} → {new_version}' parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)?" serialize = ["{major}.{minor}.{patch}"] tag = false @@ -72,7 +72,7 @@ filename = "src/icon4py/model/testing/__init__.py" extend = "../../pyproject.toml" [tool.ruff.lint.isort] -known-first-party = ['icon4py.model'] +known-first-party = ['icon4py'] known-third-party = ['gt4py'] # -- setuptools -- diff --git a/noxfile.py b/noxfile.py index ba497e4354..48efefb6e2 100644 --- a/noxfile.py +++ b/noxfile.py @@ -39,21 +39,6 @@ def install_session_venv( ) -@nox.session(python=["3.10", "3.11"]) -def test_tools(session: nox.Session) -> None: - """Run tests for the integration tools.""" - install_session_venv(session, extras=["all"], groups=["test"]) - - with session.chdir("tools"): - session.run( - "pytest", - "-sv", - "-n", - session.env.get("NUM_PROCESSES", "auto"), - *session.posargs, - ) - - @nox.session(python=["3.10", "3.11"]) @nox.parametrize("selection", ["regular_tests", "slow_tests"]) def test_common(session: nox.Session, selection: str) -> None: @@ -66,8 +51,6 @@ def test_common(session: nox.Session, selection: str) -> None: pytest_args += ["-m", "not slow_tests"] case "slow_tests": pytest_args += ["-m", "slow_tests"] - case _: - assert False, "unreachable" with session.chdir("model/common"): session.run( @@ -80,6 +63,35 @@ def test_common(session: nox.Session, selection: str) -> None: *session.posargs, ) +@nox.session(python=["3.10", "3.11"]) +def test_driver(session: nox.Session) -> None: + """Run tests for the driver.""" + install_session_venv(session, extras=["all"], groups=["test"]) + + with session.chdir("model/driver"): + session.run( + "pytest", + "-sv", + "-n", + session.env.get("NUM_PROCESSES", "auto"), + *session.posargs, + ) + +@nox.session(python=["3.10", "3.11"]) +def test_tools(session: nox.Session) -> None: + """Run tests for the Fortran integration tools.""" + install_session_venv(session, extras=["all"], groups=["test"]) + + with session.chdir("tools"): + session.run( + "pytest", + "-sv", + "-n", + session.env.get("NUM_PROCESSES", "auto"), + *session.posargs, + ) + + # [testenv:run_stencil_tests] # commands = diff --git a/pyproject.toml b/pyproject.toml index 2dd3be97a2..04c73bd5fa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -99,13 +99,14 @@ environments = [ ] [tool.uv.sources] -ghex = { git = "https://github.com/ghex-org/GHEX.git", branch = "master", subdirectory = "bindings/python" } +ghex = { git = "https://github.com/havogt/GHEX.git", branch = "fix_rpath", subdirectory = "bindings/python" } +#ghex = { git = "https://github.com/ghex-org/GHEX.git", branch = "master", subdirectory = "bindings/python" } # use GT4Py tagged release until #596 & gt4py#1738 are merged gt4py = { git = "https://github.com/GridTools/gt4py", tag = "icon4py_20241113" } icon4py-atmosphere-advection = { workspace = true } icon4py-atmosphere-diffusion = { workspace = true } icon4py-atmosphere-dycore = { workspace = true } -icon4py-atmosphere-subgrid_scale_physics-microphysics = { workspace = true } +icon4py-atmosphere-microphysics = { workspace = true } icon4py-common = { workspace = true } icon4py-driver = { workspace = true } icon4py-testing = { workspace = true } diff --git a/uv.lock b/uv.lock index 8f79440fbc..4451dd63a0 100644 --- a/uv.lock +++ b/uv.lock @@ -10,6 +10,416 @@ resolution-markers = [ "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -19,6 +429,134 @@ resolution-markers = [ "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -28,6 +566,70 @@ resolution-markers = [ "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -37,6 +639,75 @@ resolution-markers = [ "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -46,33 +717,6 @@ resolution-markers = [ "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -82,6 +726,38 @@ resolution-markers = [ "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -91,6 +767,70 @@ resolution-markers = [ "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -100,6 +840,130 @@ resolution-markers = [ "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -1434,7 +2298,7 @@ wheels = [ [[package]] name = "ghex" version = "0.3.0" -source = { git = "https://github.com/ghex-org/GHEX.git?subdirectory=bindings%2Fpython&branch=master#a078eb3a5e6baabed6202a94848d91a047ce142d" } +source = { git = "https://github.com/havogt/GHEX.git?subdirectory=bindings%2Fpython&branch=fix_rpath#a918acf5c40a4a11e6dc9c27b20fea1ca8fa2bf5" } dependencies = [ { name = "mpi4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, @@ -1893,7 +2757,7 @@ requires-dist = [ { name = "cartopy", marker = "extra == 'io'", specifier = ">=0.22.0" }, { name = "cftime", marker = "extra == 'io'", specifier = ">=1.6.3" }, { name = "datashader", marker = "extra == 'io'", specifier = ">=0.16.1" }, - { name = "ghex", marker = "extra == 'distributed'", git = "https://github.com/ghex-org/GHEX.git?subdirectory=bindings%2Fpython&branch=master" }, + { name = "ghex", marker = "extra == 'distributed'", git = "https://github.com/havogt/GHEX.git?subdirectory=bindings%2Fpython&branch=fix_rpath" }, { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "gt4py", extras = ["dace"], marker = "extra == 'dace'", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "holoviews", marker = "extra == 'io'", specifier = ">=1.16.0" }, @@ -1915,18 +2779,24 @@ name = "icon4py-driver" version = "0.0.6" source = { editable = "model/driver" } dependencies = [ + { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "devtools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-atmosphere-diffusion", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-atmosphere-dycore", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] requires-dist = [ + { name = "click", specifier = ">=8.0.1" }, + { name = "devtools", specifier = ">=0.12" }, { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, { name = "icon4py-common", editable = "model/common" }, + { name = "packaging", specifier = ">=20.0" }, ] [[package]] From 454882d61b8a5fe1b00e5d28903c5e41f602610a Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Mon, 9 Dec 2024 16:14:22 +0100 Subject: [PATCH 20/83] Fix microphysics distribution package name --- pyproject.toml | 2 +- uv.lock | 1960 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 1957 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 04c73bd5fa..43e0e92c1e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ dependencies = [ "icon4py-atmosphere-advection>=0.0.6", "icon4py-atmosphere-diffusion>=0.0.6", "icon4py-atmosphere-dycore>=0.0.6", - "icon4py-atmosphere-subgrid_scale_physics-microphysics>=0.0.6", + "icon4py-atmosphere-microphysics>=0.0.6", "icon4py-common>=0.0.6", "icon4py-driver>=0.0.6", ] diff --git a/uv.lock b/uv.lock index 4451dd63a0..51f561b913 100644 --- a/uv.lock +++ b/uv.lock @@ -82,6 +82,214 @@ resolution-markers = [ "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -163,6 +371,214 @@ resolution-markers = [ "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -244,6 +660,134 @@ resolution-markers = [ "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -325,6 +869,134 @@ resolution-markers = [ "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -406,6 +1078,262 @@ resolution-markers = [ "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -487,6 +1415,134 @@ resolution-markers = [ "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -568,6 +1624,134 @@ resolution-markers = [ "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -649,6 +1833,262 @@ resolution-markers = [ "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -730,6 +2170,134 @@ resolution-markers = [ "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -811,6 +2379,134 @@ resolution-markers = [ "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -892,6 +2588,254 @@ resolution-markers = [ "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -988,7 +2932,7 @@ members = [ "icon4py-atmosphere-advection", "icon4py-atmosphere-diffusion", "icon4py-atmosphere-dycore", - "icon4py-atmosphere-subgrid-scale-physics-microphysics", + "icon4py-atmosphere-microphysics", "icon4py-common", "icon4py-driver", "icon4py-testing", @@ -2458,7 +4402,7 @@ dependencies = [ { name = "icon4py-atmosphere-advection", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-atmosphere-diffusion", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-atmosphere-dycore", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-atmosphere-subgrid-scale-physics-microphysics", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-atmosphere-microphysics", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-driver", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] @@ -2564,7 +4508,7 @@ requires-dist = [ { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, - { name = "icon4py-atmosphere-subgrid-scale-physics-microphysics", editable = "model/atmosphere/subgrid_scale_physics/microphysics" }, + { name = "icon4py-atmosphere-microphysics", editable = "model/atmosphere/subgrid_scale_physics/microphysics" }, { name = "icon4py-common", editable = "model/common" }, { name = "icon4py-common", extras = ["dace"], marker = "extra == 'dace'", editable = "model/common" }, { name = "icon4py-common", extras = ["distributed"], marker = "extra == 'distributed'", editable = "model/common" }, @@ -2651,12 +4595,14 @@ source = { editable = "model/atmosphere/advection" } dependencies = [ { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] requires-dist = [ { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "icon4py-common", editable = "model/common" }, + { name = "packaging", specifier = ">=20.0" }, ] [[package]] @@ -2666,12 +4612,14 @@ source = { editable = "model/atmosphere/diffusion" } dependencies = [ { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] requires-dist = [ { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "icon4py-common", editable = "model/common" }, + { name = "packaging", specifier = ">=20.0" }, ] [[package]] @@ -2681,27 +4629,31 @@ source = { editable = "model/atmosphere/dycore" } dependencies = [ { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] requires-dist = [ { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "icon4py-common", editable = "model/common" }, + { name = "packaging", specifier = ">=20.0" }, ] [[package]] -name = "icon4py-atmosphere-subgrid-scale-physics-microphysics" +name = "icon4py-atmosphere-microphysics" version = "0.0.6" source = { editable = "model/atmosphere/subgrid_scale_physics/microphysics" } dependencies = [ { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] [package.metadata] requires-dist = [ { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "icon4py-common", editable = "model/common" }, + { name = "packaging", specifier = ">=20.0" }, ] [[package]] From 3977ab926bd5821b2faafab508e489d3c47b8776 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Mon, 9 Dec 2024 16:29:08 +0100 Subject: [PATCH 21/83] Add test sets in noxfile --- noxfile.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/noxfile.py b/noxfile.py index 48efefb6e2..d7c115868e 100644 --- a/noxfile.py +++ b/noxfile.py @@ -39,6 +39,64 @@ def install_session_venv( ) +@nox.session(python=["3.10", "3.11"]) +def test_atmosphere_advection(session: nox.Session) -> None: + """Run tests for the advection component of model.atmosphere.""" + install_session_venv(session, extras=["all"], groups=["test"]) + + with session.chdir("model/atmosphere/advection"): + session.run( + "pytest", + "-sv", + "-n", + session.env.get("NUM_PROCESSES", "auto"), + *session.posargs, + ) + + +@nox.session(python=["3.10", "3.11"]) +def test_atmosphere_diffusion(session: nox.Session) -> None: + """Run tests for the diffusion component of model.atmosphere.""" + install_session_venv(session, extras=["all"], groups=["test"]) + + with session.chdir("model/atmosphere/diffusion"): + session.run( + "pytest", + "-sv", + "-n", + session.env.get("NUM_PROCESSES", "auto"), + *session.posargs, + ) + + +@nox.session(python=["3.10", "3.11"]) +def test_atmosphere_dycore(session: nox.Session) -> None: + """Run tests for the dycore component of model.atmosphere.""" + install_session_venv(session, extras=["all"], groups=["test"]) + + with session.chdir("model/atmosphere/dycore"): + session.run( + "pytest", + "-sv", + "-n", + session.env.get("NUM_PROCESSES", "auto"), + *session.posargs, + ) + +@nox.session(python=["3.10", "3.11"]) +def test_atmosphere_microphysics(session: nox.Session) -> None: + """Run tests for the microphysics component of model.atmosphere.subgrid_scale_physics.""" + install_session_venv(session, extras=["all"], groups=["test"]) + + with session.chdir("model/atmosphere/subgrid_scale_physics/microphysics"): + session.run( + "pytest", + "-sv", + "-n", + session.env.get("NUM_PROCESSES", "auto"), + *session.posargs, + ) + @nox.session(python=["3.10", "3.11"]) @nox.parametrize("selection", ["regular_tests", "slow_tests"]) def test_common(session: nox.Session, selection: str) -> None: From 309584f749331e4ec9c5aae6dd75b4f6f933e4f3 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Mon, 9 Dec 2024 20:39:23 +0100 Subject: [PATCH 22/83] Fixes after merging main --- .../model/atmosphere/advection/advection.py | 4 +- .../advection/advection_horizontal.py | 16 +- .../advection/advection_vertical.py | 26 +-- .../tests/advection_tests/test_advection.py | 4 +- .../advection/tests/advection_tests/utils.py | 4 +- .../model/atmosphere/diffusion/diffusion.py | 36 ++-- .../test_apply_diffusion_to_vn.py | 4 +- .../tests/diffusion_tests/test_diffusion.py | 4 +- .../model/atmosphere/dycore/solve_nonhydro.py | 56 ++--- .../atmosphere/dycore/velocity_advection.py | 26 +-- ...fused_velocity_advection_stencil_1_to_7.py | 4 +- ...used_velocity_advection_stencil_8_to_13.py | 4 +- .../tests/dycore_tests/test_solve_nonhydro.py | 8 +- .../microphysics/saturation_adjustment.py | 38 ++-- .../model/common/decomposition/definitions.py | 6 +- .../common/decomposition/mpi_decomposition.py | 4 +- .../src/icon4py/model/common/grid/base.py | 4 +- .../icon4py/model/common/grid/grid_manager.py | 34 +-- .../icon4py/model/common/grid/refinement.py | 8 +- .../src/icon4py/model/common/grid/simple.py | 4 +- .../src/icon4py/model/common/grid/vertical.py | 8 +- .../interpolation/interpolation_factory.py | 4 +- .../interpolation/interpolation_fields.py | 184 ++++++++-------- .../icon4py/model/common/math/projection.py | 12 +- .../common/metrics/compute_coeff_gradekin.py | 2 +- .../metrics/compute_diffusion_metrics.py | 60 +++--- .../common/metrics/compute_vwind_impl_wgt.py | 4 +- .../model/common/metrics/compute_wgtfacq.py | 16 +- .../common/metrics/compute_zdiff_gradp_dsl.py | 14 +- .../icon4py/model/common/states/factory.py | 4 +- .../src/icon4py/model/common/states/utils.py | 6 +- .../icon4py/model/common/utils/__init__.py | 4 +- .../src/icon4py/model/common/utils/fields.py | 203 ------------------ .../icon4py/model/common/utils/serialbox.py | 38 ++-- .../test_mpi_decomposition.py | 2 +- .../common/tests/grid_tests/test_geometry.py | 9 +- .../test_interpolation_factory.py | 2 +- .../test_interpolation_fields.py | 10 +- model/common/tests/io_tests/test_io.py | 12 +- model/common/tests/math_tests/test_helpers.py | 29 +-- .../tests/math_tests/test_smagorinsky.py | 6 +- .../test_compute_diffusion_metrics.py | 2 +- .../metric_tests/test_compute_nudgecoeffs.py | 2 +- .../metric_tests/test_compute_wgtfac_c.py | 6 +- .../test_compute_zdiff_gradp_dsl.py | 2 +- .../tests/metric_tests/test_metric_fields.py | 78 +++---- .../tests/metric_tests/test_metric_scalars.py | 4 +- .../common/tests/states_test/test_factory.py | 6 +- ...est_mo_intp_rbf_rbf_vec_interpol_vertex.py | 12 +- .../model/driver/initialization_utils.py | 6 +- .../icon4py/model/driver/serialbox_helpers.py | 6 +- .../model/driver/test_cases/gauss3d.py | 18 +- .../test_cases/jablonowski_williamson.py | 18 +- .../tests/driver_tests/test_timeloop.py | 2 +- .../src/icon4py/model/testing/grid_utils.py | 8 +- .../src/icon4py/model/testing/helpers.py | 2 +- .../py2fgen/wrappers/diffusion_wrapper.py | 26 +-- .../py2fgen/wrappers/dycore_wrapper.py | 32 +-- tools/tests/py2fgen/test_dycore_wrapper.py | 2 +- 59 files changed, 477 insertions(+), 678 deletions(-) delete mode 100644 model/common/src/icon4py/model/common/utils/fields.py diff --git a/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection.py b/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection.py index 57c60d13c2..d2fb11a88f 100644 --- a/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection.py +++ b/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection.py @@ -35,7 +35,7 @@ ) from icon4py.model.common.decomposition import definitions as decomposition from icon4py.model.common.grid import horizontal as h_grid, icon as icon_grid, geometry -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc """ @@ -248,7 +248,7 @@ def __init__( # density fields #: intermediate density times cell thickness, includes either the horizontal or vertical advective density increment [kg/m^2] - self._rhodz_ast2 = field_alloc.allocate_zero_field( + self._rhodz_ast2 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) diff --git a/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_horizontal.py b/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_horizontal.py index ba0bed6b0c..17a2bfda23 100644 --- a/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_horizontal.py +++ b/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_horizontal.py @@ -45,7 +45,7 @@ ) from icon4py.model.common.decomposition import definitions as decomposition from icon4py.model.common.grid import horizontal as h_grid, icon as icon_grid, geometry -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc """ @@ -99,7 +99,7 @@ def __init__( self._end_edge_halo = self._grid.end_index(edge_domain(h_grid.Zone.HALO)) # limiter fields - self._r_m = field_alloc.allocate_zero_field( + self._r_m = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) @@ -213,13 +213,13 @@ def __init__( self._end_edge_halo = self._grid.end_index(edge_domain(h_grid.Zone.HALO)) # reconstruction fields - self._p_coeff_1 = field_alloc.allocate_zero_field( + self._p_coeff_1 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self._p_coeff_2 = field_alloc.allocate_zero_field( + self._p_coeff_2 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self._p_coeff_3 = field_alloc.allocate_zero_field( + self._p_coeff_3 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) @@ -472,13 +472,13 @@ def __init__( self._end_edge_halo = self._grid.end_index(edge_domain(h_grid.Zone.HALO)) # backtrajectory fields - self._z_real_vt = field_alloc.allocate_zero_field( + self._z_real_vt = data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=self._grid, backend=self._backend ) - self._p_distv_bary_1 = field_alloc.allocate_zero_field( + self._p_distv_bary_1 = data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=self._grid, dtype=ta.vpfloat, backend=self._backend ) - self._p_distv_bary_2 = field_alloc.allocate_zero_field( + self._p_distv_bary_2 = data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=self._grid, dtype=ta.vpfloat, backend=self._backend ) diff --git a/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_vertical.py b/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_vertical.py index 3065034700..8323657baf 100644 --- a/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_vertical.py +++ b/model/atmosphere/advection/src/icon4py/model/atmosphere/advection/advection_vertical.py @@ -69,7 +69,7 @@ ) from icon4py.model.common.decomposition import definitions as decomposition from icon4py.model.common.grid import horizontal as h_grid, icon as icon_grid, geometry -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc """ @@ -192,7 +192,7 @@ def __init__(self, grid: icon_grid.IconGrid, backend: backend.Backend): self._backend = backend # fields - self._l_limit = field_alloc.allocate_zero_field( + self._l_limit = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) @@ -262,10 +262,10 @@ def __init__(self, grid: icon_grid.IconGrid, backend: backend.Backend): self._backend = backend # fields - self._k_field = field_alloc.allocate_indices( + self._k_field = data_alloc.allocate_indices( dims.KDim, grid=self._grid, is_halfdim=True, dtype=gtx.int32, backend=self._backend ) # TODO (dastrm): should be KHalfDim - self._l_limit = field_alloc.allocate_zero_field( + self._l_limit = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, dtype=gtx.int32, backend=self._backend ) @@ -543,7 +543,7 @@ def __init__( self._end_cell_end = self._grid.end_index(cell_domain(h_grid.Zone.END)) # fields - self._k_field = field_alloc.allocate_indices( + self._k_field = data_alloc.allocate_indices( dims.KDim, grid=self._grid, is_halfdim=True, dtype=gtx.int32, backend=self._backend ) # TODO (dastrm): should be KHalfDim @@ -680,28 +680,28 @@ def __init__( self._end_cell_end = self._grid.end_index(cell_domain(h_grid.Zone.END)) # fields - self._k_field = field_alloc.allocate_indices( + self._k_field = data_alloc.allocate_indices( dims.KDim, grid=self._grid, is_halfdim=True, dtype=gtx.int32, backend=self._backend ) # TODO (dastrm): should be KHalfDim - self._z_cfl = field_alloc.allocate_zero_field( + self._z_cfl = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, is_halfdim=True, backend=self._backend ) # TODO (dastrm): should be KHalfDim - self._z_slope = field_alloc.allocate_zero_field( + self._z_slope = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self._z_face = field_alloc.allocate_zero_field( + self._z_face = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, is_halfdim=True, backend=self._backend ) # TODO (dastrm): should be KHalfDim - self._z_face_up = field_alloc.allocate_zero_field( + self._z_face_up = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self._z_face_low = field_alloc.allocate_zero_field( + self._z_face_low = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self._z_delta_q = field_alloc.allocate_zero_field( + self._z_delta_q = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self._z_a1 = field_alloc.allocate_zero_field( + self._z_a1 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) diff --git a/model/atmosphere/advection/tests/advection_tests/test_advection.py b/model/atmosphere/advection/tests/advection_tests/test_advection.py index 9dd0e191db..d8c4b8f584 100644 --- a/model/atmosphere/advection/tests/advection_tests/test_advection.py +++ b/model/atmosphere/advection/tests/advection_tests/test_advection.py @@ -10,7 +10,7 @@ from icon4py.model.atmosphere.advection import advection from icon4py.model.common import dimension as dims -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from .utils import ( construct_config, @@ -123,7 +123,7 @@ def test_advection_run_single_step( diagnostic_state = construct_diagnostic_init_state(icon_grid, advection_init_savepoint, ntracer) prep_adv = construct_prep_adv(icon_grid, advection_init_savepoint) p_tracer_now = advection_init_savepoint.tracer(ntracer) - p_tracer_new = field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid) + p_tracer_new = data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid) dtime = advection_init_savepoint.get_metadata("dtime").get("dtime") log_serialized(diagnostic_state, prep_adv, p_tracer_now, dtime) diff --git a/model/atmosphere/advection/tests/advection_tests/utils.py b/model/atmosphere/advection/tests/advection_tests/utils.py index 8707c2dca4..ebe3f456b0 100644 --- a/model/atmosphere/advection/tests/advection_tests/utils.py +++ b/model/atmosphere/advection/tests/advection_tests/utils.py @@ -15,7 +15,7 @@ from icon4py.model.common import dimension as dims, field_type_aliases as fa, type_alias as ta from icon4py.model.common.grid import horizontal as h_grid, icon as icon_grid from icon4py.model.testing import helpers -from icon4py.model.common.utils import fields as field_utils, serialbox as sb +from icon4py.model.common.utils import data_allocation as data_alloc, serialbox as sb # flake8: noqa @@ -88,7 +88,7 @@ def construct_diagnostic_init_state( def construct_diagnostic_exit_state( icon_grid, savepoint: sb.AdvectionInitSavepoint, ntracer: int ) -> advection_states.AdvectionDiagnosticState: - zero_f = field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid) + zero_f = data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid) return advection_states.AdvectionDiagnosticState( airmass_now=zero_f, # init field airmass_new=zero_f, # init field diff --git a/model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/diffusion.py b/model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/diffusion.py index d3f697173c..f5462ee9bc 100644 --- a/model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/diffusion.py +++ b/model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/diffusion.py @@ -63,7 +63,7 @@ mo_intp_rbf_rbf_vec_interpol_vertex, ) -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.orchestration import decorator as dace_orchestration @@ -468,50 +468,50 @@ def __init__( ) def _allocate_temporary_fields(self): - self.diff_multfac_vn = field_alloc.allocate_zero_field( + self.diff_multfac_vn = data_alloc.allocate_zero_field( dims.KDim, grid=self._grid, backend=self._backend ) - self.diff_multfac_n2w = field_alloc.allocate_zero_field( + self.diff_multfac_n2w = data_alloc.allocate_zero_field( dims.KDim, grid=self._grid, backend=self._backend ) - self.smag_limit = field_alloc.allocate_zero_field( + self.smag_limit = data_alloc.allocate_zero_field( dims.KDim, grid=self._grid, backend=self._backend ) - self.enh_smag_fac = field_alloc.allocate_zero_field( + self.enh_smag_fac = data_alloc.allocate_zero_field( dims.KDim, grid=self._grid, backend=self._backend ) - self.u_vert = field_alloc.allocate_zero_field( + self.u_vert = data_alloc.allocate_zero_field( dims.VertexDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.v_vert = field_alloc.allocate_zero_field( + self.v_vert = data_alloc.allocate_zero_field( dims.VertexDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.kh_smag_e = field_alloc.allocate_zero_field( + self.kh_smag_e = data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.kh_smag_ec = field_alloc.allocate_zero_field( + self.kh_smag_ec = data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_nabla2_e = field_alloc.allocate_zero_field( + self.z_nabla2_e = data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_temp = field_alloc.allocate_zero_field( + self.z_temp = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.diff_multfac_smag = field_alloc.allocate_zero_field( + self.diff_multfac_smag = data_alloc.allocate_zero_field( dims.KDim, grid=self._grid, backend=self._backend ) # TODO(Magdalena): this is KHalfDim - self.vertical_index = field_alloc.allocate_indices( + self.vertical_index = data_alloc.allocate_indices( dims.KDim, grid=self._grid, is_halfdim=True, backend=self._backend ) - self.horizontal_cell_index = field_alloc.allocate_indices( + self.horizontal_cell_index = data_alloc.allocate_indices( dims.CellDim, grid=self._grid, backend=self._backend ) - self.horizontal_edge_index = field_alloc.allocate_indices( + self.horizontal_edge_index = data_alloc.allocate_indices( dims.EdgeDim, grid=self._grid, backend=self._backend ) - self.w_tmp = field_alloc.allocate_zero_field( + self.w_tmp = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, is_halfdim=True, backend=self._backend ) @@ -567,10 +567,10 @@ def initial_run( This run uses special values for diff_multfac_vn, smag_limit and smag_offset """ - diff_multfac_vn = field_alloc.allocate_zero_field( + diff_multfac_vn = data_alloc.allocate_zero_field( dims.KDim, grid=self._grid, backend=self._backend ) - smag_limit = field_alloc.allocate_zero_field( + smag_limit = data_alloc.allocate_zero_field( dims.KDim, grid=self._grid, backend=self._backend ) diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_vn.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_vn.py index f4f849b5e7..49e16fc842 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_vn.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_vn.py @@ -13,7 +13,7 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid from icon4py.model.testing.helpers import StencilTest, as_1D_sparse_field, random_field -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from .test_apply_nabla2_and_nabla4_global_to_vn import apply_nabla2_and_nabla4_global_to_vn_numpy from .test_apply_nabla2_and_nabla4_to_vn import apply_nabla2_and_nabla4_to_vn_numpy @@ -98,7 +98,7 @@ def reference( @pytest.fixture def input_data(self, grid): - edge = field_alloc.allocate_indices(dims.EdgeDim, grid=grid, is_halfdim=False) + edge = data_alloc.allocate_indices(dims.EdgeDim, grid=grid, is_halfdim=False) u_vert = random_field(grid, dims.VertexDim, dims.KDim) v_vert = random_field(grid, dims.VertexDim, dims.KDim) diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py index a73fe77ee3..bfcbfdd1f1 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py @@ -25,7 +25,7 @@ helpers, reference_funcs as ref_funcs, ) -from icon4py.model.common.utils import fields as alloc, serialbox as sb +from icon4py.model.common.utils import data_allocation as data_alloc, serialbox as sb from .utils import ( compare_dace_orchestration_multiple_steps, @@ -53,7 +53,7 @@ def get_cell_geometry_for_experiment(experiment, backend): def _get_or_initialize(experiment, backend, name): def _construct_minimal_decomposition_info(grid: icon.IconGrid): - edge_indices = alloc.allocate_indices(dims.EdgeDim, grid) + edge_indices = data_alloc.allocate_indices(dims.EdgeDim, grid) owner_mask = xp.ones((grid.num_edges,), dtype=bool) decomposition_info = definitions.DecompositionInfo(klevels=grid.num_levels) decomposition_info.with_dimension(dims.EdgeDim, edge_indices.ndarray, owner_mask) diff --git a/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py b/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py index ed8dfd1798..f3b4428d69 100644 --- a/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py +++ b/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py @@ -153,7 +153,7 @@ ) from icon4py.model.common.math import smagorinsky from icon4py.model.common.states import prognostic_state as prognostics -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common import field_type_aliases as fa import enum @@ -658,85 +658,85 @@ def __init__( self.p_test_run = True def _allocate_local_fields(self): - self.z_exner_ex_pr = field_alloc.allocate_zero_field( + self.z_exner_ex_pr = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, is_halfdim=True, grid=self._grid, backend=self._backend ) - self.z_exner_ic = field_alloc.allocate_zero_field( + self.z_exner_ic = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, is_halfdim=True, grid=self._grid, backend=self._backend ) - self.z_dexner_dz_c_1 = field_alloc.allocate_zero_field( + self.z_dexner_dz_c_1 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_theta_v_pr_ic = field_alloc.allocate_zero_field( + self.z_theta_v_pr_ic = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, is_halfdim=True, grid=self._grid, backend=self._backend ) - self.z_th_ddz_exner_c = field_alloc.allocate_zero_field( + self.z_th_ddz_exner_c = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_rth_pr_1 = field_alloc.allocate_zero_field( + self.z_rth_pr_1 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_rth_pr_2 = field_alloc.allocate_zero_field( + self.z_rth_pr_2 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_grad_rth_1 = field_alloc.allocate_zero_field( + self.z_grad_rth_1 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_grad_rth_2 = field_alloc.allocate_zero_field( + self.z_grad_rth_2 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_grad_rth_3 = field_alloc.allocate_zero_field( + self.z_grad_rth_3 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_grad_rth_4 = field_alloc.allocate_zero_field( + self.z_grad_rth_4 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_dexner_dz_c_2 = field_alloc.allocate_zero_field( + self.z_dexner_dz_c_2 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_hydro_corr = field_alloc.allocate_zero_field( + self.z_hydro_corr = data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_vn_avg = field_alloc.allocate_zero_field( + self.z_vn_avg = data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_theta_v_fl_e = field_alloc.allocate_zero_field( + self.z_theta_v_fl_e = data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_flxdiv_mass = field_alloc.allocate_zero_field( + self.z_flxdiv_mass = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_flxdiv_theta = field_alloc.allocate_zero_field( + self.z_flxdiv_theta = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_rho_v = field_alloc.allocate_zero_field( + self.z_rho_v = data_alloc.allocate_zero_field( dims.VertexDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_theta_v_v = field_alloc.allocate_zero_field( + self.z_theta_v_v = data_alloc.allocate_zero_field( dims.VertexDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_graddiv2_vn = field_alloc.allocate_zero_field( + self.z_graddiv2_vn = data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.k_field = field_alloc.allocate_indices( + self.k_field = data_alloc.allocate_indices( dims.KDim, grid=self._grid, backend=self._backend, is_halfdim=True ) - self.z_w_concorr_me = field_alloc.allocate_zero_field( + self.z_w_concorr_me = data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=self._grid, backend=self._backend ) - self.z_hydro_corr_horizontal = field_alloc.allocate_zero_field( + self.z_hydro_corr_horizontal = data_alloc.allocate_zero_field( dims.EdgeDim, grid=self._grid, backend=self._backend ) - self.z_raylfac = field_alloc.allocate_zero_field( + self.z_raylfac = data_alloc.allocate_zero_field( dims.KDim, grid=self._grid, backend=self._backend ) - self.enh_divdamp_fac = field_alloc.allocate_zero_field( + self.enh_divdamp_fac = data_alloc.allocate_zero_field( dims.KDim, grid=self._grid, backend=self._backend ) - self._bdy_divdamp = field_alloc.allocate_zero_field( + self._bdy_divdamp = data_alloc.allocate_zero_field( dims.KDim, grid=self._grid, backend=self._backend ) - self.scal_divdamp = field_alloc.allocate_zero_field( + self.scal_divdamp = data_alloc.allocate_zero_field( dims.KDim, grid=self._grid, backend=self._backend ) self.intermediate_fields = IntermediateFields.allocate( diff --git a/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/velocity_advection.py b/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/velocity_advection.py index d1e7c36f0e..4f3268f660 100644 --- a/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/velocity_advection.py +++ b/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/velocity_advection.py @@ -51,7 +51,7 @@ vertical as v_grid, ) from icon4py.model.common.states import prognostic_state as prognostics -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc class VelocityAdvection: @@ -121,37 +121,37 @@ def __init__( ) def _allocate_local_fields(self): - self.z_w_v = field_alloc.allocate_zero_field( + self.z_w_v = data_alloc.allocate_zero_field( dims.VertexDim, dims.KDim, is_halfdim=True, grid=self.grid, backend=self._backend ) - self.z_v_grad_w = field_alloc.allocate_zero_field( + self.z_v_grad_w = data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=self.grid, backend=self._backend ) - self.z_ekinh = field_alloc.allocate_zero_field( + self.z_ekinh = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self.z_w_concorr_mc = field_alloc.allocate_zero_field( + self.z_w_concorr_mc = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self.z_w_con_c = field_alloc.allocate_zero_field( + self.z_w_con_c = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, is_halfdim=True, grid=self.grid, backend=self._backend ) - self.zeta = field_alloc.allocate_zero_field( + self.zeta = data_alloc.allocate_zero_field( dims.VertexDim, dims.KDim, grid=self.grid, backend=self._backend ) - self.z_w_con_c_full = field_alloc.allocate_zero_field( + self.z_w_con_c_full = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self.cfl_clipping = field_alloc.allocate_zero_field( + self.cfl_clipping = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, dtype=bool, backend=self._backend ) - self.levmask = field_alloc.allocate_zero_field( + self.levmask = data_alloc.allocate_zero_field( dims.KDim, grid=self.grid, dtype=bool, backend=self._backend ) - self.vcfl_dsl = field_alloc.allocate_zero_field( + self.vcfl_dsl = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self.k_field = field_alloc.allocate_indices( + self.k_field = data_alloc.allocate_indices( dims.KDim, grid=self.grid, is_halfdim=True, backend=self._backend ) @@ -459,7 +459,7 @@ def run_predictor_step( ) def _update_levmask_from_cfl_clipping(self): - xp = field_alloc.import_array_ns(self._backend) + xp = data_alloc.import_array_ns(self._backend) self.levmask = gtx.as_field( domain=(dims.KDim,), data=(xp.any(self.cfl_clipping.ndarray, 0)), dtype=bool ) diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py index 4c9ea7aab8..4e5ea0ec19 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py @@ -14,7 +14,7 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.testing.helpers import StencilTest, random_field, zero_field -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from .test_compute_contravariant_correction import compute_contravariant_correction_numpy from .test_compute_horizontal_advection_term_for_vertical_velocity import ( @@ -220,7 +220,7 @@ def input_data(self, grid): z_v_grad_w = zero_field(grid, dims.EdgeDim, dims.KDim) wgtfacq_e = random_field(grid, dims.EdgeDim, dims.KDim) - k = field_alloc.allocate_indices(dims.KDim, grid=grid, is_halfdim=True) + k = data_alloc.allocate_indices(dims.KDim, grid=grid, is_halfdim=True) edge = zero_field(grid, dims.EdgeDim, dtype=gtx.int32) for e in range(grid.num_edges): diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_8_to_13.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_8_to_13.py index bab04b91fe..9b62bdf748 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_8_to_13.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_8_to_13.py @@ -19,7 +19,7 @@ random_field, zero_field, ) -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from .test_copy_cell_kdim_field_to_vp import copy_cell_kdim_field_to_vp_numpy from .test_correct_contravariant_vertical_velocity import ( @@ -110,7 +110,7 @@ def input_data(self, grid): w = random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) z_w_con_c = zero_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) - k = field_alloc.allocate_indices(dims.KDim, grid=grid, is_halfdim=True) + k = data_alloc.allocate_indices(dims.KDim, grid=grid, is_halfdim=True) nlev = grid.num_levels nflatlev = 4 diff --git a/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py b/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py index 2bd4daa7cf..b918df5557 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py +++ b/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py @@ -24,7 +24,7 @@ datatest_utils as dt_utils, helpers, ) -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from . import utils @@ -38,9 +38,9 @@ def test_validate_divdamp_fields_against_savepoint_values( config = solve_nh.NonHydrostaticConfig() divdamp_fac_o2 = 0.032 mean_cell_area = grid_savepoint.mean_cell_area() - enh_divdamp_fac = field_alloc.allocate_zero_field(dims.KDim, grid=icon_grid, is_halfdim=False) - scal_divdamp = field_alloc.allocate_zero_field(dims.KDim, grid=icon_grid, is_halfdim=False) - bdy_divdamp = field_alloc.allocate_zero_field(dims.KDim, grid=icon_grid, is_halfdim=False) + enh_divdamp_fac = data_alloc.allocate_zero_field(dims.KDim, grid=icon_grid, is_halfdim=False) + scal_divdamp = data_alloc.allocate_zero_field(dims.KDim, grid=icon_grid, is_halfdim=False) + bdy_divdamp = data_alloc.allocate_zero_field(dims.KDim, grid=icon_grid, is_halfdim=False) smagorinsky.en_smag_fac_for_zero_nshift.with_backend(backend)( grid_savepoint.vct_a(), config.divdamp_fac, diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/saturation_adjustment.py b/model/atmosphere/subgrid_scale_physics/microphysics/src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/saturation_adjustment.py index 535055e9a3..82dbac9c46 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/saturation_adjustment.py +++ b/model/atmosphere/subgrid_scale_physics/microphysics/src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/saturation_adjustment.py @@ -37,7 +37,7 @@ prognostic_state as prognostics, tracer_state as tracers, ) -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc # TODO (Chia Rui): Refactor this class when direct import is enabled for gt4py stencils @@ -244,64 +244,64 @@ def output_properties(self) -> dict[str, model.FieldMetaData]: def _allocate_tendencies(self): #: it was originally named as tworkold in ICON. Old temperature before iteration. - self._temperature1 = field_alloc.allocate_zero_field( + self._temperature1 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) #: it was originally named as twork in ICON. New temperature before iteration. - self._temperature2 = field_alloc.allocate_zero_field( + self._temperature2 = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) #: A mask that indicates whether the grid cell is subsaturated or not. - self._subsaturated_mask = field_alloc.allocate_zero_field( + self._subsaturated_mask = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, dtype=bool, backend=self._backend ) #: A mask that indicates whether next Newton iteration is required. - self._newton_iteration_mask = field_alloc.allocate_zero_field( + self._newton_iteration_mask = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, dtype=bool, backend=self._backend ) #: latent heat vaporization / dry air heat capacity at constant volume - self._lwdocvd = field_alloc.allocate_zero_field( + self._lwdocvd = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self._k_field = field_alloc.allocate_indices( + self._k_field = data_alloc.allocate_indices( dims.KDim, grid=self.grid, is_halfdim=True, dtype=gtx.int32, backend=self._backend ) # TODO (Chia Rui): remove local pressure and pressire_ifc when scan operator can be called along with pressure tendency computation - self._pressure = field_alloc.allocate_zero_field( + self._pressure = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self._pressure_ifc = field_alloc.allocate_zero_field( + self._pressure_ifc = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, is_halfdim=True, backend=self._backend ) - self._pressure_ifc = field_alloc.allocate_zero_field( + self._pressure_ifc = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, is_halfdim=True, backend=self._backend ) - self._new_exner = field_alloc.allocate_zero_field( + self._new_exner = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self._new_virtual_temperature = field_alloc.allocate_zero_field( + self._new_virtual_temperature = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) # TODO (Chia Rui): remove the tendency terms below when architecture of the entire phyiscs component is ready to use. - self.temperature_tendency = field_alloc.allocate_zero_field( + self.temperature_tendency = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self.qv_tendency = field_alloc.allocate_zero_field( + self.qv_tendency = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self.qc_tendency = field_alloc.allocate_zero_field( + self.qc_tendency = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self.virtual_temperature_tendency = field_alloc.allocate_zero_field( + self.virtual_temperature_tendency = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self.exner_tendency = field_alloc.allocate_zero_field( + self.exner_tendency = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self.pressure_tendency = field_alloc.allocate_zero_field( + self.pressure_tendency = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, backend=self._backend ) - self.pressure_ifc_tendency = field_alloc.allocate_zero_field( + self.pressure_ifc_tendency = data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=self.grid, is_halfdim=True, backend=self._backend ) diff --git a/model/common/src/icon4py/model/common/decomposition/definitions.py b/model/common/src/icon4py/model/common/decomposition/definitions.py index fc77a0b9aa..51297319ab 100644 --- a/model/common/src/icon4py/model/common/decomposition/definitions.py +++ b/model/common/src/icon4py/model/common/decomposition/definitions.py @@ -18,7 +18,7 @@ from gt4py.next import Dimension from icon4py.model.common import utils -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc try: @@ -78,7 +78,7 @@ class EntryType(IntEnum): @utils.chainable def with_dimension( - self, dim: Dimension, global_index: field_alloc.NDArray, owner_mask: field_alloc.NDArray + self, dim: Dimension, global_index: data_alloc.NDArray, owner_mask: data_alloc.NDArray ): self._global_index[dim] = global_index self._owner_mask[dim] = owner_mask @@ -137,7 +137,7 @@ def _to_local_index(self, dim): xp.arange(data.shape[0]) return xp.arange(data.shape[0]) - def owner_mask(self, dim: Dimension) -> field_alloc.NDArray: + def owner_mask(self, dim: Dimension) -> data_alloc.NDArray: return self._owner_mask[dim] def global_index(self, dim: Dimension, entry_type: EntryType = EntryType.ALL): diff --git a/model/common/src/icon4py/model/common/decomposition/mpi_decomposition.py b/model/common/src/icon4py/model/common/decomposition/mpi_decomposition.py index 5490c71e09..4a7e0a35a1 100644 --- a/model/common/src/icon4py/model/common/decomposition/mpi_decomposition.py +++ b/model/common/src/icon4py/model/common/decomposition/mpi_decomposition.py @@ -19,7 +19,7 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.decomposition import definitions from icon4py.model.common.decomposition.definitions import SingleNodeExchange -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc try: @@ -202,7 +202,7 @@ def _create_pattern(self, horizontal_dim: Dimension): def _slice_field_based_on_dim( self, field: Field, dim: definitions.Dimension - ) -> field_alloc.NDArray: + ) -> data_alloc.NDArray: """ Slices the field based on the dimension passed in. """ diff --git a/model/common/src/icon4py/model/common/grid/base.py b/model/common/src/icon4py/model/common/grid/base.py index 86e0472c7d..6a1bd5c7e4 100644 --- a/model/common/src/icon4py/model/common/grid/base.py +++ b/model/common/src/icon4py/model/common/grid/base.py @@ -17,7 +17,7 @@ from icon4py.model.common import dimension as dims, utils from icon4py.model.common.grid import utils as grid_utils -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc class MissingConnectivity(ValueError): @@ -113,7 +113,7 @@ def offset_providers(self): return offset_providers @utils.chainable - def with_connectivities(self, connectivity: Dict[gtx.Dimension, field_alloc.NDArray]): + def with_connectivities(self, connectivity: Dict[gtx.Dimension, data_alloc.NDArray]): self.connectivities.update({d: k.astype(gtx.int32) for d, k in connectivity.items()}) self.size.update({d: t.shape[1] for d, t in connectivity.items()}) diff --git a/model/common/src/icon4py/model/common/grid/grid_manager.py b/model/common/src/icon4py/model/common/grid/grid_manager.py index 39e613cb74..8e561e9939 100644 --- a/model/common/src/icon4py/model/common/grid/grid_manager.py +++ b/model/common/src/icon4py/model/common/grid/grid_manager.py @@ -19,7 +19,7 @@ definitions as decomposition, ) from icon4py.model.common.grid import base, icon, vertical as v_grid -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc try: @@ -320,20 +320,20 @@ class IndexTransformation(Protocol): def __call__( self, - array: field_alloc.NDArray, - ) -> field_alloc.NDArray: + array: data_alloc.NDArray, + ) -> data_alloc.NDArray: ... class NoTransformation(IndexTransformation): """Empty implementation of the Protocol. Just return zeros.""" - def __call__(self, array: field_alloc.NDArray): + def __call__(self, array: data_alloc.NDArray): return np.zeros_like(array) class ToZeroBasedIndexTransformation(IndexTransformation): - def __call__(self, array: field_alloc.NDArray): + def __call__(self, array: data_alloc.NDArray): """ Calculate the index offset needed for usage with python. @@ -399,7 +399,7 @@ def __exit__(self, exc_type, exc_val, exc_tb): def __call__(self, backend: Optional[gtx_backend.Backend], limited_area=True): if not self._reader: self.open() - on_gpu = common_utils.fields.is_cupy_device(backend) + on_gpu = data_alloc.is_cupy_device(backend) self._grid = self._construct_grid(on_gpu=on_gpu, limited_area=limited_area) self._refinement = self._read_grid_refinement_fields(backend) self._coordinates = self._read_coordinates(backend) @@ -485,8 +485,8 @@ def _read_geometry_fields(self, backend: Optional[gtx_backend.Backend]): def _read_start_end_indices( self, ) -> tuple[ - dict[dims.Dimension : field_alloc.NDArray], - dict[dims.Dimension : field_alloc.NDArray], + dict[dims.Dimension : data_alloc.NDArray], + dict[dims.Dimension : data_alloc.NDArray], dict[dims.Dimension : gtx.int32], ]: """ " @@ -541,14 +541,14 @@ def _read_grid_refinement_fields( self, backend: gtx_backend.Backend, decomposition_info: Optional[decomposition.DecompositionInfo] = None, - ) -> tuple[dict[dims.Dimension : field_alloc.NDArray]]: + ) -> tuple[dict[dims.Dimension : data_alloc.NDArray]]: """ Reads the refinement control fields from the grid file. Refinement control contains the classification of each entry in a field to predefined horizontal grid zones as for example the distance to the boundaries, see [refinement.py](refinement.py) """ - xp = common_utils.fields.import_array_ns(backend) + xp = data_alloc.import_array_ns(backend) refinement_control_names = { dims.CellDim: GridRefinementName.CONTROL_CELLS, dims.EdgeDim: GridRefinementName.CONTROL_EDGES, @@ -699,8 +699,8 @@ def _update_size_for_1d_sparse_dims(grid): def _construct_diamond_vertices( - e2v: field_alloc.NDArray, c2v: field_alloc.NDArray, e2c: field_alloc.NDArray -) -> field_alloc.NDArray: + e2v: data_alloc.NDArray, c2v: data_alloc.NDArray, e2c: data_alloc.NDArray +) -> data_alloc.NDArray: r""" Construct the connectivity table for the vertices of a diamond in the ICON triangular grid. @@ -740,8 +740,8 @@ def _construct_diamond_vertices( def _construct_diamond_edges( - e2c: field_alloc.NDArray, c2e: field_alloc.NDArray -) -> field_alloc.NDArray: + e2c: data_alloc.NDArray, c2e: data_alloc.NDArray +) -> data_alloc.NDArray: r""" Construct the connectivity table for the edges of a diamond in the ICON triangular grid. @@ -781,8 +781,8 @@ def _construct_diamond_edges( def _construct_triangle_edges( - c2e2c: field_alloc.NDArray, c2e: field_alloc.NDArray -) -> field_alloc.NDArray: + c2e2c: data_alloc.NDArray, c2e: data_alloc.NDArray +) -> data_alloc.NDArray: r"""Compute the connectivity from a central cell to all neighboring edges of its cell neighbors. ----e3---- ----e7---- @@ -811,7 +811,7 @@ def _construct_triangle_edges( return table -def _construct_butterfly_cells(c2e2c: field_alloc.NDArray) -> field_alloc.NDArray: +def _construct_butterfly_cells(c2e2c: data_alloc.NDArray) -> data_alloc.NDArray: r"""Compute the connectivity from a central cell to all neighboring cells of its cell neighbors. / \ / \ diff --git a/model/common/src/icon4py/model/common/grid/refinement.py b/model/common/src/icon4py/model/common/grid/refinement.py index 8cd740545f..3a01249672 100644 --- a/model/common/src/icon4py/model/common/grid/refinement.py +++ b/model/common/src/icon4py/model/common/grid/refinement.py @@ -14,7 +14,7 @@ import icon4py.model.common.grid.horizontal as h_grid from icon4py.model.common import dimension as dims -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc """ @@ -80,7 +80,7 @@ def is_ordered(self) -> bool: return self.value not in _UNORDERED[self.dim] -def is_unordered_field(field: field_alloc.NDArray, dim: dims.Dimension) -> field_alloc.NDArray: +def is_unordered_field(field: data_alloc.NDArray, dim: dims.Dimension) -> data_alloc.NDArray: assert field.dtype in (gtx.int32, gtx.int64), f"not an integer type {field.dtype}" return np.where( field == _UNORDERED[dim][0], True, np.where(field == _UNORDERED[dim][1], True, False) @@ -88,8 +88,8 @@ def is_unordered_field(field: field_alloc.NDArray, dim: dims.Dimension) -> field def convert_to_unnested_refinement_values( - field: field_alloc.NDArray, dim: dims.Dimension -) -> field_alloc.NDArray: + field: data_alloc.NDArray, dim: dims.Dimension +) -> data_alloc.NDArray: """Convenience function that converts the grid refinement value from a coarser parent grid to the canonical values used in an unnested setup. diff --git a/model/common/src/icon4py/model/common/grid/simple.py b/model/common/src/icon4py/model/common/grid/simple.py index 32e23acea5..d7fc19fb39 100644 --- a/model/common/src/icon4py/model/common/grid/simple.py +++ b/model/common/src/icon4py/model/common/grid/simple.py @@ -33,7 +33,7 @@ # | 15c \ | 16c \ | 17c \ # 0v 1v 2v 0v from icon4py.model.common.grid.vertical import VerticalGridConfig -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc @dataclasses.dataclass @@ -447,7 +447,7 @@ def num_edges(self) -> int: return self.config.num_edges @property - def diamond_table(self) -> field_alloc.NDArray: + def diamond_table(self) -> data_alloc.NDArray: return SimpleGridData.e2c2v_table @property diff --git a/model/common/src/icon4py/model/common/grid/vertical.py b/model/common/src/icon4py/model/common/grid/vertical.py index 5c0b4951fd..71f9b20c59 100644 --- a/model/common/src/icon4py/model/common/grid/vertical.py +++ b/model/common/src/icon4py/model/common/grid/vertical.py @@ -18,7 +18,7 @@ import icon4py.model.common.states.metadata as data from icon4py.model.common import dimension as dims, exceptions, field_type_aliases as fa -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc log = logging.getLogger(__name__) @@ -247,7 +247,7 @@ def size(self, dim: gtx.Dimension) -> int: @classmethod def _determine_start_level_of_moist_physics( - cls, vct_a: field_alloc.NDArray, top_moist_threshold: float, nshift_total: int = 0 + cls, vct_a: data_alloc.NDArray, top_moist_threshold: float, nshift_total: int = 0 ) -> gtx.int32: n_levels = vct_a.shape[0] interface_height = 0.5 * (vct_a[: n_levels - 1 - nshift_total] + vct_a[1 + nshift_total :]) @@ -255,7 +255,7 @@ def _determine_start_level_of_moist_physics( @classmethod def _determine_damping_height_index( - cls, vct_a: field_alloc.NDArray, damping_height: float + cls, vct_a: data_alloc.NDArray, damping_height: float ) -> gtx.int32: assert damping_height >= 0.0, "Damping height must be positive." return ( @@ -266,7 +266,7 @@ def _determine_damping_height_index( @classmethod def _determine_end_index_of_flat_layers( - cls, vct_a: field_alloc.NDArray, flat_height: float + cls, vct_a: data_alloc.NDArray, flat_height: float ) -> gtx.int32: assert flat_height >= 0.0, "Flat surface height must be positive." return ( diff --git a/model/common/src/icon4py/model/common/interpolation/interpolation_factory.py b/model/common/src/icon4py/model/common/interpolation/interpolation_factory.py index 62f4f6e85f..99ef652666 100644 --- a/model/common/src/icon4py/model/common/interpolation/interpolation_factory.py +++ b/model/common/src/icon4py/model/common/interpolation/interpolation_factory.py @@ -23,7 +23,7 @@ interpolation_fields, ) from icon4py.model.common.states import factory, model -from icon4py.model.common.utils import gt4py_field_allocation as alloc +from icon4py.model.common.utils import data_allocation as data_alloc cell_domain = h_grid.domain(dims.CellDim) @@ -40,7 +40,7 @@ def __init__( metadata: dict[str, model.FieldMetaData], ): self._backend = backend - self._xp = alloc.import_array_ns(backend) + self._xp = data_alloc.import_array_ns(backend) self._allocator = gtx.constructors.zeros.partial(allocator=backend) self._grid = grid self._decomposition_info = decomposition_info diff --git a/model/common/src/icon4py/model/common/interpolation/interpolation_fields.py b/model/common/src/icon4py/model/common/interpolation/interpolation_fields.py index 8244bc5880..2b59896bdf 100644 --- a/model/common/src/icon4py/model/common/interpolation/interpolation_fields.py +++ b/model/common/src/icon4py/model/common/interpolation/interpolation_fields.py @@ -19,16 +19,16 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.dimension import C2E, V2E from icon4py.model.common.grid import grid_manager as gm -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc def compute_c_lin_e( - edge_cell_length: field_alloc.NDArray, - inv_dual_edge_length: field_alloc.NDArray, - edge_owner_mask: field_alloc.NDArray, + edge_cell_length: data_alloc.NDArray, + inv_dual_edge_length: data_alloc.NDArray, + edge_owner_mask: data_alloc.NDArray, horizontal_start: np.int32, array_ns: ModuleType = np, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: """ Compute E2C average inverse distance. @@ -91,14 +91,14 @@ def compute_geofac_rot( def compute_geofac_n2s( - dual_edge_length: field_alloc.NDArray, - geofac_div: field_alloc.NDArray, - c2e: field_alloc.NDArray, - e2c: field_alloc.NDArray, - c2e2c: field_alloc.NDArray, + dual_edge_length: data_alloc.NDArray, + geofac_div: data_alloc.NDArray, + c2e: data_alloc.NDArray, + e2c: data_alloc.NDArray, + c2e2c: data_alloc.NDArray, horizontal_start: np.int32, array_ns: ModuleType = np, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: """ Compute geometric factor for nabla2-scalar. @@ -147,14 +147,14 @@ def compute_geofac_n2s( def _compute_primal_normal_ec( - primal_normal_cell_x: field_alloc.NDArray, - primal_normal_cell_y: field_alloc.NDArray, - owner_mask: field_alloc.NDArray, - c2e: field_alloc.NDArray, - e2c: field_alloc.NDArray, + primal_normal_cell_x: data_alloc.NDArray, + primal_normal_cell_y: data_alloc.NDArray, + owner_mask: data_alloc.NDArray, + c2e: data_alloc.NDArray, + e2c: data_alloc.NDArray, horizontal_start: np.int32, array_ns: ModuleType = np, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: """ Compute primal_normal_ec. @@ -201,15 +201,15 @@ def _compute_primal_normal_ec( def _compute_geofac_grg( - primal_normal_ec: field_alloc.NDArray, - geofac_div: field_alloc.NDArray, - c_lin_e: field_alloc.NDArray, - c2e: field_alloc.NDArray, - e2c: field_alloc.NDArray, - c2e2c: field_alloc.NDArray, + primal_normal_ec: data_alloc.NDArray, + geofac_div: data_alloc.NDArray, + c_lin_e: data_alloc.NDArray, + c2e: data_alloc.NDArray, + e2c: data_alloc.NDArray, + c2e2c: data_alloc.NDArray, horizontal_start: np.int32, array_ns: ModuleType = np, -) -> tuple[field_alloc.NDArray, field_alloc.NDArray]: +) -> tuple[data_alloc.NDArray, data_alloc.NDArray]: """ Compute geometrical factor for Green-Gauss gradient. @@ -262,17 +262,17 @@ def _compute_geofac_grg( def compute_geofac_grg( - primal_normal_cell_x: field_alloc.NDArray, - primal_normal_cell_y: field_alloc.NDArray, - owner_mask: field_alloc.NDArray, - geofac_div: field_alloc.NDArray, - c_lin_e: field_alloc.NDArray, - c2e: field_alloc.NDArray, - e2c: field_alloc.NDArray, - c2e2c: field_alloc.NDArray, + primal_normal_cell_x: data_alloc.NDArray, + primal_normal_cell_y: data_alloc.NDArray, + owner_mask: data_alloc.NDArray, + geofac_div: data_alloc.NDArray, + c_lin_e: data_alloc.NDArray, + c2e: data_alloc.NDArray, + e2c: data_alloc.NDArray, + c2e2c: data_alloc.NDArray, horizontal_start: gtx.int32, array_ns: ModuleType = np, -) -> tuple[field_alloc.NDArray, field_alloc.NDArray]: +) -> tuple[data_alloc.NDArray, data_alloc.NDArray]: primal_normal_ec = functools.partial(_compute_primal_normal_ec, array_ns=array_ns)( primal_normal_cell_x, primal_normal_cell_y, owner_mask, c2e, e2c, horizontal_start ) @@ -282,15 +282,15 @@ def compute_geofac_grg( def compute_geofac_grdiv( - geofac_div: field_alloc.NDArray, - inv_dual_edge_length: field_alloc.NDArray, - owner_mask: field_alloc.NDArray, - c2e: field_alloc.NDArray, - e2c: field_alloc.NDArray, - e2c2e: field_alloc.NDArray, + geofac_div: data_alloc.NDArray, + inv_dual_edge_length: data_alloc.NDArray, + owner_mask: data_alloc.NDArray, + c2e: data_alloc.NDArray, + e2c: data_alloc.NDArray, + e2c2e: data_alloc.NDArray, horizontal_start: np.int32, array_ns: ModuleType = np, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: """ Compute geometrical factor for gradient of divergence (triangles only). @@ -345,12 +345,12 @@ def compute_geofac_grdiv( def rotate_latlon( - lat: field_alloc.NDArray, - lon: field_alloc.NDArray, - pollat: field_alloc.NDArray, - pollon: field_alloc.NDArray, + lat: data_alloc.NDArray, + lon: data_alloc.NDArray, + pollat: data_alloc.NDArray, + pollon: data_alloc.NDArray, array_ns: ModuleType = np, -) -> tuple[field_alloc.NDArray, field_alloc.NDArray]: +) -> tuple[data_alloc.NDArray, data_alloc.NDArray]: """ (Compute rotation of lattitude and longitude.) @@ -384,13 +384,13 @@ def rotate_latlon( def _weighting_factors( - ytemp: field_alloc.NDArray, - xtemp: field_alloc.NDArray, - yloc: field_alloc.NDArray, - xloc: field_alloc.NDArray, + ytemp: data_alloc.NDArray, + xtemp: data_alloc.NDArray, + yloc: data_alloc.NDArray, + xloc: data_alloc.NDArray, wgt_loc: ta.wpfloat, array_ns: ModuleType = np, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: """ Compute weighting factors. The weighting factors are based on the requirement that sum(w(i)*x(i)) = 0 @@ -456,13 +456,13 @@ def _weighting_factors( def _compute_c_bln_avg( - c2e2c: field_alloc.NDArray, - lat: field_alloc.NDArray, - lon: field_alloc.NDArray, + c2e2c: data_alloc.NDArray, + lat: data_alloc.NDArray, + lon: data_alloc.NDArray, divavg_cntrwgt: ta.wpfloat, horizontal_start: np.int32, array_ns: ModuleType = np, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: """ Compute bilinear cell average weight. @@ -502,15 +502,15 @@ def _compute_c_bln_avg( def _force_mass_conservation_to_c_bln_avg( - c2e2c0: field_alloc.NDArray, - c_bln_avg: field_alloc.NDArray, - cell_areas: field_alloc.NDArray, - cell_owner_mask: field_alloc.NDArray, + c2e2c0: data_alloc.NDArray, + c_bln_avg: data_alloc.NDArray, + cell_areas: data_alloc.NDArray, + cell_owner_mask: data_alloc.NDArray, divavg_cntrwgt: ta.wpfloat, horizontal_start: gtx.int32, array_ns: ModuleType = np, niter: int = 1000, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: """ Iteratively enforce mass conservation to the input field c_bln_avg. @@ -536,7 +536,7 @@ def _force_mass_conservation_to_c_bln_avg( def _compute_local_weights( c_bln_avg, cell_areas, c2e2c0, inverse_neighbor_idx - ) -> field_alloc.NDArray: + ) -> data_alloc.NDArray: """ Compute the total weight which each local point contributes to the sum. @@ -551,10 +551,10 @@ def _compute_local_weights( return weights def _compute_residual_to_mass_conservation( - owner_mask: field_alloc.NDArray, - local_weight: field_alloc.NDArray, - cell_area: field_alloc.NDArray, - ) -> field_alloc.NDArray: + owner_mask: data_alloc.NDArray, + local_weight: data_alloc.NDArray, + cell_area: data_alloc.NDArray, + ) -> data_alloc.NDArray: """The local_weight weighted by the area should be 1. We compute how far we are off that weight.""" horizontal_size = local_weight.shape[0] assert horizontal_size == owner_mask.shape[0], "Fields do not have the same shape" @@ -563,12 +563,12 @@ def _compute_residual_to_mass_conservation( return residual def _apply_correction( - c_bln_avg: field_alloc.NDArray, - residual: field_alloc.NDArray, - c2e2c0: field_alloc.NDArray, + c_bln_avg: data_alloc.NDArray, + residual: data_alloc.NDArray, + c2e2c0: data_alloc.NDArray, divavg_cntrwgt: float, horizontal_start: gtx.int32, - ) -> field_alloc.NDArray: + ) -> data_alloc.NDArray: """Apply correction to local weigths based on the computed residuals.""" maxwgt_loc = divavg_cntrwgt + 0.003 minwgt_loc = divavg_cntrwgt - 0.003 @@ -592,11 +592,11 @@ def _apply_correction( return c_bln_avg def _enforce_mass_conservation( - c_bln_avg: field_alloc.NDArray, - residual: field_alloc.NDArray, - owner_mask: field_alloc.NDArray, + c_bln_avg: data_alloc.NDArray, + residual: data_alloc.NDArray, + owner_mask: data_alloc.NDArray, horizontal_start: gtx.int32, - ) -> field_alloc.NDArray: + ) -> data_alloc.NDArray: """Enforce the mass conservation condition on the local cells by forcefully subtracting the residual from the central field contribution.""" c_bln_avg[horizontal_start:, 0] = array_ns.where( @@ -639,16 +639,16 @@ def _enforce_mass_conservation( def compute_mass_conserving_bilinear_cell_average_weight( - c2e2c0: field_alloc.NDArray, - lat: field_alloc.NDArray, - lon: field_alloc.NDArray, - cell_areas: field_alloc.NDArray, - cell_owner_mask: field_alloc.NDArray, + c2e2c0: data_alloc.NDArray, + lat: data_alloc.NDArray, + lon: data_alloc.NDArray, + cell_areas: data_alloc.NDArray, + cell_owner_mask: data_alloc.NDArray, divavg_cntrwgt: ta.wpfloat, horizontal_start: gtx.int32, horizontal_start_level_3: gtx.int32, array_ns: ModuleType = np, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: c_bln_avg = _compute_c_bln_avg( c2e2c0[:, 1:], lat, lon, divavg_cntrwgt, horizontal_start, array_ns ) @@ -818,15 +818,15 @@ def compute_e_flx_avg( def compute_cells_aw_verts( - dual_area: field_alloc.NDArray, - edge_vert_length: field_alloc.NDArray, - edge_cell_length: field_alloc.NDArray, - v2e: field_alloc.NDArray, - e2v: field_alloc.NDArray, - v2c: field_alloc.NDArray, - e2c: field_alloc.NDArray, + dual_area: data_alloc.NDArray, + edge_vert_length: data_alloc.NDArray, + edge_cell_length: data_alloc.NDArray, + v2e: data_alloc.NDArray, + e2v: data_alloc.NDArray, + v2c: data_alloc.NDArray, + e2c: data_alloc.NDArray, horizontal_start: gtx.int32, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: """ Compute cells_aw_verts. @@ -879,13 +879,13 @@ def compute_cells_aw_verts( def compute_e_bln_c_s( - c2e: field_alloc.NDArray, - cells_lat: field_alloc.NDArray, - cells_lon: field_alloc.NDArray, - edges_lat: field_alloc.NDArray, - edges_lon: field_alloc.NDArray, + c2e: data_alloc.NDArray, + cells_lat: data_alloc.NDArray, + cells_lon: data_alloc.NDArray, + edges_lat: data_alloc.NDArray, + edges_lon: data_alloc.NDArray, weighting_factor: float, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: """ Compute e_bln_c_s. diff --git a/model/common/src/icon4py/model/common/math/projection.py b/model/common/src/icon4py/model/common/math/projection.py index a590b254a9..554b93d67c 100644 --- a/model/common/src/icon4py/model/common/math/projection.py +++ b/model/common/src/icon4py/model/common/math/projection.py @@ -8,15 +8,15 @@ import numpy as np -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc def gnomonic_proj( - lon_c: field_alloc.NDArray, - lat_c: field_alloc.NDArray, - lon: field_alloc.NDArray, - lat: field_alloc.NDArray, -) -> tuple[field_alloc.NDArray, field_alloc.NDArray]: + lon_c: data_alloc.NDArray, + lat_c: data_alloc.NDArray, + lon: data_alloc.NDArray, + lat: data_alloc.NDArray, +) -> tuple[data_alloc.NDArray, data_alloc.NDArray]: """ Compute gnomonic projection. diff --git a/model/common/src/icon4py/model/common/metrics/compute_coeff_gradekin.py b/model/common/src/icon4py/model/common/metrics/compute_coeff_gradekin.py index ec17cb16b3..70a07c6825 100644 --- a/model/common/src/icon4py/model/common/metrics/compute_coeff_gradekin.py +++ b/model/common/src/icon4py/model/common/metrics/compute_coeff_gradekin.py @@ -9,7 +9,7 @@ import numpy as np from icon4py.model.common import dimension as dims -from icon4py.model.common.utils import fields as f_utils +from icon4py.model.common.utils import data_allocation as f_utils def compute_coeff_gradekin( diff --git a/model/common/src/icon4py/model/common/metrics/compute_diffusion_metrics.py b/model/common/src/icon4py/model/common/metrics/compute_diffusion_metrics.py index d055ddb711..2a8db4fde5 100644 --- a/model/common/src/icon4py/model/common/metrics/compute_diffusion_metrics.py +++ b/model/common/src/icon4py/model/common/metrics/compute_diffusion_metrics.py @@ -8,17 +8,17 @@ import numpy as np -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc def _compute_nbidx( k_range: range, - z_mc: field_alloc.NDArray, - z_mc_off: field_alloc.NDArray, - nbidx: field_alloc.NDArray, + z_mc: data_alloc.NDArray, + z_mc_off: data_alloc.NDArray, + nbidx: data_alloc.NDArray, jc: int, nlev: int, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: for ind in range(3): jk_start = nlev - 1 for jk in reversed(k_range): @@ -36,12 +36,12 @@ def _compute_nbidx( def _compute_z_vintcoeff( k_range: range, - z_mc: field_alloc.NDArray, - z_mc_off: field_alloc.NDArray, - z_vintcoeff: field_alloc.NDArray, + z_mc: data_alloc.NDArray, + z_mc_off: data_alloc.NDArray, + z_vintcoeff: data_alloc.NDArray, jc: int, nlev: int, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: for ind in range(3): jk_start = nlev - 1 for jk in reversed(k_range): @@ -62,9 +62,9 @@ def _compute_z_vintcoeff( def _compute_ls_params( k_start: list, k_end: list, - z_maxslp_avg: field_alloc.NDArray, - z_maxhgtd_avg: field_alloc.NDArray, - c_owner_mask: field_alloc.NDArray, + z_maxslp_avg: data_alloc.NDArray, + z_maxhgtd_avg: data_alloc.NDArray, + c_owner_mask: data_alloc.NDArray, thslp_zdiffu: float, thhgtd_zdiffu: float, cell_nudging: int, @@ -94,11 +94,11 @@ def _compute_ls_params( def _compute_k_start_end( - z_mc: field_alloc.NDArray, - max_nbhgt: field_alloc.NDArray, - z_maxslp_avg: field_alloc.NDArray, - z_maxhgtd_avg: field_alloc.NDArray, - c_owner_mask: field_alloc.NDArray, + z_mc: data_alloc.NDArray, + max_nbhgt: data_alloc.NDArray, + z_maxslp_avg: data_alloc.NDArray, + z_maxhgtd_avg: data_alloc.NDArray, + c_owner_mask: data_alloc.NDArray, thslp_zdiffu: float, thhgtd_zdiffu: float, cell_nudging: int, @@ -129,24 +129,24 @@ def _compute_k_start_end( def compute_diffusion_metrics( - z_mc: field_alloc.NDArray, - z_mc_off: field_alloc.NDArray, - max_nbhgt: field_alloc.NDArray, - c_owner_mask: field_alloc.NDArray, - nbidx: field_alloc.NDArray, - z_vintcoeff: field_alloc.NDArray, - z_maxslp_avg: field_alloc.NDArray, - z_maxhgtd_avg: field_alloc.NDArray, - mask_hdiff: field_alloc.NDArray, - zd_diffcoef_dsl: field_alloc.NDArray, - zd_intcoef_dsl: field_alloc.NDArray, - zd_vertoffset_dsl: field_alloc.NDArray, + z_mc: data_alloc.NDArray, + z_mc_off: data_alloc.NDArray, + max_nbhgt: data_alloc.NDArray, + c_owner_mask: data_alloc.NDArray, + nbidx: data_alloc.NDArray, + z_vintcoeff: data_alloc.NDArray, + z_maxslp_avg: data_alloc.NDArray, + z_maxhgtd_avg: data_alloc.NDArray, + mask_hdiff: data_alloc.NDArray, + zd_diffcoef_dsl: data_alloc.NDArray, + zd_intcoef_dsl: data_alloc.NDArray, + zd_vertoffset_dsl: data_alloc.NDArray, thslp_zdiffu: float, thhgtd_zdiffu: float, cell_nudging: int, n_cells: int, nlev: int, -) -> tuple[field_alloc.NDArray, field_alloc.NDArray, field_alloc.NDArray, field_alloc.NDArray]: +) -> tuple[data_alloc.NDArray, data_alloc.NDArray, data_alloc.NDArray, data_alloc.NDArray]: k_start, k_end = _compute_k_start_end( z_mc=z_mc, max_nbhgt=max_nbhgt, diff --git a/model/common/src/icon4py/model/common/metrics/compute_vwind_impl_wgt.py b/model/common/src/icon4py/model/common/metrics/compute_vwind_impl_wgt.py index 80ed196b5b..d9fe3caa76 100644 --- a/model/common/src/icon4py/model/common/metrics/compute_vwind_impl_wgt.py +++ b/model/common/src/icon4py/model/common/metrics/compute_vwind_impl_wgt.py @@ -12,7 +12,7 @@ from icon4py.model.common.grid import base as grid from icon4py.model.common.metrics.metric_fields import compute_vwind_impl_wgt_partial from icon4py.model.common.type_alias import wpfloat -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc def compute_vwind_impl_wgt( @@ -29,7 +29,7 @@ def compute_vwind_impl_wgt( experiment: str, vwind_offctr: float, horizontal_start_cell: int, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: compute_vwind_impl_wgt_partial.with_backend(backend)( z_ddxn_z_half_e=z_ddxn_z_half_e, z_ddxt_z_half_e=z_ddxt_z_half_e, diff --git a/model/common/src/icon4py/model/common/metrics/compute_wgtfacq.py b/model/common/src/icon4py/model/common/metrics/compute_wgtfacq.py index f2a905db7c..de0ae94cce 100644 --- a/model/common/src/icon4py/model/common/metrics/compute_wgtfacq.py +++ b/model/common/src/icon4py/model/common/metrics/compute_wgtfacq.py @@ -8,12 +8,12 @@ import numpy as np -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc def _compute_z1_z2_z3( - z_ifc: field_alloc.NDArray, i1: int, i2: int, i3: int, i4: int -) -> tuple[field_alloc.NDArray, field_alloc.NDArray, field_alloc.NDArray]: + z_ifc: data_alloc.NDArray, i1: int, i2: int, i3: int, i4: int +) -> tuple[data_alloc.NDArray, data_alloc.NDArray, data_alloc.NDArray]: z1 = 0.5 * (z_ifc[:, i2] - z_ifc[:, i1]) z2 = 0.5 * (z_ifc[:, i2] + z_ifc[:, i3]) - z_ifc[:, i1] z3 = 0.5 * (z_ifc[:, i3] + z_ifc[:, i4]) - z_ifc[:, i1] @@ -21,9 +21,9 @@ def _compute_z1_z2_z3( def compute_wgtfacq_c_dsl( - z_ifc: field_alloc.NDArray, + z_ifc: data_alloc.NDArray, nlev: int, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: """ Compute weighting factor for quadratic interpolation to surface. @@ -50,9 +50,9 @@ def compute_wgtfacq_c_dsl( def compute_wgtfacq_e_dsl( e2c, - z_ifc: field_alloc.NDArray, - c_lin_e: field_alloc.NDArray, - wgtfacq_c_dsl: field_alloc.NDArray, + z_ifc: data_alloc.NDArray, + c_lin_e: data_alloc.NDArray, + wgtfacq_c_dsl: data_alloc.NDArray, n_edges: int, nlev: int, ): diff --git a/model/common/src/icon4py/model/common/metrics/compute_zdiff_gradp_dsl.py b/model/common/src/icon4py/model/common/metrics/compute_zdiff_gradp_dsl.py index 3657c7bd38..13dced1f58 100644 --- a/model/common/src/icon4py/model/common/metrics/compute_zdiff_gradp_dsl.py +++ b/model/common/src/icon4py/model/common/metrics/compute_zdiff_gradp_dsl.py @@ -8,21 +8,21 @@ import numpy as np -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc def compute_zdiff_gradp_dsl( e2c, - z_me: field_alloc.NDArray, - z_mc: field_alloc.NDArray, - z_ifc: field_alloc.NDArray, - flat_idx: field_alloc.NDArray, - z_aux2: field_alloc.NDArray, + z_me: data_alloc.NDArray, + z_mc: data_alloc.NDArray, + z_ifc: data_alloc.NDArray, + flat_idx: data_alloc.NDArray, + z_aux2: data_alloc.NDArray, nlev: int, horizontal_start: int, horizontal_start_1: int, nedges: int, -) -> field_alloc.NDArray: +) -> data_alloc.NDArray: zdiff_gradp = np.zeros_like(z_mc[e2c]) zdiff_gradp[horizontal_start:, :, :] = ( np.expand_dims(z_me, axis=1)[horizontal_start:, :, :] - z_mc[e2c][horizontal_start:, :, :] diff --git a/model/common/src/icon4py/model/common/states/factory.py b/model/common/src/icon4py/model/common/states/factory.py index b759e67709..58aacda102 100644 --- a/model/common/src/icon4py/model/common/states/factory.py +++ b/model/common/src/icon4py/model/common/states/factory.py @@ -70,7 +70,7 @@ vertical as v_grid, ) from icon4py.model.common.states import model, utils as state_utils -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc DomainType = TypeVar("DomainType", h_grid.Domain, v_grid.Domain) @@ -582,7 +582,7 @@ def _compute( args.update(self._params) results = self._func(**args) ## TODO: can the order of return values be checked? - results = (results,) if isinstance(results, field_alloc.NDArray) else results + results = (results,) if isinstance(results, data_alloc.NDArray) else results self._fields = { k: gtx.as_field(tuple(self._dims), results[i], allocator=backend) for i, k in enumerate(self.fields) diff --git a/model/common/src/icon4py/model/common/states/utils.py b/model/common/src/icon4py/model/common/states/utils.py index cfad64e579..eb537e8a0f 100644 --- a/model/common/src/icon4py/model/common/states/utils.py +++ b/model/common/src/icon4py/model/common/states/utils.py @@ -11,7 +11,7 @@ import xarray as xa from icon4py.model.common import dimension as dims, type_alias as ta -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc DimT = TypeVar("DimT", dims.KDim, dims.KHalfDim, dims.CellDim, dims.EdgeDim, dims.VertexDim) @@ -23,9 +23,9 @@ T = TypeVar("T", ta.wpfloat, ta.vpfloat, float, bool, gtx.int32, gtx.int64) GTXFieldType: TypeAlias = gtx.Field[Sequence[gtx.Dims[DimT]], T] -FieldType: TypeAlias = Union[gtx.Field[Sequence[gtx.Dims[DimT]], T], field_alloc.NDArray] +FieldType: TypeAlias = Union[gtx.Field[Sequence[gtx.Dims[DimT]], T], data_alloc.NDArray] def to_data_array(field: FieldType, attrs: dict): - data = field_alloc.as_numpy(field) + data = data_alloc.as_numpy(field) return xa.DataArray(data, attrs=attrs) diff --git a/model/common/src/icon4py/model/common/utils/__init__.py b/model/common/src/icon4py/model/common/utils/__init__.py index c77b6ecd59..d4b453443b 100644 --- a/model/common/src/icon4py/model/common/utils/__init__.py +++ b/model/common/src/icon4py/model/common/utils/__init__.py @@ -16,7 +16,7 @@ chainable, named_property, ) -from . import fields, serialbox +from . import data_allocation, serialbox __all__ = [ @@ -29,6 +29,6 @@ # Functions "chainable", # Modules - "fields", + "data_allocation", "serialbox", ] diff --git a/model/common/src/icon4py/model/common/utils/fields.py b/model/common/src/icon4py/model/common/utils/fields.py deleted file mode 100644 index 3c15f65df7..0000000000 --- a/model/common/src/icon4py/model/common/utils/fields.py +++ /dev/null @@ -1,203 +0,0 @@ -# ICON4Py - ICON inspired code in Python and GT4Py -# -# Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss -# All rights reserved. -# -# Please, refer to the LICENSE file in the root directory. -# SPDX-License-Identifier: BSD-3-Clause - -from __future__ import annotations - -import logging as log -from typing import Optional, TypeAlias, Union, TYPE_CHECKING - -import gt4py._core.definitions as gt_core_defs -import gt4py.next as gtx -from gt4py.next import backend -import numpy as np -import numpy.typing as npt - -from icon4py.model.common import type_alias as ta - -if TYPE_CHECKING: - from icon4py.model.common import dimension - from icon4py.model.common.grid import base as grid_base - - -#: Enum values from Enum values taken from DLPack reference implementation at: -#: https://github.com/dmlc/dlpack/blob/main/include/dlpack/dlpack.h -#: via GT4Py -CUDA_DEVICE_TYPES = ( - gt_core_defs.DeviceType.CUDA, - gt_core_defs.DeviceType.CUDA_MANAGED, - gt_core_defs.DeviceType.ROCM, -) - -try: - import cupy as xp -except ImportError: - import numpy as cp - -NDArrayInterface: TypeAlias = Union[np.ndarray, "cp.ndarray", gtx.Field] - - -def as_numpy(array: NDArrayInterface): - if isinstance(array, np.ndarray): - return array - else: - return array.asnumpy() - -def is_cupy_device(backend: backend.Backend) -> bool: - if backend is not None: - return backend.allocator.__gt_device_type__ in CUDA_DEVICE_TYPES - else: - return False - - -def array_ns(try_cupy: bool): - if try_cupy: - try: - import cupy as cp - - return cp - except ImportError: - log.warning("No cupy installed, falling back to numpy for array_ns") - import numpy as np - - return np - - -def import_array_ns(backend: backend.Backend): - """Import cupy or numpy depending on a chosen GT4Py backend DevicType.""" - return array_ns(is_cupy_device(backend)) - - -def as_field(field: gtx.Field, backend: backend.Backend) -> gtx.Field: - """Convenience function to transfer an existing Field to a given backend.""" - return gtx.as_field(field.domain, field.ndarray, allocator=backend) - - -def as_1D_sparse_field(field: gtx.Field, target_dim: gtx.Dimension) -> gtx.Field: - """Convert a 2D sparse field to a 1D flattened (Felix-style) sparse field.""" - buffer = field.ndarray - return numpy_to_1D_sparse_field(buffer, target_dim) - - -def numpy_to_1D_sparse_field(field: np.ndarray, dim: gtx.Dimension) -> gtx.Field: - """Convert a 2D sparse field to a 1D flattened (Felix-style) sparse field.""" - old_shape = field.shape - assert len(old_shape) == 2 - new_shape = (old_shape[0] * old_shape[1],) - return gtx.as_field((dim,), field.reshape(new_shape)) - - -def flatten_first_two_dims(*dims: gtx.Dimension, field: gtx.Field) -> gtx.Field: - """Convert a n-D sparse field to a (n-1)-D flattened (Felix-style) sparse field.""" - buffer = field.ndarray - old_shape = buffer.shape - assert len(old_shape) >= 2 - flattened_size = old_shape[0] * old_shape[1] - flattened_shape = (flattened_size,) - new_shape = flattened_shape + old_shape[2:] - newarray = buffer.reshape(new_shape) - return gtx.as_field(dims, newarray) - - -def unflatten_first_two_dims(field: gtx.Field) -> np.array: - """Convert a (n-1)-D flattened (Felix-style) sparse field back to a n-D sparse field.""" - old_shape = np.asarray(field).shape - new_shape = (old_shape[0] // 3, 3) + old_shape[1:] - return np.asarray(field).reshape(new_shape) - - -def random_field( - grid, - *dims, - low: float = -1.0, - high: float = 1.0, - dtype: Optional[npt.DTypeLike] = None, - extend: Optional[dict[gtx.Dimension, int]] = None, - backend=None -) -> gtx.Field: - arr = np.random.default_rng().uniform( - low=low, high=high, size=_shape(grid, *dims, extend=extend) - ) - if dtype: - arr = arr.astype(dtype) - return gtx.as_field(dims, arr, allocator=backend) - - -def zero_field( - grid: grid_base.BaseGrid, - *dims: gtx.Dimension, - dtype=ta.wpfloat, - extend: Optional[dict[gtx.Dimension, int]] = None, - backend=None -) -> gtx.Field: - field_domain = {dim: (0, stop) for dim, stop in zip(dims, _shape(grid, *dims, extend=extend))} - return gtx.constructors.zeros(field_domain, dtype=dtype, allocator=backend) - - -def constant_field( - grid: grid_base.BaseGrid, value: float, *dims: gtx.Dimension, dtype=ta.wpfloat -) -> gtx.Field: - return gtx.as_field( - dims, - value * np.ones(shape=tuple(map(lambda x: grid.size[x], dims)), dtype=dtype), - ) - - -def _shape( - grid, - *dims: gtx.Dimension, - extend: Optional[dict[gtx.Dimension, int]] = None, -) -> tuple[int, ...]: - extend = extend or {} - return tuple(grid.size[dim] + extend.get(dim, 0) for dim in dims) - -def _size(grid, dim: gtx.Dimension, is_half_dim: bool) -> int: - if dim == dimension.KDim and is_half_dim: - return grid.size[dim] + 1 - return grid.size[dim] - - -def random_mask( - grid: grid_base.BaseGrid, - *dims: gtx.Dimension, - dtype: Optional[npt.DTypeLike] = None, - extend: Optional[dict[gtx.Dimension, int]] = None, -) -> gtx.Field: - rng = np.random.default_rng() - shape = _shape(grid, *dims, extend=extend) - arr = np.full(shape, False).flatten() - num_true = int(arr.size * 0.5) - arr[:num_true] = True - rng.shuffle(arr) - arr = np.reshape(arr, newshape=shape) - if dtype: - arr = arr.astype(dtype) - return gtx.as_field(dims, arr) - - -# TODO: are the following functions needed? Don't they overlap with the above ones? -def allocate_zero_field( - *dims: gtx.Dimension, - grid, - is_halfdim=False, - dtype=ta.wpfloat, - backend: Optional[backend.Backend] = None, -) -> gtx.Field: - dimensions = {d: range(_size(grid, d, is_halfdim)) for d in dims} - return gtx.zeros(dimensions, dtype=dtype, allocator=backend) - - -def allocate_indices( - dim: gtx.Dimension, - grid, - is_halfdim=False, - dtype=gtx.int32, - backend: Optional[backend.Backend] = None, -) -> gtx.Field: - xp = import_array_ns(backend) - shapex = _size(grid, dim, is_halfdim) - return gtx.as_field((dim,), xp.arange(shapex, dtype=dtype), allocator=backend) diff --git a/model/common/src/icon4py/model/common/utils/serialbox.py b/model/common/src/icon4py/model/common/utils/serialbox.py index 7112c720a2..77fe333171 100644 --- a/model/common/src/icon4py/model/common/utils/serialbox.py +++ b/model/common/src/icon4py/model/common/utils/serialbox.py @@ -16,11 +16,11 @@ import icon4py.model.common.decomposition.definitions as decomposition import icon4py.model.common.field_type_aliases as fa import icon4py.model.common.grid.states as grid_states -import icon4py.model.common.utils.fields as field_utils +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.common import dimension as dims from icon4py.model.common.grid import base, horizontal, icon from icon4py.model.common.states import prognostic_state -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc log = logging.getLogger(__name__) @@ -319,7 +319,7 @@ def e_owner_mask(self): def f_e(self): return self._get_field("f_e", dims.EdgeDim) - def print_connectivity_info(self, name: str, ar: field_alloc.NDArray): + def print_connectivity_info(self, name: str, ar: data_alloc.NDArray): self.log.debug(f" connectivity {name} {ar.shape}") def c2e(self): @@ -499,28 +499,28 @@ def construct_edge_geometry(self) -> grid_states.EdgeParams: primal_normal_vert: tuple[ gtx.Field[[dims.ECVDim], float], gtx.Field[[dims.ECVDim], float] ] = ( - field_utils.as_1D_sparse_field(self.primal_normal_vert_x(), dims.ECVDim), - field_utils.as_1D_sparse_field(self.primal_normal_vert_y(), dims.ECVDim), + data_alloc.as_1D_sparse_field(self.primal_normal_vert_x(), dims.ECVDim), + data_alloc.as_1D_sparse_field(self.primal_normal_vert_y(), dims.ECVDim), ) dual_normal_vert: tuple[ gtx.Field[[dims.ECVDim], float], gtx.Field[[dims.ECVDim], float] ] = ( - field_utils.as_1D_sparse_field(self.dual_normal_vert_x(), dims.ECVDim), - field_utils.as_1D_sparse_field(self.dual_normal_vert_y(), dims.ECVDim), + data_alloc.as_1D_sparse_field(self.dual_normal_vert_x(), dims.ECVDim), + data_alloc.as_1D_sparse_field(self.dual_normal_vert_y(), dims.ECVDim), ) primal_normal_cell: tuple[ gtx.Field[[dims.ECDim], float], gtx.Field[[dims.ECDim], float] ] = ( - field_utils.as_1D_sparse_field(self.primal_normal_cell_x(), dims.ECDim), - field_utils.as_1D_sparse_field(self.primal_normal_cell_y(), dims.ECDim), + data_alloc.as_1D_sparse_field(self.primal_normal_cell_x(), dims.ECDim), + data_alloc.as_1D_sparse_field(self.primal_normal_cell_y(), dims.ECDim), ) dual_normal_cell: tuple[ gtx.Field[[dims.ECVDim], float], gtx.Field[[dims.ECVDim], float] ] = ( - field_utils.as_1D_sparse_field(self.dual_normal_cell_x(), dims.ECDim), - field_utils.as_1D_sparse_field(self.dual_normal_cell_y(), dims.ECDim), + data_alloc.as_1D_sparse_field(self.dual_normal_cell_x(), dims.ECDim), + data_alloc.as_1D_sparse_field(self.dual_normal_cell_y(), dims.ECDim), ) return grid_states.EdgeParams( tangent_orientation=self.tangent_orientation(), @@ -597,11 +597,11 @@ def nudgecoeff_e(self): def pos_on_tplane_e_x(self): field = self._get_field("pos_on_tplane_e_x", dims.EdgeDim, dims.E2CDim) - return field_utils.as_1D_sparse_field(field[:, 0:2], dims.ECDim) + return data_alloc.as_1D_sparse_field(field[:, 0:2], dims.ECDim) def pos_on_tplane_e_y(self): field = self._get_field("pos_on_tplane_e_y", dims.EdgeDim, dims.E2CDim) - return field_utils.as_1D_sparse_field(field[:, 0:2], dims.ECDim) + return data_alloc.as_1D_sparse_field(field[:, 0:2], dims.ECDim) def rbf_vec_coeff_e(self): buffer = np.squeeze( @@ -706,13 +706,13 @@ def wgtfacq_c_dsl(self): def zdiff_gradp(self): field = self._get_field("zdiff_gradp_dsl", dims.EdgeDim, dims.E2CDim, dims.KDim) - return field_utils.flatten_first_two_dims(dims.ECDim, dims.KDim, field=field) + return data_alloc.flatten_first_two_dims(dims.ECDim, dims.KDim, field=field) def vertoffset_gradp(self): field = self._get_field( "vertoffset_gradp_dsl", dims.EdgeDim, dims.E2CDim, dims.KDim, dtype=gtx.int32 ) - return field_utils.flatten_first_two_dims(dims.ECDim, dims.KDim, field=field) + return data_alloc.flatten_first_two_dims(dims.ECDim, dims.KDim, field=field) def coeff1_dwdz(self): return self._get_field("coeff1_dwdz", dims.CellDim, dims.KDim) @@ -722,7 +722,7 @@ def coeff2_dwdz(self): def coeff_gradekin(self): field = self._get_field("coeff_gradekin", dims.EdgeDim, dims.E2CDim) - return field_utils.as_1D_sparse_field(field, dims.ECDim) + return data_alloc.as_1D_sparse_field(field, dims.ECDim) def ddqz_z_full_e(self): return self._get_field("ddqz_z_full_e", dims.EdgeDim, dims.KDim) @@ -779,7 +779,7 @@ def _read_and_reorder_sparse_field(self, name: str, sparse_size=3): ) def _linearize_first_2dims( - self, data: field_alloc.NDArray, sparse_size: int, target_dims: tuple[gtx.Dimension, ...] + self, data: data_alloc.NDArray, sparse_size: int, target_dims: tuple[gtx.Dimension, ...] ): old_shape = data.shape assert old_shape[1] == sparse_size @@ -799,11 +799,11 @@ def zd_indlist(self): class LeastSquaresSavepoint(IconSavepoint): def lsq_pseudoinv_1(self): field = self._get_field("lsq_pseudoinv_1", dims.CellDim, dims.C2E2CDim) - return field_utils.as_1D_sparse_field(field, dims.CECDim) + return data_alloc.as_1D_sparse_field(field, dims.CECDim) def lsq_pseudoinv_2(self): field = self._get_field("lsq_pseudoinv_2", dims.CellDim, dims.C2E2CDim) - return field_utils.as_1D_sparse_field(field, dims.CECDim) + return data_alloc.as_1D_sparse_field(field, dims.CECDim) class AdvectionInitSavepoint(IconSavepoint): diff --git a/model/common/tests/decomposition_tests/test_mpi_decomposition.py b/model/common/tests/decomposition_tests/test_mpi_decomposition.py index 50d5510324..3d0340216d 100644 --- a/model/common/tests/decomposition_tests/test_mpi_decomposition.py +++ b/model/common/tests/decomposition_tests/test_mpi_decomposition.py @@ -9,7 +9,7 @@ import numpy as np import pytest -from icon4py.model.common.utils.fields import constant_field +from icon4py.model.common.utils.data_allocation import constant_field try: diff --git a/model/common/tests/grid_tests/test_geometry.py b/model/common/tests/grid_tests/test_geometry.py index 562d9ec18a..5652ae1911 100644 --- a/model/common/tests/grid_tests/test_geometry.py +++ b/model/common/tests/grid_tests/test_geometry.py @@ -11,6 +11,7 @@ import pytest from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.grid import ( geometry as geometry, geometry_attributes as attrs, @@ -309,10 +310,10 @@ def test_dual_normal_vert(backend, grid_savepoint, grid_file, experiment): def test_sparse_fields_creator(): grid = simple.SimpleGrid() - f1 = helpers.random_field(grid, dims.EdgeDim) - f2 = helpers.random_field(grid, dims.EdgeDim) - g1 = helpers.random_field(grid, dims.EdgeDim) - g2 = helpers.random_field(grid, dims.EdgeDim) + f1 = data_alloc.random_field(grid, dims.EdgeDim) + f2 = data_alloc.random_field(grid, dims.EdgeDim) + g1 = data_alloc.random_field(grid, dims.EdgeDim) + g2 = data_alloc.random_field(grid, dims.EdgeDim) sparse = as_sparse_field((dims.EdgeDim, dims.E2CDim), [(f1, f2), (g1, g2)]) sparse_e2c = functools.partial(as_sparse_field, (dims.EdgeDim, dims.E2CDim)) diff --git a/model/common/tests/interpolation_tests/test_interpolation_factory.py b/model/common/tests/interpolation_tests/test_interpolation_factory.py index 1077da297b..5b2ceed735 100644 --- a/model/common/tests/interpolation_tests/test_interpolation_factory.py +++ b/model/common/tests/interpolation_tests/test_interpolation_factory.py @@ -15,7 +15,7 @@ interpolation_attributes as attrs, interpolation_factory, ) -from icon4py.model.common.test_utils import ( +from icon4py.model.testing import ( datatest_utils as dt_utils, grid_utils as gridtest_utils, helpers as test_helpers, diff --git a/model/common/tests/interpolation_tests/test_interpolation_fields.py b/model/common/tests/interpolation_tests/test_interpolation_fields.py index 8d2d4fcd15..cb92f10aec 100644 --- a/model/common/tests/interpolation_tests/test_interpolation_fields.py +++ b/model/common/tests/interpolation_tests/test_interpolation_fields.py @@ -35,7 +35,7 @@ processor_props, ranked_data_path, ) -from icon4py.model.common.utils import gt4py_field_allocation as alloc +from icon4py.model.common.utils import data_allocation as data_alloc cell_domain = h_grid.domain(dims.CellDim) @@ -46,7 +46,7 @@ @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_c_lin_e(grid_savepoint, interpolation_savepoint, icon_grid, backend): # fixture - xp = alloc.import_array_ns(backend) + xp = data_alloc.import_array_ns(backend) func = functools.partial(compute_c_lin_e, array_ns=xp) inv_dual_edge_length = grid_savepoint.inv_dual_edge_length() edge_cell_length = grid_savepoint.edge_cell_length() @@ -124,7 +124,7 @@ def test_compute_geofac_rot(grid_savepoint, interpolation_savepoint, icon_grid, @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_geofac_n2s(grid_savepoint, interpolation_savepoint, icon_grid, backend): - xp = alloc.import_array_ns(backend) + xp = data_alloc.import_array_ns(backend) dual_edge_length = grid_savepoint.dual_edge_length() geofac_div = interpolation_savepoint.geofac_div() geofac_n2s_ref = interpolation_savepoint.geofac_n2s() @@ -169,10 +169,10 @@ def test_compute_geofac_grg(grid_savepoint, interpolation_savepoint, icon_grid): horizontal_start, ) assert test_helpers.dallclose( - alloc.as_numpy(geofac_grg_0), geofac_grg_ref[0].asnumpy(), atol=1e-6, rtol=1e-7 + data_alloc.as_numpy(geofac_grg_0), geofac_grg_ref[0].asnumpy(), atol=1e-6, rtol=1e-7 ) assert test_helpers.dallclose( - alloc.as_numpy(geofac_grg_1), geofac_grg_ref[1].asnumpy(), atol=1e-6, rtol=1e-7 + data_alloc.as_numpy(geofac_grg_1), geofac_grg_ref[1].asnumpy(), atol=1e-6, rtol=1e-7 ) diff --git a/model/common/tests/io_tests/test_io.py b/model/common/tests/io_tests/test_io.py index 7a8e49cb84..590a5471e4 100644 --- a/model/common/tests/io_tests/test_io.py +++ b/model/common/tests/io_tests/test_io.py @@ -29,7 +29,7 @@ to_delta, ) from icon4py.model.common.states import data -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.testing import datatest_utils, grid_utils, helpers @@ -47,11 +47,11 @@ def model_state(grid: base.BaseGrid) -> dict[str, xr.DataArray]: - rho = field_utils.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) - exner = field_utils.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) - theta_v = field_utils.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) - w = field_utils.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}, dtype=np.float32) - vn = field_utils.random_field(grid, dims.EdgeDim, dims.KDim, dtype=np.float32) + rho = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) + exner = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) + theta_v = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) + w = data_alloc.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}, dtype=np.float32) + vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=np.float32) return { "air_density": utils.to_data_array(rho, data.PROGNOSTIC_CF_ATTRIBUTES["air_density"]), "exner_function": utils.to_data_array( diff --git a/model/common/tests/math_tests/test_helpers.py b/model/common/tests/math_tests/test_helpers.py index 0a5f45c830..565ede0374 100644 --- a/model/common/tests/math_tests/test_helpers.py +++ b/model/common/tests/math_tests/test_helpers.py @@ -6,32 +6,33 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause +import numpy as np + from icon4py.model.common import dimension as dims -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.grid import simple from icon4py.model.common.math import helpers -from icon4py.model.common.settings import xp from icon4py.model.testing import helpers as test_helpers def test_cross_product(backend): mesh = simple.SimpleGrid() - x1 = field_utils.random_field(mesh, dims.EdgeDim) - y1 = field_utils.random_field(mesh, dims.EdgeDim) - z1 = field_utils.random_field(mesh, dims.EdgeDim) - x2 = field_utils.random_field(mesh, dims.EdgeDim) - y2 = field_utils.random_field(mesh, dims.EdgeDim) - z2 = field_utils.random_field(mesh, dims.EdgeDim) - x = field_utils.zero_field(mesh, dims.EdgeDim) - y = field_utils.zero_field(mesh, dims.EdgeDim) - z = field_utils.zero_field(mesh, dims.EdgeDim) + x1 = data_alloc.random_field(mesh, dims.EdgeDim) + y1 = data_alloc.random_field(mesh, dims.EdgeDim) + z1 = data_alloc.random_field(mesh, dims.EdgeDim) + x2 = data_alloc.random_field(mesh, dims.EdgeDim) + y2 = data_alloc.random_field(mesh, dims.EdgeDim) + z2 = data_alloc.random_field(mesh, dims.EdgeDim) + x = data_alloc.zero_field(mesh, dims.EdgeDim) + y = data_alloc.zero_field(mesh, dims.EdgeDim) + z = data_alloc.zero_field(mesh, dims.EdgeDim) helpers.cross_product_on_edges.with_backend(backend)( x1, x2, y1, y2, z1, z2, out=(x, y, z), offset_provider={} ) - a = xp.column_stack((x1.ndarray, y1.ndarray, z1.ndarray)) - b = xp.column_stack((x2.ndarray, y2.ndarray, z2.ndarray)) - c = xp.cross(a, b) + a = np.column_stack((x1.ndarray, y1.ndarray, z1.ndarray)) + b = np.column_stack((x2.ndarray, y2.ndarray, z2.ndarray)) + c = np.cross(a, b) assert test_helpers.dallclose(c[:, 0], x.ndarray) assert test_helpers.dallclose(c[:, 1], y.ndarray) diff --git a/model/common/tests/math_tests/test_smagorinsky.py b/model/common/tests/math_tests/test_smagorinsky.py index a796f156db..f1a025de32 100644 --- a/model/common/tests/math_tests/test_smagorinsky.py +++ b/model/common/tests/math_tests/test_smagorinsky.py @@ -11,7 +11,7 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.math.smagorinsky import en_smag_fac_for_zero_nshift -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.testing.reference_funcs import ( enhanced_smagorinski_factor_numpy, ) @@ -21,8 +21,8 @@ def test_init_enh_smag_fac(backend, grid): if backend is None: pytest.skip("test does not run on embedded backend") - enh_smag_fac = field_utils.zero_field(grid, dims.KDim) - a_vec = field_utils.random_field(grid, dims.KDim, low=1.0, high=10.0, extend={dims.KDim: 1}) + enh_smag_fac = data_alloc.zero_field(grid, dims.KDim) + a_vec = data_alloc.random_field(grid, dims.KDim, low=1.0, high=10.0, extend={dims.KDim: 1}) fac = (0.67, 0.5, 1.3, 0.8) z = (0.1, 0.2, 0.3, 0.4) diff --git a/model/common/tests/metric_tests/test_compute_diffusion_metrics.py b/model/common/tests/metric_tests/test_compute_diffusion_metrics.py index 7f596cd4c4..89b70ad6da 100644 --- a/model/common/tests/metric_tests/test_compute_diffusion_metrics.py +++ b/model/common/tests/metric_tests/test_compute_diffusion_metrics.py @@ -20,7 +20,7 @@ compute_weighted_cell_neighbor_sum, compute_z_mc, ) -from icon4py.model.common.utils.fields import ( +from icon4py.model.common.utils.data_allocation import ( constant_field, flatten_first_two_dims, zero_field diff --git a/model/common/tests/metric_tests/test_compute_nudgecoeffs.py b/model/common/tests/metric_tests/test_compute_nudgecoeffs.py index 533ac1117b..e000d24a18 100644 --- a/model/common/tests/metric_tests/test_compute_nudgecoeffs.py +++ b/model/common/tests/metric_tests/test_compute_nudgecoeffs.py @@ -23,7 +23,7 @@ processor_props, ranked_data_path, ) -from icon4py.model.common.utils.fields import zero_field +from icon4py.model.common.utils.data_allocation import zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/common/tests/metric_tests/test_compute_wgtfac_c.py b/model/common/tests/metric_tests/test_compute_wgtfac_c.py index 9c3ba8335e..43716ea0b8 100644 --- a/model/common/tests/metric_tests/test_compute_wgtfac_c.py +++ b/model/common/tests/metric_tests/test_compute_wgtfac_c.py @@ -11,17 +11,17 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.metrics.compute_wgtfac_c import compute_wgtfac_c from icon4py.model.common.type_alias import wpfloat -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.testing import datatest_utils as dt_utils from icon4py.model.testing.helpers import dallclose @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_wgtfac_c(icon_grid, metrics_savepoint): # fixture - wgtfac_c = field_utils(icon_grid, dims.CellDim, dims.KDim, dtype=wpfloat, extend={dims.KDim: 1}) + wgtfac_c = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=wpfloat, extend={dims.KDim: 1}) wgtfac_c_ref = metrics_savepoint.wgtfac_c() z_ifc = metrics_savepoint.z_ifc() - k = field_utils.allocate_indices(dims.KDim, grid=icon_grid, is_halfdim=True) + k = data_alloc.allocate_indices(dims.KDim, grid=icon_grid, is_halfdim=True) vertical_end = icon_grid.num_levels diff --git a/model/common/tests/metric_tests/test_compute_zdiff_gradp_dsl.py b/model/common/tests/metric_tests/test_compute_zdiff_gradp_dsl.py index 6d17d4cb0c..3441e9f08f 100644 --- a/model/common/tests/metric_tests/test_compute_zdiff_gradp_dsl.py +++ b/model/common/tests/metric_tests/test_compute_zdiff_gradp_dsl.py @@ -20,7 +20,7 @@ _compute_z_aux2, compute_z_mc, ) -from icon4py.model.common.utils.fields import flatten_first_two_dims, zero_field +from icon4py.model.common.utils.data_allocation import flatten_first_two_dims, zero_field from icon4py.model.testing.helpers import ( dallclose, is_roundtrip, diff --git a/model/common/tests/metric_tests/test_metric_fields.py b/model/common/tests/metric_tests/test_metric_fields.py index 03a69b9a8b..df2425657e 100644 --- a/model/common/tests/metric_tests/test_metric_fields.py +++ b/model/common/tests/metric_tests/test_metric_fields.py @@ -48,7 +48,7 @@ compute_z_mc, ) from icon4py.model.testing import datatest_utils as dt_utils -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.testing.helpers import ( StencilTest, dallclose, @@ -78,8 +78,8 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - z_mc = field_utils.zero_field(grid, dims.CellDim, dims.KDim) - z_if = field_utils.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + z_mc = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + z_if = data_alloc.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) horizontal_start = 0 horizontal_end = grid.num_cells vertical_start = 0 @@ -102,7 +102,7 @@ def test_compute_ddq_z_half(icon_grid, metrics_savepoint, backend): pytest.skip("skipping: unsupported backend") ddq_z_half_ref = metrics_savepoint.ddqz_z_half() z_ifc = metrics_savepoint.z_ifc() - z_mc = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + z_mc = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) nlevp1 = icon_grid.num_levels + 1 k_index = gtx.as_field((dims.KDim,), np.arange(nlevp1, dtype=gtx.int32)) compute_z_mc.with_backend(backend)( @@ -114,7 +114,7 @@ def test_compute_ddq_z_half(icon_grid, metrics_savepoint, backend): vertical_end=gtx.int32(icon_grid.num_levels), offset_provider={"Koff": icon_grid.get_offset_provider("Koff")}, ) - ddqz_z_half = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + ddqz_z_half = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) compute_ddqz_z_half.with_backend(backend=backend)( z_ifc=z_ifc, @@ -139,8 +139,8 @@ def test_compute_ddqz_z_full_and_inverse(icon_grid, metrics_savepoint, backend): pytest.skip("skipping: slow backend") z_ifc = metrics_savepoint.z_ifc() inv_ddqz_full_ref = metrics_savepoint.inv_ddqz_z_full() - ddqz_z_full = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) - inv_ddqz_z_full = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) + ddqz_z_full = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) + inv_ddqz_z_full = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) compute_ddqz_z_full_and_inverse.with_backend(backend)( z_ifc=z_ifc, @@ -161,7 +161,7 @@ def test_compute_ddqz_z_full_and_inverse(icon_grid, metrics_savepoint, backend): @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_scalfac_dd3d(icon_grid, metrics_savepoint, grid_savepoint, backend): scalfac_dd3d_ref = metrics_savepoint.scalfac_dd3d() - scalfac_dd3d_full = field_utils.zero_field(icon_grid, dims.KDim) + scalfac_dd3d_full = data_alloc.zero_field(icon_grid, dims.KDim) divdamp_trans_start = 12500.0 divdamp_trans_end = 17500.0 divdamp_type = 3 @@ -186,7 +186,7 @@ def test_compute_scalfac_dd3d(icon_grid, metrics_savepoint, grid_savepoint, back def test_compute_rayleigh_w(icon_grid, experiment, metrics_savepoint, grid_savepoint, backend): rayleigh_w_ref = metrics_savepoint.rayleigh_w() vct_a_1 = grid_savepoint.vct_a().asnumpy()[0] - rayleigh_w_full = field_utils.zero_field(icon_grid, dims.KDim, extend={dims.KDim: 1}) + rayleigh_w_full = data_alloc.zero_field(icon_grid, dims.KDim, extend={dims.KDim: 1}) rayleigh_type = 2 rayleigh_coeff = 0.1 if experiment == dt_utils.GLOBAL_EXPERIMENT else 5.0 damping_height = 50000.0 if experiment == dt_utils.GLOBAL_EXPERIMENT else 12500.0 @@ -216,8 +216,8 @@ def test_compute_coeff_dwdz(icon_grid, metrics_savepoint, grid_savepoint, backen coeff1_dwdz_ref = metrics_savepoint.coeff1_dwdz() coeff2_dwdz_ref = metrics_savepoint.coeff2_dwdz() - coeff1_dwdz_full = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) - coeff2_dwdz_full = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) + coeff1_dwdz_full = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) + coeff2_dwdz_full = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) ddqz_z_full = gtx.as_field( (dims.CellDim, dims.KDim), 1 / metrics_savepoint.inv_ddqz_z_full().asnumpy() ) @@ -245,7 +245,7 @@ def test_compute_d2dexdz2_fac_mc(icon_grid, metrics_savepoint, grid_savepoint, b if is_roundtrip(backend): pytest.skip("skipping: slow backend") z_ifc = metrics_savepoint.z_ifc() - z_mc = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) + z_mc = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) compute_z_mc.with_backend(backend)( z_ifc=z_ifc, z_mc=z_mc, @@ -259,8 +259,8 @@ def test_compute_d2dexdz2_fac_mc(icon_grid, metrics_savepoint, grid_savepoint, b d2dexdz2_fac1_mc_ref = metrics_savepoint.d2dexdz2_fac1_mc() d2dexdz2_fac2_mc_ref = metrics_savepoint.d2dexdz2_fac2_mc() - d2dexdz2_fac1_mc_full = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) - d2dexdz2_fac2_mc_full = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) + d2dexdz2_fac1_mc_full = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) + d2dexdz2_fac2_mc_full = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) cpd = constants.CPD grav = constants.GRAV del_t_bg = constants.DEL_T_BG @@ -313,7 +313,7 @@ def test_compute_ddxt_z_full_e( vertical_start = 0 vertical_end = icon_grid.num_levels + 1 cells_aw_verts = interpolation_savepoint.c_intp().asnumpy() - z_ifv = field_utils.zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) + z_ifv = data_alloc.zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) compute_cell_2_vertex_interpolation.with_backend(backend)( z_ifc, gtx.as_field((dims.VertexDim, dims.V2CDim), cells_aw_verts), @@ -324,7 +324,7 @@ def test_compute_ddxt_z_full_e( vertical_end=vertical_end, offset_provider={"V2C": icon_grid.get_offset_provider("V2C")}, ) - ddxt_z_half_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + ddxt_z_half_e = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) compute_ddxt_z_half_e.with_backend(backend)( z_ifv=z_ifv, inv_primal_edge_length=inv_primal_edge_length, @@ -336,7 +336,7 @@ def test_compute_ddxt_z_full_e( vertical_end=vertical_end, offset_provider={"E2V": icon_grid.get_offset_provider("E2V")}, ) - ddxt_z_full = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) + ddxt_z_full = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim) compute_ddxn_z_full.with_backend(backend)( z_ddxnt_z_half_e=ddxt_z_half_e, ddxn_z_full=ddxt_z_full, @@ -349,7 +349,7 @@ def test_compute_ddxt_z_full_e( @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_vwind_expl_wgt(icon_grid, metrics_savepoint, backend): - vwind_expl_wgt_full = field_utils.zero_field(icon_grid, dims.CellDim) + vwind_expl_wgt_full = data_alloc.zero_field(icon_grid, dims.CellDim) vwind_expl_wgt_ref = metrics_savepoint.vwind_expl_wgt() vwind_impl_wgt = metrics_savepoint.vwind_impl_wgt() @@ -378,7 +378,7 @@ def test_compute_ddqz_z_full_e( ddqz_z_full_e_ref = metrics_savepoint.ddqz_z_full_e().asnumpy() vertical_start = 0 vertical_end = icon_grid.num_levels - ddqz_z_full_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) + ddqz_z_full_e = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim) cell_2_edge_interpolation.with_backend(backend)( in_field=ddqz_z_full, coeff=c_lin_e, @@ -406,7 +406,7 @@ def test_compute_ddxn_z_full( horizontal_end = icon_grid.end_index(edge_domain(horizontal.Zone.INTERIOR)) vertical_start = 0 vertical_end = icon_grid.num_levels + 1 - ddxn_z_half_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + ddxn_z_half_e = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) compute_ddxn_z_half_e.with_backend(backend)( z_ifc=z_ifc, inv_dual_edge_length=inv_dual_edge_length, @@ -417,7 +417,7 @@ def test_compute_ddxn_z_full( vertical_end=vertical_end, offset_provider={"E2C": icon_grid.get_offset_provider("E2C")}, ) - ddxn_z_full = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) + ddxn_z_full = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim) compute_ddxn_z_full.with_backend(backend)( z_ddxnt_z_half_e=ddxn_z_half_e, ddxn_z_full=ddxn_z_full, @@ -449,7 +449,7 @@ def test_compute_ddxt_z_full( vertical_start = 0 vertical_end = icon_grid.num_levels + 1 cells_aw_verts = interpolation_savepoint.c_intp().asnumpy() - z_ifv = field_utils.zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) + z_ifv = data_alloc.zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) compute_cell_2_vertex_interpolation.with_backend(backend)( z_ifc, gtx.as_field((dims.VertexDim, dims.V2CDim), cells_aw_verts), @@ -460,7 +460,7 @@ def test_compute_ddxt_z_full( vertical_start=vertical_start, vertical_end=vertical_end, ) - ddxt_z_half_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + ddxt_z_half_e = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) compute_ddxt_z_half_e.with_backend(backend)( z_ifv=z_ifv, inv_primal_edge_length=inv_primal_edge_length, @@ -472,7 +472,7 @@ def test_compute_ddxt_z_full( vertical_end=vertical_end, offset_provider={"E2V": icon_grid.get_offset_provider("E2V")}, ) - ddxt_z_full = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) + ddxt_z_full = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim) compute_ddxn_z_full.with_backend(backend)( z_ddxnt_z_half_e=ddxt_z_half_e, ddxn_z_full=ddxt_z_full, @@ -523,11 +523,11 @@ def test_compute_vwind_impl_wgt( pytest.skip("skipping: slow backend") z_ifc = metrics_savepoint.z_ifc() inv_dual_edge_length = grid_savepoint.inv_dual_edge_length() - z_ddxn_z_half_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + z_ddxn_z_half_e = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) tangent_orientation = grid_savepoint.tangent_orientation() inv_primal_edge_length = grid_savepoint.inverse_primal_edge_lengths() - z_ddxt_z_half_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) - z_ifv = field_utils.zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) + z_ddxt_z_half_e = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + z_ifv = data_alloc.zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) horizontal_start = icon_grid.start_index(edge_domain(horizontal.Zone.LATERAL_BOUNDARY_LEVEL_2)) horizontal_end = icon_grid.end_index(edge_domain(horizontal.Zone.INTERIOR)) @@ -615,7 +615,7 @@ def test_compute_vwind_impl_wgt( def test_compute_wgtfac_e(metrics_savepoint, interpolation_savepoint, icon_grid, backend): if is_roundtrip(backend): pytest.skip("skipping: slow backend") - wgtfac_e = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + wgtfac_e = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) wgtfac_e_ref = metrics_savepoint.wgtfac_e() compute_wgtfac_e.with_backend(backend)( wgtfac_c=metrics_savepoint.wgtfac_c(), @@ -640,13 +640,13 @@ def test_compute_pg_exdist_dsl( pg_exdist_ref = metrics_savepoint.pg_exdist() nlev = icon_grid.num_levels k_lev = gtx.as_field((dims.KDim,), np.arange(nlev, dtype=gtx.int32)) - pg_edgeidx = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - pg_vertidx = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - pg_exdist_dsl = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) - z_me = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) - z_aux2 = field_utils.zero_field(icon_grid, dims.EdgeDim) - z_mc = field_utils.zero_field(icon_grid, dims.CellDim, dims.KDim) - flat_idx = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim) + pg_edgeidx = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + pg_vertidx = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + pg_exdist_dsl = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim) + z_me = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim) + z_aux2 = data_alloc.zero_field(icon_grid, dims.EdgeDim) + z_mc = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) + flat_idx = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim) z_ifc = metrics_savepoint.z_ifc() z_ifc_sliced = gtx.as_field((dims.CellDim,), z_ifc.asnumpy()[:, nlev]) start_edge_nudging = icon_grid.end_index(edge_domain(horizontal.Zone.NUDGING)) @@ -724,7 +724,7 @@ def test_compute_pg_exdist_dsl( }, ) - pg_edgeidx_dsl = field_utils.zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=bool) + pg_edgeidx_dsl = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=bool) pg_edgeidx_dsl_ref = metrics_savepoint.pg_edgeidx_dsl() compute_pg_edgeidx_dsl.with_backend(backend)( @@ -745,7 +745,7 @@ def test_compute_pg_exdist_dsl( @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_mask_prog_halo_c(metrics_savepoint, icon_grid, grid_savepoint, backend): - mask_prog_halo_c_full = field_utils.zero_field(icon_grid, dims.CellDim, dtype=bool) + mask_prog_halo_c_full = data_alloc.zero_field(icon_grid, dims.CellDim, dtype=bool) c_refin_ctrl = grid_savepoint.refin_ctrl(dims.CellDim) mask_prog_halo_c_ref = metrics_savepoint.mask_prog_halo_c() horizontal_start = icon_grid.start_index(cell_domain(horizontal.Zone.HALO)) @@ -763,7 +763,7 @@ def test_compute_mask_prog_halo_c(metrics_savepoint, icon_grid, grid_savepoint, @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_bdy_halo_c(metrics_savepoint, icon_grid, grid_savepoint, backend): - bdy_halo_c_full = field_utils.zero_field(icon_grid, dims.CellDim, dtype=bool) + bdy_halo_c_full = data_alloc.zero_field(icon_grid, dims.CellDim, dtype=bool) c_refin_ctrl = grid_savepoint.refin_ctrl(dims.CellDim) bdy_halo_c_ref = metrics_savepoint.bdy_halo_c() horizontal_start = icon_grid.start_index(cell_domain(horizontal.Zone.HALO)) @@ -783,7 +783,7 @@ def test_compute_bdy_halo_c(metrics_savepoint, icon_grid, grid_savepoint, backen @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_hmask_dd3d(metrics_savepoint, icon_grid, grid_savepoint, backend): - hmask_dd3d_full = field_utils.zero_field(icon_grid, dims.EdgeDim) + hmask_dd3d_full = data_alloc.zero_field(icon_grid, dims.EdgeDim) e_refin_ctrl = grid_savepoint.refin_ctrl(dims.EdgeDim) horizontal_start = icon_grid.start_index(cell_domain(horizontal.Zone.LATERAL_BOUNDARY_LEVEL_2)) hmask_dd3d_ref = metrics_savepoint.hmask_dd3d() diff --git a/model/common/tests/metric_tests/test_metric_scalars.py b/model/common/tests/metric_tests/test_metric_scalars.py index 7acfe0ae46..adad6c4270 100644 --- a/model/common/tests/metric_tests/test_metric_scalars.py +++ b/model/common/tests/metric_tests/test_metric_scalars.py @@ -7,7 +7,7 @@ # SPDX-License-Identifier: BSD-3-Clause from icon4py.model.common import dimension as dims -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.grid.simple import SimpleGrid from icon4py.model.common.metrics.metric_scalars import compute_kstart_dd3d from icon4py.model.common.type_alias import wpfloat @@ -16,7 +16,7 @@ def test_compute_kstart_dd3d(): grid = SimpleGrid() - scalfac_dd3d_full = field_utils.random_field(grid, dims.KDim, low=0.1, high=3.0, dtype=wpfloat).asnumpy() + scalfac_dd3d_full = data_alloc.random_field(grid, dims.KDim, low=0.1, high=3.0, dtype=wpfloat).asnumpy() scalfac_dd3d_full[0:3] = 0.0 kstart_dd3d_ref = 3 diff --git a/model/common/tests/states_test/test_factory.py b/model/common/tests/states_test/test_factory.py index 08d266a03a..c4f879f1f9 100644 --- a/model/common/tests/states_test/test_factory.py +++ b/model/common/tests/states_test/test_factory.py @@ -16,7 +16,7 @@ from icon4py.model.common.math import helpers as math_helpers from icon4py.model.common.metrics import metric_fields as metrics from icon4py.model.common.states import factory, model, utils as state_utils -from icon4py.model.common.test_utils import helpers as test_helpers +from icon4py.model.testing import helpers as test_helpers cell_domain = h_grid.domain(dims.CellDim) @@ -75,7 +75,7 @@ def backend(self): @pytest.fixture(scope="function") def cell_coordinate_source(grid_savepoint, backend): - on_gpu = common_utils.gt4py_field_allocation.is_cupy_device(backend) + on_gpu = common_utils.data_allocation.is_cupy_device(backend) grid = grid_savepoint.construct_icon_grid(on_gpu) lat = grid_savepoint.lat(dims.CellDim) lon = grid_savepoint.lon(dims.CellDim) @@ -91,7 +91,7 @@ def cell_coordinate_source(grid_savepoint, backend): @pytest.fixture(scope="function") def height_coordinate_source(metrics_savepoint, grid_savepoint, backend): - on_gpu = common_utils.gt4py_field_allocation.is_cupy_device(backend) + on_gpu = common_utils.data_allocation.is_cupy_device(backend) grid = grid_savepoint.construct_icon_grid(on_gpu) z_ifc = metrics_savepoint.z_ifc() vct_a = grid_savepoint.vct_a() diff --git a/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py b/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py index 0df163ce71..c48fedd7df 100644 --- a/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py +++ b/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py @@ -14,7 +14,7 @@ mo_intp_rbf_rbf_vec_interpol_vertex, ) from icon4py.model.testing.helpers import StencilTest -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.type_alias import wpfloat @@ -37,11 +37,11 @@ def reference( @pytest.fixture def input_data(self, grid): - p_e_in = field_utils.random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) - ptr_coeff_1 = field_utils.random_field(grid, dims.VertexDim, dims.V2EDim, dtype=wpfloat) - ptr_coeff_2 = field_utils.random_field(grid, dims.VertexDim, dims.V2EDim, dtype=wpfloat) - p_v_out = field_utils.zero_field(grid, dims.VertexDim, dims.KDim, dtype=wpfloat) - p_u_out = field_utils.zero_field(grid, dims.VertexDim, dims.KDim, dtype=wpfloat) + p_e_in = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) + ptr_coeff_1 = data_alloc.random_field(grid, dims.VertexDim, dims.V2EDim, dtype=wpfloat) + ptr_coeff_2 = data_alloc.random_field(grid, dims.VertexDim, dims.V2EDim, dtype=wpfloat) + p_v_out = data_alloc.zero_field(grid, dims.VertexDim, dims.KDim, dtype=wpfloat) + p_u_out = data_alloc.zero_field(grid, dims.VertexDim, dims.KDim, dtype=wpfloat) return dict( p_e_in=p_e_in, diff --git a/model/driver/src/icon4py/model/driver/initialization_utils.py b/model/driver/src/icon4py/model/driver/initialization_utils.py index 781353d9d1..16e9aa90d9 100644 --- a/model/driver/src/icon4py/model/driver/initialization_utils.py +++ b/model/driver/src/icon4py/model/driver/initialization_utils.py @@ -24,7 +24,7 @@ diagnostic_state as diagnostics, prognostic_state as prognostics, ) -from icon4py.model.common.utils import fields as field_utils, serialbox as sb +from icon4py.model.common.utils import data_allocation as data_alloc, serialbox as sb from icon4py.model.driver import ( serialbox_helpers as driver_sb, ) @@ -385,10 +385,10 @@ def read_static_fields( pos_on_tplane_e_1=interpolation_savepoint.pos_on_tplane_e_x(), pos_on_tplane_e_2=interpolation_savepoint.pos_on_tplane_e_y(), rbf_vec_coeff_e=interpolation_savepoint.rbf_vec_coeff_e(), - e_bln_c_s=field_utils.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=field_utils.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=grg[0], geofac_grg_y=grg[1], diff --git a/model/driver/src/icon4py/model/driver/serialbox_helpers.py b/model/driver/src/icon4py/model/driver/serialbox_helpers.py index bc3abf759c..f69022139f 100644 --- a/model/driver/src/icon4py/model/driver/serialbox_helpers.py +++ b/model/driver/src/icon4py/model/driver/serialbox_helpers.py @@ -9,7 +9,7 @@ from icon4py.model.atmosphere.diffusion import diffusion_states as diffus_states from icon4py.model.common import dimension as dims from icon4py.model.common.utils import serialbox as sb -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc """ @@ -27,10 +27,10 @@ def construct_interpolation_state_for_diffusion( ) -> diffus_states.DiffusionInterpolationState: grg = savepoint.geofac_grg() return diffus_states.DiffusionInterpolationState( - e_bln_c_s=field_utils.as_1D_sparse_field(savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=savepoint.rbf_vec_coeff_v2(), - geofac_div=field_utils.as_1D_sparse_field(savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(savepoint.geofac_div(), dims.CEDim), geofac_n2s=savepoint.geofac_n2s(), geofac_grg_x=grg[0], geofac_grg_y=grg[1], diff --git a/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py b/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py index f882f0e528..50c00d3e74 100644 --- a/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py +++ b/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py @@ -24,7 +24,7 @@ prognostic_state as prognostics, ) from icon4py.model.common.utils import serialbox as sb -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.driver.test_cases import utils as testcases_utils @@ -158,7 +158,7 @@ def model_initialization_gauss3d( log.info("Hydrostatic adjustment computation completed.") eta_v = gtx.as_field((dims.CellDim, dims.KDim), eta_v_numpy) - eta_v_e = field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid) + eta_v_e = data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid) cell_2_edge_interpolation.cell_2_edge_interpolation( eta_v, cell_2_edge_coeff, @@ -191,8 +191,8 @@ def model_initialization_gauss3d( rho_next = gtx.as_field((dims.CellDim, dims.KDim), rho_numpy) theta_v_next = gtx.as_field((dims.CellDim, dims.KDim), theta_v_numpy) - u = field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid) - v = field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid) + u = data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid) + v = data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid) edge_2_cell_vector_rbf_interpolation.edge_2_cell_vector_rbf_interpolation( vn, rbf_vec_coeff_c1, @@ -207,7 +207,7 @@ def model_initialization_gauss3d( ) log.info("U, V computation completed.") - exner_pr = field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid) + exner_pr = data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid) testcases_utils.compute_perturbed_exner( exner, data_provider.from_metrics_savepoint().exner_ref_mc(), @@ -268,12 +268,12 @@ def model_initialization_gauss3d( ddt_vn_phy=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), grf_tend_vn=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), ddt_vn_apc_pc=common_utils.PredictorCorrectorPair( - field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), - field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), ), ddt_w_adv_pc=common_utils.PredictorCorrectorPair( - field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), - field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), + data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), + data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), ), vt=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), vn_ie=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid, is_halfdim=True), diff --git a/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py b/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py index 7ba3213bc1..ded3d204a8 100644 --- a/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py +++ b/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py @@ -25,7 +25,7 @@ prognostic_state as prognostics, ) from icon4py.model.common.utils import serialbox as sb -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.driver.test_cases import utils as testcases_utils @@ -192,7 +192,7 @@ def model_initialization_jabw( log.info("Newton iteration completed!") eta_v = gtx.as_field((dims.CellDim, dims.KDim), eta_v_numpy) - eta_v_e = field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid) + eta_v_e = data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid) cell_2_edge_interpolation.cell_2_edge_interpolation( eta_v, cell_2_edge_coeff, @@ -250,8 +250,8 @@ def model_initialization_jabw( rho_next = gtx.as_field((dims.CellDim, dims.KDim), rho_numpy) theta_v_next = gtx.as_field((dims.CellDim, dims.KDim), theta_v_numpy) - u = field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid) - v = field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid) + u = data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid) + v = data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid) edge_2_cell_vector_rbf_interpolation.edge_2_cell_vector_rbf_interpolation( vn, rbf_vec_coeff_c1, @@ -267,7 +267,7 @@ def model_initialization_jabw( log.info("U, V computation completed.") - exner_pr = field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid) + exner_pr = data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid) testcases_utils.compute_perturbed_exner( exner, data_provider.from_metrics_savepoint().exner_ref_mc(), @@ -328,12 +328,12 @@ def model_initialization_jabw( ddt_vn_phy=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), grf_tend_vn=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), ddt_vn_apc_pc=common_utils.PredictorCorrectorPair( - field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), - field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), ), ddt_w_adv_pc=common_utils.PredictorCorrectorPair( - field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), - field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), + data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), + data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), ), vt=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), vn_ie=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid, is_halfdim=True), diff --git a/model/driver/tests/driver_tests/test_timeloop.py b/model/driver/tests/driver_tests/test_timeloop.py index 02213a5ddf..5a1ee9683e 100644 --- a/model/driver/tests/driver_tests/test_timeloop.py +++ b/model/driver/tests/driver_tests/test_timeloop.py @@ -16,7 +16,7 @@ from icon4py.model.common.grid import vertical as v_grid from icon4py.model.common.states import prognostic_state as prognostics from icon4py.model.testing import datatest_utils as dt_utils, helpers -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.driver import ( icon4py_configuration, icon4py_driver, diff --git a/model/testing/src/icon4py/model/testing/grid_utils.py b/model/testing/src/icon4py/model/testing/grid_utils.py index f4f97004b0..2d807ed42a 100644 --- a/model/testing/src/icon4py/model/testing/grid_utils.py +++ b/model/testing/src/icon4py/model/testing/grid_utils.py @@ -20,7 +20,7 @@ vertical as v_grid, ) from icon4py.model.testing import data_handling, datatest_utils as dt_utils -from icon4py.model.common.utils import fields as alloc +from icon4py.model.common.utils import data_allocation as data_alloc REGIONAL_GRIDFILE = "grid.nc" @@ -131,14 +131,14 @@ def get_num_levels(experiment: str): def get_grid_geometry( backend: gtx_backend.Backend, experiment: str, grid_file: str ) -> geometry.GridGeometry: - on_gpu = alloc.is_cupy_device(backend) - xp = alloc.array_ns(on_gpu) + on_gpu = data_alloc.is_cupy_device(backend) + xp = data_alloc.array_ns(on_gpu) num_levels = get_num_levels(experiment) register_name = experiment.join(backend.name) def construct_decomposition_info(grid: icon.IconGrid) -> definitions.DecompositionInfo: def _add_dimension(dim: gtx.Dimension): - indices = alloc.allocate_indices(dim, grid) + indices = data_alloc.allocate_indices(dim, grid) owner_mask = xp.ones((grid.size[dim],), dtype=bool) decomposition_info.with_dimension(dim, indices.ndarray, owner_mask) diff --git a/model/testing/src/icon4py/model/testing/helpers.py b/model/testing/src/icon4py/model/testing/helpers.py index 79b4588ca1..cdb7c2750d 100644 --- a/model/testing/src/icon4py/model/testing/helpers.py +++ b/model/testing/src/icon4py/model/testing/helpers.py @@ -18,7 +18,7 @@ from gt4py.next.ffront.decorator import Program from typing_extensions import Buffer -from icon4py.model.common.utils import gt4py_field_allocation as field_alloc +from icon4py.model.common.utils import data_allocation as data_alloc diff --git a/tools/src/icon4pytools/py2fgen/wrappers/diffusion_wrapper.py b/tools/src/icon4pytools/py2fgen/wrappers/diffusion_wrapper.py index 4e46677d2d..aafb3d24fe 100644 --- a/tools/src/icon4pytools/py2fgen/wrappers/diffusion_wrapper.py +++ b/tools/src/icon4pytools/py2fgen/wrappers/diffusion_wrapper.py @@ -39,7 +39,7 @@ from icon4py.model.common.grid.icon import GlobalGridParams from icon4py.model.common.grid.vertical import VerticalGrid, VerticalGridConfig from icon4py.model.common.states.prognostic_state import PrognosticState -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.type_alias import wpfloat from icon4pytools.common.logger import setup_logger @@ -150,14 +150,14 @@ def diffusion_init( inverse_primal_edge_lengths=inverse_primal_edge_lengths, inverse_dual_edge_lengths=inv_dual_edge_length, inverse_vertex_vertex_lengths=inv_vert_vert_length, - primal_normal_vert_x=field_utils.as_1D_sparse_field(primal_normal_vert_x, dims.ECVDim), - primal_normal_vert_y=field_utils.as_1D_sparse_field(primal_normal_vert_y, dims.ECVDim), - dual_normal_vert_x=field_utils.as_1D_sparse_field(dual_normal_vert_x, dims.ECVDim), - dual_normal_vert_y=field_utils.as_1D_sparse_field(dual_normal_vert_y, dims.ECVDim), - primal_normal_cell_x=field_utils.as_1D_sparse_field(primal_normal_cell_x, dims.ECDim), - primal_normal_cell_y=field_utils.as_1D_sparse_field(primal_normal_cell_y, dims.ECDim), - dual_normal_cell_x=field_utils.as_1D_sparse_field(dual_normal_cell_x, dims.ECDim), - dual_normal_cell_y=field_utils.as_1D_sparse_field(dual_normal_cell_y, dims.ECDim), + primal_normal_vert_x=data_alloc.as_1D_sparse_field(primal_normal_vert_x, dims.ECVDim), + primal_normal_vert_y=data_alloc.as_1D_sparse_field(primal_normal_vert_y, dims.ECVDim), + dual_normal_vert_x=data_alloc.as_1D_sparse_field(dual_normal_vert_x, dims.ECVDim), + dual_normal_vert_y=data_alloc.as_1D_sparse_field(dual_normal_vert_y, dims.ECVDim), + primal_normal_cell_x=data_alloc.as_1D_sparse_field(primal_normal_cell_x, dims.ECDim), + primal_normal_cell_y=data_alloc.as_1D_sparse_field(primal_normal_cell_y, dims.ECDim), + dual_normal_cell_x=data_alloc.as_1D_sparse_field(dual_normal_cell_x, dims.ECDim), + dual_normal_cell_y=data_alloc.as_1D_sparse_field(dual_normal_cell_y, dims.ECDim), edge_areas=edge_areas, f_e=f_e, edge_center_lat=edge_center_lat, @@ -218,17 +218,17 @@ def diffusion_init( mask_hdiff=mask_hdiff, theta_ref_mc=theta_ref_mc, wgtfac_c=wgtfac_c, - zd_intcoef=field_utils.flatten_first_two_dims(dims.CECDim, dims.KDim, field=zd_intcoef), - zd_vertoffset=field_utils.flatten_first_two_dims(dims.CECDim, dims.KDim, field=zd_vertoffset), + zd_intcoef=data_alloc.flatten_first_two_dims(dims.CECDim, dims.KDim, field=zd_intcoef), + zd_vertoffset=data_alloc.flatten_first_two_dims(dims.CECDim, dims.KDim, field=zd_vertoffset), zd_diffcoef=zd_diffcoef, ) # Interpolation state interpolation_state = DiffusionInterpolationState( - e_bln_c_s=field_utils.as_1D_sparse_field(e_bln_c_s, dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(e_bln_c_s, dims.CEDim), rbf_coeff_1=rbf_coeff_1, rbf_coeff_2=rbf_coeff_2, - geofac_div=field_utils.as_1D_sparse_field(geofac_div, dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(geofac_div, dims.CEDim), geofac_n2s=geofac_n2s, geofac_grg_x=geofac_grg_x, geofac_grg_y=geofac_grg_y, diff --git a/tools/src/icon4pytools/py2fgen/wrappers/dycore_wrapper.py b/tools/src/icon4pytools/py2fgen/wrappers/dycore_wrapper.py index 5324634f5c..00a23107c3 100644 --- a/tools/src/icon4pytools/py2fgen/wrappers/dycore_wrapper.py +++ b/tools/src/icon4pytools/py2fgen/wrappers/dycore_wrapper.py @@ -58,7 +58,7 @@ from icon4py.model.common.grid.icon import GlobalGridParams from icon4py.model.common.grid.vertical import VerticalGrid, VerticalGridConfig from icon4py.model.common.states.prognostic_state import PrognosticState -from icon4py.model.common.utils import fields as fields_utils +from icon4py.model.common.utils import data_allocation as fields_utils from icon4pytools.common.logger import setup_logger from icon4pytools.py2fgen.settings import backend, device @@ -229,14 +229,14 @@ def solve_nh_init( inverse_primal_edge_lengths=inverse_primal_edge_lengths, inverse_dual_edge_lengths=inverse_dual_edge_lengths, inverse_vertex_vertex_lengths=inverse_vertex_vertex_lengths, - primal_normal_vert_x=field_utils.as_1D_sparse_field(primal_normal_vert_x, ECVDim), - primal_normal_vert_y=field_utils.as_1D_sparse_field(primal_normal_vert_y, ECVDim), - dual_normal_vert_x=field_utils.as_1D_sparse_field(dual_normal_vert_x, ECVDim), - dual_normal_vert_y=field_utils.as_1D_sparse_field(dual_normal_vert_y, ECVDim), - primal_normal_cell_x=field_utils.as_1D_sparse_field(primal_normal_cell_x, ECDim), - primal_normal_cell_y=field_utils.as_1D_sparse_field(primal_normal_cell_y, ECDim), - dual_normal_cell_x=field_utils.as_1D_sparse_field(dual_normal_cell_x, ECDim), - dual_normal_cell_y=field_utils.as_1D_sparse_field(dual_normal_cell_y, ECDim), + primal_normal_vert_x=data_alloc.as_1D_sparse_field(primal_normal_vert_x, ECVDim), + primal_normal_vert_y=data_alloc.as_1D_sparse_field(primal_normal_vert_y, ECVDim), + dual_normal_vert_x=data_alloc.as_1D_sparse_field(dual_normal_vert_x, ECVDim), + dual_normal_vert_y=data_alloc.as_1D_sparse_field(dual_normal_vert_y, ECVDim), + primal_normal_cell_x=data_alloc.as_1D_sparse_field(primal_normal_cell_x, ECDim), + primal_normal_cell_y=data_alloc.as_1D_sparse_field(primal_normal_cell_y, ECDim), + dual_normal_cell_x=data_alloc.as_1D_sparse_field(dual_normal_cell_x, ECDim), + dual_normal_cell_y=data_alloc.as_1D_sparse_field(dual_normal_cell_y, ECDim), edge_areas=edge_areas, f_e=f_e, edge_center_lat=edge_center_lat, @@ -260,13 +260,13 @@ def solve_nh_init( e_flx_avg=e_flx_avg, geofac_grdiv=geofac_grdiv, geofac_rot=geofac_rot, - pos_on_tplane_e_1=field_utils.as_1D_sparse_field(pos_on_tplane_e_1[:, 0:2], ECDim), - pos_on_tplane_e_2=field_utils.as_1D_sparse_field(pos_on_tplane_e_2[:, 0:2], ECDim), + pos_on_tplane_e_1=data_alloc.as_1D_sparse_field(pos_on_tplane_e_1[:, 0:2], ECDim), + pos_on_tplane_e_2=data_alloc.as_1D_sparse_field(pos_on_tplane_e_2[:, 0:2], ECDim), rbf_vec_coeff_e=rbf_vec_coeff_e, - e_bln_c_s=field_utils.as_1D_sparse_field(e_bln_c_s, CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(e_bln_c_s, CEDim), rbf_coeff_1=rbf_coeff_1, rbf_coeff_2=rbf_coeff_2, - geofac_div=field_utils.as_1D_sparse_field(geofac_div, CEDim), + geofac_div=data_alloc.as_1D_sparse_field(geofac_div, CEDim), geofac_n2s=geofac_n2s, geofac_grg_x=geofac_grg_x, geofac_grg_y=geofac_grg_y, @@ -293,8 +293,8 @@ def solve_nh_init( rho_ref_me=rho_ref_me, theta_ref_me=theta_ref_me, ddxn_z_full=ddxn_z_full, - zdiff_gradp=field_utils.flatten_first_two_dims(ECDim, KDim, field=zdiff_gradp), - vertoffset_gradp=field_utils.flatten_first_two_dims(ECDim, KDim, field=vertoffset_gradp), + zdiff_gradp=data_alloc.flatten_first_two_dims(ECDim, KDim, field=zdiff_gradp), + vertoffset_gradp=data_alloc.flatten_first_two_dims(ECDim, KDim, field=vertoffset_gradp), ipeidx_dsl=ipeidx_dsl, pg_exdist=pg_exdist, ddqz_z_full_e=ddqz_z_full_e, @@ -306,7 +306,7 @@ def solve_nh_init( scalfac_dd3d=scalfac_dd3d, coeff1_dwdz=coeff1_dwdz, coeff2_dwdz=coeff2_dwdz, - coeff_gradekin=field_utils.as_1D_sparse_field(coeff_gradekin, ECDim), + coeff_gradekin=data_alloc.as_1D_sparse_field(coeff_gradekin, ECDim), ) # datatest config diff --git a/tools/tests/py2fgen/test_dycore_wrapper.py b/tools/tests/py2fgen/test_dycore_wrapper.py index acd146b5bc..bf5820ff5d 100644 --- a/tools/tests/py2fgen/test_dycore_wrapper.py +++ b/tools/tests/py2fgen/test_dycore_wrapper.py @@ -34,7 +34,7 @@ datatest_utils as dt_utils, helpers, ) -from icon4py.model.common.utils import fields as field_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4pytools.py2fgen.wrappers import dycore_wrapper, wrapper_dimension as w_dim From a64bfbc9562fc2797aecfd59101b597d834a36d8 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Tue, 10 Dec 2024 14:45:25 +0100 Subject: [PATCH 23/83] More fixes after merging --- ...e_antidiffusive_cell_fluxes_and_min_max.py | 25 +++--- ...test_compute_barycentric_backtrajectory.py | 45 +++++------ ..._compute_barycentric_backtrajectory_alt.py | 33 ++++---- .../test_compute_ffsl_backtrajectory.py | 67 ++++++++-------- ...e_horizontal_multiplicative_flux_factor.py | 13 ++-- .../test_integrate_tracer_horizontally.py | 17 ++-- ...est_prepare_ffsl_flux_area_patches_list.py | 63 +++++++-------- ...test_reconstruct_cubic_coefficients_svd.py | 77 ++++++++++--------- .../advection/tests/advection_tests/utils.py | 6 +- ...ute_horizontal_gradients_for_turbulence.py | 4 +- ...st_apply_nabla2_and_nabla4_global_to_vn.py | 3 +- .../test_apply_nabla2_and_nabla4_to_vn.py | 3 +- ..._apply_nabla2_to_vn_in_lateral_boundary.py | 3 +- .../test_apply_nabla2_to_w.py | 3 +- ...pply_nabla2_to_w_in_upper_damping_layer.py | 3 +- ...st_calculate_diagnostics_for_turbulence.py | 3 +- ...ate_horizontal_gradients_for_turbulence.py | 3 +- ...ate_nabla2_and_smag_coefficients_for_vn.py | 7 +- .../test_calculate_nabla2_for_w.py | 3 +- .../test_calculate_nabla2_for_z.py | 3 +- .../test_calculate_nabla2_of_theta.py | 7 +- .../test_calculate_nabla4.py | 4 +- ...n_coefficient_for_grid_point_cold_pools.py | 3 +- ...d_for_grid_point_cold_pools_enhancement.py | 3 +- ...orary_fields_for_turbulence_diagnostics.py | 7 +- .../test_update_theta_and_exner.py | 3 +- .../mpi_tests/test_parallel_diffusion.py | 9 ++- .../tests/diffusion_tests/test_diffusion.py | 31 ++++---- .../diffusion_tests/test_diffusion_states.py | 5 +- .../test_accumulate_prep_adv_fields.py | 3 +- ...lysis_increments_from_data_assimilation.py | 3 +- .../test_add_analysis_increments_to_vn.py | 3 +- ...or_normal_wind_tendency_approaching_cfl.py | 3 +- ...tra_diffusion_for_w_con_approaching_cfl.py | 3 +- .../test_add_temporal_tendencies_to_vn.py | 3 +- ...vn_by_interpolating_between_time_levels.py | 3 +- ...l_wind_derivative_to_divergence_damping.py | 3 +- ...test_apply_2nd_order_divergence_damping.py | 3 +- ...test_apply_4th_order_divergence_damping.py | 3 +- ...o_horizontal_gradient_of_exner_pressure.py | 3 +- .../test_apply_rayleigh_damping_mechanism.py | 3 +- ...ed_2nd_and_4th_order_divergence_damping.py | 3 +- ..._compute_advective_normal_wind_tendency.py | 7 +- ...ompute_advective_vertical_wind_tendency.py | 3 +- .../test_compute_airmass.py | 3 +- ...rox_of_2nd_vertical_derivative_of_exner.py | 3 +- .../test_compute_avg_vn.py | 3 +- ...st_compute_avg_vn_and_graddiv_vn_and_vt.py | 3 +- .../test_compute_contravariant_correction.py | 3 +- ...t_compute_contravariant_correction_of_w.py | 3 +- ...iant_correction_of_w_for_lower_boundary.py | 3 +- ...est_compute_dwdz_for_divergence_damping.py | 3 +- .../test_compute_exner_from_rhotheta.py | 3 +- ...compute_explicit_part_for_rho_and_exner.py | 3 +- ...rom_advection_and_vertical_wind_density.py | 3 +- ...d_speed_and_vertical_wind_times_density.py | 3 +- .../test_compute_first_vertical_derivative.py | 3 +- .../test_compute_graddiv2_of_vn.py | 3 +- ...al_advection_term_for_vertical_velocity.py | 3 +- ..._of_exner_pressure_for_flat_coordinates.py | 3 +- ..._exner_pressure_for_nonflat_coordinates.py | 3 +- .../test_compute_horizontal_kinetic_energy.py | 3 +- .../test_compute_mass_flux.py | 3 +- ...nd_clip_contravariant_vertical_velocity.py | 4 +- ...t_compute_perturbation_of_rho_and_theta.py | 3 +- ...nd_theta_and_rho_interface_cell_centers.py | 3 +- ...ute_results_for_thermodynamic_variables.py | 3 +- ...tial_temperatures_and_pressure_gradient.py | 3 +- ...test_compute_solver_coefficients_matrix.py | 3 +- .../test_compute_tangential_wind.py | 3 +- .../test_compute_theta_and_exner.py | 3 +- ...tial_temperatures_and_pressure_gradient.py | 3 +- .../test_compute_vn_on_lateral_boundary.py | 3 +- .../test_copy_cell_kdim_field_to_vp.py | 3 +- ...correct_contravariant_vertical_velocity.py | 3 +- .../test_extrapolate_at_top.py | 3 +- ...t_extrapolate_temporally_exner_pressure.py | 3 +- ...test_fused_solve_nonhydro_stencil_39_40.py | 3 +- ...sed_velocity_advection_stencil_15_to_18.py | 4 +- ...sed_velocity_advection_stencil_19_to_20.py | 4 +- ...fused_velocity_advection_stencil_1_to_7.py | 3 +- ...used_velocity_advection_stencil_8_to_13.py | 7 +- .../test_init_cell_kdim_field_with_zero_vp.py | 3 +- .../test_init_cell_kdim_field_with_zero_wp.py | 3 +- ..._init_two_cell_kdim_fields_with_zero_vp.py | 3 +- ..._init_two_cell_kdim_fields_with_zero_wp.py | 3 +- ..._init_two_edge_kdim_fields_with_zero_wp.py | 3 +- ...ariant_vertical_velocity_to_full_levels.py | 3 +- .../test_interpolate_to_cell_center.py | 7 +- .../test_interpolate_to_half_levels_vp.py | 3 +- .../test_interpolate_to_surface.py | 3 +- ..._and_vt_to_ie_and_compute_ekin_on_edges.py | 3 +- ...late_vn_to_ie_and_compute_ekin_on_edges.py | 3 +- .../test_interpolate_vt_to_interface_edges.py | 3 +- ...e_divergence_of_fluxes_of_rho_and_theta.py | 7 +- ...lation_scalar_cells2verts_scalar_ri_dsl.py | 3 +- .../test_mo_math_divrot_rot_vertex_ri_dsl.py | 3 +- ...ath_gradients_grad_green_gauss_cell_dsl.py | 3 +- .../test_mo_solve_nonhydro_stencil_51.py | 3 +- ...tion_for_w_and_contravariant_correction.py | 3 +- ..._set_theta_v_prime_ic_at_lower_boundary.py | 3 +- ...diagonal_matrix_for_w_back_substitution.py | 3 +- ..._tridiagonal_matrix_for_w_forward_sweep.py | 2 +- .../test_update_density_exner_wind.py | 3 +- ...t_update_dynamical_exner_time_increment.py | 3 +- .../test_update_mass_flux_weighted.py | 3 +- .../test_update_mass_volume_flux.py | 3 +- .../test_update_theta_v.py | 3 +- .../dycore_stencil_tests/test_update_wind.py | 3 +- .../tests/dycore_tests/test_dycore_utils.py | 9 +-- .../tests/dycore_tests/test_solve_nonhydro.py | 15 ++-- .../dycore/tests/dycore_tests/utils.py | 6 +- .../test_saturation_adjusment.py | 3 +- .../tests/driver_tests/test_timeloop.py | 6 +- .../model/testing/datatest_fixtures.py | 2 + tools/tests/py2fgen/test_diffusion_wrapper.py | 5 +- tools/tests/py2fgen/test_dycore_wrapper.py | 7 +- 117 files changed, 430 insertions(+), 337 deletions(-) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py index 34fff6b468..18dce73dc1 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py @@ -11,6 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers +import icon4py.model.common.utils.data_allocation as data_allocation from icon4py.model.atmosphere.advection.stencils.compute_antidiffusive_cell_fluxes_and_min_max import ( compute_antidiffusive_cell_fluxes_and_min_max, ) @@ -79,20 +80,20 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - geofac_div = helpers.random_field(grid, dims.CellDim, dims.C2EDim) - geofac_div_new = helpers.as_1D_sparse_field(geofac_div, dims.CEDim) - p_rhodz_now = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_rhodz_new = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_mflx_low = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - z_anti = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim) + geofac_div = data_allocation.random_field(grid, dims.CellDim, dims.C2EDim) + geofac_div_new = data_allocation.as_1D_sparse_field(geofac_div, dims.CEDim) + p_rhodz_now = data_allocation.random_field(grid, dims.CellDim, dims.KDim) + p_rhodz_new = data_allocation.random_field(grid, dims.CellDim, dims.KDim) + z_mflx_low = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + z_anti = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_cc = data_allocation.random_field(grid, dims.CellDim, dims.KDim) p_dtime = 5.0 - z_mflx_anti_in = helpers.zero_field(grid, dims.CellDim, dims.KDim) - z_mflx_anti_out = helpers.zero_field(grid, dims.CellDim, dims.KDim) - z_tracer_new_low = helpers.zero_field(grid, dims.CellDim, dims.KDim) - z_tracer_max = helpers.zero_field(grid, dims.CellDim, dims.KDim) - z_tracer_min = helpers.zero_field(grid, dims.CellDim, dims.KDim) + z_mflx_anti_in = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + z_mflx_anti_out = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + z_tracer_new_low = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + z_tracer_max = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + z_tracer_min = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) return dict( geofac_div=geofac_div_new, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory.py index 167b2c925c..5158a898c8 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory.py @@ -11,6 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers +import icon4py.model.common.utils.data_allocation as data_allocation from icon4py.model.atmosphere.advection.stencils.compute_barycentric_backtrajectory import ( compute_barycentric_backtrajectory, ) @@ -94,31 +95,31 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_vn = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_vt = helpers.random_field(grid, dims.EdgeDim, dims.KDim) + p_vn = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_vt = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) cell_idx = np.asarray(grid.connectivities[dims.E2CDim], dtype=gtx.int32) - cell_idx_new = helpers.numpy_to_1D_sparse_field(cell_idx, dims.ECDim) - cell_blk = helpers.constant_field(grid, 1, dims.EdgeDim, dims.E2CDim, dtype=gtx.int32) - cell_blk_new = helpers.as_1D_sparse_field(cell_blk, dims.ECDim) - pos_on_tplane_e_1 = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - pos_on_tplane_e_1_new = helpers.as_1D_sparse_field(pos_on_tplane_e_1, dims.ECDim) - pos_on_tplane_e_2 = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - pos_on_tplane_e_2_new = helpers.as_1D_sparse_field(pos_on_tplane_e_2, dims.ECDim) - primal_normal_cell_1 = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - primal_normal_cell_1_new = helpers.as_1D_sparse_field(primal_normal_cell_1, dims.ECDim) - dual_normal_cell_1 = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - dual_normal_cell_1_new = helpers.as_1D_sparse_field(dual_normal_cell_1, dims.ECDim) - primal_normal_cell_2 = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - primal_normal_cell_2_new = helpers.as_1D_sparse_field(primal_normal_cell_2, dims.ECDim) - dual_normal_cell_2 = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - dual_normal_cell_2_new = helpers.as_1D_sparse_field(dual_normal_cell_2, dims.ECDim) - p_cell_idx = helpers.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - p_cell_rel_idx_dsl = helpers.constant_field( + cell_idx_new = data_allocation.numpy_to_1D_sparse_field(cell_idx, dims.ECDim) + cell_blk = data_allocation.constant_field(grid, 1, dims.EdgeDim, dims.E2CDim, dtype=gtx.int32) + cell_blk_new = data_allocation.as_1D_sparse_field(cell_blk, dims.ECDim) + pos_on_tplane_e_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + pos_on_tplane_e_1_new = data_allocation.as_1D_sparse_field(pos_on_tplane_e_1, dims.ECDim) + pos_on_tplane_e_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + pos_on_tplane_e_2_new = data_allocation.as_1D_sparse_field(pos_on_tplane_e_2, dims.ECDim) + primal_normal_cell_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + primal_normal_cell_1_new = data_allocation.as_1D_sparse_field(primal_normal_cell_1, dims.ECDim) + dual_normal_cell_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + dual_normal_cell_1_new = data_allocation.as_1D_sparse_field(dual_normal_cell_1, dims.ECDim) + primal_normal_cell_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + primal_normal_cell_2_new = data_allocation.as_1D_sparse_field(primal_normal_cell_2, dims.ECDim) + dual_normal_cell_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + dual_normal_cell_2_new = data_allocation.as_1D_sparse_field(dual_normal_cell_2, dims.ECDim) + p_cell_idx = data_allocation.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + p_cell_rel_idx_dsl = data_allocation.constant_field( grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32 ) - p_cell_blk = helpers.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - p_distv_bary_1 = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_distv_bary_2 = helpers.random_field(grid, dims.EdgeDim, dims.KDim) + p_cell_blk = data_allocation.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + p_distv_bary_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_distv_bary_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) p_dthalf = 2.0 return dict( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory_alt.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory_alt.py index 9a4ac0dacf..d8a9895054 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory_alt.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory_alt.py @@ -11,6 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers +import icon4py.model.common.utils.data_allocation as data_allocation from icon4py.model.atmosphere.advection.stencils.compute_barycentric_backtrajectory_alt import ( compute_barycentric_backtrajectory_alt, ) @@ -81,22 +82,22 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_vn = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_vt = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - pos_on_tplane_e_1 = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - pos_on_tplane_e_1_new = helpers.as_1D_sparse_field(pos_on_tplane_e_1, dims.ECDim) - pos_on_tplane_e_2 = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - pos_on_tplane_e_2_new = helpers.as_1D_sparse_field(pos_on_tplane_e_2, dims.ECDim) - primal_normal_cell_1 = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - primal_normal_cell_1_new = helpers.as_1D_sparse_field(primal_normal_cell_1, dims.ECDim) - dual_normal_cell_1 = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - dual_normal_cell_1_new = helpers.as_1D_sparse_field(dual_normal_cell_1, dims.ECDim) - primal_normal_cell_2 = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - primal_normal_cell_2_new = helpers.as_1D_sparse_field(primal_normal_cell_2, dims.ECDim) - dual_normal_cell_2 = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - dual_normal_cell_2_new = helpers.as_1D_sparse_field(dual_normal_cell_2, dims.ECDim) - p_distv_bary_1 = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_distv_bary_2 = helpers.random_field(grid, dims.EdgeDim, dims.KDim) + p_vn = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_vt = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + pos_on_tplane_e_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + pos_on_tplane_e_1_new = data_allocation.as_1D_sparse_field(pos_on_tplane_e_1, dims.ECDim) + pos_on_tplane_e_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + pos_on_tplane_e_2_new = data_allocation.as_1D_sparse_field(pos_on_tplane_e_2, dims.ECDim) + primal_normal_cell_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + primal_normal_cell_1_new = data_allocation.as_1D_sparse_field(primal_normal_cell_1, dims.ECDim) + dual_normal_cell_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + dual_normal_cell_1_new = data_allocation.as_1D_sparse_field(dual_normal_cell_1, dims.ECDim) + primal_normal_cell_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + primal_normal_cell_2_new = data_allocation.as_1D_sparse_field(primal_normal_cell_2, dims.ECDim) + dual_normal_cell_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + dual_normal_cell_2_new = data_allocation.as_1D_sparse_field(dual_normal_cell_2, dims.ECDim) + p_distv_bary_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_distv_bary_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) p_dthalf = 2.0 return dict( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py index 159eab5ca1..eb02084fce 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py @@ -11,6 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers +import icon4py.model.common.utils.data_allocation as data_allocation from icon4py.model.atmosphere.advection.stencils.compute_ffsl_backtrajectory import ( compute_ffsl_backtrajectory, ) @@ -154,44 +155,44 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_vn = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_vt = helpers.random_field(grid, dims.EdgeDim, dims.KDim) + p_vn = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_vt = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) cell_idx = np.asarray(grid.connectivities[dims.E2CDim], dtype=gtx.int32) - cell_idx_new = helpers.numpy_to_1D_sparse_field(cell_idx, dims.ECDim) - cell_blk = helpers.constant_field(grid, 1, dims.EdgeDim, dims.E2CDim, dtype=gtx.int32) - cell_blk_new = helpers.as_1D_sparse_field(cell_blk, dims.ECDim) + cell_idx_new = data_allocation.numpy_to_1D_sparse_field(cell_idx, dims.ECDim) + cell_blk = data_allocation.constant_field(grid, 1, dims.EdgeDim, dims.E2CDim, dtype=gtx.int32) + cell_blk_new = data_allocation.as_1D_sparse_field(cell_blk, dims.ECDim) - edge_verts_1_x = helpers.random_field(grid, dims.EdgeDim) - edge_verts_2_x = helpers.random_field(grid, dims.EdgeDim) - edge_verts_1_y = helpers.random_field(grid, dims.EdgeDim) - edge_verts_2_y = helpers.random_field(grid, dims.EdgeDim) - pos_on_tplane_e_1_x = helpers.random_field(grid, dims.EdgeDim) - pos_on_tplane_e_2_x = helpers.random_field(grid, dims.EdgeDim) - pos_on_tplane_e_1_y = helpers.random_field(grid, dims.EdgeDim) - pos_on_tplane_e_2_y = helpers.random_field(grid, dims.EdgeDim) - primal_normal_cell_x = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - primal_normal_cell_x_new = helpers.as_1D_sparse_field(primal_normal_cell_x, dims.ECDim) - dual_normal_cell_x = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - dual_normal_cell_x_new = helpers.as_1D_sparse_field(dual_normal_cell_x, dims.ECDim) - primal_normal_cell_y = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - primal_normal_cell_y_new = helpers.as_1D_sparse_field(primal_normal_cell_y, dims.ECDim) - dual_normal_cell_y = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim) - dual_normal_cell_y_new = helpers.as_1D_sparse_field(dual_normal_cell_y, dims.ECDim) - lvn_sys_pos = helpers.constant_field(grid, True, dims.EdgeDim, dims.KDim, dtype=bool) + edge_verts_1_x = data_allocation.random_field(grid, dims.EdgeDim) + edge_verts_2_x = data_allocation.random_field(grid, dims.EdgeDim) + edge_verts_1_y = data_allocation.random_field(grid, dims.EdgeDim) + edge_verts_2_y = data_allocation.random_field(grid, dims.EdgeDim) + pos_on_tplane_e_1_x = data_allocation.random_field(grid, dims.EdgeDim) + pos_on_tplane_e_2_x = data_allocation.random_field(grid, dims.EdgeDim) + pos_on_tplane_e_1_y = data_allocation.random_field(grid, dims.EdgeDim) + pos_on_tplane_e_2_y = data_allocation.random_field(grid, dims.EdgeDim) + primal_normal_cell_x = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + primal_normal_cell_x_new = data_allocation.as_1D_sparse_field(primal_normal_cell_x, dims.ECDim) + dual_normal_cell_x = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + dual_normal_cell_x_new = data_allocation.as_1D_sparse_field(dual_normal_cell_x, dims.ECDim) + primal_normal_cell_y = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + primal_normal_cell_y_new = data_allocation.as_1D_sparse_field(primal_normal_cell_y, dims.ECDim) + dual_normal_cell_y = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) + dual_normal_cell_y_new = data_allocation.as_1D_sparse_field(dual_normal_cell_y, dims.ECDim) + lvn_sys_pos = data_allocation.constant_field(grid, True, dims.EdgeDim, dims.KDim, dtype=bool) p_dt = 2.0 - p_cell_idx = helpers.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - p_cell_rel_idx_dsl = helpers.constant_field( + p_cell_idx = data_allocation.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + p_cell_rel_idx_dsl = data_allocation.constant_field( grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32 ) - p_cell_blk = helpers.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - p_coords_dreg_v_1_lon_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_2_lon_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_3_lon_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_4_lon_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_1_lat_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_2_lat_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_3_lat_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_4_lat_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) + p_cell_blk = data_allocation.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + p_coords_dreg_v_1_lon_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_2_lon_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_3_lon_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_4_lon_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_1_lat_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_2_lat_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_3_lat_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_4_lat_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) return dict( p_vn=p_vn, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py index fdba787bc5..02130437af 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py @@ -11,6 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers +import icon4py.model.common.utils.data_allocation as data_allocation from icon4py.model.atmosphere.advection.stencils.compute_positive_definite_horizontal_multiplicative_flux_factor import ( compute_positive_definite_horizontal_multiplicative_flux_factor, ) @@ -54,12 +55,12 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - geofac_div = helpers.random_field(grid, dims.CellDim, dims.C2EDim) - geofac_div_new = helpers.as_1D_sparse_field(geofac_div, dims.CEDim) - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_rhodz_now = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_mflx_tracer_h = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - r_m = helpers.zero_field(grid, dims.CellDim, dims.KDim) + geofac_div = data_allocation.random_field(grid, dims.CellDim, dims.C2EDim) + geofac_div_new = data_allocation.as_1D_sparse_field(geofac_div, dims.CEDim) + p_cc = data_allocation.random_field(grid, dims.CellDim, dims.KDim) + p_rhodz_now = data_allocation.random_field(grid, dims.CellDim, dims.KDim) + p_mflx_tracer_h = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + r_m = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) p_dtime = np.float64(5) dbl_eps = np.float64(1e-9) return dict( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_horizontally.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_horizontally.py index dbc7118b2b..2af54cad72 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_horizontally.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_horizontally.py @@ -11,6 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.atmosphere.advection.stencils.integrate_tracer_horizontally import ( integrate_tracer_horizontally, ) @@ -45,15 +46,15 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_mflx_tracer_h = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - deepatmo_divh = helpers.random_field(grid, dims.KDim) - tracer_now = helpers.random_field(grid, dims.CellDim, dims.KDim) - rhodz_now = helpers.random_field(grid, dims.CellDim, dims.KDim) - rhodz_new = helpers.random_field(grid, dims.CellDim, dims.KDim) - geofac_div = helpers.random_field(grid, dims.CellDim, dims.C2EDim) - geofac_div_new = helpers.as_1D_sparse_field(geofac_div, dims.CEDim) + p_mflx_tracer_h = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + deepatmo_divh = data_alloc.random_field(grid, dims.KDim) + tracer_now = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + rhodz_now = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + rhodz_new = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + geofac_div = data_alloc.random_field(grid, dims.CellDim, dims.C2EDim) + geofac_div_new = data_alloc.as_1D_sparse_field(geofac_div, dims.CEDim) p_dtime = np.float64(5.0) - tracer_new_hor = helpers.zero_field(grid, dims.CellDim, dims.KDim) + tracer_new_hor = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) return dict( p_mflx_tracer_h=p_mflx_tracer_h, deepatmo_divh=deepatmo_divh, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_ffsl_flux_area_patches_list.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_ffsl_flux_area_patches_list.py index 9a9a2a379e..73e476cfb8 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_ffsl_flux_area_patches_list.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_ffsl_flux_area_patches_list.py @@ -11,6 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.atmosphere.advection.stencils.prepare_ffsl_flux_area_patches_list import ( prepare_ffsl_flux_area_patches_list, ) @@ -1474,37 +1475,37 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - famask_int = helpers.random_mask(grid, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - p_vn = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - ptr_v3_lon = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim, low=0.1, high=1.0) - ptr_v3_lon_field = helpers.as_1D_sparse_field(ptr_v3_lon, dims.ECDim) - ptr_v3_lat = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim, low=0.1, high=1.0) - ptr_v3_lat_field = helpers.as_1D_sparse_field(ptr_v3_lat, dims.ECDim) - tangent_orientation_dsl = helpers.random_field(grid, dims.EdgeDim, low=0.1, high=1.0) - dreg_patch0_1_lon_dsl = helpers.constant_field(grid, 1.0, dims.EdgeDim, dims.KDim) - dreg_patch0_1_lat_dsl = helpers.constant_field(grid, 1.0, dims.EdgeDim, dims.KDim) - dreg_patch0_2_lon_dsl = helpers.constant_field(grid, 2.0, dims.EdgeDim, dims.KDim) - dreg_patch0_2_lat_dsl = helpers.constant_field(grid, 2.0, dims.EdgeDim, dims.KDim) - dreg_patch0_3_lon_dsl = helpers.constant_field(grid, 3.0, dims.EdgeDim, dims.KDim) - dreg_patch0_3_lat_dsl = helpers.constant_field(grid, 3.0, dims.EdgeDim, dims.KDim) - dreg_patch0_4_lon_dsl = helpers.constant_field(grid, 4.0, dims.EdgeDim, dims.KDim) - dreg_patch0_4_lat_dsl = helpers.constant_field(grid, 4.0, dims.EdgeDim, dims.KDim) - dreg_patch1_1_lon_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch1_1_lat_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch1_2_lon_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch1_2_lat_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch1_3_lon_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch1_3_lat_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch1_4_lon_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch1_4_lat_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch2_1_lon_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch2_1_lat_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch2_2_lon_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch2_2_lat_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch2_3_lon_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch2_3_lat_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch2_4_lon_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - dreg_patch2_4_lat_vmask = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) + famask_int = data_alloc.random_mask(grid, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + p_vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + ptr_v3_lon = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim, low=0.1, high=1.0) + ptr_v3_lon_field = data_alloc.as_1D_sparse_field(ptr_v3_lon, dims.ECDim) + ptr_v3_lat = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim, low=0.1, high=1.0) + ptr_v3_lat_field = data_alloc.as_1D_sparse_field(ptr_v3_lat, dims.ECDim) + tangent_orientation_dsl = data_alloc.random_field(grid, dims.EdgeDim, low=0.1, high=1.0) + dreg_patch0_1_lon_dsl = data_alloc.constant_field(grid, 1.0, dims.EdgeDim, dims.KDim) + dreg_patch0_1_lat_dsl = data_alloc.constant_field(grid, 1.0, dims.EdgeDim, dims.KDim) + dreg_patch0_2_lon_dsl = data_alloc.constant_field(grid, 2.0, dims.EdgeDim, dims.KDim) + dreg_patch0_2_lat_dsl = data_alloc.constant_field(grid, 2.0, dims.EdgeDim, dims.KDim) + dreg_patch0_3_lon_dsl = data_alloc.constant_field(grid, 3.0, dims.EdgeDim, dims.KDim) + dreg_patch0_3_lat_dsl = data_alloc.constant_field(grid, 3.0, dims.EdgeDim, dims.KDim) + dreg_patch0_4_lon_dsl = data_alloc.constant_field(grid, 4.0, dims.EdgeDim, dims.KDim) + dreg_patch0_4_lat_dsl = data_alloc.constant_field(grid, 4.0, dims.EdgeDim, dims.KDim) + dreg_patch1_1_lon_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch1_1_lat_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch1_2_lon_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch1_2_lat_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch1_3_lon_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch1_3_lat_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch1_4_lon_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch1_4_lat_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch2_1_lon_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch2_1_lat_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch2_2_lon_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch2_2_lat_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch2_3_lon_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch2_3_lat_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch2_4_lon_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + dreg_patch2_4_lat_vmask = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) return dict( famask_int=famask_int, p_vn=p_vn, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py index 5d20ca551b..3634bc2854 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py @@ -11,6 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers +import icon4py.model.common.utils.data_allocation as data_allocation from icon4py.model.atmosphere.advection.stencils.reconstruct_cubic_coefficients_svd import ( reconstruct_cubic_coefficients_svd, ) @@ -313,53 +314,53 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim) - lsq_pseudoinv_1_field = helpers.as_1D_sparse_field( - helpers.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + p_cc = data_allocation.random_field(grid, dims.CellDim, dims.KDim) + lsq_pseudoinv_1_field = data_allocation.as_1D_sparse_field( + data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_2_field = helpers.as_1D_sparse_field( - helpers.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_2_field = data_allocation.as_1D_sparse_field( + data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_3_field = helpers.as_1D_sparse_field( - helpers.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_3_field = data_allocation.as_1D_sparse_field( + data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_4_field = helpers.as_1D_sparse_field( - helpers.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_4_field = data_allocation.as_1D_sparse_field( + data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_5_field = helpers.as_1D_sparse_field( - helpers.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_5_field = data_allocation.as_1D_sparse_field( + data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_6_field = helpers.as_1D_sparse_field( - helpers.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_6_field = data_allocation.as_1D_sparse_field( + data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_7_field = helpers.as_1D_sparse_field( - helpers.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_7_field = data_allocation.as_1D_sparse_field( + data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_8_field = helpers.as_1D_sparse_field( - helpers.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_8_field = data_allocation.as_1D_sparse_field( + data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_9_field = helpers.as_1D_sparse_field( - helpers.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_9_field = data_allocation.as_1D_sparse_field( + data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_moments_1 = helpers.random_field(grid, dims.CellDim) - lsq_moments_2 = helpers.random_field(grid, dims.CellDim) - lsq_moments_3 = helpers.random_field(grid, dims.CellDim) - lsq_moments_4 = helpers.random_field(grid, dims.CellDim) - lsq_moments_5 = helpers.random_field(grid, dims.CellDim) - lsq_moments_6 = helpers.random_field(grid, dims.CellDim) - lsq_moments_7 = helpers.random_field(grid, dims.CellDim) - lsq_moments_8 = helpers.random_field(grid, dims.CellDim) - lsq_moments_9 = helpers.random_field(grid, dims.CellDim) - p_coeff_1_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_2_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_3_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_4_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_5_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_6_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_7_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_8_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_9_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_10_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) + lsq_moments_1 = data_allocation.random_field(grid, dims.CellDim) + lsq_moments_2 = data_allocation.random_field(grid, dims.CellDim) + lsq_moments_3 = data_allocation.random_field(grid, dims.CellDim) + lsq_moments_4 = data_allocation.random_field(grid, dims.CellDim) + lsq_moments_5 = data_allocation.random_field(grid, dims.CellDim) + lsq_moments_6 = data_allocation.random_field(grid, dims.CellDim) + lsq_moments_7 = data_allocation.random_field(grid, dims.CellDim) + lsq_moments_8 = data_allocation.random_field(grid, dims.CellDim) + lsq_moments_9 = data_allocation.random_field(grid, dims.CellDim) + p_coeff_1_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_2_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_3_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_4_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_5_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_6_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_7_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_8_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_9_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_10_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) cell_domain = h_grid.domain(dims.CellDim) horizontal_start = ( diff --git a/model/atmosphere/advection/tests/advection_tests/utils.py b/model/atmosphere/advection/tests/advection_tests/utils.py index ebe3f456b0..3d4cc8e48e 100644 --- a/model/atmosphere/advection/tests/advection_tests/utils.py +++ b/model/atmosphere/advection/tests/advection_tests/utils.py @@ -40,7 +40,7 @@ def construct_interpolation_state( savepoint: sb.InterpolationSavepoint, ) -> advection_states.AdvectionInterpolationState: return advection_states.AdvectionInterpolationState( - geofac_div=helpers.as_1D_sparse_field(savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(savepoint.geofac_div(), dims.CEDim), rbf_vec_coeff_e=savepoint.rbf_vec_coeff_e(), pos_on_tplane_e_1=savepoint.pos_on_tplane_e_x(), pos_on_tplane_e_2=savepoint.pos_on_tplane_e_y(), @@ -76,10 +76,10 @@ def construct_diagnostic_init_state( airmass_now=savepoint.airmass_now(), airmass_new=savepoint.airmass_new(), grf_tend_tracer=savepoint.grf_tend_tracer(ntracer), - hfl_tracer=field_alloc.allocate_zero_field( + hfl_tracer=data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=icon_grid ), # exit field - vfl_tracer=field_alloc.allocate_zero_field( # TODO (dastrm): should be KHalfDim + vfl_tracer=data_alloc.allocate_zero_field( # TODO (dastrm): should be KHalfDim dims.CellDim, dims.KDim, is_halfdim=True, grid=icon_grid ), # exit field ) diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_w_and_compute_horizontal_gradients_for_turbulence.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_w_and_compute_horizontal_gradients_for_turbulence.py index 6fb60317be..d27af93a69 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_w_and_compute_horizontal_gradients_for_turbulence.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_w_and_compute_horizontal_gradients_for_turbulence.py @@ -13,7 +13,9 @@ apply_diffusion_to_w_and_compute_horizontal_gradients_for_turbulence, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest + from .test_apply_nabla2_to_w import apply_nabla2_to_w_numpy from .test_apply_nabla2_to_w_in_upper_damping_layer import ( diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_global_to_vn.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_global_to_vn.py index 2db8bc0ca5..2fb6bbaaad 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_global_to_vn.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_global_to_vn.py @@ -13,7 +13,8 @@ apply_nabla2_and_nabla4_global_to_vn, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_to_vn.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_to_vn.py index 204bae4357..6147c5d1f7 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_to_vn.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_and_nabla4_to_vn.py @@ -13,7 +13,8 @@ apply_nabla2_and_nabla4_to_vn, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_vn_in_lateral_boundary.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_vn_in_lateral_boundary.py index 97dd2d7549..c04ffbf140 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_vn_in_lateral_boundary.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_vn_in_lateral_boundary.py @@ -13,7 +13,8 @@ apply_nabla2_to_vn_in_lateral_boundary, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w.py index fc14023d01..3f44beeb68 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w.py @@ -11,7 +11,8 @@ from icon4py.model.atmosphere.diffusion.stencils.apply_nabla2_to_w import apply_nabla2_to_w from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w_in_upper_damping_layer.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w_in_upper_damping_layer.py index 409d6ad2f5..10afa95345 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w_in_upper_damping_layer.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_nabla2_to_w_in_upper_damping_layer.py @@ -13,7 +13,8 @@ apply_nabla2_to_w_in_upper_damping_layer, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_diagnostics_for_turbulence.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_diagnostics_for_turbulence.py index 278ac89a94..5990e7e700 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_diagnostics_for_turbulence.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_diagnostics_for_turbulence.py @@ -13,7 +13,8 @@ calculate_diagnostics_for_turbulence, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_horizontal_gradients_for_turbulence.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_horizontal_gradients_for_turbulence.py index 32604af37f..983ed8d02e 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_horizontal_gradients_for_turbulence.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_horizontal_gradients_for_turbulence.py @@ -13,7 +13,8 @@ calculate_horizontal_gradients_for_turbulence, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py index 2933494493..8f92aa036f 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py @@ -13,11 +13,10 @@ calculate_nabla2_and_smag_coefficients_for_vn, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, - as_1D_sparse_field, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( random_field, - zero_field, + zero_field ) from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_w.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_w.py index c06b8390be..c997e90d48 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_w.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_w.py @@ -13,7 +13,8 @@ calculate_nabla2_for_w, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, constant_field, zero_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import constant_field, zero_field def calculate_nabla2_for_w_numpy(grid, w: np.array, geofac_n2s: np.array): diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_z.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_z.py index 936a1957ae..e04a87b9d0 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_z.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_for_z.py @@ -14,7 +14,8 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_of_theta.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_of_theta.py index 17530c559b..3d531eef57 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_of_theta.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_of_theta.py @@ -13,11 +13,10 @@ calculate_nabla2_of_theta, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, - as_1D_sparse_field, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( random_field, - zero_field, + zero_field ) from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla4.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla4.py index cc1d70f6c2..69a34aa553 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla4.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla4.py @@ -11,8 +11,8 @@ from icon4py.model.atmosphere.diffusion.stencils.calculate_nabla4 import calculate_nabla4 from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( as_1D_sparse_field, random_field, zero_field, diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_enhance_diffusion_coefficient_for_grid_point_cold_pools.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_enhance_diffusion_coefficient_for_grid_point_cold_pools.py index dffe1df167..69d74cd305 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_enhance_diffusion_coefficient_for_grid_point_cold_pools.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_enhance_diffusion_coefficient_for_grid_point_cold_pools.py @@ -15,7 +15,8 @@ enhance_diffusion_coefficient_for_grid_point_cold_pools, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_field_for_grid_point_cold_pools_enhancement.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_field_for_grid_point_cold_pools_enhancement.py index 4831299943..7ba168c6fd 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_field_for_grid_point_cold_pools_enhancement.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_field_for_grid_point_cold_pools_enhancement.py @@ -13,7 +13,8 @@ temporary_field_for_grid_point_cold_pools_enhancement, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py index 0105eebf1a..7a15843f2f 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py @@ -13,11 +13,10 @@ temporary_fields_for_turbulence_diagnostics, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, - as_1D_sparse_field, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( random_field, - zero_field, + zero_field ) from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_update_theta_and_exner.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_update_theta_and_exner.py index 9d11b14503..39d4998c90 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_update_theta_and_exner.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_update_theta_and_exner.py @@ -13,7 +13,8 @@ update_theta_and_exner, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py index 09447515d5..de4ea904ae 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py @@ -11,6 +11,7 @@ from icon4py.model.atmosphere.diffusion import diffusion as diffusion_, diffusion_states from icon4py.model.common import dimension as dims from icon4py.model.common.decomposition import definitions +from icon4py.model.common.utils import data_allocation from icon4py.model.common.grid import vertical as v_grid from icon4py.model.testing import datatest_utils, helpers, parallel_helpers @@ -86,10 +87,10 @@ def test_parallel_diffusion( zd_diffcoef=metrics_savepoint.zd_diffcoef(), ) interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=helpers.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], @@ -208,10 +209,10 @@ def test_parallel_diffusion_multiple_steps( edge_geometry = grid_savepoint.construct_edge_geometry() interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=helpers.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py index bfcbfdd1f1..3644a15a21 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py @@ -8,9 +8,9 @@ import pytest import icon4py.model.common.dimension as dims +import icon4py.model.common.utils.data_allocation as data_allocation import icon4py.model.common.grid.states as grid_states from icon4py.model.atmosphere.diffusion import diffusion, diffusion_states, diffusion_utils -from icon4py.model.common import settings from icon4py.model.common.decomposition import definitions from icon4py.model.common.grid import ( geometry, @@ -18,7 +18,6 @@ icon, vertical as v_grid, ) -from icon4py.model.common.settings import backend, xp from icon4py.model.testing import ( datatest_utils as dt_utils, grid_utils, @@ -94,18 +93,18 @@ def _construct_minimal_decomposition_info(grid: icon.IconGrid): primal_normal_y=geometry_.get(geometry_meta.EDGE_NORMAL_V), primal_normal_cell_x=geometry_.get(geometry_meta.EDGE_NORMAL_CELL_U), primal_normal_cell_y=geometry_.get(geometry_meta.EDGE_NORMAL_CELL_V), - primal_normal_vert_x=helpers.as_1D_sparse_field( + primal_normal_vert_x=data_allocation.as_1D_sparse_field( geometry_.get(geometry_meta.EDGE_NORMAL_VERTEX_U), target_dim=dims.ECVDim ), - primal_normal_vert_y=helpers.as_1D_sparse_field( + primal_normal_vert_y=data_allocation.as_1D_sparse_field( geometry_.get(geometry_meta.EDGE_NORMAL_VERTEX_V), target_dim=dims.ECVDim ), dual_normal_cell_x=geometry_.get(geometry_meta.EDGE_TANGENT_CELL_U), dual_normal_cell_y=geometry_.get(geometry_meta.EDGE_TANGENT_CELL_V), - dual_normal_vert_x=helpers.as_1D_sparse_field( + dual_normal_vert_x=data_allocation.as_1D_sparse_field( geometry_.get(geometry_meta.EDGE_TANGENT_VERTEX_U), target_dim=dims.ECVDim ), - dual_normal_vert_y=helpers.as_1D_sparse_field( + dual_normal_vert_y=data_allocation.as_1D_sparse_field( geometry_.get(geometry_meta.EDGE_TANGENT_VERTEX_V), target_dim=dims.ECVDim ), ) @@ -217,10 +216,10 @@ def test_diffusion_init( assert meta["date"] == step_date_init interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=helpers.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], @@ -359,10 +358,10 @@ def test_verify_diffusion_init_against_savepoint( vct_b=vct_b, ) interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=helpers.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], @@ -421,10 +420,10 @@ def test_run_diffusion_single_step( dtime = savepoint_diffusion_init.get_metadata("dtime").get("dtime") interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=helpers.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], @@ -520,10 +519,10 @@ def test_run_diffusion_multiple_steps( edge_geometry: grid_states.EdgeParams = grid_savepoint.construct_edge_geometry() cell_geometry: grid_states.CellParams = grid_savepoint.construct_cell_geometry() interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=helpers.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], @@ -666,10 +665,10 @@ def test_run_diffusion_initial_step( vct_b=vct_b, ) interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=helpers.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_states.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_states.py index 021162b162..38f5dce06d 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_states.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_states.py @@ -10,6 +10,7 @@ import pytest import icon4py.model.common.dimension as dims +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.atmosphere.diffusion import diffusion_states from icon4py.model.testing import helpers @@ -18,10 +19,10 @@ def test_verify_geofac_n2s_field_manipulation(interpolation_savepoint, icon_grid): geofac_n2s = interpolation_savepoint.geofac_n2s().asnumpy() interpolation_state = interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=helpers.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_accumulate_prep_adv_fields.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_accumulate_prep_adv_fields.py index 6a37692b77..dca10380fb 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_accumulate_prep_adv_fields.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_accumulate_prep_adv_fields.py @@ -13,7 +13,8 @@ accumulate_prep_adv_fields, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_from_data_assimilation.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_from_data_assimilation.py index bdb3744cd4..d517860b80 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_from_data_assimilation.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_from_data_assimilation.py @@ -13,7 +13,8 @@ add_analysis_increments_from_data_assimilation, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_to_vn.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_to_vn.py index 40b7099ccb..275330ddbd 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_to_vn.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_analysis_increments_to_vn.py @@ -13,7 +13,8 @@ add_analysis_increments_to_vn, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_normal_wind_tendency_approaching_cfl.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_normal_wind_tendency_approaching_cfl.py index d4dd211591..a784d89bd1 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_normal_wind_tendency_approaching_cfl.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_normal_wind_tendency_approaching_cfl.py @@ -13,7 +13,8 @@ add_extra_diffusion_for_normal_wind_tendency_approaching_cfl, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, random_mask +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field, random_mask from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_w_con_approaching_cfl.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_w_con_approaching_cfl.py index 98960b88bb..8022179677 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_w_con_approaching_cfl.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_extra_diffusion_for_w_con_approaching_cfl.py @@ -13,7 +13,8 @@ add_extra_diffusion_for_w_con_approaching_cfl, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, random_mask +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field, random_mask from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn.py index 7ce988a229..600adbcf02 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn.py @@ -13,7 +13,8 @@ add_temporal_tendencies_to_vn, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn_by_interpolating_between_time_levels.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn_by_interpolating_between_time_levels.py index a78b20bb59..14d6d0d1c1 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn_by_interpolating_between_time_levels.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_temporal_tendencies_to_vn_by_interpolating_between_time_levels.py @@ -13,7 +13,8 @@ add_temporal_tendencies_to_vn_by_interpolating_between_time_levels, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_vertical_wind_derivative_to_divergence_damping.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_vertical_wind_derivative_to_divergence_damping.py index 4fdfe33dfa..4d052de157 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_vertical_wind_derivative_to_divergence_damping.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_vertical_wind_derivative_to_divergence_damping.py @@ -13,7 +13,8 @@ add_vertical_wind_derivative_to_divergence_damping, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_2nd_order_divergence_damping.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_2nd_order_divergence_damping.py index 57e6ca0103..7ebc70a8df 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_2nd_order_divergence_damping.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_2nd_order_divergence_damping.py @@ -13,7 +13,8 @@ apply_2nd_order_divergence_damping, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_4th_order_divergence_damping.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_4th_order_divergence_damping.py index 52231e34f4..3395012949 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_4th_order_divergence_damping.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_4th_order_divergence_damping.py @@ -13,7 +13,8 @@ apply_4th_order_divergence_damping, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_hydrostatic_correction_to_horizontal_gradient_of_exner_pressure.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_hydrostatic_correction_to_horizontal_gradient_of_exner_pressure.py index 96e593c203..530d64f5f2 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_hydrostatic_correction_to_horizontal_gradient_of_exner_pressure.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_hydrostatic_correction_to_horizontal_gradient_of_exner_pressure.py @@ -13,7 +13,8 @@ apply_hydrostatic_correction_to_horizontal_gradient_of_exner_pressure, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, random_mask +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field, random_mask from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_rayleigh_damping_mechanism.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_rayleigh_damping_mechanism.py index 453df3b708..a0f77f4639 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_rayleigh_damping_mechanism.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_rayleigh_damping_mechanism.py @@ -13,7 +13,8 @@ apply_rayleigh_damping_mechanism, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_weighted_2nd_and_4th_order_divergence_damping.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_weighted_2nd_and_4th_order_divergence_damping.py index 7f3ccb9d80..d9242821b5 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_weighted_2nd_and_4th_order_divergence_damping.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_apply_weighted_2nd_and_4th_order_divergence_damping.py @@ -13,7 +13,8 @@ apply_weighted_2nd_and_4th_order_divergence_damping, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_normal_wind_tendency.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_normal_wind_tendency.py index bd2957132d..dda48a4ae8 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_normal_wind_tendency.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_normal_wind_tendency.py @@ -13,11 +13,10 @@ compute_advective_normal_wind_tendency, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, - as_1D_sparse_field, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( random_field, - zero_field, + zero_field ) from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_vertical_wind_tendency.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_vertical_wind_tendency.py index 832e52c500..f29551634a 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_vertical_wind_tendency.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_vertical_wind_tendency.py @@ -13,7 +13,8 @@ compute_advective_vertical_wind_tendency, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_airmass.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_airmass.py index 1283ec1f6b..0c658dab55 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_airmass.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_airmass.py @@ -11,7 +11,8 @@ from icon4py.model.atmosphere.dycore.stencils.compute_airmass import compute_airmass from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_approx_of_2nd_vertical_derivative_of_exner.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_approx_of_2nd_vertical_derivative_of_exner.py index b3dc98a37c..85f5c265b8 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_approx_of_2nd_vertical_derivative_of_exner.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_approx_of_2nd_vertical_derivative_of_exner.py @@ -13,7 +13,8 @@ compute_approx_of_2nd_vertical_derivative_of_exner, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn.py index fdd8ffbad8..ca26564cff 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn.py @@ -11,7 +11,8 @@ from icon4py.model.atmosphere.dycore.stencils.compute_avg_vn import compute_avg_vn from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn_and_graddiv_vn_and_vt.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn_and_graddiv_vn_and_vt.py index 794cb70443..8ad71ca2b2 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn_and_graddiv_vn_and_vt.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_avg_vn_and_graddiv_vn_and_vt.py @@ -13,7 +13,8 @@ compute_avg_vn_and_graddiv_vn_and_vt, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction.py index eb29c8ceac..d7e2cf8e6d 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction.py @@ -13,7 +13,8 @@ compute_contravariant_correction, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w.py index 7a43d1ebd1..ce2a0a90d4 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w.py @@ -13,7 +13,8 @@ compute_contravariant_correction_of_w, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w_for_lower_boundary.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w_for_lower_boundary.py index 7de43b4c4e..f6b82f612f 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w_for_lower_boundary.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_contravariant_correction_of_w_for_lower_boundary.py @@ -13,7 +13,8 @@ compute_contravariant_correction_of_w_for_lower_boundary, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_dwdz_for_divergence_damping.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_dwdz_for_divergence_damping.py index 3900eb2cc0..45a125acb4 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_dwdz_for_divergence_damping.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_dwdz_for_divergence_damping.py @@ -13,7 +13,8 @@ compute_dwdz_for_divergence_damping, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_exner_from_rhotheta.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_exner_from_rhotheta.py index 0bf349bcbf..4351ad9d20 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_exner_from_rhotheta.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_exner_from_rhotheta.py @@ -13,7 +13,8 @@ compute_exner_from_rhotheta, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_part_for_rho_and_exner.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_part_for_rho_and_exner.py index cada0e0334..707327b8ec 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_part_for_rho_and_exner.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_part_for_rho_and_exner.py @@ -13,7 +13,8 @@ compute_explicit_part_for_rho_and_exner, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_from_advection_and_vertical_wind_density.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_from_advection_and_vertical_wind_density.py index e512f53b9e..8cbcd0cdae 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_from_advection_and_vertical_wind_density.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_from_advection_and_vertical_wind_density.py @@ -13,7 +13,8 @@ compute_explicit_vertical_wind_from_advection_and_vertical_wind_density, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_speed_and_vertical_wind_times_density.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_speed_and_vertical_wind_times_density.py index 1b0dfc9c5f..1a72fbc299 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_speed_and_vertical_wind_times_density.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_explicit_vertical_wind_speed_and_vertical_wind_times_density.py @@ -13,7 +13,8 @@ compute_explicit_vertical_wind_speed_and_vertical_wind_times_density, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_first_vertical_derivative.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_first_vertical_derivative.py index ffd43b557a..b23f4eb4da 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_first_vertical_derivative.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_first_vertical_derivative.py @@ -13,7 +13,8 @@ compute_first_vertical_derivative, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_graddiv2_of_vn.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_graddiv2_of_vn.py index cc679663b4..c688d64469 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_graddiv2_of_vn.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_graddiv2_of_vn.py @@ -11,7 +11,8 @@ from icon4py.model.atmosphere.dycore.stencils.compute_graddiv2_of_vn import compute_graddiv2_of_vn from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_term_for_vertical_velocity.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_term_for_vertical_velocity.py index 4af658f12f..9298325ccf 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_term_for_vertical_velocity.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_term_for_vertical_velocity.py @@ -13,7 +13,8 @@ compute_horizontal_advection_term_for_vertical_velocity, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_flat_coordinates.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_flat_coordinates.py index c8b3298ae1..2424095e1b 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_flat_coordinates.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_flat_coordinates.py @@ -13,7 +13,8 @@ compute_horizontal_gradient_of_exner_pressure_for_flat_coordinates, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_nonflat_coordinates.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_nonflat_coordinates.py index c9194cca6d..ea76d8f43b 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_nonflat_coordinates.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_nonflat_coordinates.py @@ -13,7 +13,8 @@ compute_horizontal_gradient_of_exner_pressure_for_nonflat_coordinates, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_kinetic_energy.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_kinetic_energy.py index e8b7cd2658..fcaf627a24 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_kinetic_energy.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_kinetic_energy.py @@ -13,7 +13,8 @@ compute_horizontal_kinetic_energy, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_mass_flux.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_mass_flux.py index 72390408ba..48c183ad94 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_mass_flux.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_mass_flux.py @@ -11,7 +11,8 @@ from icon4py.model.atmosphere.dycore.stencils.compute_mass_flux import compute_mass_flux from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_maximum_cfl_and_clip_contravariant_vertical_velocity.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_maximum_cfl_and_clip_contravariant_vertical_velocity.py index e1a5e3b845..46b9d1d3c0 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_maximum_cfl_and_clip_contravariant_vertical_velocity.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_maximum_cfl_and_clip_contravariant_vertical_velocity.py @@ -13,8 +13,8 @@ compute_maximum_cfl_and_clip_contravariant_vertical_velocity, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( random_field, random_mask, zero_field, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta.py index ed91890967..76e0e7c520 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta.py @@ -13,7 +13,8 @@ compute_perturbation_of_rho_and_theta, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta_and_rho_interface_cell_centers.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta_and_rho_interface_cell_centers.py index 4de34b1420..661e2e2ac3 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta_and_rho_interface_cell_centers.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_perturbation_of_rho_and_theta_and_rho_interface_cell_centers.py @@ -13,7 +13,8 @@ compute_perturbation_of_rho_and_theta_and_rho_interface_cell_centers, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_results_for_thermodynamic_variables.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_results_for_thermodynamic_variables.py index 313adbc006..41f90fa8af 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_results_for_thermodynamic_variables.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_results_for_thermodynamic_variables.py @@ -13,7 +13,8 @@ compute_results_for_thermodynamic_variables, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_rho_virtual_potential_temperatures_and_pressure_gradient.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_rho_virtual_potential_temperatures_and_pressure_gradient.py index 5e522e31b7..ed5ac9987a 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_rho_virtual_potential_temperatures_and_pressure_gradient.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_rho_virtual_potential_temperatures_and_pressure_gradient.py @@ -13,7 +13,8 @@ compute_rho_virtual_potential_temperatures_and_pressure_gradient, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_solver_coefficients_matrix.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_solver_coefficients_matrix.py index 0a889b18d2..473f9c46b6 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_solver_coefficients_matrix.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_solver_coefficients_matrix.py @@ -13,7 +13,8 @@ compute_solver_coefficients_matrix, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_tangential_wind.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_tangential_wind.py index d812c81bba..01aa5658dd 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_tangential_wind.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_tangential_wind.py @@ -11,7 +11,8 @@ from icon4py.model.atmosphere.dycore.stencils.compute_tangential_wind import compute_tangential_wind from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_theta_and_exner.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_theta_and_exner.py index 1650c19363..674cfdde78 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_theta_and_exner.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_theta_and_exner.py @@ -11,7 +11,8 @@ from icon4py.model.atmosphere.dycore.stencils.compute_theta_and_exner import compute_theta_and_exner from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, random_mask +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field, random_mask from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_virtual_potential_temperatures_and_pressure_gradient.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_virtual_potential_temperatures_and_pressure_gradient.py index 604ce83f21..cc64e95d64 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_virtual_potential_temperatures_and_pressure_gradient.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_virtual_potential_temperatures_and_pressure_gradient.py @@ -13,7 +13,8 @@ compute_virtual_potential_temperatures_and_pressure_gradient, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_vn_on_lateral_boundary.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_vn_on_lateral_boundary.py index 8f13b80565..5d361b0b82 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_vn_on_lateral_boundary.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_vn_on_lateral_boundary.py @@ -13,7 +13,8 @@ compute_vn_on_lateral_boundary, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_copy_cell_kdim_field_to_vp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_copy_cell_kdim_field_to_vp.py index 0bddb60560..4eafbaa469 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_copy_cell_kdim_field_to_vp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_copy_cell_kdim_field_to_vp.py @@ -13,7 +13,8 @@ copy_cell_kdim_field_to_vp, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_correct_contravariant_vertical_velocity.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_correct_contravariant_vertical_velocity.py index 95eee77828..caaec25597 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_correct_contravariant_vertical_velocity.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_correct_contravariant_vertical_velocity.py @@ -13,7 +13,8 @@ correct_contravariant_vertical_velocity, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_at_top.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_at_top.py index 1e5e2a1622..a54afc8e55 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_at_top.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_at_top.py @@ -11,7 +11,8 @@ from icon4py.model.atmosphere.dycore.stencils.extrapolate_at_top import extrapolate_at_top from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_temporally_exner_pressure.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_temporally_exner_pressure.py index 565a3b0122..98777d62cd 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_temporally_exner_pressure.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_extrapolate_temporally_exner_pressure.py @@ -13,7 +13,8 @@ extrapolate_temporally_exner_pressure, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_solve_nonhydro_stencil_39_40.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_solve_nonhydro_stencil_39_40.py index 9672d5fbd0..b096f78a4a 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_solve_nonhydro_stencil_39_40.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_solve_nonhydro_stencil_39_40.py @@ -13,7 +13,8 @@ fused_solve_nonhydro_stencil_39_40, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat from .test_compute_contravariant_correction_of_w import compute_contravariant_correction_of_w_numpy diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_15_to_18.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_15_to_18.py index 09c8a18383..5486f46fb6 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_15_to_18.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_15_to_18.py @@ -13,8 +13,8 @@ fused_velocity_advection_stencil_15_to_18, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( as_1D_sparse_field, random_field, random_mask, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_19_to_20.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_19_to_20.py index 4cf5316e5e..43faaa4153 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_19_to_20.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_19_to_20.py @@ -14,8 +14,8 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid -from icon4py.model.testing.helpers import ( - StencilTest, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( as_1D_sparse_field, random_field, random_mask, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py index 4e5ea0ec19..cc7a7d1ada 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py @@ -13,7 +13,8 @@ fused_velocity_advection_stencil_1_to_7, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.utils import data_allocation as data_alloc from .test_compute_contravariant_correction import compute_contravariant_correction_numpy diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_8_to_13.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_8_to_13.py index 9b62bdf748..883ad93dd9 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_8_to_13.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_8_to_13.py @@ -13,11 +13,10 @@ fused_velocity_advection_stencil_8_to_13, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, - as_1D_sparse_field, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( random_field, - zero_field, + zero_field ) from icon4py.model.common.utils import data_allocation as data_alloc diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_vp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_vp.py index ccaaca7508..783287ced3 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_vp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_vp.py @@ -13,7 +13,8 @@ init_cell_kdim_field_with_zero_vp, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_wp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_wp.py index 6315cff76b..e7efbde598 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_wp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_cell_kdim_field_with_zero_wp.py @@ -13,7 +13,8 @@ init_cell_kdim_field_with_zero_wp, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, zero_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_vp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_vp.py index 05d2210ab6..ade05440f8 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_vp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_vp.py @@ -13,7 +13,8 @@ init_two_cell_kdim_fields_with_zero_vp, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_wp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_wp.py index 44ca5538f9..1af6c6af2c 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_wp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_with_zero_wp.py @@ -13,7 +13,8 @@ init_two_cell_kdim_fields_with_zero_wp, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, zero_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_edge_kdim_fields_with_zero_wp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_edge_kdim_fields_with_zero_wp.py index 3a131c766b..9c88d7ecf1 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_edge_kdim_fields_with_zero_wp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_edge_kdim_fields_with_zero_wp.py @@ -13,7 +13,8 @@ init_two_edge_kdim_fields_with_zero_wp, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, zero_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import zero_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_contravariant_vertical_velocity_to_full_levels.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_contravariant_vertical_velocity_to_full_levels.py index d796b933cb..7581003f22 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_contravariant_vertical_velocity_to_full_levels.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_contravariant_vertical_velocity_to_full_levels.py @@ -13,7 +13,8 @@ interpolate_contravariant_vertical_velocity_to_full_levels, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_cell_center.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_cell_center.py index 7e5fdf31d0..62eb9df956 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_cell_center.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_cell_center.py @@ -13,11 +13,10 @@ interpolate_to_cell_center, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, - as_1D_sparse_field, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( random_field, - zero_field, + zero_field ) from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_half_levels_vp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_half_levels_vp.py index 5f65541afc..1b243d09b5 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_half_levels_vp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_half_levels_vp.py @@ -13,7 +13,8 @@ interpolate_to_half_levels_vp, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_surface.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_surface.py index 22727bc57d..fef2c2a3ef 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_surface.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_surface.py @@ -11,7 +11,8 @@ from icon4py.model.atmosphere.dycore.stencils.interpolate_to_surface import interpolate_to_surface from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_and_vt_to_ie_and_compute_ekin_on_edges.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_and_vt_to_ie_and_compute_ekin_on_edges.py index de6ecabfb7..79fef51f4b 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_and_vt_to_ie_and_compute_ekin_on_edges.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_and_vt_to_ie_and_compute_ekin_on_edges.py @@ -13,7 +13,8 @@ interpolate_vn_and_vt_to_ie_and_compute_ekin_on_edges, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_to_ie_and_compute_ekin_on_edges.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_to_ie_and_compute_ekin_on_edges.py index f7720ca834..45e64bd06b 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_to_ie_and_compute_ekin_on_edges.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vn_to_ie_and_compute_ekin_on_edges.py @@ -13,7 +13,8 @@ interpolate_vn_to_ie_and_compute_ekin_on_edges, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vt_to_interface_edges.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vt_to_interface_edges.py index 1a837970cc..4a5cee4a42 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vt_to_interface_edges.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_vt_to_interface_edges.py @@ -13,7 +13,8 @@ interpolate_vt_to_interface_edges, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mcompute_divergence_of_fluxes_of_rho_and_theta.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mcompute_divergence_of_fluxes_of_rho_and_theta.py index 8f2ec3ec59..cd6e43546b 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mcompute_divergence_of_fluxes_of_rho_and_theta.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mcompute_divergence_of_fluxes_of_rho_and_theta.py @@ -13,11 +13,10 @@ compute_divergence_of_fluxes_of_rho_and_theta, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, - as_1D_sparse_field, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( random_field, - zero_field, + zero_field ) from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl.py index b05037ef80..d792ade9eb 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl.py @@ -13,7 +13,8 @@ mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_divrot_rot_vertex_ri_dsl.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_divrot_rot_vertex_ri_dsl.py index f01e7f8b17..0590b004f5 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_divrot_rot_vertex_ri_dsl.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_divrot_rot_vertex_ri_dsl.py @@ -13,7 +13,8 @@ mo_math_divrot_rot_vertex_ri_dsl, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_gradients_grad_green_gauss_cell_dsl.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_gradients_grad_green_gauss_cell_dsl.py index 53478b6de2..f78b9e0869 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_gradients_grad_green_gauss_cell_dsl.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_math_gradients_grad_green_gauss_cell_dsl.py @@ -13,7 +13,8 @@ mo_math_gradients_grad_green_gauss_cell_dsl, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_solve_nonhydro_stencil_51.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_solve_nonhydro_stencil_51.py index 017564fd83..0b6717d0a7 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_solve_nonhydro_stencil_51.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mo_solve_nonhydro_stencil_51.py @@ -13,7 +13,8 @@ mo_solve_nonhydro_stencil_51, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest def mo_solve_nonhydro_stencil_51_z_q_numpy( diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_lower_boundary_condition_for_w_and_contravariant_correction.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_lower_boundary_condition_for_w_and_contravariant_correction.py index 2c0c9558bc..af611af4ae 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_lower_boundary_condition_for_w_and_contravariant_correction.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_lower_boundary_condition_for_w_and_contravariant_correction.py @@ -13,7 +13,8 @@ set_lower_boundary_condition_for_w_and_contravariant_correction, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_theta_v_prime_ic_at_lower_boundary.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_theta_v_prime_ic_at_lower_boundary.py index e6322d43ed..b9d41953cc 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_theta_v_prime_ic_at_lower_boundary.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_set_theta_v_prime_ic_at_lower_boundary.py @@ -13,7 +13,8 @@ set_theta_v_prime_ic_at_lower_boundary, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import vpfloat, wpfloat from .test_interpolate_to_surface import interpolate_to_surface_numpy diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_back_substitution.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_back_substitution.py index bd5bb3a3fe..4f39eb466e 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_back_substitution.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_back_substitution.py @@ -13,7 +13,8 @@ solve_tridiagonal_matrix_for_w_back_substitution, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_forward_sweep.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_forward_sweep.py index 078cf3aedd..d00fa13f05 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_forward_sweep.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_solve_tridiagonal_matrix_for_w_forward_sweep.py @@ -14,7 +14,7 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.common.grid.simple import SimpleGrid -from icon4py.model.testing.helpers import random_field +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_density_exner_wind.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_density_exner_wind.py index 36a423338d..5df76e6a61 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_density_exner_wind.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_density_exner_wind.py @@ -13,7 +13,8 @@ update_density_exner_wind, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_dynamical_exner_time_increment.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_dynamical_exner_time_increment.py index f90bf72171..d806734c3b 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_dynamical_exner_time_increment.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_dynamical_exner_time_increment.py @@ -13,7 +13,8 @@ update_dynamical_exner_time_increment, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_flux_weighted.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_flux_weighted.py index 929c251742..61bcf9c446 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_flux_weighted.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_flux_weighted.py @@ -13,7 +13,8 @@ update_mass_flux_weighted, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_volume_flux.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_volume_flux.py index b54f415a9b..68bfa73c69 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_volume_flux.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_mass_volume_flux.py @@ -11,7 +11,8 @@ from icon4py.model.atmosphere.dycore.stencils.update_mass_volume_flux import update_mass_volume_flux from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_theta_v.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_theta_v.py index 2a082ed68f..aed4c62ab0 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_theta_v.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_theta_v.py @@ -11,7 +11,8 @@ from icon4py.model.atmosphere.dycore.stencils.update_theta_v import update_theta_v from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, random_mask +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import random_field, random_mask from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_wind.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_wind.py index 1e12cfef7e..ca11ad9af9 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_wind.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_update_wind.py @@ -11,7 +11,8 @@ from icon4py.model.atmosphere.dycore.stencils.update_wind import update_wind from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, random_field, zero_field +from icon4py.model.common.utils.data_allocation import random_field, zero_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.type_alias import wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_tests/test_dycore_utils.py b/model/atmosphere/dycore/tests/dycore_tests/test_dycore_utils.py index 6f53aa2191..320d72e0d1 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/test_dycore_utils.py +++ b/model/atmosphere/dycore/tests/dycore_tests/test_dycore_utils.py @@ -11,7 +11,6 @@ from icon4py.model.atmosphere.dycore import dycore_utils from icon4py.model.common import constants, dimension as dims from icon4py.model.common.grid import simple as simple_grid -from icon4py.model.common.settings import backend from icon4py.model.testing import helpers @@ -24,7 +23,7 @@ def bdy_divdamp_numpy(coeff: float, field: np.array): return 0.75 / (coeff + constants.DBL_EPS) * np.abs(field) -def test_caclulate_scal_divdamp_order_24(): +def test_calculate_scal_divdamp_order_24(backend): divdamp_fac_o2 = 3.0 divdamp_order = 24 mean_cell_area = 1000.0 @@ -45,7 +44,7 @@ def test_caclulate_scal_divdamp_order_24(): assert helpers.dallclose(ref, out.asnumpy()) -def test_calculate_scal_divdamp_any_order(): +def test_calculate_scal_divdamp_any_order(backend): divdamp_fac_o2 = 4.2 divdamp_order = 3 mean_cell_area = 1000.0 @@ -65,7 +64,7 @@ def test_calculate_scal_divdamp_any_order(): assert helpers.dallclose(enhanced_factor, out.asnumpy()) -def test_calculate_bdy_divdamp(): +def test_calculate_bdy_divdamp(backend): grid = simple_grid.SimpleGrid() scal_divdamp = helpers.random_field(grid, dims.KDim) out = helpers.zero_field(grid, dims.KDim) @@ -76,7 +75,7 @@ def test_calculate_bdy_divdamp(): assert helpers.dallclose(out.asnumpy(), bdy_divdamp_numpy(coeff, scal_divdamp.asnumpy())) -def test_calculate_divdamp_fields(): +def test_calculate_divdamp_fields(backend): grid = simple_grid.SimpleGrid() divdamp_field = helpers.random_field(grid, dims.KDim) scal_divdamp = helpers.zero_field(grid, dims.KDim) diff --git a/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py b/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py index b918df5557..3a054654c8 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py +++ b/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py @@ -19,7 +19,6 @@ from icon4py.model.common import constants, dimension as dims from icon4py.model.common.grid import horizontal as h_grid, vertical as v_grid from icon4py.model.common.math import smagorinsky -from icon4py.model.common.settings import backend from icon4py.model.testing import ( datatest_utils as dt_utils, helpers, @@ -31,9 +30,7 @@ @pytest.mark.datatest def test_validate_divdamp_fields_against_savepoint_values( - grid_savepoint, - savepoint_nonhydro_init, - icon_grid, + grid_savepoint, savepoint_nonhydro_init, icon_grid, backend ): config = solve_nh.NonHydrostaticConfig() divdamp_fac_o2 = 0.032 @@ -150,6 +147,7 @@ def test_nonhydro_predictor_step( ndyn_substeps, at_initial_timestep, caplog, + backend, ): caplog.set_level(logging.DEBUG) config = utils.construct_solve_nh_config(experiment, ndyn_substeps) @@ -537,6 +535,7 @@ def test_nonhydro_corrector_step( ndyn_substeps, at_initial_timestep, caplog, + backend, ): caplog.set_level(logging.DEBUG) config = utils.construct_solve_nh_config(experiment, ndyn_substeps) @@ -556,7 +555,7 @@ def test_nonhydro_corrector_step( vn_traj=sp.vn_traj(), mass_flx_me=sp.mass_flx_me(), mass_flx_ic=sp.mass_flx_ic(), - vol_flx_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid), + vol_flx_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid), ) diagnostic_state_nh = utils.construct_diagnostics(sp) @@ -744,6 +743,7 @@ def test_run_solve_nonhydro_single_step( savepoint_nonhydro_step_exit, at_initial_timestep, caplog, + backend, ): caplog.set_level(logging.DEBUG) config = utils.construct_solve_nh_config(experiment, ndyn_substeps) @@ -765,7 +765,7 @@ def test_run_solve_nonhydro_single_step( vn_traj=sp.vn_traj(), mass_flx_me=sp.mass_flx_me(), mass_flx_ic=sp.mass_flx_ic(), - vol_flx_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid), + vol_flx_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid), ) diagnostic_state_nh = utils.construct_diagnostics(sp) @@ -864,6 +864,7 @@ def test_run_solve_nonhydro_multi_step( savepoint_nonhydro_step_exit, experiment, ndyn_substeps, + backend, at_initial_timestep, ): config = utils.construct_solve_nh_config(experiment, ndyn_substeps) @@ -884,7 +885,7 @@ def test_run_solve_nonhydro_multi_step( vn_traj=sp.vn_traj(), mass_flx_me=sp.mass_flx_me(), mass_flx_ic=sp.mass_flx_ic(), - vol_flx_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid), + vol_flx_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid), ) linit = sp.get_metadata("linit").get("linit") diff --git a/model/atmosphere/dycore/tests/dycore_tests/utils.py b/model/atmosphere/dycore/tests/dycore_tests/utils.py index 8e0dfd929d..b68206f401 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/utils.py +++ b/model/atmosphere/dycore/tests/dycore_tests/utils.py @@ -11,7 +11,7 @@ from icon4py.model.common.grid import vertical as v_grid from icon4py.model.common.states import prognostic_state as prognostics from icon4py.model.testing import helpers -from icon4py.model.common.utils import serialbox as sb +from icon4py.model.common.utils import serialbox as sb, data_allocation as data_alloc def construct_interpolation_state( @@ -27,10 +27,10 @@ def construct_interpolation_state( pos_on_tplane_e_1=savepoint.pos_on_tplane_e_x(), pos_on_tplane_e_2=savepoint.pos_on_tplane_e_y(), rbf_vec_coeff_e=savepoint.rbf_vec_coeff_e(), - e_bln_c_s=helpers.as_1D_sparse_field(savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(savepoint.geofac_div(), dims.CEDim), geofac_n2s=savepoint.geofac_n2s(), geofac_grg_x=grg[0], geofac_grg_y=grg[1], diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjusment.py b/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjusment.py index 89ec688054..f59aaf9eff 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjusment.py +++ b/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjusment.py @@ -17,7 +17,8 @@ tracer_state as tracers, ) from icon4py.model.testing import datatest_utils as dt_utils -from icon4py.model.testing.helpers import dallclose, zero_field +from icon4py.model.testing.helpers import dallclose +from icon4py.model.common.utils.data_allocation import zero_field @pytest.mark.parametrize( diff --git a/model/driver/tests/driver_tests/test_timeloop.py b/model/driver/tests/driver_tests/test_timeloop.py index 5a1ee9683e..42e8d23771 100644 --- a/model/driver/tests/driver_tests/test_timeloop.py +++ b/model/driver/tests/driver_tests/test_timeloop.py @@ -196,10 +196,10 @@ def test_run_timeloop_single_step( pos_on_tplane_e_1=interpolation_savepoint.pos_on_tplane_e_x(), pos_on_tplane_e_2=interpolation_savepoint.pos_on_tplane_e_y(), rbf_vec_coeff_e=interpolation_savepoint.rbf_vec_coeff_e(), - e_bln_c_s=helpers.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=grg[0], geofac_grg_y=grg[1], @@ -262,7 +262,7 @@ def test_run_timeloop_single_step( vn_traj=sp.vn_traj(), mass_flx_me=sp.mass_flx_me(), mass_flx_ic=sp.mass_flx_ic(), - vol_flx_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid), + vol_flx_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid), ) current_index, next_index = (2, 1) if not linit else (1, 2) diff --git a/model/testing/src/icon4py/model/testing/datatest_fixtures.py b/model/testing/src/icon4py/model/testing/datatest_fixtures.py index c80ccd100f..fdf88329b1 100644 --- a/model/testing/src/icon4py/model/testing/datatest_fixtures.py +++ b/model/testing/src/icon4py/model/testing/datatest_fixtures.py @@ -79,6 +79,8 @@ def download_ser_data(request, processor_props, ranked_data_path, experiment, py @pytest.fixture def data_provider(download_ser_data, ranked_data_path, experiment, processor_props): data_path = dt_utils.get_datapath_for_experiment(ranked_data_path, experiment) + print(ranked_data_path) + print(data_path) return dt_utils.create_icon_serial_data_provider(data_path, processor_props) diff --git a/tools/tests/py2fgen/test_diffusion_wrapper.py b/tools/tests/py2fgen/test_diffusion_wrapper.py index 6dab394509..9e4d96af1c 100644 --- a/tools/tests/py2fgen/test_diffusion_wrapper.py +++ b/tools/tests/py2fgen/test_diffusion_wrapper.py @@ -13,6 +13,7 @@ import pytest from icon4py.model.atmosphere.diffusion import diffusion, diffusion_states from icon4py.model.common import constants, dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.grid import states as grid_states, vertical as v_grid from icon4py.model.testing import datatest_utils as dt_utils, helpers @@ -169,10 +170,10 @@ def test_diffusion_wrapper_granule_inputs( expected_edge_geometry: grid_states.EdgeParams = grid_savepoint.construct_edge_geometry() expected_cell_geometry: grid_states.CellParams = grid_savepoint.construct_cell_geometry() expected_interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=helpers.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], diff --git a/tools/tests/py2fgen/test_dycore_wrapper.py b/tools/tests/py2fgen/test_dycore_wrapper.py index bf5820ff5d..6821f9a305 100644 --- a/tools/tests/py2fgen/test_dycore_wrapper.py +++ b/tools/tests/py2fgen/test_dycore_wrapper.py @@ -26,6 +26,7 @@ import pytest from icon4py.model.atmosphere.dycore import dycore_states, solve_nonhydro as solve_nh from icon4py.model.common import constants, dimension as dims, utils as common_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.grid import horizontal as h_grid, vertical as v_grid from icon4py.model.common.grid.vertical import VerticalGridConfig from icon4py.model.common.states import prognostic_state as prognostics @@ -308,10 +309,10 @@ def test_dycore_wrapper_granule_inputs( pos_on_tplane_e_1=interpolation_savepoint.pos_on_tplane_e_x(), pos_on_tplane_e_2=interpolation_savepoint.pos_on_tplane_e_y(), rbf_vec_coeff_e=interpolation_savepoint.rbf_vec_coeff_e(), - e_bln_c_s=helpers.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=helpers.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], @@ -412,7 +413,7 @@ def test_dycore_wrapper_granule_inputs( vn_traj=sp.vn_traj(), mass_flx_me=sp.mass_flx_me(), mass_flx_ic=sp.mass_flx_ic(), - vol_flx_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid), + vol_flx_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=icon_grid), ) expected_initial_divdamp_fac = sp.divdamp_fac_o2() expected_dtime = sp.get_metadata("dtime").get("dtime") From 435274c84e37d4a25c874e30220b9cb33b09509e Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Tue, 10 Dec 2024 15:11:18 +0100 Subject: [PATCH 24/83] Final fixes after merging --- ...test_apply_diffusion_to_theta_and_exner.py | 4 +-- .../test_apply_diffusion_to_vn.py | 30 +++++++++---------- ...fusion_nabla_of_theta_over_steep_points.py | 4 +-- .../diffusion_tests/test_diffusion_utils.py | 1 - ..._interpolated_horizontal_advection_of_w.py | 3 +- ...e_horizontal_advection_of_rho_and_theta.py | 3 +- ...t_of_exner_pressure_for_multiple_levels.py | 4 +-- ...est_compute_hydrostatic_correction_term.py | 4 +-- ...two_cell_kdim_fields_index_with_zero_vp.py | 5 ++-- 9 files changed, 30 insertions(+), 28 deletions(-) diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_theta_and_exner.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_theta_and_exner.py index 15b69be720..8305138d4b 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_theta_and_exner.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_theta_and_exner.py @@ -14,8 +14,8 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid -from icon4py.model.testing.helpers import ( - StencilTest, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( flatten_first_two_dims, random_field, random_mask, diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_vn.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_vn.py index 49e16fc842..69667f6e39 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_vn.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_apply_diffusion_to_vn.py @@ -12,7 +12,7 @@ from icon4py.model.atmosphere.diffusion.stencils.apply_diffusion_to_vn import apply_diffusion_to_vn from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid -from icon4py.model.testing.helpers import StencilTest, as_1D_sparse_field, random_field +from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.utils import data_allocation as data_alloc from .test_apply_nabla2_and_nabla4_global_to_vn import apply_nabla2_and_nabla4_global_to_vn_numpy @@ -100,24 +100,24 @@ def reference( def input_data(self, grid): edge = data_alloc.allocate_indices(dims.EdgeDim, grid=grid, is_halfdim=False) - u_vert = random_field(grid, dims.VertexDim, dims.KDim) - v_vert = random_field(grid, dims.VertexDim, dims.KDim) + u_vert = data_alloc.random_field(grid, dims.VertexDim, dims.KDim) + v_vert = data_alloc.random_field(grid, dims.VertexDim, dims.KDim) - primal_normal_vert_v1 = random_field(grid, dims.EdgeDim, dims.E2C2VDim) - primal_normal_vert_v2 = random_field(grid, dims.EdgeDim, dims.E2C2VDim) + primal_normal_vert_v1 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2C2VDim) + primal_normal_vert_v2 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2C2VDim) - primal_normal_vert_v1_new = as_1D_sparse_field(primal_normal_vert_v1, dims.ECVDim) - primal_normal_vert_v2_new = as_1D_sparse_field(primal_normal_vert_v2, dims.ECVDim) + primal_normal_vert_v1_new = data_alloc.as_1D_sparse_field(primal_normal_vert_v1, dims.ECVDim) + primal_normal_vert_v2_new = data_alloc.as_1D_sparse_field(primal_normal_vert_v2, dims.ECVDim) - inv_vert_vert_length = random_field(grid, dims.EdgeDim) - inv_primal_edge_length = random_field(grid, dims.EdgeDim) + inv_vert_vert_length = data_alloc.random_field(grid, dims.EdgeDim) + inv_primal_edge_length = data_alloc.random_field(grid, dims.EdgeDim) - area_edge = random_field(grid, dims.EdgeDim) - kh_smag_e = random_field(grid, dims.EdgeDim, dims.KDim) - z_nabla2_e = random_field(grid, dims.EdgeDim, dims.KDim) - diff_multfac_vn = random_field(grid, dims.KDim) - vn = random_field(grid, dims.EdgeDim, dims.KDim) - nudgecoeff_e = random_field(grid, dims.EdgeDim) + area_edge = data_alloc.random_field(grid, dims.EdgeDim) + kh_smag_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + z_nabla2_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + diff_multfac_vn = data_alloc.random_field(grid, dims.KDim) + vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + nudgecoeff_e = data_alloc.random_field(grid, dims.EdgeDim) limited_area = grid.limited_area if hasattr(grid, "limited_area") else True fac_bdydiff_v = 5.0 diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py index f3882bb6b0..ba76afedcd 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py @@ -13,8 +13,8 @@ truly_horizontal_diffusion_nabla_of_theta_over_steep_points, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( flatten_first_two_dims, random_field, random_mask, diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py index 5c99af2699..8a7e4a448b 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py @@ -12,7 +12,6 @@ from icon4py.model.atmosphere.diffusion import diffusion, diffusion_utils from icon4py.model.common import dimension as dims from icon4py.model.common.grid import simple as simple_grid -from icon4py.model.common.settings import backend from icon4py.model.testing import helpers from .utils import construct_diffusion_config, diff_multfac_vn_numpy, smag_limit_numpy diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_interpolated_horizontal_advection_of_w.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_interpolated_horizontal_advection_of_w.py index 7bb735a649..41728173ba 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_interpolated_horizontal_advection_of_w.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_add_interpolated_horizontal_advection_of_w.py @@ -13,7 +13,8 @@ add_interpolated_horizontal_advection_of_w, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, as_1D_sparse_field, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import as_1D_sparse_field, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_of_rho_and_theta.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_of_rho_and_theta.py index 995ad99df4..d2926d0955 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_of_rho_and_theta.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_advection_of_rho_and_theta.py @@ -13,7 +13,8 @@ compute_horizontal_advection_of_rho_and_theta, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, as_1D_sparse_field, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import as_1D_sparse_field, random_field from icon4py.model.common.type_alias import vpfloat, wpfloat diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_multiple_levels.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_multiple_levels.py index f6a1a4e1d9..c3439c80d4 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_multiple_levels.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_multiple_levels.py @@ -13,8 +13,8 @@ compute_horizontal_gradient_of_exner_pressure_for_multiple_levels, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( flatten_first_two_dims, random_field, zero_field, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_hydrostatic_correction_term.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_hydrostatic_correction_term.py index 7ad0e52e78..ec370d2b6b 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_hydrostatic_correction_term.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_hydrostatic_correction_term.py @@ -13,8 +13,8 @@ compute_hydrostatic_correction_term, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import ( - StencilTest, +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import ( flatten_first_two_dims, random_field, zero_field, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_index_with_zero_vp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_index_with_zero_vp.py index 94a2561e77..d48cb8e778 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_index_with_zero_vp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_index_with_zero_vp.py @@ -13,7 +13,8 @@ init_two_cell_kdim_fields_index_with_zero_vp, ) from icon4py.model.common import dimension as dims -from icon4py.model.testing.helpers import StencilTest, _shape, random_field +from icon4py.model.testing.helpers import StencilTest +from icon4py.model.common.utils.data_allocation import shape, random_field from icon4py.model.common.type_alias import vpfloat @@ -47,7 +48,7 @@ def input_data(self, grid): field_index_with_zero_1 = random_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) field_index_with_zero_2 = random_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) - k = gtx.as_field((dims.KDim,), np.arange(0, _shape(grid, dims.KDim)[0], dtype=gtx.int32)) + k = gtx.as_field((dims.KDim,), np.arange(0, shape(grid, dims.KDim)[0], dtype=gtx.int32)) k1 = 1 k2 = gtx.int32(grid.num_levels) From b6aa2af34b82141444a69bf11a965500f6752951 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Tue, 10 Dec 2024 15:34:16 +0100 Subject: [PATCH 25/83] Renaming data_allocation --- ...e_antidiffusive_cell_fluxes_and_min_max.py | 26 +++---- ...test_compute_barycentric_backtrajectory.py | 46 +++++------ ..._compute_barycentric_backtrajectory_alt.py | 34 ++++---- .../test_compute_ffsl_backtrajectory.py | 68 ++++++++-------- ...e_horizontal_multiplicative_flux_factor.py | 14 ++-- ...test_reconstruct_cubic_coefficients_svd.py | 78 +++++++++---------- .../tests/diffusion_tests/test_diffusion.py | 30 +++---- 7 files changed, 148 insertions(+), 148 deletions(-) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py index 18dce73dc1..2d5f82cdd8 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py @@ -11,7 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers -import icon4py.model.common.utils.data_allocation as data_allocation +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.atmosphere.advection.stencils.compute_antidiffusive_cell_fluxes_and_min_max import ( compute_antidiffusive_cell_fluxes_and_min_max, ) @@ -80,20 +80,20 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - geofac_div = data_allocation.random_field(grid, dims.CellDim, dims.C2EDim) - geofac_div_new = data_allocation.as_1D_sparse_field(geofac_div, dims.CEDim) - p_rhodz_now = data_allocation.random_field(grid, dims.CellDim, dims.KDim) - p_rhodz_new = data_allocation.random_field(grid, dims.CellDim, dims.KDim) - z_mflx_low = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - z_anti = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_cc = data_allocation.random_field(grid, dims.CellDim, dims.KDim) + geofac_div = data_alloc.random_field(grid, dims.CellDim, dims.C2EDim) + geofac_div_new = data_alloc.as_1D_sparse_field(geofac_div, dims.CEDim) + p_rhodz_now = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_rhodz_new = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_mflx_low = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + z_anti = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim) p_dtime = 5.0 - z_mflx_anti_in = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - z_mflx_anti_out = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - z_tracer_new_low = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - z_tracer_max = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - z_tracer_min = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + z_mflx_anti_in = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + z_mflx_anti_out = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + z_tracer_new_low = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + z_tracer_max = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + z_tracer_min = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) return dict( geofac_div=geofac_div_new, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory.py index 5158a898c8..880bcb8061 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory.py @@ -11,7 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers -import icon4py.model.common.utils.data_allocation as data_allocation +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.atmosphere.advection.stencils.compute_barycentric_backtrajectory import ( compute_barycentric_backtrajectory, ) @@ -95,31 +95,31 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_vn = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_vt = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_vt = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) cell_idx = np.asarray(grid.connectivities[dims.E2CDim], dtype=gtx.int32) - cell_idx_new = data_allocation.numpy_to_1D_sparse_field(cell_idx, dims.ECDim) - cell_blk = data_allocation.constant_field(grid, 1, dims.EdgeDim, dims.E2CDim, dtype=gtx.int32) - cell_blk_new = data_allocation.as_1D_sparse_field(cell_blk, dims.ECDim) - pos_on_tplane_e_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - pos_on_tplane_e_1_new = data_allocation.as_1D_sparse_field(pos_on_tplane_e_1, dims.ECDim) - pos_on_tplane_e_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - pos_on_tplane_e_2_new = data_allocation.as_1D_sparse_field(pos_on_tplane_e_2, dims.ECDim) - primal_normal_cell_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - primal_normal_cell_1_new = data_allocation.as_1D_sparse_field(primal_normal_cell_1, dims.ECDim) - dual_normal_cell_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - dual_normal_cell_1_new = data_allocation.as_1D_sparse_field(dual_normal_cell_1, dims.ECDim) - primal_normal_cell_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - primal_normal_cell_2_new = data_allocation.as_1D_sparse_field(primal_normal_cell_2, dims.ECDim) - dual_normal_cell_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - dual_normal_cell_2_new = data_allocation.as_1D_sparse_field(dual_normal_cell_2, dims.ECDim) - p_cell_idx = data_allocation.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - p_cell_rel_idx_dsl = data_allocation.constant_field( + cell_idx_new = data_alloc.numpy_to_1D_sparse_field(cell_idx, dims.ECDim) + cell_blk = data_alloc.constant_field(grid, 1, dims.EdgeDim, dims.E2CDim, dtype=gtx.int32) + cell_blk_new = data_alloc.as_1D_sparse_field(cell_blk, dims.ECDim) + pos_on_tplane_e_1 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + pos_on_tplane_e_1_new = data_alloc.as_1D_sparse_field(pos_on_tplane_e_1, dims.ECDim) + pos_on_tplane_e_2 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + pos_on_tplane_e_2_new = data_alloc.as_1D_sparse_field(pos_on_tplane_e_2, dims.ECDim) + primal_normal_cell_1 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + primal_normal_cell_1_new = data_alloc.as_1D_sparse_field(primal_normal_cell_1, dims.ECDim) + dual_normal_cell_1 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + dual_normal_cell_1_new = data_alloc.as_1D_sparse_field(dual_normal_cell_1, dims.ECDim) + primal_normal_cell_2 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + primal_normal_cell_2_new = data_alloc.as_1D_sparse_field(primal_normal_cell_2, dims.ECDim) + dual_normal_cell_2 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + dual_normal_cell_2_new = data_alloc.as_1D_sparse_field(dual_normal_cell_2, dims.ECDim) + p_cell_idx = data_alloc.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + p_cell_rel_idx_dsl = data_alloc.constant_field( grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32 ) - p_cell_blk = data_allocation.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - p_distv_bary_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_distv_bary_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_cell_blk = data_alloc.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + p_distv_bary_1 = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_distv_bary_2 = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) p_dthalf = 2.0 return dict( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory_alt.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory_alt.py index d8a9895054..a1089292d3 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory_alt.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_barycentric_backtrajectory_alt.py @@ -11,7 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers -import icon4py.model.common.utils.data_allocation as data_allocation +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.atmosphere.advection.stencils.compute_barycentric_backtrajectory_alt import ( compute_barycentric_backtrajectory_alt, ) @@ -82,22 +82,22 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_vn = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_vt = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - pos_on_tplane_e_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - pos_on_tplane_e_1_new = data_allocation.as_1D_sparse_field(pos_on_tplane_e_1, dims.ECDim) - pos_on_tplane_e_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - pos_on_tplane_e_2_new = data_allocation.as_1D_sparse_field(pos_on_tplane_e_2, dims.ECDim) - primal_normal_cell_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - primal_normal_cell_1_new = data_allocation.as_1D_sparse_field(primal_normal_cell_1, dims.ECDim) - dual_normal_cell_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - dual_normal_cell_1_new = data_allocation.as_1D_sparse_field(dual_normal_cell_1, dims.ECDim) - primal_normal_cell_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - primal_normal_cell_2_new = data_allocation.as_1D_sparse_field(primal_normal_cell_2, dims.ECDim) - dual_normal_cell_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - dual_normal_cell_2_new = data_allocation.as_1D_sparse_field(dual_normal_cell_2, dims.ECDim) - p_distv_bary_1 = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_distv_bary_2 = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_vt = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + pos_on_tplane_e_1 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + pos_on_tplane_e_1_new = data_alloc.as_1D_sparse_field(pos_on_tplane_e_1, dims.ECDim) + pos_on_tplane_e_2 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + pos_on_tplane_e_2_new = data_alloc.as_1D_sparse_field(pos_on_tplane_e_2, dims.ECDim) + primal_normal_cell_1 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + primal_normal_cell_1_new = data_alloc.as_1D_sparse_field(primal_normal_cell_1, dims.ECDim) + dual_normal_cell_1 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + dual_normal_cell_1_new = data_alloc.as_1D_sparse_field(dual_normal_cell_1, dims.ECDim) + primal_normal_cell_2 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + primal_normal_cell_2_new = data_alloc.as_1D_sparse_field(primal_normal_cell_2, dims.ECDim) + dual_normal_cell_2 = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + dual_normal_cell_2_new = data_alloc.as_1D_sparse_field(dual_normal_cell_2, dims.ECDim) + p_distv_bary_1 = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_distv_bary_2 = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) p_dthalf = 2.0 return dict( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py index eb02084fce..85f15c4778 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py @@ -11,7 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers -import icon4py.model.common.utils.data_allocation as data_allocation +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.atmosphere.advection.stencils.compute_ffsl_backtrajectory import ( compute_ffsl_backtrajectory, ) @@ -155,44 +155,44 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_vn = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_vt = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_vt = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) cell_idx = np.asarray(grid.connectivities[dims.E2CDim], dtype=gtx.int32) - cell_idx_new = data_allocation.numpy_to_1D_sparse_field(cell_idx, dims.ECDim) - cell_blk = data_allocation.constant_field(grid, 1, dims.EdgeDim, dims.E2CDim, dtype=gtx.int32) - cell_blk_new = data_allocation.as_1D_sparse_field(cell_blk, dims.ECDim) + cell_idx_new = data_alloc.numpy_to_1D_sparse_field(cell_idx, dims.ECDim) + cell_blk = data_alloc.constant_field(grid, 1, dims.EdgeDim, dims.E2CDim, dtype=gtx.int32) + cell_blk_new = data_alloc.as_1D_sparse_field(cell_blk, dims.ECDim) - edge_verts_1_x = data_allocation.random_field(grid, dims.EdgeDim) - edge_verts_2_x = data_allocation.random_field(grid, dims.EdgeDim) - edge_verts_1_y = data_allocation.random_field(grid, dims.EdgeDim) - edge_verts_2_y = data_allocation.random_field(grid, dims.EdgeDim) - pos_on_tplane_e_1_x = data_allocation.random_field(grid, dims.EdgeDim) - pos_on_tplane_e_2_x = data_allocation.random_field(grid, dims.EdgeDim) - pos_on_tplane_e_1_y = data_allocation.random_field(grid, dims.EdgeDim) - pos_on_tplane_e_2_y = data_allocation.random_field(grid, dims.EdgeDim) - primal_normal_cell_x = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - primal_normal_cell_x_new = data_allocation.as_1D_sparse_field(primal_normal_cell_x, dims.ECDim) - dual_normal_cell_x = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - dual_normal_cell_x_new = data_allocation.as_1D_sparse_field(dual_normal_cell_x, dims.ECDim) - primal_normal_cell_y = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - primal_normal_cell_y_new = data_allocation.as_1D_sparse_field(primal_normal_cell_y, dims.ECDim) - dual_normal_cell_y = data_allocation.random_field(grid, dims.EdgeDim, dims.E2CDim) - dual_normal_cell_y_new = data_allocation.as_1D_sparse_field(dual_normal_cell_y, dims.ECDim) - lvn_sys_pos = data_allocation.constant_field(grid, True, dims.EdgeDim, dims.KDim, dtype=bool) + edge_verts_1_x = data_alloc.random_field(grid, dims.EdgeDim) + edge_verts_2_x = data_alloc.random_field(grid, dims.EdgeDim) + edge_verts_1_y = data_alloc.random_field(grid, dims.EdgeDim) + edge_verts_2_y = data_alloc.random_field(grid, dims.EdgeDim) + pos_on_tplane_e_1_x = data_alloc.random_field(grid, dims.EdgeDim) + pos_on_tplane_e_2_x = data_alloc.random_field(grid, dims.EdgeDim) + pos_on_tplane_e_1_y = data_alloc.random_field(grid, dims.EdgeDim) + pos_on_tplane_e_2_y = data_alloc.random_field(grid, dims.EdgeDim) + primal_normal_cell_x = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + primal_normal_cell_x_new = data_alloc.as_1D_sparse_field(primal_normal_cell_x, dims.ECDim) + dual_normal_cell_x = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + dual_normal_cell_x_new = data_alloc.as_1D_sparse_field(dual_normal_cell_x, dims.ECDim) + primal_normal_cell_y = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + primal_normal_cell_y_new = data_alloc.as_1D_sparse_field(primal_normal_cell_y, dims.ECDim) + dual_normal_cell_y = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim) + dual_normal_cell_y_new = data_alloc.as_1D_sparse_field(dual_normal_cell_y, dims.ECDim) + lvn_sys_pos = data_alloc.constant_field(grid, True, dims.EdgeDim, dims.KDim, dtype=bool) p_dt = 2.0 - p_cell_idx = data_allocation.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - p_cell_rel_idx_dsl = data_allocation.constant_field( + p_cell_idx = data_alloc.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + p_cell_rel_idx_dsl = data_alloc.constant_field( grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32 ) - p_cell_blk = data_allocation.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - p_coords_dreg_v_1_lon_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_2_lon_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_3_lon_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_4_lon_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_1_lat_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_2_lat_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_3_lat_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_4_lat_dsl = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) + p_cell_blk = data_alloc.constant_field(grid, 0, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + p_coords_dreg_v_1_lon_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_2_lon_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_3_lon_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_4_lon_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_1_lat_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_2_lat_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_3_lat_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_4_lat_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) return dict( p_vn=p_vn, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py index 02130437af..c61e4ad2f6 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py @@ -11,7 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers -import icon4py.model.common.utils.data_allocation as data_allocation +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.atmosphere.advection.stencils.compute_positive_definite_horizontal_multiplicative_flux_factor import ( compute_positive_definite_horizontal_multiplicative_flux_factor, ) @@ -55,12 +55,12 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - geofac_div = data_allocation.random_field(grid, dims.CellDim, dims.C2EDim) - geofac_div_new = data_allocation.as_1D_sparse_field(geofac_div, dims.CEDim) - p_cc = data_allocation.random_field(grid, dims.CellDim, dims.KDim) - p_rhodz_now = data_allocation.random_field(grid, dims.CellDim, dims.KDim) - p_mflx_tracer_h = data_allocation.random_field(grid, dims.EdgeDim, dims.KDim) - r_m = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + geofac_div = data_alloc.random_field(grid, dims.CellDim, dims.C2EDim) + geofac_div_new = data_alloc.as_1D_sparse_field(geofac_div, dims.CEDim) + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_rhodz_now = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_mflx_tracer_h = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + r_m = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) p_dtime = np.float64(5) dbl_eps = np.float64(1e-9) return dict( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py index 3634bc2854..191f930c68 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py @@ -11,7 +11,7 @@ import pytest import icon4py.model.testing.helpers as helpers -import icon4py.model.common.utils.data_allocation as data_allocation +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.atmosphere.advection.stencils.reconstruct_cubic_coefficients_svd import ( reconstruct_cubic_coefficients_svd, ) @@ -314,53 +314,53 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_cc = data_allocation.random_field(grid, dims.CellDim, dims.KDim) - lsq_pseudoinv_1_field = data_allocation.as_1D_sparse_field( - data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + lsq_pseudoinv_1_field = data_alloc.as_1D_sparse_field( + data_alloc.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_2_field = data_allocation.as_1D_sparse_field( - data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_2_field = data_alloc.as_1D_sparse_field( + data_alloc.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_3_field = data_allocation.as_1D_sparse_field( - data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_3_field = data_alloc.as_1D_sparse_field( + data_alloc.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_4_field = data_allocation.as_1D_sparse_field( - data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_4_field = data_alloc.as_1D_sparse_field( + data_alloc.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_5_field = data_allocation.as_1D_sparse_field( - data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_5_field = data_alloc.as_1D_sparse_field( + data_alloc.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_6_field = data_allocation.as_1D_sparse_field( - data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_6_field = data_alloc.as_1D_sparse_field( + data_alloc.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_7_field = data_allocation.as_1D_sparse_field( - data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_7_field = data_alloc.as_1D_sparse_field( + data_alloc.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_8_field = data_allocation.as_1D_sparse_field( - data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_8_field = data_alloc.as_1D_sparse_field( + data_alloc.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_pseudoinv_9_field = data_allocation.as_1D_sparse_field( - data_allocation.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim + lsq_pseudoinv_9_field = data_alloc.as_1D_sparse_field( + data_alloc.random_field(grid, dims.CellDim, dims.C2E2C2E2CDim), dims.CECECDim ) - lsq_moments_1 = data_allocation.random_field(grid, dims.CellDim) - lsq_moments_2 = data_allocation.random_field(grid, dims.CellDim) - lsq_moments_3 = data_allocation.random_field(grid, dims.CellDim) - lsq_moments_4 = data_allocation.random_field(grid, dims.CellDim) - lsq_moments_5 = data_allocation.random_field(grid, dims.CellDim) - lsq_moments_6 = data_allocation.random_field(grid, dims.CellDim) - lsq_moments_7 = data_allocation.random_field(grid, dims.CellDim) - lsq_moments_8 = data_allocation.random_field(grid, dims.CellDim) - lsq_moments_9 = data_allocation.random_field(grid, dims.CellDim) - p_coeff_1_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_2_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_3_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_4_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_5_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_6_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_7_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_8_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_9_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) - p_coeff_10_dsl = data_allocation.zero_field(grid, dims.CellDim, dims.KDim) + lsq_moments_1 = data_alloc.random_field(grid, dims.CellDim) + lsq_moments_2 = data_alloc.random_field(grid, dims.CellDim) + lsq_moments_3 = data_alloc.random_field(grid, dims.CellDim) + lsq_moments_4 = data_alloc.random_field(grid, dims.CellDim) + lsq_moments_5 = data_alloc.random_field(grid, dims.CellDim) + lsq_moments_6 = data_alloc.random_field(grid, dims.CellDim) + lsq_moments_7 = data_alloc.random_field(grid, dims.CellDim) + lsq_moments_8 = data_alloc.random_field(grid, dims.CellDim) + lsq_moments_9 = data_alloc.random_field(grid, dims.CellDim) + p_coeff_1_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_2_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_3_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_4_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_5_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_6_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_7_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_8_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_9_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + p_coeff_10_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) cell_domain = h_grid.domain(dims.CellDim) horizontal_start = ( diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py index 3644a15a21..2a6f2f5f12 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py @@ -8,7 +8,7 @@ import pytest import icon4py.model.common.dimension as dims -import icon4py.model.common.utils.data_allocation as data_allocation +import icon4py.model.common.utils.data_allocation as data_alloc import icon4py.model.common.grid.states as grid_states from icon4py.model.atmosphere.diffusion import diffusion, diffusion_states, diffusion_utils from icon4py.model.common.decomposition import definitions @@ -93,18 +93,18 @@ def _construct_minimal_decomposition_info(grid: icon.IconGrid): primal_normal_y=geometry_.get(geometry_meta.EDGE_NORMAL_V), primal_normal_cell_x=geometry_.get(geometry_meta.EDGE_NORMAL_CELL_U), primal_normal_cell_y=geometry_.get(geometry_meta.EDGE_NORMAL_CELL_V), - primal_normal_vert_x=data_allocation.as_1D_sparse_field( + primal_normal_vert_x=data_alloc.as_1D_sparse_field( geometry_.get(geometry_meta.EDGE_NORMAL_VERTEX_U), target_dim=dims.ECVDim ), - primal_normal_vert_y=data_allocation.as_1D_sparse_field( + primal_normal_vert_y=data_alloc.as_1D_sparse_field( geometry_.get(geometry_meta.EDGE_NORMAL_VERTEX_V), target_dim=dims.ECVDim ), dual_normal_cell_x=geometry_.get(geometry_meta.EDGE_TANGENT_CELL_U), dual_normal_cell_y=geometry_.get(geometry_meta.EDGE_TANGENT_CELL_V), - dual_normal_vert_x=data_allocation.as_1D_sparse_field( + dual_normal_vert_x=data_alloc.as_1D_sparse_field( geometry_.get(geometry_meta.EDGE_TANGENT_VERTEX_U), target_dim=dims.ECVDim ), - dual_normal_vert_y=data_allocation.as_1D_sparse_field( + dual_normal_vert_y=data_alloc.as_1D_sparse_field( geometry_.get(geometry_meta.EDGE_TANGENT_VERTEX_V), target_dim=dims.ECVDim ), ) @@ -216,10 +216,10 @@ def test_diffusion_init( assert meta["date"] == step_date_init interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], @@ -358,10 +358,10 @@ def test_verify_diffusion_init_against_savepoint( vct_b=vct_b, ) interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], @@ -420,10 +420,10 @@ def test_run_diffusion_single_step( dtime = savepoint_diffusion_init.get_metadata("dtime").get("dtime") interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], @@ -519,10 +519,10 @@ def test_run_diffusion_multiple_steps( edge_geometry: grid_states.EdgeParams = grid_savepoint.construct_edge_geometry() cell_geometry: grid_states.CellParams = grid_savepoint.construct_cell_geometry() interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], @@ -665,10 +665,10 @@ def test_run_diffusion_initial_step( vct_b=vct_b, ) interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], From d52533ea30857826f117463bcc08b626b5613022 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Tue, 10 Dec 2024 16:49:51 +0100 Subject: [PATCH 26/83] More renaming. --- .../mpi_tests/test_parallel_diffusion.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py index de4ea904ae..d027249aab 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py @@ -11,7 +11,7 @@ from icon4py.model.atmosphere.diffusion import diffusion as diffusion_, diffusion_states from icon4py.model.common import dimension as dims from icon4py.model.common.decomposition import definitions -from icon4py.model.common.utils import data_allocation +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.grid import vertical as v_grid from icon4py.model.testing import datatest_utils, helpers, parallel_helpers @@ -87,10 +87,10 @@ def test_parallel_diffusion( zd_diffcoef=metrics_savepoint.zd_diffcoef(), ) interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], @@ -209,10 +209,10 @@ def test_parallel_diffusion_multiple_steps( edge_geometry = grid_savepoint.construct_edge_geometry() interpolation_state = diffusion_states.DiffusionInterpolationState( - e_bln_c_s=data_allocation.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(interpolation_savepoint.e_bln_c_s(), dims.CEDim), rbf_coeff_1=interpolation_savepoint.rbf_vec_coeff_v1(), rbf_coeff_2=interpolation_savepoint.rbf_vec_coeff_v2(), - geofac_div=data_allocation.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), + geofac_div=data_alloc.as_1D_sparse_field(interpolation_savepoint.geofac_div(), dims.CEDim), geofac_n2s=interpolation_savepoint.geofac_n2s(), geofac_grg_x=interpolation_savepoint.geofac_grg()[0], geofac_grg_y=interpolation_savepoint.geofac_grg()[1], From deecae5399cdd4131b9227a84bfbd3d6d25a242f Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 11 Dec 2024 11:12:04 +0100 Subject: [PATCH 27/83] Missing files --- .github/CODE_OF_CONDUCT.md | 134 ++++++++++++ .../model/common/utils/data_allocation.py | 203 ++++++++++++++++++ 2 files changed, 337 insertions(+) create mode 100644 .github/CODE_OF_CONDUCT.md create mode 100644 model/common/src/icon4py/model/common/utils/data_allocation.py diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..1a1292e18d --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,134 @@ + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official email address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[INSERT CONTACT METHOD]. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations + diff --git a/model/common/src/icon4py/model/common/utils/data_allocation.py b/model/common/src/icon4py/model/common/utils/data_allocation.py new file mode 100644 index 0000000000..b294a7aa40 --- /dev/null +++ b/model/common/src/icon4py/model/common/utils/data_allocation.py @@ -0,0 +1,203 @@ +# ICON4Py - ICON inspired code in Python and GT4Py +# +# Copyright (c) 2022-2024, ETH Zurich and MeteoSwiss +# All rights reserved. +# +# Please, refer to the LICENSE file in the root directory. +# SPDX-License-Identifier: BSD-3-Clause + +from __future__ import annotations + +import logging as log +from typing import Optional, TypeAlias, Union, TYPE_CHECKING + +import gt4py._core.definitions as gt_core_defs +import gt4py.next as gtx +from gt4py.next import backend +import numpy as np +import numpy.typing as npt + +from icon4py.model.common import dimension, type_alias as ta + +if TYPE_CHECKING: + from icon4py.model.common.grid import base as grid_base + + +#: Enum values from Enum values taken from DLPack reference implementation at: +#: https://github.com/dmlc/dlpack/blob/main/include/dlpack/dlpack.h +#: via GT4Py +CUDA_DEVICE_TYPES = ( + gt_core_defs.DeviceType.CUDA, + gt_core_defs.DeviceType.CUDA_MANAGED, + gt_core_defs.DeviceType.ROCM, +) + +try: + import cupy as cp +except ImportError: + import numpy as cp + +NDArray: TypeAlias = Union[np.ndarray, "cp.ndarray"] +NDArrayInterface: TypeAlias = Union[np.ndarray, "cp.ndarray", gtx.Field] + + +def as_numpy(array: NDArrayInterface): + if isinstance(array, np.ndarray): + return array + else: + return array.asnumpy() + +def is_cupy_device(backend: backend.Backend) -> bool: + if backend is not None: + return backend.allocator.__gt_device_type__ in CUDA_DEVICE_TYPES + else: + return False + + +def array_ns(try_cupy: bool): + if try_cupy: + try: + import cupy as cp + + return cp + except ImportError: + log.warning("No cupy installed, falling back to numpy for array_ns") + import numpy as np + + return np + + +def import_array_ns(backend: backend.Backend): + """Import cupy or numpy depending on a chosen GT4Py backend DevicType.""" + return array_ns(is_cupy_device(backend)) + + +def as_field(field: gtx.Field, backend: backend.Backend) -> gtx.Field: + """Convenience function to transfer an existing Field to a given backend.""" + return gtx.as_field(field.domain, field.ndarray, allocator=backend) + + +def as_1D_sparse_field(field: gtx.Field, target_dim: gtx.Dimension) -> gtx.Field: + """Convert a 2D sparse field to a 1D flattened (Felix-style) sparse field.""" + buffer = field.ndarray + return numpy_to_1D_sparse_field(buffer, target_dim) + + +def numpy_to_1D_sparse_field(field: np.ndarray, dim: gtx.Dimension) -> gtx.Field: + """Convert a 2D sparse field to a 1D flattened (Felix-style) sparse field.""" + old_shape = field.shape + assert len(old_shape) == 2 + new_shape = (old_shape[0] * old_shape[1],) + return gtx.as_field((dim,), field.reshape(new_shape)) + + +def flatten_first_two_dims(*dims: gtx.Dimension, field: gtx.Field) -> gtx.Field: + """Convert a n-D sparse field to a (n-1)-D flattened (Felix-style) sparse field.""" + buffer = field.ndarray + old_shape = buffer.shape + assert len(old_shape) >= 2 + flattened_size = old_shape[0] * old_shape[1] + flattened_shape = (flattened_size,) + new_shape = flattened_shape + old_shape[2:] + newarray = buffer.reshape(new_shape) + return gtx.as_field(dims, newarray) + + +def unflatten_first_two_dims(field: gtx.Field) -> np.array: + """Convert a (n-1)-D flattened (Felix-style) sparse field back to a n-D sparse field.""" + old_shape = np.asarray(field).shape + new_shape = (old_shape[0] // 3, 3) + old_shape[1:] + return np.asarray(field).reshape(new_shape) + + +def random_field( + grid, + *dims, + low: float = -1.0, + high: float = 1.0, + dtype: Optional[npt.DTypeLike] = None, + extend: Optional[dict[gtx.Dimension, int]] = None, + backend=None +) -> gtx.Field: + arr = np.random.default_rng().uniform( + low=low, high=high, size=shape(grid, *dims, extend=extend) + ) + if dtype: + arr = arr.astype(dtype) + return gtx.as_field(dims, arr, allocator=backend) + + +def zero_field( + grid: grid_base.BaseGrid, + *dims: gtx.Dimension, + dtype=ta.wpfloat, + extend: Optional[dict[gtx.Dimension, int]] = None, + backend=None +) -> gtx.Field: + field_domain = {dim: (0, stop) for dim, stop in zip(dims, shape(grid, *dims, extend=extend))} + return gtx.constructors.zeros(field_domain, dtype=dtype, allocator=backend) + + +def constant_field( + grid: grid_base.BaseGrid, value: float, *dims: gtx.Dimension, dtype=ta.wpfloat +) -> gtx.Field: + return gtx.as_field( + dims, + value * np.ones(shape=tuple(map(lambda x: grid.size[x], dims)), dtype=dtype), + ) + + +def shape( + grid, + *dims: gtx.Dimension, + extend: Optional[dict[gtx.Dimension, int]] = None, +) -> tuple[int, ...]: + extend = extend or {} + return tuple(grid.size[dim] + extend.get(dim, 0) for dim in dims) + +def _size(grid, dim: gtx.Dimension, is_half_dim: bool) -> int: + if dim == dimension.KDim and is_half_dim: + return grid.size[dim] + 1 + return grid.size[dim] + + +def random_mask( + grid: grid_base.BaseGrid, + *dims: gtx.Dimension, + dtype: Optional[npt.DTypeLike] = None, + extend: Optional[dict[gtx.Dimension, int]] = None, +) -> gtx.Field: + rng = np.random.default_rng() + shape = shape(grid, *dims, extend=extend) + arr = np.full(shape, False).flatten() + num_true = int(arr.size * 0.5) + arr[:num_true] = True + rng.shuffle(arr) + arr = np.reshape(arr, newshape=shape) + if dtype: + arr = arr.astype(dtype) + return gtx.as_field(dims, arr) + + +# TODO: are the following functions needed? Don't they overlap with the above ones? +def allocate_zero_field( + *dims: gtx.Dimension, + grid, + is_halfdim=False, + dtype=ta.wpfloat, + backend: Optional[backend.Backend] = None, +) -> gtx.Field: + dimensions = {d: range(_size(grid, d, is_halfdim)) for d in dims} + return gtx.zeros(dimensions, dtype=dtype, allocator=backend) + + +def allocate_indices( + dim: gtx.Dimension, + grid, + is_halfdim=False, + dtype=gtx.int32, + backend: Optional[backend.Backend] = None, +) -> gtx.Field: + xp = import_array_ns(backend) + shapex = _size(grid, dim, is_halfdim) + return gtx.as_field((dim,), xp.arange(shapex, dtype=dtype), allocator=backend) From 10bb890991c08ecc63e5eced5b76fcc0614dd1ae Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 11 Dec 2024 13:06:58 +0100 Subject: [PATCH 28/83] Fixes for tests configs --- model/README.md | 2 + model/atmosphere/advection/tests/conftest.py | 11 +- model/atmosphere/diffusion/tests/conftest.py | 11 +- model/atmosphere/dycore/tests/conftest.py | 11 +- .../microphysics/tests/conftest.py | 25 ++- model/driver/tests/conftest.py | 42 ++++- noxfile.py | 163 ++++++++++-------- 7 files changed, 180 insertions(+), 85 deletions(-) diff --git a/model/README.md b/model/README.md index da09cd972c..4e0d6bd587 100644 --- a/model/README.md +++ b/model/README.md @@ -1,5 +1,7 @@ # ICON4Py Model +[![Nox](https://img.shields.io/badge/%F0%9F%A6%8A-Nox-D85E00.svg)](https://github.com/wntrblm/nox) + This folder contains Python implementations for multiple ICON components. It includes the following packages: diff --git a/model/atmosphere/advection/tests/conftest.py b/model/atmosphere/advection/tests/conftest.py index 6fb7d03437..02054fb680 100644 --- a/model/atmosphere/advection/tests/conftest.py +++ b/model/atmosphere/advection/tests/conftest.py @@ -7,7 +7,10 @@ # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.testing.helpers import ( # noqa : F401 # fixtures from test_utils - backend, - grid, -) +from icon4py.model.testing.helpers import backend +from icon4py.model.testing.pytest_config import * # noqa: F401 + +__all__ = [ + # imported fixtures: + "backend", +] diff --git a/model/atmosphere/diffusion/tests/conftest.py b/model/atmosphere/diffusion/tests/conftest.py index 6fb7d03437..02054fb680 100644 --- a/model/atmosphere/diffusion/tests/conftest.py +++ b/model/atmosphere/diffusion/tests/conftest.py @@ -7,7 +7,10 @@ # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.testing.helpers import ( # noqa : F401 # fixtures from test_utils - backend, - grid, -) +from icon4py.model.testing.helpers import backend +from icon4py.model.testing.pytest_config import * # noqa: F401 + +__all__ = [ + # imported fixtures: + "backend", +] diff --git a/model/atmosphere/dycore/tests/conftest.py b/model/atmosphere/dycore/tests/conftest.py index 77985b965c..6e02d3c8b7 100644 --- a/model/atmosphere/dycore/tests/conftest.py +++ b/model/atmosphere/dycore/tests/conftest.py @@ -6,7 +6,10 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.testing.helpers import ( # noqa : F401 # fixtures from test_utils - backend, - grid, -) +from icon4py.model.testing.helpers import backend +from icon4py.model.testing.pytest_config import * # noqa: F401 + +__all__ = [ + # imported fixtures: + "backend", +] diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py b/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py index e3eb7ead89..4358deb563 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py +++ b/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py @@ -7,7 +7,7 @@ # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.testing.datatest_fixtures import ( # noqa F401 +from icon4py.model.testing.datatest_fixtures import ( lowest_layer_thickness, maximal_layer_thickness, model_top_height, @@ -27,3 +27,26 @@ processor_props, ranked_data_path, ) + + +__all__ = [ + # imported fixtures: + "lowest_layer_thickness", + "maximal_layer_thickness", + "model_top_height", + "stretch_factor", + "top_height_limit_for_maximal_layer_thickness", + "flat_height", + "htop_moist_proc", + "damping_height", + "data_provider", + "download_ser_data", + "experiment", + "grid_savepoint", + "icon_grid", + "interpolation_savepoint", + "metrics_savepoint", + "ndyn_substeps", + "processor_props", + "ranked_data_path", +] diff --git a/model/driver/tests/conftest.py b/model/driver/tests/conftest.py index cfafaa7637..c7b07a5689 100644 --- a/model/driver/tests/conftest.py +++ b/model/driver/tests/conftest.py @@ -11,7 +11,7 @@ import pytest from icon4py.model.atmosphere.diffusion import diffusion -from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 +from icon4py.model.testing.datatest_fixtures import ( damping_height, data_provider, download_ser_data, @@ -45,9 +45,47 @@ from icon4py.model.driver import icon4py_configuration as driver_config -# TODO (Chia Rui): Reuse those pytest fixtures for diffusion test instead of creating here +__all__ = [ + # local: + "r04b09_diffusion_config", + "r04b09_iconrun_config", + "timeloop_diffusion_savepoint_init" "timeloop_diffusion_savepoint_exit", + "timeloop_date_init", + "timeloop_date_exit", + # imported fixtures: + "damping_height", + "data_provider", + "download_ser_data", + "experiment", + "flat_height", + "grid_savepoint", + "htop_moist_proc", + "icon_grid", + "interpolation_savepoint", + "istep_exit", + "istep_init", + "jstep_exit", + "jstep_init", + "lowest_layer_thickness", + "maximal_layer_thickness", + "metrics_savepoint", + "model_top_height", + "ndyn_substeps", + "processor_props", + "ranked_data_path", + "savepoint_nonhydro_exit", + "savepoint_nonhydro_init", + "savepoint_nonhydro_step_exit", + "savepoint_velocity_init", + "step_date_exit", + "step_date_init", + "stretch_factor", + "top_height_limit_for_maximal_layer_thickness", + "vn_only", +] +# TODO (Chia Rui): Reuse those pytest fixtures for diffusion test instead of creating here @pytest.fixture def r04b09_diffusion_config( ndyn_substeps, # noqa: F811 # imported `ndyn_substeps` fixture diff --git a/noxfile.py b/noxfile.py index d7c115868e..b0666399d9 100644 --- a/noxfile.py +++ b/noxfile.py @@ -14,101 +14,92 @@ # nox.options.sessions = ["lint", "test"] -def install_session_venv( - session: nox.Session, - *args: str | Sequence[str], - extras: Sequence[str] = (), - groups: Sequence[str] = (), -) -> None: - """Install session packages using uv.""" - session.run_install( - "uv", - "sync", - "--no-dev", - *(f"--extra={e}" for e in extras), - *(f"--group={g}" for g in groups), - env={"UV_PROJECT_ENVIRONMENT": session.virtualenv.location}, - ) - for item in args: - session.run_install( - "uv", - "pip", - "install", - *((item,) if isinstance(item, str) else item), - env={"UV_PROJECT_ENVIRONMENT": session.virtualenv.location}, - ) +@nox.session(python=["3.10", "3.11"]) +@nox.parametrize( + "subpackage", + ["advection", "diffusion", "dycore", "subgrid_scale_physics/microphysics"], +) +def benchmark_atmosphere(session: nox.Session, subpackage: str) -> None: + """Run pytest benchmarks for the `model.atmosphere` subpackages.""" + _install_session_venv(session, extras=["all"], groups=["test"]) + + with session.chdir(f"model/atmosphere/{subpackage}"): + session.run("pytest", "-sv", "--benchmark-only", *session.posargs) @nox.session(python=["3.10", "3.11"]) -def test_atmosphere_advection(session: nox.Session) -> None: - """Run tests for the advection component of model.atmosphere.""" - install_session_venv(session, extras=["all"], groups=["test"]) +@nox.parametrize( + "subpackage", + ["advection", "diffusion", "dycore", "subgrid_scale_physics/microphysics"], +) +@nox.parametrize("selection", ["regular_tests", "slow_tests"]) +def test_atmosphere(session: nox.Session, subpackage: str, selection: str) -> None: + """Run tests for the `model.atmosphere` subpackages.""" + _install_session_venv(session, extras=["all"], groups=["test"]) + + assert ( + selection in _SELECTION_PARAM_TO_PYTEST_MARKERS + ), f"Invalid test selection argument: {selection}" + pytest_args = sum( + (["-m", tag] for tag in _SELECTION_PARAM_TO_PYTEST_MARKERS[selection]), start=[] + ) - with session.chdir("model/atmosphere/advection"): + with session.chdir(f"model/atmosphere/{subpackage}"): session.run( "pytest", "-sv", "-n", session.env.get("NUM_PROCESSES", "auto"), + "--benchmark-skip", + *pytest_args, *session.posargs, ) @nox.session(python=["3.10", "3.11"]) -def test_atmosphere_diffusion(session: nox.Session) -> None: - """Run tests for the diffusion component of model.atmosphere.""" - install_session_venv(session, extras=["all"], groups=["test"]) +@nox.parametrize("selection", ["regular_tests", "slow_tests"]) +def test_atmosphere_advection(session: nox.Session, selection: str) -> None: + session.notify( + f"test_atmosphere-{session.python}(selection='{selection}', subpackage='advection')" + ) - with session.chdir("model/atmosphere/diffusion"): - session.run( - "pytest", - "-sv", - "-n", - session.env.get("NUM_PROCESSES", "auto"), - *session.posargs, - ) + +@nox.session(python=["3.10", "3.11"]) +@nox.parametrize("selection", ["regular_tests", "slow_tests"]) +def test_atmosphere_diffusion(session: nox.Session, selection: str) -> None: + session.notify( + f"test_atmosphere-{session.python}(selection='{selection}', subpackage='diffusion')" + ) @nox.session(python=["3.10", "3.11"]) -def test_atmosphere_dycore(session: nox.Session) -> None: - """Run tests for the dycore component of model.atmosphere.""" - install_session_venv(session, extras=["all"], groups=["test"]) +@nox.parametrize("selection", ["regular_tests", "slow_tests"]) +def test_atmosphere_dycore(session: nox.Session, selection: str) -> None: + session.notify( + f"test_atmosphere-{session.python}(selection='{selection}', subpackage='dycore')" + ) - with session.chdir("model/atmosphere/dycore"): - session.run( - "pytest", - "-sv", - "-n", - session.env.get("NUM_PROCESSES", "auto"), - *session.posargs, - ) @nox.session(python=["3.10", "3.11"]) -def test_atmosphere_microphysics(session: nox.Session) -> None: - """Run tests for the microphysics component of model.atmosphere.subgrid_scale_physics.""" - install_session_venv(session, extras=["all"], groups=["test"]) +@nox.parametrize("selection", ["regular_tests", "slow_tests"]) +def test_atmosphere_microphysics(session: nox.Session, selection: str) -> None: + session.notify( + f"test_atmosphere-{session.python}(selection='{selection}', subpackage='subgrid_scale_physics/microphysics')" + ) - with session.chdir("model/atmosphere/subgrid_scale_physics/microphysics"): - session.run( - "pytest", - "-sv", - "-n", - session.env.get("NUM_PROCESSES", "auto"), - *session.posargs, - ) @nox.session(python=["3.10", "3.11"]) @nox.parametrize("selection", ["regular_tests", "slow_tests"]) def test_common(session: nox.Session, selection: str) -> None: """Run tests for the common package of the icon4py model.""" - install_session_venv(session, extras=["all"], groups=["test"]) + _install_session_venv(session, extras=["all"], groups=["test"]) - pytest_args = [] - match selection: - case "regular_tests": - pytest_args += ["-m", "not slow_tests"] - case "slow_tests": - pytest_args += ["-m", "slow_tests"] + assert ( + selection in _SELECTION_PARAM_TO_PYTEST_MARKERS + ), f"Invalid test selection argument: {selection}" + pytest_args = sum( + (["-m", tag] for tag in _SELECTION_PARAM_TO_PYTEST_MARKERS[selection]), start=[] + ) with session.chdir("model/common"): session.run( @@ -121,10 +112,11 @@ def test_common(session: nox.Session, selection: str) -> None: *session.posargs, ) + @nox.session(python=["3.10", "3.11"]) def test_driver(session: nox.Session) -> None: """Run tests for the driver.""" - install_session_venv(session, extras=["all"], groups=["test"]) + _install_session_venv(session, extras=["all"], groups=["test"]) with session.chdir("model/driver"): session.run( @@ -135,10 +127,11 @@ def test_driver(session: nox.Session) -> None: *session.posargs, ) + @nox.session(python=["3.10", "3.11"]) def test_tools(session: nox.Session) -> None: """Run tests for the Fortran integration tools.""" - install_session_venv(session, extras=["all"], groups=["test"]) + _install_session_venv(session, extras=["all"], groups=["test"]) with session.chdir("tools"): session.run( @@ -150,7 +143,6 @@ def test_tools(session: nox.Session) -> None: ) - # [testenv:run_stencil_tests] # commands = # pytest -v -m "not slow_tests" --cov --cov-append atmosphere/diffusion/tests/diffusion_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} @@ -168,3 +160,34 @@ def test_tools(session: nox.Session) -> None: # pytest -v -m "not slow_tests" --datatest {posargs} # addopts = ["-p", "icon4py.model.testing.pytest_config"] + + +_SELECTION_PARAM_TO_PYTEST_MARKERS: dict[str, list[str]] = { + "regular_tests": ["not slow_tests"], + "slow_tests": ["slow_tests"], +} + + +def _install_session_venv( + session: nox.Session, + *args: str | Sequence[str], + extras: Sequence[str] = (), + groups: Sequence[str] = (), +) -> None: + """Install session packages using uv.""" + session.run_install( + "uv", + "sync", + "--no-dev", + *(f"--extra={e}" for e in extras), + *(f"--group={g}" for g in groups), + env={"UV_PROJECT_ENVIRONMENT": session.virtualenv.location}, + ) + for item in args: + session.run_install( + "uv", + "pip", + "install", + *((item,) if isinstance(item, str) else item), + env={"UV_PROJECT_ENVIRONMENT": session.virtualenv.location}, + ) From ebdbc2679d3dd80f975b8045b9917afeb7429e06 Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Wed, 11 Dec 2024 14:50:59 +0100 Subject: [PATCH 29/83] add data allocation import in common tests --- model/common/tests/io_tests/test_utils.py | 6 +++--- model/common/tests/io_tests/test_writers.py | 3 ++- .../test_cell_2_edge_interpolation.py | 7 ++++--- ...est_compute_cell_2_vertex_interpolation.py | 7 ++++--- .../stencil_tests/test_diagnose_pressure.py | 11 +++++----- .../test_diagnose_surface_pressure.py | 9 ++++---- .../test_diagnose_temperature.py | 21 ++++++++++--------- ...st_edge_2_cell_vector_rbf_interpolation.py | 11 +++++----- 8 files changed, 41 insertions(+), 34 deletions(-) diff --git a/model/common/tests/io_tests/test_utils.py b/model/common/tests/io_tests/test_utils.py index e5f89f7bfb..3077395b0a 100644 --- a/model/common/tests/io_tests/test_utils.py +++ b/model/common/tests/io_tests/test_utils.py @@ -12,12 +12,12 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.io import ugrid, utils from icon4py.model.common.states import data, model -from icon4py.model.testing import helpers +from icon4py.model.common.utils import data_allocation as data_alloc def test_data_array_has_ugrid_and_cf_attributes(): grid = simple_grid.SimpleGrid() - buffer = helpers.random_field(grid, dims.CellDim, dims.KDim) + buffer = data_alloc.random_field(grid, dims.CellDim, dims.KDim) data_array = utils.to_data_array(buffer, data.PROGNOSTIC_CF_ATTRIBUTES["air_density"]) assert data_array.attrs["units"] == "kg m-3" assert data_array.attrs["standard_name"] == "air_density" @@ -31,7 +31,7 @@ def test_data_array_has_ugrid_and_cf_attributes(): def test_type_check_for_datafields(): grid = simple_grid.SimpleGrid() - field = helpers.zero_field(grid, dims.CellDim, dims.KDim, dtype=gtx.int32) + field = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=gtx.int32) model_field = model.ModelField(data=field, attrs=data.DIAGNOSTIC_CF_ATTRIBUTES["eastward_wind"]) assert not isinstance(field, model.ModelField) assert isinstance(model_field, model.DataField) diff --git a/model/common/tests/io_tests/test_writers.py b/model/common/tests/io_tests/test_writers.py index c711b3e173..27961e2acc 100644 --- a/model/common/tests/io_tests/test_writers.py +++ b/model/common/tests/io_tests/test_writers.py @@ -21,6 +21,7 @@ ) from icon4py.model.common.states import data, metadata from icon4py.model.testing import helpers +from icon4py.model.common.utils import data_allocation as data_alloc from . import test_io @@ -165,7 +166,7 @@ def test_writer_append_timeslice_to_existing_var(test_path, random_name): assert len(dataset.variables[writers.TIME]) == 1 assert "air_density" in dataset.variables - new_rho = helpers.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) + new_rho = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) state["air_density"] = utils.to_data_array( new_rho, data.PROGNOSTIC_CF_ATTRIBUTES["air_density"] ) diff --git a/model/common/tests/stencil_tests/test_cell_2_edge_interpolation.py b/model/common/tests/stencil_tests/test_cell_2_edge_interpolation.py index e2496e1a81..478ff05da3 100644 --- a/model/common/tests/stencil_tests/test_cell_2_edge_interpolation.py +++ b/model/common/tests/stencil_tests/test_cell_2_edge_interpolation.py @@ -14,6 +14,7 @@ cell_2_edge_interpolation, ) from icon4py.model.testing import helpers +from icon4py.model.common.utils import data_allocation as data_alloc class TestCell2EdgeInterpolation(helpers.StencilTest): @@ -32,9 +33,9 @@ def reference(grid, in_field: np.array, coeff: np.array, **kwargs) -> dict: @pytest.fixture def input_data(self, grid): - in_field = helpers.random_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) - coeff = helpers.random_field(grid, dims.EdgeDim, dims.E2CDim, dtype=ta.wpfloat) - out_field = helpers.zero_field(grid, dims.EdgeDim, dims.KDim, dtype=ta.wpfloat) + in_field = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) + coeff = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim, dtype=ta.wpfloat) + out_field = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim, dtype=ta.wpfloat) return dict( in_field=in_field, diff --git a/model/common/tests/stencil_tests/test_compute_cell_2_vertex_interpolation.py b/model/common/tests/stencil_tests/test_compute_cell_2_vertex_interpolation.py index ff19652b63..2e2058424d 100644 --- a/model/common/tests/stencil_tests/test_compute_cell_2_vertex_interpolation.py +++ b/model/common/tests/stencil_tests/test_compute_cell_2_vertex_interpolation.py @@ -15,6 +15,7 @@ compute_cell_2_vertex_interpolation, ) from icon4py.model.testing import helpers +from icon4py.model.common.utils import data_allocation as data_alloc class TestComputeCells2VertsInterpolation(helpers.StencilTest): @@ -33,9 +34,9 @@ def reference(grid, cell_in: np.array, c_int: np.array, **kwargs) -> dict: @pytest.fixture def input_data(self, grid): - cell_in = helpers.random_field(grid, dims.CellDim, dims.KDim, dtype=types.wpfloat) - c_int = helpers.random_field(grid, dims.VertexDim, dims.V2CDim, dtype=types.wpfloat) - vert_out = helpers.zero_field(grid, dims.VertexDim, dims.KDim, dtype=types.wpfloat) + cell_in = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=types.wpfloat) + c_int = data_alloc.random_field(grid, dims.VertexDim, dims.V2CDim, dtype=types.wpfloat) + vert_out = data_alloc.zero_field(grid, dims.VertexDim, dims.KDim, dtype=types.wpfloat) return dict( cell_in=cell_in, diff --git a/model/common/tests/stencil_tests/test_diagnose_pressure.py b/model/common/tests/stencil_tests/test_diagnose_pressure.py index b2f5e85bc9..bb61f73e7c 100644 --- a/model/common/tests/stencil_tests/test_diagnose_pressure.py +++ b/model/common/tests/stencil_tests/test_diagnose_pressure.py @@ -14,6 +14,7 @@ diagnose_pressure, ) from icon4py.model.testing import helpers +from icon4py.model.common.utils import data_allocation as data_alloc class TestDiagnosePressure(helpers.StencilTest): @@ -51,15 +52,15 @@ def input_data(self, grid): if helpers.is_roundtrip: pytest.xfail("This stencil currently does not work properly with roundtrip backend.") - ddqz_z_full = helpers.random_field( + ddqz_z_full = data_alloc.random_field( grid, dims.CellDim, dims.KDim, low=1.0e-6, dtype=ta.wpfloat ) - virtual_temperature = helpers.random_field( + virtual_temperature = data_alloc.random_field( grid, dims.CellDim, dims.KDim, low=1.0e-6, dtype=ta.wpfloat ) - surface_pressure = helpers.random_field(grid, dims.CellDim, low=1.0e-6, dtype=ta.wpfloat) - pressure = helpers.zero_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) - pressure_ifc = helpers.zero_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) + surface_pressure = data_alloc.random_field(grid, dims.CellDim, low=1.0e-6, dtype=ta.wpfloat) + pressure = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) + pressure_ifc = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) return dict( ddqz_z_full=ddqz_z_full, diff --git a/model/common/tests/stencil_tests/test_diagnose_surface_pressure.py b/model/common/tests/stencil_tests/test_diagnose_surface_pressure.py index 304bbdd99d..9c036b3172 100644 --- a/model/common/tests/stencil_tests/test_diagnose_surface_pressure.py +++ b/model/common/tests/stencil_tests/test_diagnose_surface_pressure.py @@ -14,6 +14,7 @@ diagnose_surface_pressure, ) from icon4py.model.testing import helpers +from icon4py.model.common.utils import data_allocation as data_alloc class TestDiagnoseSurfacePressure(helpers.StencilTest): @@ -44,14 +45,14 @@ def reference( @pytest.fixture def input_data(self, grid): - exner = helpers.random_field(grid, dims.CellDim, dims.KDim, low=1.0e-6, dtype=ta.wpfloat) - virtual_temperature = helpers.random_field( + exner = data_alloc.random_field(grid, dims.CellDim, dims.KDim, low=1.0e-6, dtype=ta.wpfloat) + virtual_temperature = data_alloc.random_field( grid, dims.CellDim, dims.KDim, low=1.0e-6, dtype=ta.wpfloat ) - ddqz_z_full = helpers.random_field( + ddqz_z_full = data_alloc.random_field( grid, dims.CellDim, dims.KDim, low=1.0e-6, dtype=ta.wpfloat ) - surface_pressure = helpers.zero_field( + surface_pressure = data_alloc.zero_field( grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat, extend={dims.KDim: 1} ) diff --git a/model/common/tests/stencil_tests/test_diagnose_temperature.py b/model/common/tests/stencil_tests/test_diagnose_temperature.py index 2ca69ae5d9..75df9a285e 100644 --- a/model/common/tests/stencil_tests/test_diagnose_temperature.py +++ b/model/common/tests/stencil_tests/test_diagnose_temperature.py @@ -14,6 +14,7 @@ diagnose_virtual_temperature_and_temperature, ) from icon4py.model.testing import helpers +from icon4py.model.common.utils import data_allocation as data_alloc class TestDiagnoseTemperature(helpers.StencilTest): @@ -43,32 +44,32 @@ def reference( @pytest.fixture def input_data(self, grid): - theta_v = helpers.random_field( + theta_v = data_alloc.random_field( grid, dims.CellDim, dims.KDim, low=1.0e-6, high=1.0, dtype=ta.wpfloat ) - exner = helpers.random_field( + exner = data_alloc.random_field( grid, dims.CellDim, dims.KDim, low=1.0e-6, high=1.0, dtype=ta.wpfloat ) - qv = helpers.random_field( + qv = data_alloc.random_field( grid, dims.CellDim, dims.KDim, low=0.0, high=1.0, dtype=ta.wpfloat ) - qc = helpers.random_field( + qc = data_alloc.random_field( grid, dims.CellDim, dims.KDim, low=0.0, high=1.0, dtype=ta.wpfloat ) - qi = helpers.random_field( + qi = data_alloc.random_field( grid, dims.CellDim, dims.KDim, low=0.0, high=1.0, dtype=ta.wpfloat ) - qr = helpers.random_field( + qr = data_alloc.random_field( grid, dims.CellDim, dims.KDim, low=0.0, high=1.0, dtype=ta.wpfloat ) - qs = helpers.random_field( + qs = data_alloc.random_field( grid, dims.CellDim, dims.KDim, low=0.0, high=1.0, dtype=ta.wpfloat ) - qg = helpers.random_field( + qg = data_alloc.random_field( grid, dims.CellDim, dims.KDim, low=0.0, high=1.0, dtype=ta.wpfloat ) - virtual_temperature = helpers.zero_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) - temperature = helpers.zero_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) + virtual_temperature = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) + temperature = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) return dict( qv=qv, diff --git a/model/common/tests/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py b/model/common/tests/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py index 69601659a5..30701280cd 100644 --- a/model/common/tests/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py +++ b/model/common/tests/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py @@ -14,6 +14,7 @@ edge_2_cell_vector_rbf_interpolation, ) from icon4py.model.testing import helpers +from icon4py.model.common.utils import data_allocation as data_alloc class TestEdge2CellVectorRBFInterpolation(helpers.StencilTest): @@ -34,11 +35,11 @@ def reference( @pytest.fixture def input_data(self, grid): - p_e_in = helpers.random_field(grid, dims.EdgeDim, dims.KDim, dtype=ta.wpfloat) - ptr_coeff_1 = helpers.random_field(grid, dims.CellDim, dims.C2E2C2EDim, dtype=ta.wpfloat) - ptr_coeff_2 = helpers.random_field(grid, dims.CellDim, dims.C2E2C2EDim, dtype=ta.wpfloat) - p_v_out = helpers.zero_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) - p_u_out = helpers.zero_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) + p_e_in = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=ta.wpfloat) + ptr_coeff_1 = data_alloc.random_field(grid, dims.CellDim, dims.C2E2C2EDim, dtype=ta.wpfloat) + ptr_coeff_2 = data_alloc.random_field(grid, dims.CellDim, dims.C2E2C2EDim, dtype=ta.wpfloat) + p_v_out = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) + p_u_out = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) return dict( p_e_in=p_e_in, From aa0d442b927d30170d69f3f2185412f2cfd326e5 Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Wed, 11 Dec 2024 15:10:01 +0100 Subject: [PATCH 30/83] fix diffusion stencil tests --- ...ate_nabla2_and_smag_coefficients_for_vn.py | 49 +++++++++---------- .../test_calculate_nabla2_of_theta.py | 13 ++--- ...orary_fields_for_turbulence_diagnostics.py | 24 +++++---- ...fusion_nabla_of_theta_over_steep_points.py | 2 +- .../diffusion_tests/test_diffusion_utils.py | 26 +++++----- .../model/common/utils/data_allocation.py | 8 +-- 6 files changed, 57 insertions(+), 65 deletions(-) diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py index 8f92aa036f..9712b69a6e 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py @@ -14,10 +14,7 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.testing.helpers import StencilTest -from icon4py.model.common.utils.data_allocation import ( - random_field, - zero_field -) +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.type_alias import vpfloat, wpfloat @@ -154,29 +151,29 @@ def input_data(self, grid): if np.any(grid.connectivities[dims.E2C2VDim] == -1): pytest.xfail("Stencil does not support missing neighbors.") - u_vert = random_field(grid, dims.VertexDim, dims.KDim, dtype=vpfloat) - v_vert = random_field(grid, dims.VertexDim, dims.KDim, dtype=vpfloat) + u_vert = data_alloc.random_field(grid, dims.VertexDim, dims.KDim, dtype=vpfloat) + v_vert = data_alloc.random_field(grid, dims.VertexDim, dims.KDim, dtype=vpfloat) smag_offset = vpfloat("9.0") - diff_multfac_smag = random_field(grid, dims.KDim, dtype=vpfloat) - tangent_orientation = random_field(grid, dims.EdgeDim, dtype=wpfloat) - vn = random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) - smag_limit = random_field(grid, dims.KDim, dtype=vpfloat) - inv_vert_vert_length = random_field(grid, dims.EdgeDim, dtype=wpfloat) - inv_primal_edge_length = random_field(grid, dims.EdgeDim, dtype=wpfloat) - - primal_normal_vert_x = random_field(grid, dims.EdgeDim, dims.E2C2VDim, dtype=wpfloat) - primal_normal_vert_y = random_field(grid, dims.EdgeDim, dims.E2C2VDim, dtype=wpfloat) - dual_normal_vert_x = random_field(grid, dims.EdgeDim, dims.E2C2VDim, dtype=wpfloat) - dual_normal_vert_y = random_field(grid, dims.EdgeDim, dims.E2C2VDim, dtype=wpfloat) - - primal_normal_vert_x_new = as_1D_sparse_field(primal_normal_vert_x, dims.ECVDim) - primal_normal_vert_y_new = as_1D_sparse_field(primal_normal_vert_y, dims.ECVDim) - dual_normal_vert_x_new = as_1D_sparse_field(dual_normal_vert_x, dims.ECVDim) - dual_normal_vert_y_new = as_1D_sparse_field(dual_normal_vert_y, dims.ECVDim) - - z_nabla2_e = zero_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) - kh_smag_e = zero_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) - kh_smag_ec = zero_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) + diff_multfac_smag = data_alloc.random_field(grid, dims.KDim, dtype=vpfloat) + tangent_orientation = data_alloc.random_field(grid, dims.EdgeDim, dtype=wpfloat) + vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) + smag_limit = data_alloc.random_field(grid, dims.KDim, dtype=vpfloat) + inv_vert_vert_length = data_alloc.random_field(grid, dims.EdgeDim, dtype=wpfloat) + inv_primal_edge_length = data_alloc.random_field(grid, dims.EdgeDim, dtype=wpfloat) + + primal_normal_vert_x = data_alloc.random_field(grid, dims.EdgeDim, dims.E2C2VDim, dtype=wpfloat) + primal_normal_vert_y = data_alloc.random_field(grid, dims.EdgeDim, dims.E2C2VDim, dtype=wpfloat) + dual_normal_vert_x = data_alloc.random_field(grid, dims.EdgeDim, dims.E2C2VDim, dtype=wpfloat) + dual_normal_vert_y = data_alloc.random_field(grid, dims.EdgeDim, dims.E2C2VDim, dtype=wpfloat) + + primal_normal_vert_x_new = data_alloc.as_1D_sparse_field(primal_normal_vert_x, dims.ECVDim) + primal_normal_vert_y_new = data_alloc.as_1D_sparse_field(primal_normal_vert_y, dims.ECVDim) + dual_normal_vert_x_new = data_alloc.as_1D_sparse_field(dual_normal_vert_x, dims.ECVDim) + dual_normal_vert_y_new = data_alloc.as_1D_sparse_field(dual_normal_vert_y, dims.ECVDim) + + z_nabla2_e = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) + kh_smag_e = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) + kh_smag_ec = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) return dict( diff_multfac_smag=diff_multfac_smag, diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_of_theta.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_of_theta.py index 3d531eef57..6148165a76 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_of_theta.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_calculate_nabla2_of_theta.py @@ -14,10 +14,7 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.testing.helpers import StencilTest -from icon4py.model.common.utils.data_allocation import ( - random_field, - zero_field -) +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.type_alias import vpfloat, wpfloat @@ -40,11 +37,11 @@ def reference(grid, z_nabla2_e: np.array, geofac_div: np.array, **kwargs) -> dic @pytest.fixture def input_data(self, grid): - z_nabla2_e = random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) - geofac_div = random_field(grid, dims.CellDim, dims.C2EDim, dtype=wpfloat) - geofac_div_new = as_1D_sparse_field(geofac_div, dims.CEDim) + z_nabla2_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) + geofac_div = data_alloc.random_field(grid, dims.CellDim, dims.C2EDim, dtype=wpfloat) + geofac_div_new = data_alloc.as_1D_sparse_field(geofac_div, dims.CEDim) - z_temp = zero_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) + z_temp = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) return dict( z_nabla2_e=z_nabla2_e, diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py index 7a15843f2f..5ab03a0fe1 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py @@ -14,10 +14,8 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.testing.helpers import StencilTest -from icon4py.model.common.utils.data_allocation import ( - random_field, - zero_field -) +from icon4py.model.common.utils import data_allocation as data_alloc + from icon4py.model.common.type_alias import vpfloat, wpfloat @@ -52,18 +50,18 @@ def reference( @pytest.fixture def input_data(self, grid): - vn = random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) - geofac_div = as_1D_sparse_field( - random_field(grid, dims.CellDim, dims.C2EDim, dtype=wpfloat), dims.CEDim + vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) + geofac_div = data_alloc.as_1D_sparse_field( + data_alloc.random_field(grid, dims.CellDim, dims.C2EDim, dtype=wpfloat), dims.CEDim ) - kh_smag_ec = random_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) - e_bln_c_s = as_1D_sparse_field( - random_field(grid, dims.CellDim, dims.C2EDim, dtype=wpfloat), dims.CEDim + kh_smag_ec = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) + e_bln_c_s = data_alloc.as_1D_sparse_field( + data_alloc.random_field(grid, dims.CellDim, dims.C2EDim, dtype=wpfloat), dims.CEDim ) - diff_multfac_smag = random_field(grid, dims.KDim, dtype=vpfloat) + diff_multfac_smag = data_alloc.random_field(grid, dims.KDim, dtype=vpfloat) - kh_c = zero_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) - div = zero_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) + kh_c = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) + div = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) return dict( kh_smag_ec=kh_smag_ec, diff --git a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py index ba76afedcd..ee83237cd0 100644 --- a/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py +++ b/model/atmosphere/diffusion/tests/diffusion_stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py @@ -110,7 +110,7 @@ def input_data(self, grid): zd_vertoffset[:, :, k] = rng.integers( low=0 - k, high=grid.num_levels - k - 1, - size=(zd_vertoffset.shape[0], zd_vertoffset.shape[1]), + size=(zd_vertoffset.ndarray.shape[0], zd_vertoffset.ndarray.shape[1]), ) zd_diffcoef = random_field(grid, dims.CellDim, dims.KDim, dtype=wpfloat) diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py index 8a7e4a448b..003d9e18ca 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py @@ -12,7 +12,7 @@ from icon4py.model.atmosphere.diffusion import diffusion, diffusion_utils from icon4py.model.common import dimension as dims from icon4py.model.common.grid import simple as simple_grid -from icon4py.model.testing import helpers +from icon4py.model.common.utils import data_allocation as data_alloc from .utils import construct_diffusion_config, diff_multfac_vn_numpy, smag_limit_numpy @@ -23,8 +23,8 @@ def initial_diff_multfac_vn_numpy(shape, k4, hdiff_efdt_ratio): def test_scale_k(backend): grid = simple_grid.SimpleGrid() - field = helpers.random_field(grid, dims.KDim) - scaled_field = helpers.zero_field(grid, dims.KDim) + field = data_alloc.random_field(grid, dims.KDim) + scaled_field = data_alloc.zero_field(grid, dims.KDim) factor = 2.0 diffusion_utils.scale_k.with_backend(backend)(field, factor, scaled_field, offset_provider={}) assert np.allclose(factor * field.asnumpy(), scaled_field.asnumpy()) @@ -32,8 +32,8 @@ def test_scale_k(backend): def test_diff_multfac_vn_and_smag_limit_for_initial_step(backend): grid = simple_grid.SimpleGrid() - diff_multfac_vn_init = helpers.zero_field(grid, dims.KDim) - smag_limit_init = helpers.zero_field(grid, dims.KDim) + diff_multfac_vn_init = data_alloc.zero_field(grid, dims.KDim) + smag_limit_init = data_alloc.zero_field(grid, dims.KDim) k4 = 1.0 efdt_ratio = 24.0 shape = diff_multfac_vn_init.asnumpy().shape @@ -53,8 +53,8 @@ def test_diff_multfac_vn_and_smag_limit_for_initial_step(backend): def test_diff_multfac_vn_smag_limit_for_time_step_with_const_value(backend): grid = simple_grid.SimpleGrid() - diff_multfac_vn = helpers.zero_field(grid, dims.KDim) - smag_limit = helpers.zero_field(grid, dims.KDim) + diff_multfac_vn = data_alloc.zero_field(grid, dims.KDim) + smag_limit = data_alloc.zero_field(grid, dims.KDim) k4 = 1.0 substeps = 5.0 efdt_ratio = 24.0 @@ -76,8 +76,8 @@ def test_diff_multfac_vn_smag_limit_for_time_step_with_const_value(backend): def test_diff_multfac_vn_smag_limit_for_loop_run_with_k4_substeps(backend): grid = simple_grid.SimpleGrid() - diff_multfac_vn = helpers.zero_field(grid, dims.KDim) - smag_limit = helpers.zero_field(grid, dims.KDim) + diff_multfac_vn = data_alloc.zero_field(grid, dims.KDim) + smag_limit = data_alloc.zero_field(grid, dims.KDim) k4 = 0.003 substeps = 1.0 @@ -97,7 +97,7 @@ def test_diff_multfac_vn_smag_limit_for_loop_run_with_k4_substeps(backend): def test_init_zero_vertex_k(backend): grid = simple_grid.SimpleGrid() - f = helpers.random_field(grid, dims.VertexDim, dims.KDim) + f = data_alloc.random_field(grid, dims.VertexDim, dims.KDim) diffusion_utils.init_zero_v_k(f, offset_provider={}) assert np.allclose(0.0, f.asnumpy()) @@ -105,7 +105,7 @@ def test_init_zero_vertex_k(backend): @pytest.mark.datatest @pytest.mark.parametrize("linit", [True]) def test_verify_special_diffusion_inital_step_values_against_initial_savepoint( - savepoint_diffusion_init, experiment, icon_grid, linit, ndyn_substeps + savepoint_diffusion_init, experiment, icon_grid, linit, ndyn_substeps, backend ): savepoint = savepoint_diffusion_init config = construct_diffusion_config(experiment, ndyn_substeps=ndyn_substeps) @@ -115,8 +115,8 @@ def test_verify_special_diffusion_inital_step_values_against_initial_savepoint( expected_smag_limit = savepoint.smag_limit() exptected_smag_offset = savepoint.smag_offset() - diff_multfac_vn = helpers.zero_field(icon_grid, dims.KDim) - smag_limit = helpers.zero_field(icon_grid, dims.KDim) + diff_multfac_vn = data_alloc.zero_field(icon_grid, dims.KDim) + smag_limit = data_alloc.zero_field(icon_grid, dims.KDim) diffusion_utils.setup_fields_for_initial_step.with_backend(backend)( params.K4, config.hdiff_efdt_ratio, diff --git a/model/common/src/icon4py/model/common/utils/data_allocation.py b/model/common/src/icon4py/model/common/utils/data_allocation.py index b294a7aa40..b35f43085e 100644 --- a/model/common/src/icon4py/model/common/utils/data_allocation.py +++ b/model/common/src/icon4py/model/common/utils/data_allocation.py @@ -120,7 +120,7 @@ def random_field( backend=None ) -> gtx.Field: arr = np.random.default_rng().uniform( - low=low, high=high, size=shape(grid, *dims, extend=extend) + low=low, high=high, size=_shape(grid, *dims, extend=extend) ) if dtype: arr = arr.astype(dtype) @@ -134,7 +134,7 @@ def zero_field( extend: Optional[dict[gtx.Dimension, int]] = None, backend=None ) -> gtx.Field: - field_domain = {dim: (0, stop) for dim, stop in zip(dims, shape(grid, *dims, extend=extend))} + field_domain = {dim: (0, stop) for dim, stop in zip(dims, _shape(grid, *dims, extend=extend))} return gtx.constructors.zeros(field_domain, dtype=dtype, allocator=backend) @@ -147,7 +147,7 @@ def constant_field( ) -def shape( +def _shape( grid, *dims: gtx.Dimension, extend: Optional[dict[gtx.Dimension, int]] = None, @@ -168,7 +168,7 @@ def random_mask( extend: Optional[dict[gtx.Dimension, int]] = None, ) -> gtx.Field: rng = np.random.default_rng() - shape = shape(grid, *dims, extend=extend) + shape = _shape(grid, *dims, extend=extend) arr = np.full(shape, False).flatten() num_true = int(arr.size * 0.5) arr[:num_true] = True From 3c087a20ef1d2ee38a8c8c8c306c3e7d0046d071 Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Wed, 11 Dec 2024 16:18:16 +0100 Subject: [PATCH 31/83] fix common datatests and data path --- .../tests/diffusion_tests/test_diffusion.py | 4 +- .../icon4py/model/common/states/factory.py | 5 +- .../model/common/utils/data_allocation.py | 8 ++-- .../test_diagnostic_calculations.py | 46 +++++++++---------- .../test_interpolation_factory.py | 1 + .../test_interpolation_fields.py | 6 +-- .../tests/metric_tests/test_metric_fields.py | 6 +-- .../metric_tests/test_reference_atmosphere.py | 21 +++++---- .../common/tests/states_test/test_factory.py | 14 +++--- .../icon4py/model/testing/datatest_utils.py | 2 +- 10 files changed, 57 insertions(+), 56 deletions(-) diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py index 2a6f2f5f12..cad56029f7 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py @@ -53,7 +53,7 @@ def get_cell_geometry_for_experiment(experiment, backend): def _get_or_initialize(experiment, backend, name): def _construct_minimal_decomposition_info(grid: icon.IconGrid): edge_indices = data_alloc.allocate_indices(dims.EdgeDim, grid) - owner_mask = xp.ones((grid.num_edges,), dtype=bool) + owner_mask = np.ones((grid.num_edges,), dtype=bool) decomposition_info = definitions.DecompositionInfo(klevels=grid.num_levels) decomposition_info.with_dimension(dims.EdgeDim, edge_indices.ndarray, owner_mask) return decomposition_info @@ -283,7 +283,7 @@ def test_diffusion_init( def _verify_init_values_against_savepoint( - savepoint: sb.IconDiffusionInitSavepoint, diffusion_granule: diffusion.Diffusion + savepoint: sb.IconDiffusionInitSavepoint, diffusion_granule: diffusion.Diffusion, backend ): dtime = savepoint.get_metadata("dtime")["dtime"] diff --git a/model/common/src/icon4py/model/common/states/factory.py b/model/common/src/icon4py/model/common/states/factory.py index 58aacda102..1f517ac745 100644 --- a/model/common/src/icon4py/model/common/states/factory.py +++ b/model/common/src/icon4py/model/common/states/factory.py @@ -42,7 +42,6 @@ import enum import functools import inspect -from functools import cached_property from typing import ( Any, Callable, @@ -213,7 +212,7 @@ def __init__(self, me: FieldSource, others: tuple[FieldSource, ...]): self._metadata = collections.ChainMap(me.metadata, *(s.metadata for s in others)) self._providers = collections.ChainMap(me._providers, *(s._providers for s in others)) - @cached_property + @functools.cached_property def metadata(self) -> MutableMapping[str, model.FieldMetaData]: return self._metadata @@ -593,7 +592,7 @@ def _validate_dependencies(self): parameters = func_signature.parameters for dep_key in self._dependencies.keys(): parameter_definition = parameters.get(dep_key) - checked = _check_union(parameter_definition, union=field_alloc.NDArray) + checked = _check_union(parameter_definition, union=data_alloc.NDArray) assert checked, ( f"Dependency '{dep_key}' in function '{_func_name(self._func)}': does not exist or has " f"wrong type ('expected ndarray') but was '{parameter_definition}'." diff --git a/model/common/src/icon4py/model/common/utils/data_allocation.py b/model/common/src/icon4py/model/common/utils/data_allocation.py index b35f43085e..3a96854a33 100644 --- a/model/common/src/icon4py/model/common/utils/data_allocation.py +++ b/model/common/src/icon4py/model/common/utils/data_allocation.py @@ -33,12 +33,12 @@ ) try: - import cupy as cp + import cupy as xp except ImportError: - import numpy as cp + import numpy as xp -NDArray: TypeAlias = Union[np.ndarray, "cp.ndarray"] -NDArrayInterface: TypeAlias = Union[np.ndarray, "cp.ndarray", gtx.Field] +NDArray: TypeAlias = Union[np.ndarray, xp.ndarray] +NDArrayInterface: TypeAlias = Union[np.ndarray, xp.ndarray, gtx.Field] def as_numpy(array: NDArrayInterface): diff --git a/model/common/tests/diagnostic_calculations_tests/test_diagnostic_calculations.py b/model/common/tests/diagnostic_calculations_tests/test_diagnostic_calculations.py index f5e48af60b..5453729329 100644 --- a/model/common/tests/diagnostic_calculations_tests/test_diagnostic_calculations.py +++ b/model/common/tests/diagnostic_calculations_tests/test_diagnostic_calculations.py @@ -24,7 +24,7 @@ tracer_state as tracers, ) from icon4py.model.testing import datatest_utils as dt_utils, helpers - +from icon4py.model.common.utils import data_allocation as data_alloc @pytest.mark.datatest @pytest.mark.parametrize( @@ -48,22 +48,22 @@ def test_diagnose_temperature( theta_v=sp.theta_v(), ) diagnostic_state = diagnostics.DiagnosticState( - temperature=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - virtual_temperature=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - pressure=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - pressure_ifc=helpers.zero_field( + temperature=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + virtual_temperature=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + pressure=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + pressure_ifc=data_alloc.zero_field( icon_grid, dims.CellDim, dims.KDim, dtype=float, extend={dims.KDim: 1} ), - u=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - v=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + u=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + v=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), ) tracer_state = tracers.TracerState( - qv=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - qc=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - qr=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - qi=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - qs=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - qg=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + qv=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + qc=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + qr=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + qi=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + qs=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + qg=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), ) temperature.diagnose_virtual_temperature_and_temperature( @@ -118,14 +118,14 @@ def test_diagnose_meridional_and_zonal_winds( theta_v=sp.theta_v(), ) diagnostic_state = diagnostics.DiagnosticState( - temperature=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - pressure=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - pressure_ifc=helpers.zero_field( + temperature=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + pressure=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + pressure_ifc=data_alloc.zero_field( icon_grid, dims.CellDim, dims.KDim, dtype=float, extend={dims.KDim: 1} ), - u=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - v=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - virtual_temperature=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + u=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + v=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + virtual_temperature=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), ) cell_domain = h_grid.domain(dims.CellDim) rbv_vec_coeff_c1 = data_provider.from_interpolation_savepoint().rbf_vec_coeff_c1() @@ -186,12 +186,12 @@ def test_diagnose_pressure( diagnostic_state = diagnostics.DiagnosticState( temperature=sp.temperature(), virtual_temperature=sp.temperature(), - pressure=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - pressure_ifc=helpers.zero_field( + pressure=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + pressure_ifc=data_alloc.zero_field( icon_grid, dims.CellDim, dims.KDim, dtype=float, extend={dims.KDim: 1} ), - u=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - v=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + u=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + v=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), ) cell_domain = h_grid.domain(dims.CellDim) diff --git a/model/common/tests/interpolation_tests/test_interpolation_factory.py b/model/common/tests/interpolation_tests/test_interpolation_factory.py index 5b2ceed735..5339db6dd6 100644 --- a/model/common/tests/interpolation_tests/test_interpolation_factory.py +++ b/model/common/tests/interpolation_tests/test_interpolation_factory.py @@ -15,6 +15,7 @@ interpolation_attributes as attrs, interpolation_factory, ) + from icon4py.model.testing import ( datatest_utils as dt_utils, grid_utils as gridtest_utils, diff --git a/model/common/tests/interpolation_tests/test_interpolation_fields.py b/model/common/tests/interpolation_tests/test_interpolation_fields.py index cb92f10aec..dfaa9f3130 100644 --- a/model/common/tests/interpolation_tests/test_interpolation_fields.py +++ b/model/common/tests/interpolation_tests/test_interpolation_fields.py @@ -62,7 +62,7 @@ def test_compute_c_lin_e(grid_savepoint, interpolation_savepoint, icon_grid, bac horizontal_start, xp, ) - assert test_helpers.dallclose(alloc.as_numpy(c_lin_e), c_lin_e_ref.asnumpy()) + assert test_helpers.dallclose(data_alloc.as_numpy(c_lin_e), c_lin_e_ref.asnumpy()) c_lin_e_partial = func( edge_cell_length.ndarray, @@ -70,7 +70,7 @@ def test_compute_c_lin_e(grid_savepoint, interpolation_savepoint, icon_grid, bac edge_owner_mask.ndarray, horizontal_start, ) - assert test_helpers.dallclose(alloc.as_numpy(c_lin_e_partial), c_lin_e_ref.asnumpy()) + assert test_helpers.dallclose(data_alloc.as_numpy(c_lin_e_partial), c_lin_e_ref.asnumpy()) @pytest.mark.datatest @@ -140,7 +140,7 @@ def test_compute_geofac_n2s(grid_savepoint, interpolation_savepoint, icon_grid, c2e2c, horizontal_start, ) - assert test_helpers.dallclose(alloc.as_numpy(geofac_n2s), geofac_n2s_ref.asnumpy()) + assert test_helpers.dallclose(data_alloc.as_numpy(geofac_n2s), geofac_n2s_ref.asnumpy()) @pytest.mark.datatest diff --git a/model/common/tests/metric_tests/test_metric_fields.py b/model/common/tests/metric_tests/test_metric_fields.py index df2425657e..78cb14df2c 100644 --- a/model/common/tests/metric_tests/test_metric_fields.py +++ b/model/common/tests/metric_tests/test_metric_fields.py @@ -497,7 +497,7 @@ def test_compute_exner_exfac( else MetricsConfig() ) - exner_exfac = constant_field(icon_grid, config.exner_expol, dims.CellDim, dims.KDim) + exner_exfac = data_alloc.constant_field(icon_grid, config.exner_expol, dims.CellDim, dims.KDim) exner_exfac_ref = metrics_savepoint.exner_exfac() compute_exner_exfac.with_backend(backend)( ddxn_z_full=metrics_savepoint.ddxn_z_full(), @@ -584,9 +584,9 @@ def test_compute_vwind_impl_wgt( vwind_impl_wgt_ref = metrics_savepoint.vwind_impl_wgt() dual_edge_length = grid_savepoint.dual_edge_length() vwind_offctr = 0.2 - vwind_impl_wgt_full = constant_field(icon_grid, 0.5 + vwind_offctr, dims.CellDim) + vwind_impl_wgt_full = data_alloc.constant_field(icon_grid, 0.5 + vwind_offctr, dims.CellDim) init_val = 0.65 if experiment == dt_utils.GLOBAL_EXPERIMENT else 0.7 - vwind_impl_wgt_k = constant_field(icon_grid, init_val, dims.CellDim, dims.KDim) + vwind_impl_wgt_k = data_alloc.constant_field(icon_grid, init_val, dims.CellDim, dims.KDim) vwind_impl_wgt = compute_vwind_impl_wgt( backend=backend, diff --git a/model/common/tests/metric_tests/test_reference_atmosphere.py b/model/common/tests/metric_tests/test_reference_atmosphere.py index a1d350c134..e6b896f5b8 100644 --- a/model/common/tests/metric_tests/test_reference_atmosphere.py +++ b/model/common/tests/metric_tests/test_reference_atmosphere.py @@ -22,6 +22,7 @@ compute_reference_atmosphere_edge_fields, ) from icon4py.model.testing import datatest_utils as dt_utils +from icon4py.model.common.utils import data_allocation as data_alloc # TODO (@halungge) some tests need to run on a compiled backend: embedded does not work with the @@ -40,10 +41,10 @@ def test_compute_reference_atmosphere_fields_on_full_level_masspoints( theta_ref_mc_ref = metrics_savepoint.theta_ref_mc() z_ifc = metrics_savepoint.z_ifc() - exner_ref_mc = helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) - rho_ref_mc = helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) - theta_ref_mc = helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) - z_mc = helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) + exner_ref_mc = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) + rho_ref_mc = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) + theta_ref_mc = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) + z_mc = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) start = 0 horizontal_end = icon_grid.num_cells vertical_end = icon_grid.num_levels @@ -92,13 +93,13 @@ def test_compute_reference_atmsophere_on_half_level_mass_points( theta_ref_ic_ref = metrics_savepoint.theta_ref_ic() z_ifc = metrics_savepoint.z_ifc() - exner_ref_ic = helpers.zero_field( + exner_ref_ic = data_alloc.zero_field( icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}, dtype=ta.wpfloat ) - rho_ref_ic = helpers.zero_field( + rho_ref_ic = data_alloc.zero_field( icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}, dtype=ta.wpfloat ) - theta_ref_ic = helpers.zero_field( + theta_ref_ic = data_alloc.zero_field( icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}, dtype=ta.wpfloat ) start = 0 @@ -135,7 +136,7 @@ def test_compute_d_exner_dz_ref_ic(icon_grid, metrics_savepoint, backend): pytest.skip("skipping: slow backend") theta_ref_ic = metrics_savepoint.theta_ref_ic() d_exner_dz_ref_ic_ref = metrics_savepoint.d_exner_dz_ref_ic() - d_exner_dz_ref_ic = helpers.zero_field( + d_exner_dz_ref_ic = data_alloc.zero_field( icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1} ) compute_d_exner_dz_ref_ic.with_backend(backend)( @@ -163,8 +164,8 @@ def test_compute_reference_atmosphere_on_full_level_edge_fields( c_lin_e = interpolation_savepoint.c_lin_e() z_ifc = metrics_savepoint.z_ifc() - z_mc = helpers.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) - z_me = helpers.zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=ta.wpfloat) + z_mc = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=ta.wpfloat) + z_me = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim, dtype=ta.wpfloat) horizontal_start = icon_grid.start_index( horizontal.domain(dims.EdgeDim)(horizontal.Zone.LATERAL_BOUNDARY_LEVEL_2) ) diff --git a/model/common/tests/states_test/test_factory.py b/model/common/tests/states_test/test_factory.py index c4f879f1f9..644947ee72 100644 --- a/model/common/tests/states_test/test_factory.py +++ b/model/common/tests/states_test/test_factory.py @@ -16,7 +16,7 @@ from icon4py.model.common.math import helpers as math_helpers from icon4py.model.common.metrics import metric_fields as metrics from icon4py.model.common.states import factory, model, utils as state_utils -from icon4py.model.testing import helpers as test_helpers +from icon4py.model.common.utils import data_allocation as data_alloc cell_domain = h_grid.domain(dims.CellDim) @@ -163,8 +163,8 @@ def test_composite_field_source_contains_all_metadata( ): backend = cell_coordinate_source.backend grid = cell_coordinate_source.grid - foo = test_helpers.random_field(grid, dims.CellDim, dims.KDim) - bar = test_helpers.random_field(grid, dims.EdgeDim, dims.KDim) + foo = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + bar = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) data = { "foo": (foo, {"standard_name": "foo", "units": ""}), "bar": (bar, {"standard_name": "bar", "units": ""}), @@ -185,8 +185,8 @@ def test_composite_field_source_contains_all_metadata( def test_composite_field_source_get_all_fields(cell_coordinate_source, height_coordinate_source): backend = cell_coordinate_source.backend grid = cell_coordinate_source.grid - foo = test_helpers.random_field(grid, dims.CellDim, dims.KDim) - bar = test_helpers.random_field(grid, dims.EdgeDim, dims.KDim) + foo = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + bar = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) data = { "foo": (foo, {"standard_name": "foo", "units": ""}), "bar": (bar, {"standard_name": "bar", "units": ""}), @@ -221,8 +221,8 @@ def test_composite_field_source_raises_upon_get_unknown_field( ): backend = cell_coordinate_source.backend grid = cell_coordinate_source.grid - foo = test_helpers.random_field(grid, dims.CellDim, dims.KDim) - bar = test_helpers.random_field(grid, dims.EdgeDim, dims.KDim) + foo = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + bar = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) data = { "foo": (foo, {"standard_name": "foo", "units": ""}), "bar": (bar, {"standard_name": "bar", "units": ""}), diff --git a/model/testing/src/icon4py/model/testing/datatest_utils.py b/model/testing/src/icon4py/model/testing/datatest_utils.py index 0ad2441951..b179f95c59 100644 --- a/model/testing/src/icon4py/model/testing/datatest_utils.py +++ b/model/testing/src/icon4py/model/testing/datatest_utils.py @@ -43,7 +43,7 @@ def get_test_data_root_path() -> pathlib.Path: test_utils_path = pathlib.Path(__file__).parent - model_path = test_utils_path.parent.parent + model_path = test_utils_path.parent common_path = model_path.parent.parent.parent.parent env_base_path = os.getenv("TEST_DATA_PATH") From c10a872caf650cbd3162d03b64f222b27ab64f43 Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Wed, 11 Dec 2024 17:10:55 +0100 Subject: [PATCH 32/83] fix diffusion datatests --- .../tests/diffusion_tests/test_diffusion.py | 76 +++++++++---------- .../model/testing/datatest_fixtures.py | 2 - 2 files changed, 38 insertions(+), 40 deletions(-) diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py index cad56029f7..ebb522342d 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py @@ -5,10 +5,10 @@ # # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause +import numpy as np import pytest import icon4py.model.common.dimension as dims -import icon4py.model.common.utils.data_allocation as data_alloc import icon4py.model.common.grid.states as grid_states from icon4py.model.atmosphere.diffusion import diffusion, diffusion_states, diffusion_utils from icon4py.model.common.decomposition import definitions @@ -51,25 +51,16 @@ def get_cell_geometry_for_experiment(experiment, backend): def _get_or_initialize(experiment, backend, name): - def _construct_minimal_decomposition_info(grid: icon.IconGrid): - edge_indices = data_alloc.allocate_indices(dims.EdgeDim, grid) - owner_mask = np.ones((grid.num_edges,), dtype=bool) - decomposition_info = definitions.DecompositionInfo(klevels=grid.num_levels) - decomposition_info.with_dimension(dims.EdgeDim, edge_indices.ndarray, owner_mask) - return decomposition_info + grid_file = ( + dt_utils.REGIONAL_EXPERIMENT + if experiment == dt_utils.REGIONAL_EXPERIMENT + else dt_utils.R02B04_GLOBAL + ) if not grid_functionality[experiment].get(name): - gm = grid_utils.get_grid_manager_for_experiment(experiment, backend) - grid = gm.grid - decomposition_info = _construct_minimal_decomposition_info(grid) - geometry_ = geometry.GridGeometry( - grid=grid, - decomposition_info=decomposition_info, - backend=backend, - coordinates=gm.coordinates, - extra_fields=gm.geometry, - metadata=geometry_meta.attrs, - ) + geometry_ = grid_utils.get_grid_geometry(backend, experiment, grid_file) + grid = geometry_.grid + cell_params = grid_states.CellParams.from_global_num_cells( cell_center_lat=geometry_.get(geometry_meta.CELL_LAT), cell_center_lon=geometry_.get(geometry_meta.CELL_LON), @@ -172,7 +163,7 @@ def test_smagorinski_factor_diffusion_type_5(experiment): params = diffusion.DiffusionParams(construct_diffusion_config(experiment, ndyn_substeps=5)) assert len(params.smagorinski_factor) == len(params.smagorinski_height) assert len(params.smagorinski_factor) == 4 - assert xp.all(params.smagorinski_factor >= xp.zeros(len(params.smagorinski_factor))) + assert np.all(params.smagorinski_factor >= np.zeros(len(params.smagorinski_factor))) @pytest.mark.datatest @@ -385,10 +376,11 @@ def test_verify_diffusion_init_against_savepoint( interpolation_state, edge_params, cell_params, + orchestration=False, backend=backend, ) - _verify_init_values_against_savepoint(savepoint_diffusion_init, diffusion_granule) + _verify_init_values_against_savepoint(savepoint_diffusion_init, diffusion_granule, backend) @pytest.mark.datatest @@ -400,6 +392,7 @@ def test_verify_diffusion_init_against_savepoint( ], ) @pytest.mark.parametrize("ndyn_substeps", (2,)) +@pytest.mark.parametrize("orchestration", [True, False]) def test_run_diffusion_single_step( savepoint_diffusion_init, savepoint_diffusion_exit, @@ -412,7 +405,10 @@ def test_run_diffusion_single_step( damping_height, ndyn_substeps, backend, + orchestration, ): + if orchestration and ("dace" not in backend.name.lower()): + pytest.skip(f"running backend = '{backend.name}': orchestration only on dace backends") grid = get_grid_for_experiment(experiment, backend) cell_geometry = get_cell_geometry_for_experiment(experiment, backend) edge_geometry = get_edge_geometry_for_experiment(experiment, backend) @@ -473,6 +469,7 @@ def test_run_diffusion_single_step( edge_params=edge_geometry, cell_params=cell_geometry, backend=backend, + orchestration=orchestration, ) verify_diffusion_fields(config, diagnostic_state, prognostic_state, savepoint_diffusion_init) assert savepoint_diffusion_init.fac_bdydiff_v() == diffusion_granule.fac_bdydiff_v @@ -509,9 +506,8 @@ def test_run_diffusion_multiple_steps( backend, icon_grid, ): - if settings.dace_orchestration is None: - raise pytest.skip("This test is only executed for `--dace-orchestration=True`.") - + if "dace" not in backend.name.lower(): + raise pytest.skip("This test is only executed for `dace backends.") ###################################################################### # Diffusion initialization ###################################################################### @@ -558,7 +554,6 @@ def test_run_diffusion_multiple_steps( ###################################################################### # DaCe NON-Orchestrated Backend ###################################################################### - settings.dace_orchestration = None diagnostic_state_dace_non_orch = diffusion_states.DiffusionDiagnosticState( hdef_ic=savepoint_diffusion_init.hdef_ic(), @@ -577,6 +572,7 @@ def test_run_diffusion_multiple_steps( interpolation_state=interpolation_state, edge_params=edge_geometry, cell_params=cell_geometry, + orchestration=False, backend=backend, ) @@ -590,7 +586,6 @@ def test_run_diffusion_multiple_steps( ###################################################################### # DaCe Orchestrated Backend ###################################################################### - settings.dace_orchestration = True diagnostic_state_dace_orch = diffusion_states.DiffusionDiagnosticState( hdef_ic=savepoint_diffusion_init.hdef_ic(), @@ -610,6 +605,7 @@ def test_run_diffusion_multiple_steps( edge_params=edge_geometry, cell_params=cell_geometry, backend=backend, + orchestration=True, ) for _ in range(3): @@ -632,7 +628,8 @@ def test_run_diffusion_multiple_steps( @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT]) -@pytest.mark.parametrize("linit", [True]) +@pytest.mark.parametrize("linit", (True, )) +@pytest.mark.parametrize("orchestration", [True, False]) def test_run_diffusion_initial_step( experiment, linit, @@ -645,7 +642,10 @@ def test_run_diffusion_initial_step( interpolation_savepoint, metrics_savepoint, backend, + orchestration, ): + if orchestration and ("dace" not in backend.name.lower()): + pytest.skip(f"running backend = '{backend.name}': orchestration only on dace backends") grid = get_grid_for_experiment(experiment, backend) cell_geometry = get_cell_geometry_for_experiment(experiment, backend) edge_geometry = get_edge_geometry_for_experiment(experiment, backend) @@ -702,20 +702,20 @@ def test_run_diffusion_initial_step( edge_params=edge_geometry, cell_params=cell_geometry, backend=backend, + orchestration=orchestration, ) assert savepoint_diffusion_init.fac_bdydiff_v() == diffusion_granule.fac_bdydiff_v - if linit: - diffusion_granule.initial_run( - diagnostic_state=diagnostic_state, - prognostic_state=prognostic_state, - dtime=dtime, - ) + diffusion_granule.initial_run( + diagnostic_state=diagnostic_state, + prognostic_state=prognostic_state, + dtime=dtime, + ) - verify_diffusion_fields( - config=config, - diagnostic_state=diagnostic_state, - prognostic_state=prognostic_state, - diffusion_savepoint=savepoint_diffusion_exit, - ) + verify_diffusion_fields( + config=config, + diagnostic_state=diagnostic_state, + prognostic_state=prognostic_state, + diffusion_savepoint=savepoint_diffusion_exit, + ) diff --git a/model/testing/src/icon4py/model/testing/datatest_fixtures.py b/model/testing/src/icon4py/model/testing/datatest_fixtures.py index fdf88329b1..c80ccd100f 100644 --- a/model/testing/src/icon4py/model/testing/datatest_fixtures.py +++ b/model/testing/src/icon4py/model/testing/datatest_fixtures.py @@ -79,8 +79,6 @@ def download_ser_data(request, processor_props, ranked_data_path, experiment, py @pytest.fixture def data_provider(download_ser_data, ranked_data_path, experiment, processor_props): data_path = dt_utils.get_datapath_for_experiment(ranked_data_path, experiment) - print(ranked_data_path) - print(data_path) return dt_utils.create_icon_serial_data_provider(data_path, processor_props) From 5e3b7eb8cb1f632f72f5cb3d06eb043c028dc6d3 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 11 Dec 2024 18:22:23 +0100 Subject: [PATCH 33/83] Address reviewer's comments (WIP) --- .../tests/diffusion_tests/test_diffusion.py | 2 +- .../src/icon4py/model/common/type_alias.py | 2 +- .../icon4py/model/common/utils/serialbox.py | 1 - .../test_compute_coeff_gradekin.py | 5 +- .../test_compute_diffusion_metrics.py | 47 +++++++++---------- .../metric_tests/test_compute_wgtfac_c.py | 4 +- .../model/driver/initialization_utils.py | 2 +- 7 files changed, 28 insertions(+), 35 deletions(-) diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py index ebb522342d..6c549fadd2 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py @@ -163,7 +163,7 @@ def test_smagorinski_factor_diffusion_type_5(experiment): params = diffusion.DiffusionParams(construct_diffusion_config(experiment, ndyn_substeps=5)) assert len(params.smagorinski_factor) == len(params.smagorinski_height) assert len(params.smagorinski_factor) == 4 - assert np.all(params.smagorinski_factor >= np.zeros(len(params.smagorinski_factor))) + assert all(params.smagorinski_factor >= 0) @pytest.mark.datatest diff --git a/model/common/src/icon4py/model/common/type_alias.py b/model/common/src/icon4py/model/common/type_alias.py index 709df30f86..afd0bb9497 100644 --- a/model/common/src/icon4py/model/common/type_alias.py +++ b/model/common/src/icon4py/model/common/type_alias.py @@ -15,7 +15,7 @@ DEFAULT_PRECISION = "double" wpfloat: TypeAlias = float64 -vpfloat: type[float64] | type[float64] = wpfloat +vpfloat: type[float32] | type[float64] = wpfloat precision = os.environ.get("FLOAT_PRECISION", DEFAULT_PRECISION).lower() diff --git a/model/common/src/icon4py/model/common/utils/serialbox.py b/model/common/src/icon4py/model/common/utils/serialbox.py index 77fe333171..190ce260db 100644 --- a/model/common/src/icon4py/model/common/utils/serialbox.py +++ b/model/common/src/icon4py/model/common/utils/serialbox.py @@ -16,7 +16,6 @@ import icon4py.model.common.decomposition.definitions as decomposition import icon4py.model.common.field_type_aliases as fa import icon4py.model.common.grid.states as grid_states -import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.common import dimension as dims from icon4py.model.common.grid import base, horizontal, icon from icon4py.model.common.states import prognostic_state diff --git a/model/common/tests/metric_tests/test_compute_coeff_gradekin.py b/model/common/tests/metric_tests/test_compute_coeff_gradekin.py index e24acd0059..2917ed0f1d 100644 --- a/model/common/tests/metric_tests/test_compute_coeff_gradekin.py +++ b/model/common/tests/metric_tests/test_compute_coeff_gradekin.py @@ -11,8 +11,7 @@ import icon4py.model.common.grid.horizontal as h_grid from icon4py.model.common import dimension as dims from icon4py.model.common.metrics.compute_coeff_gradekin import compute_coeff_gradekin -from icon4py.model.testing import datatest_utils as dt_utils -from icon4py.model.testing.helpers import dallclose +from icon4py.model.testing import datatest_utils as dt_utils, helpers @pytest.mark.datatest @@ -29,4 +28,4 @@ def test_compute_coeff_gradekin(icon_grid, grid_savepoint, metrics_savepoint): coeff_gradekin_full = compute_coeff_gradekin( edge_cell_length, inv_dual_edge_length, horizontal_start, horizontal_end ) - assert dallclose(coeff_gradekin_ref.asnumpy(), coeff_gradekin_full.asnumpy()) + assert helpers.dallclose(coeff_gradekin_ref.asnumpy(), coeff_gradekin_full.asnumpy()) diff --git a/model/common/tests/metric_tests/test_compute_diffusion_metrics.py b/model/common/tests/metric_tests/test_compute_diffusion_metrics.py index 89b70ad6da..d3c4228ab0 100644 --- a/model/common/tests/metric_tests/test_compute_diffusion_metrics.py +++ b/model/common/tests/metric_tests/test_compute_diffusion_metrics.py @@ -20,13 +20,8 @@ compute_weighted_cell_neighbor_sum, compute_z_mc, ) -from icon4py.model.common.utils.data_allocation import ( - constant_field, - flatten_first_two_dims, - zero_field -) -from icon4py.model.testing import datatest_utils as dt_utils -from icon4py.model.testing.helpers import dallclose, is_roundtrip +from icon4py.model.common.utils import data_allocation as data_alloc +from icon4py.model.testing import datatest_utils as dt_utils, helpers # TODO (halungge) fails in embedded @@ -35,25 +30,25 @@ def test_compute_diffusion_metrics( metrics_savepoint, experiment, interpolation_savepoint, icon_grid, grid_savepoint, backend ): - if is_roundtrip(backend): + if helpers.is_roundtrip(backend): pytest.skip("skipping: slow backend") if experiment == dt_utils.GLOBAL_EXPERIMENT: pytest.skip(f"Fields not computed for {experiment}") - mask_hdiff = zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=bool).asnumpy() - zd_vertoffset_dsl = zero_field(icon_grid, dims.CellDim, dims.C2E2CDim, dims.KDim).asnumpy() - z_vintcoeff = zero_field(icon_grid, dims.CellDim, dims.C2E2CDim, dims.KDim).asnumpy() - zd_intcoef_dsl = zero_field(icon_grid, dims.CellDim, dims.C2E2CDim, dims.KDim).asnumpy() - z_maxslp_avg = zero_field(icon_grid, dims.CellDim, dims.KDim) - z_maxhgtd_avg = zero_field(icon_grid, dims.CellDim, dims.KDim) - zd_diffcoef_dsl = zero_field(icon_grid, dims.CellDim, dims.KDim).asnumpy() - maxslp = zero_field(icon_grid, dims.CellDim, dims.KDim) - maxhgtd = zero_field(icon_grid, dims.CellDim, dims.KDim) - max_nbhgt = zero_field(icon_grid, dims.CellDim) + mask_hdiff = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=bool).asnumpy() + zd_vertoffset_dsl = data_alloc.zero_field(icon_grid, dims.CellDim, dims.C2E2CDim, dims.KDim).asnumpy() + z_vintcoeff = data_alloc.zero_field(icon_grid, dims.CellDim, dims.C2E2CDim, dims.KDim).asnumpy() + zd_intcoef_dsl = data_alloc.zero_field(icon_grid, dims.CellDim, dims.C2E2CDim, dims.KDim).asnumpy() + z_maxslp_avg = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) + z_maxhgtd_avg = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) + zd_diffcoef_dsl = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim).asnumpy() + maxslp = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) + maxhgtd = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) + max_nbhgt = data_alloc.zero_field(icon_grid, dims.CellDim) c2e2c = icon_grid.connectivities[dims.C2E2CDim] - nbidx = constant_field( + nbidx = data_alloc.constant_field( icon_grid, 1, dims.CellDim, dims.C2E2CDim, dims.KDim, dtype=int ).asnumpy() c_bln_avg = interpolation_savepoint.c_bln_avg() @@ -79,7 +74,7 @@ def test_compute_diffusion_metrics( offset_provider={"C2E": icon_grid.get_offset_provider("C2E")}, ) - z_mc = zero_field(icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + z_mc = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) compute_z_mc.with_backend(backend)( metrics_savepoint.z_ifc(), z_mc, @@ -132,18 +127,18 @@ def test_compute_diffusion_metrics( n_cells=icon_grid.num_cells, nlev=nlev, ) - zd_intcoef_dsl = flatten_first_two_dims( + zd_intcoef_dsl = data_alloc.flatten_first_two_dims( dims.CECDim, dims.KDim, field=gtx.as_field((dims.CellDim, dims.C2E2CDim, dims.KDim), zd_intcoef_dsl), ) - zd_vertoffset_dsl = flatten_first_two_dims( + zd_vertoffset_dsl = data_alloc.flatten_first_two_dims( dims.CECDim, dims.KDim, field=gtx.as_field((dims.CellDim, dims.C2E2CDim, dims.KDim), zd_vertoffset_dsl), ) - assert dallclose(mask_hdiff, metrics_savepoint.mask_hdiff().asnumpy()) - assert dallclose(zd_diffcoef_dsl, metrics_savepoint.zd_diffcoef().asnumpy(), rtol=1.0e-11) - assert dallclose(zd_vertoffset_dsl.asnumpy(), metrics_savepoint.zd_vertoffset().asnumpy()) - assert dallclose(zd_intcoef_dsl.asnumpy(), metrics_savepoint.zd_intcoef().asnumpy()) + assert helpers.dallclose(mask_hdiff, metrics_savepoint.mask_hdiff().asnumpy()) + assert helpers.dallclose(zd_diffcoef_dsl, metrics_savepoint.zd_diffcoef().asnumpy(), rtol=1.0e-11) + assert helpers.dallclose(zd_vertoffset_dsl.asnumpy(), metrics_savepoint.zd_vertoffset().asnumpy()) + assert helpers.dallclose(zd_intcoef_dsl.asnumpy(), metrics_savepoint.zd_intcoef().asnumpy()) diff --git a/model/common/tests/metric_tests/test_compute_wgtfac_c.py b/model/common/tests/metric_tests/test_compute_wgtfac_c.py index 43716ea0b8..ae481d1f41 100644 --- a/model/common/tests/metric_tests/test_compute_wgtfac_c.py +++ b/model/common/tests/metric_tests/test_compute_wgtfac_c.py @@ -13,7 +13,7 @@ from icon4py.model.common.type_alias import wpfloat from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.testing import datatest_utils as dt_utils -from icon4py.model.testing.helpers import dallclose +from icon4py.model.testing import helpers @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) @@ -33,4 +33,4 @@ def test_compute_wgtfac_c(icon_grid, metrics_savepoint): # fixture offset_provider={"Koff": dims.KDim}, ) - assert dallclose(wgtfac_c.asnumpy(), wgtfac_c_ref.asnumpy()) + assert helpers.dallclose(wgtfac_c.asnumpy(), wgtfac_c_ref.asnumpy()) diff --git a/model/driver/src/icon4py/model/driver/initialization_utils.py b/model/driver/src/icon4py/model/driver/initialization_utils.py index 16e9aa90d9..349ee2eed6 100644 --- a/model/driver/src/icon4py/model/driver/initialization_utils.py +++ b/model/driver/src/icon4py/model/driver/initialization_utils.py @@ -31,7 +31,7 @@ from icon4py.model.driver.test_cases import gauss3d, jablonowski_williamson -# TODO(egparedes): Read these hardcoded constants from configuration files +# TODO(egparedes): Read these hardcoded constants from grid file GRID_LEVEL = 4 GRID_ROOT = 2 GLOBAL_GRID_ID = uuid.UUID("af122aca-1dd2-11b2-a7f8-c7bf6bc21eba") From caf0d0317988888b188abe3bcd08ca63f22196fb Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 11 Dec 2024 18:43:51 +0100 Subject: [PATCH 34/83] Address more reviewer's comments --- .../diffusion/tests/diffusion_tests/test_diffusion.py | 11 +++-------- .../tests/diffusion_tests/test_diffusion_utils.py | 2 +- ...st_init_two_cell_kdim_fields_index_with_zero_vp.py | 8 ++++---- .../model/common/metrics/compute_coeff_gradekin.py | 4 ++-- 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py index 6c549fadd2..fa9f2be2b9 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py @@ -5,7 +5,6 @@ # # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause -import numpy as np import pytest import icon4py.model.common.dimension as dims @@ -13,9 +12,7 @@ from icon4py.model.atmosphere.diffusion import diffusion, diffusion_states, diffusion_utils from icon4py.model.common.decomposition import definitions from icon4py.model.common.grid import ( - geometry, geometry_attributes as geometry_meta, - icon, vertical as v_grid, ) from icon4py.model.testing import ( @@ -391,8 +388,7 @@ def test_verify_diffusion_init_against_savepoint( (dt_utils.GLOBAL_EXPERIMENT, "2000-01-01T00:00:02.000", "2000-01-01T00:00:02.000"), ], ) -@pytest.mark.parametrize("ndyn_substeps", (2,)) -@pytest.mark.parametrize("orchestration", [True, False]) +@pytest.mark.parametrize("ndyn_substeps, orchestration", [(2, [True, False])]) def test_run_diffusion_single_step( savepoint_diffusion_init, savepoint_diffusion_exit, @@ -507,7 +503,7 @@ def test_run_diffusion_multiple_steps( icon_grid, ): if "dace" not in backend.name.lower(): - raise pytest.skip("This test is only executed for `dace backends.") + raise pytest.skip("This test is only executed for DaCe backends.") ###################################################################### # Diffusion initialization ###################################################################### @@ -628,8 +624,7 @@ def test_run_diffusion_multiple_steps( @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT]) -@pytest.mark.parametrize("linit", (True, )) -@pytest.mark.parametrize("orchestration", [True, False]) +@pytest.mark.parametrize("linit, orchestration", [(True, [True, False])]) def test_run_diffusion_initial_step( experiment, linit, diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py index 003d9e18ca..1355508e4c 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion_utils.py @@ -98,7 +98,7 @@ def test_diff_multfac_vn_smag_limit_for_loop_run_with_k4_substeps(backend): def test_init_zero_vertex_k(backend): grid = simple_grid.SimpleGrid() f = data_alloc.random_field(grid, dims.VertexDim, dims.KDim) - diffusion_utils.init_zero_v_k(f, offset_provider={}) + diffusion_utils.init_zero_v_k.with_backend(backend)(f, offset_provider={}) assert np.allclose(0.0, f.asnumpy()) diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_index_with_zero_vp.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_index_with_zero_vp.py index d48cb8e778..720471eb4d 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_index_with_zero_vp.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_init_two_cell_kdim_fields_index_with_zero_vp.py @@ -14,7 +14,7 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.testing.helpers import StencilTest -from icon4py.model.common.utils.data_allocation import shape, random_field +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.type_alias import vpfloat @@ -45,10 +45,10 @@ def reference( @pytest.fixture def input_data(self, grid): - field_index_with_zero_1 = random_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) - field_index_with_zero_2 = random_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) + field_index_with_zero_1 = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) + field_index_with_zero_2 = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) + k = data_alloc.allocate_indices(dims.KDim, grid) - k = gtx.as_field((dims.KDim,), np.arange(0, shape(grid, dims.KDim)[0], dtype=gtx.int32)) k1 = 1 k2 = gtx.int32(grid.num_levels) diff --git a/model/common/src/icon4py/model/common/metrics/compute_coeff_gradekin.py b/model/common/src/icon4py/model/common/metrics/compute_coeff_gradekin.py index 70a07c6825..176f8426a1 100644 --- a/model/common/src/icon4py/model/common/metrics/compute_coeff_gradekin.py +++ b/model/common/src/icon4py/model/common/metrics/compute_coeff_gradekin.py @@ -9,7 +9,7 @@ import numpy as np from icon4py.model.common import dimension as dims -from icon4py.model.common.utils import data_allocation as f_utils +from icon4py.model.common.utils import data_allocation as data_alloc def compute_coeff_gradekin( @@ -37,4 +37,4 @@ def compute_coeff_gradekin( edge_cell_length[e, 0] / edge_cell_length[e, 1] * inv_dual_edge_length[e] ) coeff_gradekin_full = np.column_stack((coeff_gradekin_0, coeff_gradekin_1)) - return f_utils.numpy_to_1D_sparse_field(coeff_gradekin_full, dims.ECDim) + return data_alloc.numpy_to_1D_sparse_field(coeff_gradekin_full, dims.ECDim) From aa36905865693f5211718757030d5ccc598083e2 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 11 Dec 2024 18:48:34 +0100 Subject: [PATCH 35/83] Update code of conduct --- .github/CODE_OF_CONDUCT.md => CODE_OF_CONDUCT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/CODE_OF_CONDUCT.md => CODE_OF_CONDUCT.md (98%) diff --git a/.github/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md similarity index 98% rename from .github/CODE_OF_CONDUCT.md rename to CODE_OF_CONDUCT.md index 1a1292e18d..3c9ae313a4 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -61,7 +61,7 @@ representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at -[INSERT CONTACT METHOD]. +[magdalena.luz@c2sm.ethz.ch](mailto:magdalena.luz@c2sm.ethz.ch). All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the From 1dc26cecd8f02c1970a55b5da78e4a7a8be02f94 Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Thu, 12 Dec 2024 09:26:14 +0100 Subject: [PATCH 36/83] fix dycore stencil tests --- ..._compute_advective_normal_wind_tendency.py | 29 +++++++++---------- ..._divergence_of_fluxes_of_rho_and_theta.py} | 19 +++++------- .../test_interpolate_to_cell_center.py | 13 ++++----- .../tests/dycore_tests/test_dycore_utils.py | 19 ++++++------ 4 files changed, 36 insertions(+), 44 deletions(-) rename model/atmosphere/dycore/tests/dycore_stencil_tests/{test_mcompute_divergence_of_fluxes_of_rho_and_theta.py => test_compute_divergence_of_fluxes_of_rho_and_theta.py} (74%) diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_normal_wind_tendency.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_normal_wind_tendency.py index dda48a4ae8..54a786f591 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_normal_wind_tendency.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_advective_normal_wind_tendency.py @@ -14,10 +14,7 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.testing.helpers import StencilTest -from icon4py.model.common.utils.data_allocation import ( - random_field, - zero_field -) +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.common.type_alias import vpfloat, wpfloat @@ -91,18 +88,18 @@ def input_data(self, grid): if np.any(grid.connectivities[dims.E2CDim] == -1): pytest.xfail("Stencil does not support missing neighbors.") - z_kin_hor_e = random_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) - coeff_gradekin = random_field(grid, dims.EdgeDim, dims.E2CDim, dtype=vpfloat) - coeff_gradekin_new = as_1D_sparse_field(coeff_gradekin, dims.ECDim) - z_ekinh = random_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) - zeta = random_field(grid, dims.VertexDim, dims.KDim, dtype=vpfloat) - vt = random_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) - f_e = random_field(grid, dims.EdgeDim, dtype=wpfloat) - c_lin_e = random_field(grid, dims.EdgeDim, dims.E2CDim, dtype=wpfloat) - z_w_con_c_full = random_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) - vn_ie = random_field(grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}, dtype=vpfloat) - ddqz_z_full_e = random_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) - ddt_vn_apc = zero_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) + z_kin_hor_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) + coeff_gradekin = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim, dtype=vpfloat) + coeff_gradekin_new = data_alloc.as_1D_sparse_field(coeff_gradekin, dims.ECDim) + z_ekinh = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) + zeta = data_alloc.random_field(grid, dims.VertexDim, dims.KDim, dtype=vpfloat) + vt = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) + f_e = data_alloc.random_field(grid, dims.EdgeDim, dtype=wpfloat) + c_lin_e = data_alloc.random_field(grid, dims.EdgeDim, dims.E2CDim, dtype=wpfloat) + z_w_con_c_full = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) + vn_ie = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}, dtype=vpfloat) + ddqz_z_full_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) + ddt_vn_apc = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) return dict( z_kin_hor_e=z_kin_hor_e, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mcompute_divergence_of_fluxes_of_rho_and_theta.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_divergence_of_fluxes_of_rho_and_theta.py similarity index 74% rename from model/atmosphere/dycore/tests/dycore_stencil_tests/test_mcompute_divergence_of_fluxes_of_rho_and_theta.py rename to model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_divergence_of_fluxes_of_rho_and_theta.py index cd6e43546b..07ec80c28f 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_mcompute_divergence_of_fluxes_of_rho_and_theta.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_divergence_of_fluxes_of_rho_and_theta.py @@ -14,14 +14,11 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.testing.helpers import StencilTest -from icon4py.model.common.utils.data_allocation import ( - random_field, - zero_field -) +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.common.type_alias import vpfloat, wpfloat -class TestComputeDivergenconnectivityceOfFluxesOfRhoAndTheta(StencilTest): +class TestComputeDivergenceConnectivityOfFluxesOfRhoAndTheta(StencilTest): PROGRAM = compute_divergence_of_fluxes_of_rho_and_theta OUTPUTS = ("z_flxdiv_mass", "z_flxdiv_theta") @@ -49,13 +46,13 @@ def reference( @pytest.fixture def input_data(self, grid): - geofac_div = as_1D_sparse_field( - random_field(grid, dims.CellDim, dims.C2EDim, dtype=wpfloat), dims.CEDim + geofac_div = data_alloc.as_1D_sparse_field( + data_alloc.random_field(grid, dims.CellDim, dims.C2EDim, dtype=wpfloat), dims.CEDim ) - z_theta_v_fl_e = random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) - z_flxdiv_theta = zero_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) - mass_fl_e = random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) - z_flxdiv_mass = zero_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) + z_theta_v_fl_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) + z_flxdiv_theta = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) + mass_fl_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=wpfloat) + z_flxdiv_mass = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) return dict( geofac_div=geofac_div, diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_cell_center.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_cell_center.py index 62eb9df956..23d2b4141e 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_cell_center.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_interpolate_to_cell_center.py @@ -14,10 +14,7 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.testing.helpers import StencilTest -from icon4py.model.common.utils.data_allocation import ( - random_field, - zero_field -) +import icon4py.model.common.utils.data_allocation as data_alloc from icon4py.model.common.type_alias import vpfloat, wpfloat @@ -45,13 +42,13 @@ def reference(grid, interpolant: np.array, e_bln_c_s: np.array, **kwargs) -> dic @pytest.fixture def input_data(self, grid): - interpolant = random_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) - e_bln_c_s = random_field(grid, dims.CellDim, dims.C2EDim, dtype=wpfloat) - interpolation = zero_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) + interpolant = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=vpfloat) + e_bln_c_s = data_alloc.random_field(grid, dims.CellDim, dims.C2EDim, dtype=wpfloat) + interpolation = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=vpfloat) return dict( interpolant=interpolant, - e_bln_c_s=as_1D_sparse_field(e_bln_c_s, dims.CEDim), + e_bln_c_s=data_alloc.as_1D_sparse_field(e_bln_c_s, dims.CEDim), interpolation=interpolation, horizontal_start=0, horizontal_end=gtx.int32(grid.num_cells), diff --git a/model/atmosphere/dycore/tests/dycore_tests/test_dycore_utils.py b/model/atmosphere/dycore/tests/dycore_tests/test_dycore_utils.py index 320d72e0d1..3b48cb90ea 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/test_dycore_utils.py +++ b/model/atmosphere/dycore/tests/dycore_tests/test_dycore_utils.py @@ -9,6 +9,7 @@ import numpy as np from icon4py.model.atmosphere.dycore import dycore_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common import constants, dimension as dims from icon4py.model.common.grid import simple as simple_grid from icon4py.model.testing import helpers @@ -28,8 +29,8 @@ def test_calculate_scal_divdamp_order_24(backend): divdamp_order = 24 mean_cell_area = 1000.0 grid = simple_grid.SimpleGrid() - enh_divdamp_fac = helpers.random_field(grid, dims.KDim) - out = helpers.random_field(grid, dims.KDim) + enh_divdamp_fac = data_alloc.random_field(grid, dims.KDim) + out = data_alloc.random_field(grid, dims.KDim) dycore_utils._calculate_scal_divdamp.with_backend(backend)( enh_divdamp_fac=enh_divdamp_fac, @@ -49,8 +50,8 @@ def test_calculate_scal_divdamp_any_order(backend): divdamp_order = 3 mean_cell_area = 1000.0 grid = simple_grid.SimpleGrid() - enh_divdamp_fac = helpers.random_field(grid, dims.KDim) - out = helpers.random_field(grid, dims.KDim) + enh_divdamp_fac = data_alloc.random_field(grid, dims.KDim) + out = data_alloc.random_field(grid, dims.KDim) dycore_utils._calculate_scal_divdamp.with_backend(backend)( enh_divdamp_fac=enh_divdamp_fac, @@ -66,8 +67,8 @@ def test_calculate_scal_divdamp_any_order(backend): def test_calculate_bdy_divdamp(backend): grid = simple_grid.SimpleGrid() - scal_divdamp = helpers.random_field(grid, dims.KDim) - out = helpers.zero_field(grid, dims.KDim) + scal_divdamp = data_alloc.random_field(grid, dims.KDim) + out = data_alloc.zero_field(grid, dims.KDim) coeff = 0.3 dycore_utils._calculate_bdy_divdamp.with_backend(backend)( scal_divdamp, coeff, constants.DBL_EPS, out=out, offset_provider={} @@ -77,9 +78,9 @@ def test_calculate_bdy_divdamp(backend): def test_calculate_divdamp_fields(backend): grid = simple_grid.SimpleGrid() - divdamp_field = helpers.random_field(grid, dims.KDim) - scal_divdamp = helpers.zero_field(grid, dims.KDim) - boundary_divdamp = helpers.zero_field(grid, dims.KDim) + divdamp_field = data_alloc.random_field(grid, dims.KDim) + scal_divdamp = data_alloc.zero_field(grid, dims.KDim) + boundary_divdamp = data_alloc.zero_field(grid, dims.KDim) divdamp_order = gtx.int32(24) mean_cell_area = 1000.0 divdamp_fac_o2 = 0.7 From e2aaedfaee06e63c3d47a64ab00bdd86cc5e134a Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Thu, 12 Dec 2024 10:41:50 +0100 Subject: [PATCH 37/83] fix import in SolveNonHydro --- .../model/atmosphere/dycore/solve_nonhydro.py | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py b/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py index f3b4428d69..e6979480f6 100644 --- a/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py +++ b/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py @@ -8,7 +8,7 @@ import logging import dataclasses -from typing import Final, Literal, Optional +from typing import Final,Literal, Optional import gt4py.next as gtx from gt4py.next import backend @@ -16,6 +16,7 @@ import icon4py.model.atmosphere.dycore.solve_nonhydro_stencils as nhsolve_stencils import icon4py.model.common.grid.states as grid_states import icon4py.model.common.utils as common_utils +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common import constants from icon4py.model.atmosphere.dycore.stencils.init_cell_kdim_field_with_zero_wp import ( @@ -251,46 +252,46 @@ def allocate( backend: Optional[backend.Backend] = None, ): return IntermediateFields( - z_gradh_exner=field_alloc.allocate_zero_field( + z_gradh_exner=data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=grid, backend=backend ), - z_alpha=field_alloc.allocate_zero_field( + z_alpha=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, is_halfdim=True, grid=grid, backend=backend ), - z_beta=field_alloc.allocate_zero_field( + z_beta=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, backend=backend ), - z_w_expl=field_alloc.allocate_zero_field( + z_w_expl=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, is_halfdim=True, grid=grid, backend=backend ), - z_exner_expl=field_alloc.allocate_zero_field( + z_exner_expl=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, backend=backend ), - z_q=field_alloc.allocate_zero_field( + z_q=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, backend=backend ), - z_contr_w_fl_l=field_alloc.allocate_zero_field( + z_contr_w_fl_l=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, is_halfdim=True, grid=grid, backend=backend ), - z_rho_e=field_alloc.allocate_zero_field( + z_rho_e=data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=grid, backend=backend ), - z_theta_v_e=field_alloc.allocate_zero_field( + z_theta_v_e=data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=grid, backend=backend ), - z_graddiv_vn=field_alloc.allocate_zero_field( + z_graddiv_vn=data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=grid, backend=backend ), - z_rho_expl=field_alloc.allocate_zero_field( + z_rho_expl=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, backend=backend ), - z_dwdz_dd=field_alloc.allocate_zero_field( + z_dwdz_dd=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, backend=backend ), - z_kin_hor_e=field_alloc.allocate_zero_field( + z_kin_hor_e=data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=grid, backend=backend ), - z_vt_ie=field_alloc.allocate_zero_field( + z_vt_ie=data_alloc.allocate_zero_field( dims.EdgeDim, dims.KDim, grid=grid, backend=backend ), ) From 33efdc5e1bb3835d085fee16839c799405f97006 Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Thu, 12 Dec 2024 13:46:57 +0100 Subject: [PATCH 38/83] fix advection stencils (except slow_tests) --- ...test_apply_horizontal_density_increment.py | 11 +++--- ...apply_interpolated_tracer_time_tendency.py | 8 ++-- .../test_apply_vertical_density_increment.py | 11 +++--- ...st_average_horizontal_flux_subcycling_2.py | 8 ++-- ...st_average_horizontal_flux_subcycling_3.py | 10 ++--- .../test_compute_ffsl_backtrajectory.py | 2 +- ...cktrajectory_counterclockwise_indicator.py | 8 ++-- ...te_ffsl_backtrajectory_length_indicator.py | 9 +++-- ...tal_tracer_flux_from_cubic_coefficients.py | 8 ++-- ...al_tracer_flux_from_linear_coefficients.py | 18 +++++---- ...racer_flux_from_linear_coefficients_alt.py | 18 ++++----- ...t_compute_ppm4gpu_parabola_coefficients.py | 11 +++--- .../test_compute_ppm_all_face_values.py | 17 ++++---- .../test_compute_ppm_quadratic_face_values.py | 8 ++-- .../test_compute_ppm_quartic_face_values.py | 10 ++--- .../test_compute_ppm_slope.py | 16 +++----- .../test_compute_tendency.py | 8 ++-- ...ute_vertical_parabola_limiter_condition.py | 7 ++-- ...est_compute_vertical_tracer_flux_upwind.py | 7 ++-- ...t_integrate_tracer_density_horizontally.py | 22 +++++------ .../test_integrate_tracer_vertically.py | 17 ++++---- ...it_vertical_parabola_semi_monotonically.py | 11 +++--- ...limit_vertical_slope_semi_monotonically.py | 12 +++--- ...s_antidiffusive_cell_fluxes_and_min_max.py | 18 ++++----- ...cal_quadrature_for_cubic_reconstruction.py | 39 ++++++++++--------- 25 files changed, 161 insertions(+), 153 deletions(-) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_horizontal_density_increment.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_horizontal_density_increment.py index d2323f8ed5..39c1c8a395 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_horizontal_density_increment.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_horizontal_density_increment.py @@ -15,6 +15,7 @@ apply_horizontal_density_increment, ) from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc class TestApplyHorizontalDensityIncrement(helpers.StencilTest): @@ -43,11 +44,11 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_rhodz_new = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_mflx_contra_v = helpers.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) - deepatmo_divzl = helpers.random_field(grid, dims.KDim) - deepatmo_divzu = helpers.random_field(grid, dims.KDim) - rhodz_ast2 = helpers.zero_field(grid, dims.CellDim, dims.KDim) + p_rhodz_new = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_mflx_contra_v = data_alloc.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + deepatmo_divzl = data_alloc.random_field(grid, dims.KDim) + deepatmo_divzu = data_alloc.random_field(grid, dims.KDim) + rhodz_ast2 = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) p_dtime = 0.1 return dict( p_rhodz_new=p_rhodz_new, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_interpolated_tracer_time_tendency.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_interpolated_tracer_time_tendency.py index 72784dcdb4..e674df26fd 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_interpolated_tracer_time_tendency.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_interpolated_tracer_time_tendency.py @@ -15,7 +15,7 @@ apply_interpolated_tracer_time_tendency, ) from icon4py.model.common import dimension as dims - +from icon4py.model.common.utils import data_allocation as data_alloc class TestApplyInterpolatedTracerTimeTendency(helpers.StencilTest): PROGRAM = apply_interpolated_tracer_time_tendency @@ -36,9 +36,9 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_tracer_now = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_grf_tend_tracer = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_tracer_new = helpers.random_field(grid, dims.CellDim, dims.KDim) + p_tracer_now = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_grf_tend_tracer = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_tracer_new = data_alloc.random_field(grid, dims.CellDim, dims.KDim) p_dtime = np.float64(5.0) return dict( p_tracer_now=p_tracer_now, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_vertical_density_increment.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_vertical_density_increment.py index 485fe42c3f..733a4b12b2 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_vertical_density_increment.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_apply_vertical_density_increment.py @@ -14,6 +14,7 @@ from icon4py.model.atmosphere.advection.stencils.apply_vertical_density_increment import ( apply_vertical_density_increment, ) +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common import dimension as dims @@ -46,11 +47,11 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - rhodz_ast = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_mflx_contra_v = helpers.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) - deepatmo_divzl = helpers.random_field(grid, dims.KDim) - deepatmo_divzu = helpers.random_field(grid, dims.KDim) - rhodz_ast2 = helpers.zero_field(grid, dims.CellDim, dims.KDim) + rhodz_ast = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_mflx_contra_v = data_alloc.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + deepatmo_divzl = data_alloc.random_field(grid, dims.KDim) + deepatmo_divzu = data_alloc.random_field(grid, dims.KDim) + rhodz_ast2 = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) p_dtime = 0.1 return dict( rhodz_ast=rhodz_ast, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_2.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_2.py index 8456e10e46..d34471e218 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_2.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_2.py @@ -15,6 +15,8 @@ average_horizontal_flux_subcycling_2, ) from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc + class TestAverageHorizontalFluxSubcycling2(helpers.StencilTest): @@ -33,9 +35,9 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - z_tracer_mflx_1_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - z_tracer_mflx_2_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_out_e = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) + z_tracer_mflx_1_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + z_tracer_mflx_2_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_out_e = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) return dict( z_tracer_mflx_1_dsl=z_tracer_mflx_1_dsl, z_tracer_mflx_2_dsl=z_tracer_mflx_2_dsl, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_3.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_3.py index e199c3879b..a4bb1fb72d 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_3.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_average_horizontal_flux_subcycling_3.py @@ -15,7 +15,7 @@ average_horizontal_flux_subcycling_3, ) from icon4py.model.common import dimension as dims - +from icon4py.model.common.utils import data_allocation as data_alloc class TestAverageHorizontalFluxSubcycling3(helpers.StencilTest): PROGRAM = average_horizontal_flux_subcycling_3 @@ -34,10 +34,10 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - z_tracer_mflx_1_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - z_tracer_mflx_2_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - z_tracer_mflx_3_dsl = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_out_e = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) + z_tracer_mflx_1_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + z_tracer_mflx_2_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + z_tracer_mflx_3_dsl = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_out_e = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) return dict( z_tracer_mflx_1_dsl=z_tracer_mflx_1_dsl, z_tracer_mflx_2_dsl=z_tracer_mflx_2_dsl, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py index 85f15c4778..5ff32a29f0 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory.py @@ -16,7 +16,7 @@ compute_ffsl_backtrajectory, ) from icon4py.model.common import dimension as dims - +from icon4py.model.common.utils import data_allocation as data_alloc class TestComputeFfslBacktrajectory(helpers.StencilTest): PROGRAM = compute_ffsl_backtrajectory diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_counterclockwise_indicator.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_counterclockwise_indicator.py index edb5fed046..a370e43fd6 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_counterclockwise_indicator.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_counterclockwise_indicator.py @@ -15,7 +15,7 @@ compute_ffsl_backtrajectory_counterclockwise_indicator, ) from icon4py.model.common import dimension as dims - +from icon4py.model.common.utils import data_allocation as data_alloc class TestComputeFfslBacktrajectoryCounterclockwiseIndicator(helpers.StencilTest): PROGRAM = compute_ffsl_backtrajectory_counterclockwise_indicator @@ -39,9 +39,9 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_vn = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - tangent_orientation = helpers.random_field(grid, dims.EdgeDim) - lvn_sys_pos = helpers.zero_field(grid, dims.EdgeDim, dims.KDim, dtype=bool) + p_vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + tangent_orientation = data_alloc.random_field(grid, dims.EdgeDim) + lvn_sys_pos = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim, dtype=bool) lcounterclock = True return dict( p_vn=p_vn, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_length_indicator.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_length_indicator.py index fda6cf3a39..5b025ccc12 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_length_indicator.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ffsl_backtrajectory_length_indicator.py @@ -15,6 +15,7 @@ compute_ffsl_backtrajectory_length_indicator, ) from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc class TestComputeFfslBacktrajectoryLengthIndicator(helpers.StencilTest): @@ -42,11 +43,11 @@ def reference(grid, p_vn: np.array, p_vt: np.array, p_dt: float, **kwargs) -> di @pytest.fixture def input_data(self, grid) -> dict: - p_vn = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_vt = helpers.random_field(grid, dims.EdgeDim, dims.KDim) + p_vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_vt = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) edge_cell_length = np.asarray(grid.connectivities[dims.E2CDim], dtype=float) - edge_cell_length_new = helpers.numpy_to_1D_sparse_field(edge_cell_length, dims.ECDim) - opt_famask_dsl = helpers.zero_field(grid, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + edge_cell_length_new = data_alloc.numpy_to_1D_sparse_field(edge_cell_length, dims.ECDim) + opt_famask_dsl = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim, dtype=gtx.int32) p_dt = 1.0 return dict( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_cubic_coefficients.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_cubic_coefficients.py index 213fc4205b..f1bddfc891 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_cubic_coefficients.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_cubic_coefficients.py @@ -15,7 +15,7 @@ compute_horizontal_tracer_flux_from_cubic_coefficients, ) from icon4py.model.common import dimension as dims - +from icon4py.model.common.utils import data_allocation as data_alloc class TestComputeHorizontalTracerFluxFromCubicCoefficients(helpers.StencilTest): PROGRAM = compute_horizontal_tracer_flux_from_cubic_coefficients @@ -35,9 +35,9 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_out_e_hybrid_2 = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_mass_flx_e = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - z_dreg_area = helpers.random_field(grid, dims.EdgeDim, dims.KDim) + p_out_e_hybrid_2 = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_mass_flx_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + z_dreg_area = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) return dict( p_mass_flx_e=p_mass_flx_e, z_dreg_area=z_dreg_area, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients.py index 0deea20c4f..9f2b58531f 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients.py @@ -16,6 +16,8 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid +from icon4py.model.common.utils import data_allocation as data_alloc + class TestComputeHorizontalTracerFluxFromLinearCoefficients(helpers.StencilTest): @@ -57,16 +59,16 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - z_lsq_coeff_1 = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_lsq_coeff_2 = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_lsq_coeff_3 = helpers.random_field(grid, dims.CellDim, dims.KDim) - distv_bary_1 = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - distv_bary_2 = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_mass_flx_e = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - cell_rel_idx_dsl = helpers.random_field( + z_lsq_coeff_1 = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_lsq_coeff_2 = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_lsq_coeff_3 = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + distv_bary_1 = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + distv_bary_2 = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_mass_flx_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + cell_rel_idx_dsl = data_alloc.random_field( grid, dims.EdgeDim, dims.KDim, low=0.0, high=2.0, dtype=gtx.int32 ) - p_out_e = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) + p_out_e = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) edge_domain = h_grid.domain(dims.EdgeDim) horizontal_start = ( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients_alt.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients_alt.py index 6d2260350b..5bab9a7c59 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients_alt.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients_alt.py @@ -16,7 +16,7 @@ ) from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid - +from icon4py.model.common.utils import data_allocation as data_alloc class TestComputeHorizontalTracerFluxFromLinearCoefficientsAlt(helpers.StencilTest): PROGRAM = compute_horizontal_tracer_flux_from_linear_coefficients_alt @@ -57,14 +57,14 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - z_lsq_coeff_1 = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_lsq_coeff_2 = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_lsq_coeff_3 = helpers.random_field(grid, dims.CellDim, dims.KDim) - distv_bary_1 = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - distv_bary_2 = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_mass_flx_e = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_vn = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_out_e = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) + z_lsq_coeff_1 = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_lsq_coeff_2 = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_lsq_coeff_3 = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + distv_bary_1 = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + distv_bary_2 = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_mass_flx_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_out_e = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) edge_domain = h_grid.domain(dims.EdgeDim) horizontal_start = ( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm4gpu_parabola_coefficients.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm4gpu_parabola_coefficients.py index 0314d7d910..868a793128 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm4gpu_parabola_coefficients.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm4gpu_parabola_coefficients.py @@ -15,6 +15,7 @@ compute_ppm4gpu_parabola_coefficients, ) from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc class TestComputePpm4gpuParabolaCoefficients(helpers.StencilTest): @@ -31,11 +32,11 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - z_face_up = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_face_low = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_delta_q = helpers.zero_field(grid, dims.CellDim, dims.KDim) - z_a1 = helpers.zero_field(grid, dims.CellDim, dims.KDim) + z_face_up = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_face_low = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_delta_q = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + z_a1 = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) return dict( z_face_up=z_face_up, z_face_low=z_face_low, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_all_face_values.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_all_face_values.py index 2f59e92697..a0886c53f4 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_all_face_values.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_all_face_values.py @@ -9,15 +9,17 @@ import gt4py.next as gtx import numpy as np import pytest -from gt4py.next import as_field import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.compute_ppm_all_face_values import ( compute_ppm_all_face_values, ) +from icon4py.model.common.utils import data_allocation as data_alloc + from icon4py.model.common import dimension as dims + class TestComputePpmAllFaceValues(helpers.StencilTest): PROGRAM = compute_ppm_all_face_values OUTPUTS = ("p_face",) @@ -49,14 +51,11 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_cellhgt_mc_now = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_face_in = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_face = helpers.zero_field(grid, dims.CellDim, dims.KDim) - - k = as_field( - (dims.KDim,), np.arange(0, helpers._shape(grid, dims.KDim)[0], dtype=gtx.int32) - ) + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_cellhgt_mc_now = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_face_in = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_face = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + k = data_alloc.allocate_indices(dims.KDim, grid, is_halfdim=False, dtype=gtx.int32) slev = gtx.int32(1) slevp1 = gtx.int32(2) elev = gtx.int32(k[-3].as_scalar()) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quadratic_face_values.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quadratic_face_values.py index c84f433c1e..ddf584f7fc 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quadratic_face_values.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quadratic_face_values.py @@ -15,7 +15,7 @@ compute_ppm_quadratic_face_values, ) from icon4py.model.common import dimension as dims - +from icon4py.model.common.utils import data_allocation as data_alloc outslice = (slice(None), slice(1, None)) @@ -36,9 +36,9 @@ def reference(grid, p_cc: np.array, p_cellhgt_mc_now: np.array, **kwargs) -> dic @pytest.fixture def input_data(self, grid) -> dict: - p_face = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_cellhgt_mc_now = helpers.random_field(grid, dims.CellDim, dims.KDim) + p_face = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_cellhgt_mc_now = data_alloc.random_field(grid, dims.CellDim, dims.KDim) return dict( p_cc=p_cc, p_cellhgt_mc_now=p_cellhgt_mc_now, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quartic_face_values.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quartic_face_values.py index bc6231dc60..b607d8fd3e 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quartic_face_values.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_quartic_face_values.py @@ -15,7 +15,7 @@ compute_ppm_quartic_face_values, ) from icon4py.model.common import dimension as dims - +from icon4py.model.common.utils import data_allocation as data_alloc class TestComputePpmQuarticFaceValues(helpers.StencilTest): PROGRAM = compute_ppm_quartic_face_values @@ -63,12 +63,12 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_cellhgt_mc_now = helpers.random_field( + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_cellhgt_mc_now = data_alloc.random_field( grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1} ) - z_slope = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_face = helpers.zero_field(grid, dims.CellDim, dims.KDim) + z_slope = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_face = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) return dict( p_cc=p_cc, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_slope.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_slope.py index 226c0d58a4..4d1c2612eb 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_slope.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_ppm_slope.py @@ -16,7 +16,7 @@ compute_ppm_slope, ) from icon4py.model.common import dimension as dims - +from icon4py.model.common.utils import data_allocation as data_alloc class TestComputePpmSlope(helpers.StencilTest): PROGRAM = compute_ppm_slope @@ -61,17 +61,13 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - z_slope = helpers.zero_field(grid, dims.CellDim, dims.KDim) - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) - p_cellhgt_mc_now = helpers.random_field( + z_slope = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + p_cellhgt_mc_now = data_alloc.random_field( grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1} ) - k = as_field( - (dims.KDim,), - np.arange( - 0, helpers._shape(grid, dims.KDim, extend={dims.KDim: 1})[0], dtype=gtx.int32 - ), - ) + k = data_alloc.allocate_indices(dims.KDim, grid, is_halfdim=True, dtype=gtx.int32) + elev = k[-2].as_scalar() return dict( p_cc=p_cc, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_tendency.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_tendency.py index 3a4f270520..2498da7263 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_tendency.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_tendency.py @@ -15,7 +15,7 @@ compute_tendency, ) from icon4py.model.common import dimension as dims - +from icon4py.model.common.utils import data_allocation as data_alloc class TestComputeTendency(helpers.StencilTest): PROGRAM = compute_tendency @@ -35,9 +35,9 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_tracer_now = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_tracer_new = helpers.random_field(grid, dims.CellDim, dims.KDim) - opt_ddt_tracer_adv = helpers.zero_field(grid, dims.CellDim, dims.KDim) + p_tracer_now = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_tracer_new = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + opt_ddt_tracer_adv = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) p_dtime = np.float64(5.0) return dict( p_tracer_now=p_tracer_now, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_parabola_limiter_condition.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_parabola_limiter_condition.py index abc788a38e..51d6ca4374 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_parabola_limiter_condition.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_parabola_limiter_condition.py @@ -15,6 +15,7 @@ compute_vertical_parabola_limiter_condition, ) from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc class TestComputeVerticalParabolaLimiterCondition(helpers.StencilTest): @@ -30,9 +31,9 @@ def reference(grid, p_face: np.array, p_cc: np.array, **kwargs) -> dict: @pytest.fixture def input_data(self, grid) -> dict: - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_face = helpers.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) - l_limit = helpers.zero_field(grid, dims.CellDim, dims.KDim, dtype=gtx.int32) + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_face = data_alloc.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + l_limit = data_alloc.zero_field(grid, dims.CellDim, dims.KDim, dtype=gtx.int32) return dict( p_face=p_face, p_cc=p_cc, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_tracer_flux_upwind.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_tracer_flux_upwind.py index 94afa89418..b14bfe20e6 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_tracer_flux_upwind.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_compute_vertical_tracer_flux_upwind.py @@ -15,6 +15,7 @@ compute_vertical_tracer_flux_upwind, ) from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc outslice = (slice(None), slice(1, None)) @@ -40,11 +41,11 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_mflx_contra_v = helpers.random_field( + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_mflx_contra_v = data_alloc.random_field( grid, dims.CellDim, dims.KDim ) # TODO (dastrm): should be KHalfDim - p_upflux = helpers.zero_field( + p_upflux = data_alloc.zero_field( grid, dims.CellDim, dims.KDim ) # TODO (dastrm): should be KHalfDim return dict( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_density_horizontally.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_density_horizontally.py index 74d3debe3e..ef60eb370d 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_density_horizontally.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_density_horizontally.py @@ -15,7 +15,7 @@ integrate_tracer_density_horizontally, ) from icon4py.model.common import dimension as dims - +from icon4py.model.common.utils import data_allocation as data_alloc class TestIntegrateTracerDensityHorizontally(helpers.StencilTest): PROGRAM = integrate_tracer_density_horizontally @@ -60,16 +60,16 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_mass_flx_e = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - geofac_div = helpers.random_field(grid, dims.CellDim, dims.C2EDim) - z_rhofluxdiv_c = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_tracer_mflx = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - z_rho_now = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_tracer_now = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_rhofluxdiv_c_out = helpers.zero_field(grid, dims.CellDim, dims.KDim) - z_fluxdiv_c_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) - z_rho_new_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) - z_tracer_new_dsl = helpers.zero_field(grid, dims.CellDim, dims.KDim) + p_mass_flx_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + geofac_div = data_alloc.random_field(grid, dims.CellDim, dims.C2EDim) + z_rhofluxdiv_c = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_tracer_mflx = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + z_rho_now = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_tracer_now = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_rhofluxdiv_c_out = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + z_fluxdiv_c_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + z_rho_new_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + z_tracer_new_dsl = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) z_dtsub = 0.5 nsub = 1 return dict( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_vertically.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_vertically.py index a68e29092a..5c6e5ab9ef 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_vertically.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_integrate_tracer_vertically.py @@ -16,6 +16,7 @@ integrate_tracer_vertically, ) from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc class TestIntegrateTracerVertically(helpers.StencilTest): @@ -58,14 +59,14 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - tracer_now = helpers.random_field(grid, dims.CellDim, dims.KDim) - rhodz_now = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_mflx_tracer_v = helpers.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) - deepatmo_divzl = helpers.random_field(grid, dims.KDim) - deepatmo_divzu = helpers.random_field(grid, dims.KDim) - rhodz_new = helpers.random_field(grid, dims.CellDim, dims.KDim) - tracer_new = helpers.zero_field(grid, dims.CellDim, dims.KDim) - k = as_field((dims.KDim,), np.arange(grid.num_levels, dtype=gtx.int32)) + tracer_now = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + rhodz_now = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_mflx_tracer_v = data_alloc.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + deepatmo_divzl = data_alloc.random_field(grid, dims.KDim) + deepatmo_divzu = data_alloc.random_field(grid, dims.KDim) + rhodz_new = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + tracer_new = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + k = data_alloc.allocate_indices(dims.KDim, grid, is_halfdim=False,dtype=gtx.int32 ) p_dtime = np.float64(5.0) ivadv_tracer = 1 iadv_slev_jt = 4 diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_parabola_semi_monotonically.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_parabola_semi_monotonically.py index b433672ad0..36136a83cc 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_parabola_semi_monotonically.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_parabola_semi_monotonically.py @@ -15,6 +15,7 @@ limit_vertical_parabola_semi_monotonically, ) from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc class TestLimitVerticalParabolaSemiMonotonically(helpers.StencilTest): @@ -40,11 +41,11 @@ def reference(grid, l_limit: np.array, p_face: np.array, p_cc: np.array, **kwarg @pytest.fixture def input_data(self, grid) -> dict: - l_limit = helpers.random_mask(grid, dims.CellDim, dims.KDim, dtype=gtx.int32) - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim) - p_face = helpers.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) - p_face_up = helpers.zero_field(grid, dims.CellDim, dims.KDim) - p_face_low = helpers.zero_field(grid, dims.CellDim, dims.KDim) + l_limit = data_alloc.random_mask(grid, dims.CellDim, dims.KDim, dtype=gtx.int32) + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + p_face = data_alloc.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}) + p_face_up = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + p_face_low = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) return dict( l_limit=l_limit, p_cc=p_cc, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_slope_semi_monotonically.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_slope_semi_monotonically.py index 5aea0b3433..61eb493d14 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_slope_semi_monotonically.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_limit_vertical_slope_semi_monotonically.py @@ -9,13 +9,14 @@ import gt4py.next as gtx import numpy as np import pytest -from gt4py.next import as_field + import icon4py.model.testing.helpers as helpers from icon4py.model.atmosphere.advection.stencils.limit_vertical_slope_semi_monotonically import ( limit_vertical_slope_semi_monotonically, ) from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc class TestLimitVerticalSlopeSemiMonotonically(helpers.StencilTest): @@ -34,11 +35,10 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_slope = helpers.random_field(grid, dims.CellDim, dims.KDim) - k = as_field( - (dims.KDim,), np.arange(0, helpers._shape(grid, dims.KDim)[0], dtype=gtx.int32) - ) + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_slope = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + k = data_alloc.allocate_indices(dims.KDim, grid, is_halfdim=False, dtype=gtx.int32) + elev = k[-2].as_scalar() return dict( p_cc=p_cc, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_postprocess_antidiffusive_cell_fluxes_and_min_max.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_postprocess_antidiffusive_cell_fluxes_and_min_max.py index 4b048a37fd..e5654ba1ac 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_postprocess_antidiffusive_cell_fluxes_and_min_max.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_postprocess_antidiffusive_cell_fluxes_and_min_max.py @@ -15,7 +15,7 @@ postprocess_antidiffusive_cell_fluxes_and_min_max, ) from icon4py.model.common import dimension as dims - +from icon4py.model.common.utils import data_allocation as data_alloc class TestPostprocessAntidiffusiveCellFluxesAndMinMax(helpers.StencilTest): PROGRAM = postprocess_antidiffusive_cell_fluxes_and_min_max @@ -54,15 +54,15 @@ def reference( @pytest.fixture() def input_data(self, grid) -> dict: hi_bound, lo_bound = 3, 1 - refin_ctrl = helpers.constant_field(grid, 2, dims.CellDim, dtype=gtx.int32) - p_cc = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_tracer_new_low_in = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_tracer_max_in = helpers.random_field(grid, dims.CellDim, dims.KDim) - z_tracer_min_in = helpers.random_field(grid, dims.CellDim, dims.KDim) + refin_ctrl = data_alloc.constant_field(grid, 2, dims.CellDim, dtype=gtx.int32) + p_cc = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_tracer_new_low_in = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_tracer_max_in = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + z_tracer_min_in = data_alloc.random_field(grid, dims.CellDim, dims.KDim) - z_tracer_new_low_out = helpers.zero_field(grid, dims.CellDim, dims.KDim) - z_tracer_max_out = helpers.zero_field(grid, dims.CellDim, dims.KDim) - z_tracer_min_out = helpers.zero_field(grid, dims.CellDim, dims.KDim) + z_tracer_new_low_out = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + z_tracer_max_out = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) + z_tracer_min_out = data_alloc.zero_field(grid, dims.CellDim, dims.KDim) return dict( refin_ctrl=refin_ctrl, diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_for_cubic_reconstruction.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_for_cubic_reconstruction.py index c07eaa1886..f48b7f7928 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_for_cubic_reconstruction.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_for_cubic_reconstruction.py @@ -15,6 +15,7 @@ prepare_numerical_quadrature_for_cubic_reconstruction, ) from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc @pytest.mark.slow_tests @@ -485,25 +486,25 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - p_coords_dreg_v_1_x = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_2_x = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_3_x = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_4_x = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_1_y = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_2_y = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_3_y = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_4_y = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_1 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_2 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_3 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_4 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_5 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_6 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_7 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_8 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_9 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_10 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_dreg_area_out = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_1_x = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_2_x = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_3_x = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_4_x = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_1_y = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_2_y = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_3_y = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_4_y = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_1 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_2 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_3 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_4 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_5 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_6 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_7 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_8 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_9 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_10 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_dreg_area_out = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) shape_func_1_1 = 0.001 shape_func_2_1 = 0.001 shape_func_3_1 = 0.001 From cebff7e60e356ddf1d55dd61c23e4d242fc1f574 Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Thu, 12 Dec 2024 14:08:06 +0100 Subject: [PATCH 39/83] fix advection stencils (slow_tests) --- ...uadrature_list_for_cubic_reconstruction.py | 45 ++++++++++--------- ...test_reconstruct_cubic_coefficients_svd.py | 2 +- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_list_for_cubic_reconstruction.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_list_for_cubic_reconstruction.py index ec41eb4766..55b2384212 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_list_for_cubic_reconstruction.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_list_for_cubic_reconstruction.py @@ -15,8 +15,9 @@ prepare_numerical_quadrature_list_for_cubic_reconstruction, ) from icon4py.model.common import dimension as dims +from icon4py.model.common.utils import data_allocation as data_alloc - +# TODO (@halungge): remove slow test marker: runs in reasonable time on gtfn backend @pytest.mark.slow_tests class TestPrepareNumericalQuadratureListForCubicReconstruction(helpers.StencilTest): PROGRAM = prepare_numerical_quadrature_list_for_cubic_reconstruction @@ -520,27 +521,27 @@ def reference( @pytest.fixture def input_data(self, grid) -> dict: - famask_int = helpers.constant_field(grid, 1, dims.EdgeDim, dims.KDim, dtype=gtx.int32) - p_coords_dreg_v_1_x = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_2_x = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_3_x = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_4_x = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_1_y = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_2_y = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_3_y = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_coords_dreg_v_4_y = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_dreg_area_in = helpers.random_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_1 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_2 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_3 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_4 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_5 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_6 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_7 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_8 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_9 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_quad_vector_sum_10 = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) - p_dreg_area = helpers.zero_field(grid, dims.EdgeDim, dims.KDim) + famask_int = data_alloc.constant_field(grid, 1, dims.EdgeDim, dims.KDim, dtype=gtx.int32) + p_coords_dreg_v_1_x = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_2_x = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_3_x = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_4_x = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_1_y = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_2_y = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_3_y = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_coords_dreg_v_4_y = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_dreg_area_in = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_1 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_2 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_3 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_4 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_5 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_6 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_7 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_8 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_9 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_quad_vector_sum_10 = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + p_dreg_area = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) shape_func_1_1 = 0.001 shape_func_2_1 = 0.001 shape_func_3_1 = 0.001 diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py index 191f930c68..04ce58b8b1 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py @@ -18,7 +18,7 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid - +# TODO (@halungge): remove slow test marker: runs in reasonable time on gtfn backend @pytest.mark.slow_tests class TestReconstructCubicCoefficientsSvd(helpers.StencilTest): PROGRAM = reconstruct_cubic_coefficients_svd From a070201d6e7eee13d341c3b52e7188637e6d4d4b Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Thu, 12 Dec 2024 14:13:11 +0100 Subject: [PATCH 40/83] fix advection datatests --- model/atmosphere/advection/tests/advection_tests/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/atmosphere/advection/tests/advection_tests/utils.py b/model/atmosphere/advection/tests/advection_tests/utils.py index 3d4cc8e48e..2b0ca296ce 100644 --- a/model/atmosphere/advection/tests/advection_tests/utils.py +++ b/model/atmosphere/advection/tests/advection_tests/utils.py @@ -59,7 +59,7 @@ def construct_least_squares_state( def construct_metric_state( icon_grid, savepoint: sb.MetricSavepoint ) -> advection_states.AdvectionMetricState: - constant_f = helpers.constant_field(icon_grid, 1.0, dims.KDim) + constant_f = data_alloc.constant_field(icon_grid, 1.0, dims.KDim) ddqz_z_full_np = np.reciprocal(savepoint.inv_ddqz_z_full().asnumpy()) return advection_states.AdvectionMetricState( deepatmo_divh=constant_f, From 35f8c3a7f55d52662f9d04eade659d6ccd271543 Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Thu, 12 Dec 2024 14:40:31 +0100 Subject: [PATCH 41/83] import pytest_config in conftest.py for microphysics --- .../subgrid_scale_physics/microphysics/tests/conftest.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py b/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py index 4358deb563..cc3ef5fe1f 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py +++ b/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py @@ -27,7 +27,8 @@ processor_props, ranked_data_path, ) - +from icon4py.model.testing.helpers import backend, grid +from icon4py.model.testing.pytest_config import * # noqa: F401 __all__ = [ # imported fixtures: @@ -49,4 +50,6 @@ "ndyn_substeps", "processor_props", "ranked_data_path", + "backend", + "grid" ] From 515a04631f07edda84d3e3e4cf35690d1241cb8d Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Thu, 12 Dec 2024 14:46:48 +0100 Subject: [PATCH 42/83] fix microphysics test and fix type in filename --- .../microphysics/saturation_adjustment.py | 4 ++-- ..._saturation_adjusment.py => test_saturation_adjustment.py} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/{test_saturation_adjusment.py => test_saturation_adjustment.py} (100%) diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/saturation_adjustment.py b/model/atmosphere/subgrid_scale_physics/microphysics/src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/saturation_adjustment.py index 82dbac9c46..31f8a8dc59 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/saturation_adjustment.py +++ b/model/atmosphere/subgrid_scale_physics/microphysics/src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/saturation_adjustment.py @@ -493,7 +493,7 @@ def run( horizontal_start=start_cell_nudging, horizontal_end=end_cell_local, vertical_start=self.grid.num_levels, - vertical_end=self.grid.num_levels + gtx.int32(1), + vertical_end=gtx.int32(self.grid.num_levels + 1), offset_provider={"Koff": dims.KDim}, ) @@ -531,7 +531,7 @@ def run( horizontal_start=start_cell_nudging, horizontal_end=end_cell_local, vertical_start=gtx.int32(0), - vertical_end=self.grid.num_levels + gtx.int32(1), + vertical_end=gtx.int32(self.grid.num_levels + 1), offset_provider={}, ) diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjusment.py b/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjustment.py similarity index 100% rename from model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjusment.py rename to model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjustment.py From 4b14eeca92eb6762a65e93e6ca17cf16087fa3d3 Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Thu, 12 Dec 2024 15:32:10 +0100 Subject: [PATCH 43/83] fixing mpi tests --- .../mpi_tests/test_parallel_diffusion.py | 4 +-- .../mpi_tests/test_parallel_solve_nonhydro.py | 25 ++++++++----------- .../common/decomposition/mpi_decomposition.py | 2 +- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py index d027249aab..e0a219fa1a 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/mpi_tests/test_parallel_diffusion.py @@ -21,8 +21,8 @@ @pytest.mark.mpi @pytest.mark.parametrize("experiment", [datatest_utils.REGIONAL_EXPERIMENT]) @pytest.mark.parametrize("ndyn_substeps", [2]) -@pytest.mark.parametrize("linit", [([True, False])]) -@pytest.mark.parametrize("orchestration", [([True, False])]) +@pytest.mark.parametrize("linit", [True, False]) +@pytest.mark.parametrize("orchestration", [True, False]) def test_parallel_diffusion( experiment, step_date_init, diff --git a/model/atmosphere/dycore/tests/dycore_tests/mpi_tests/test_parallel_solve_nonhydro.py b/model/atmosphere/dycore/tests/dycore_tests/mpi_tests/test_parallel_solve_nonhydro.py index 340b3ac560..465117daec 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/mpi_tests/test_parallel_solve_nonhydro.py +++ b/model/atmosphere/dycore/tests/dycore_tests/mpi_tests/test_parallel_solve_nonhydro.py @@ -14,6 +14,7 @@ from icon4py.model.common.decomposition import definitions from icon4py.model.common.grid import states as grid_states, vertical as v_grid from icon4py.model.testing import helpers, parallel_helpers +from icon4py.model.common.utils import data_allocation as data_alloc from .. import utils @@ -98,7 +99,7 @@ def test_run_solve_nonhydro_single_step( vn_traj=sp.vn_traj(), mass_flx_me=sp.mass_flx_me(), mass_flx_ic=sp.mass_flx_ic(), - vol_flx_ic=helpers.zero_field(icon_grid, dims.CellDim, dims.KDim), + vol_flx_ic=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim), ) nnow = 0 @@ -138,8 +139,8 @@ def test_run_solve_nonhydro_single_step( cell_geometry: grid_states.CellParams = grid_savepoint.construct_cell_geometry() edge_geometry: grid_states.EdgeParams = grid_savepoint.construct_edge_geometry() - prognostic_state_ls = utils.create_prognostic_states(sp) - prognostic_state_nnew = prognostic_state_ls[1] + prognostic_states = utils.create_prognostic_states(sp) + exchange = definitions.create_exchange(processor_props, decomposition_info) @@ -163,15 +164,11 @@ def test_run_solve_nonhydro_single_step( solve_nonhydro.time_step( diagnostic_state_nh=diagnostic_state_nh, - prognostic_state_ls=prognostic_state_ls, + prognostic_states=prognostic_states, prep_adv=prep_adv, divdamp_fac_o2=initial_divdamp_fac, dtime=dtime, - l_recompute=recompute, - l_init=linit, - nnew=nnew, - nnow=nnow, - lclean_mflx=clean_mflx, + at_initial_timestep=recompute, lprep_adv=lprep_adv, at_first_substep=jstep_init == 0, at_last_substep=jstep_init == (ndyn_substeps - 1), @@ -179,30 +176,30 @@ def test_run_solve_nonhydro_single_step( print(f"rank={processor_props.rank}/{processor_props.comm_size}: dycore step run ") expected_theta_v = sp_step_exit.theta_v_new().asnumpy() - calculated_theta_v = prognostic_state_nnew.theta_v.asnumpy() + calculated_theta_v = prognostic_states.next.theta_v.asnumpy() assert helpers.dallclose( expected_theta_v, calculated_theta_v, ) expected_exner = sp_step_exit.exner_new().asnumpy() - calculated_exner = prognostic_state_nnew.exner.asnumpy() + calculated_exner = prognostic_states.next.exner.asnumpy() assert helpers.dallclose( expected_exner, calculated_exner, ) assert helpers.dallclose( savepoint_nonhydro_exit.vn_new().asnumpy(), - prognostic_state_nnew.vn.asnumpy(), + prognostic_states.next.vn.asnumpy(), rtol=1e-10, ) assert helpers.dallclose( savepoint_nonhydro_exit.w_new().asnumpy(), - prognostic_state_nnew.w.asnumpy(), + prognostic_states.next.w.asnumpy(), atol=8e-14, ) assert helpers.dallclose( savepoint_nonhydro_exit.rho_new().asnumpy(), - prognostic_state_nnew.rho.asnumpy(), + prognostic_states.next.rho.asnumpy(), ) assert helpers.dallclose( diff --git a/model/common/src/icon4py/model/common/decomposition/mpi_decomposition.py b/model/common/src/icon4py/model/common/decomposition/mpi_decomposition.py index 4a7e0a35a1..74e10bd669 100644 --- a/model/common/src/icon4py/model/common/decomposition/mpi_decomposition.py +++ b/model/common/src/icon4py/model/common/decomposition/mpi_decomposition.py @@ -237,7 +237,7 @@ def exchange(self, dim: definitions.Dimension, *fields: Sequence[Field]): make_field_descriptor( domain_descriptor, f, - arch=Architecture.CPU if isinstance(f, np.ndarrray) else Architecture.GPU, + arch=Architecture.CPU if isinstance(f, np.ndarray) else Architecture.GPU, ) ) for f in sliced_fields From 2d5ddb2f5401fbfd312ffa87a672749e95f65486 Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Thu, 12 Dec 2024 16:45:33 +0100 Subject: [PATCH 44/83] fix driver tests --- .../model/driver/test_cases/gauss3d.py | 42 +++++++++---------- .../test_cases/jablonowski_williamson.py | 42 +++++++++---------- model/driver/tests/conftest.py | 7 +++- 3 files changed, 48 insertions(+), 43 deletions(-) diff --git a/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py b/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py index 50c00d3e74..0a216f4bd1 100644 --- a/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py +++ b/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py @@ -245,28 +245,28 @@ def model_initialization_gauss3d( ) diffusion_diagnostic_state = diffusion_states.DiffusionDiagnosticState( - hdef_ic=field_alloc.allocate_zero_field( + hdef_ic=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, is_halfdim=True ), - div_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), - dwdx=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), - dwdy=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), + div_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), + dwdx=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), + dwdy=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), ) solve_nonhydro_diagnostic_state = dycore_states.DiagnosticStateNonHydro( - theta_v_ic=field_alloc.allocate_zero_field( + theta_v_ic=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, is_halfdim=True ), exner_pr=exner_pr, - rho_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), - ddt_exner_phy=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), - grf_tend_rho=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), - grf_tend_thv=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), - grf_tend_w=field_alloc.allocate_zero_field( + rho_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), + ddt_exner_phy=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), + grf_tend_rho=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), + grf_tend_thv=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), + grf_tend_w=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, is_halfdim=True ), - mass_fl_e=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), - ddt_vn_phy=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), - grf_tend_vn=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + mass_fl_e=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + ddt_vn_phy=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + grf_tend_vn=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), ddt_vn_apc_pc=common_utils.PredictorCorrectorPair( data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), @@ -275,22 +275,22 @@ def model_initialization_gauss3d( data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), ), - vt=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), - vn_ie=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid, is_halfdim=True), - w_concorr_c=field_alloc.allocate_zero_field( + vt=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + vn_ie=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid, is_halfdim=True), + w_concorr_c=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, is_halfdim=True ), rho_incr=None, # solve_nonhydro_init_savepoint.rho_incr(), vn_incr=None, # solve_nonhydro_init_savepoint.vn_incr(), exner_incr=None, # solve_nonhydro_init_savepoint.exner_incr(), - exner_dyn_incr=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), + exner_dyn_incr=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), ) prep_adv = dycore_states.PrepAdvection( - vn_traj=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), - mass_flx_me=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), - mass_flx_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), - vol_flx_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), + vn_traj=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + mass_flx_me=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + mass_flx_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), + vol_flx_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), ) log.info("Initialization completed.") diff --git a/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py b/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py index ded3d204a8..39597c0d78 100644 --- a/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py +++ b/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py @@ -305,28 +305,28 @@ def model_initialization_jabw( ) diffusion_diagnostic_state = diffusion_states.DiffusionDiagnosticState( - hdef_ic=field_alloc.allocate_zero_field( + hdef_ic=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, is_halfdim=True ), - div_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), - dwdx=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), - dwdy=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), + div_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), + dwdx=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), + dwdy=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), ) solve_nonhydro_diagnostic_state = dycore_states.DiagnosticStateNonHydro( - theta_v_ic=field_alloc.allocate_zero_field( + theta_v_ic=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, is_halfdim=True ), exner_pr=exner_pr, - rho_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), - ddt_exner_phy=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), - grf_tend_rho=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), - grf_tend_thv=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), - grf_tend_w=field_alloc.allocate_zero_field( + rho_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), + ddt_exner_phy=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), + grf_tend_rho=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), + grf_tend_thv=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), + grf_tend_w=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, is_halfdim=True ), - mass_fl_e=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), - ddt_vn_phy=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), - grf_tend_vn=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + mass_fl_e=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + ddt_vn_phy=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + grf_tend_vn=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), ddt_vn_apc_pc=common_utils.PredictorCorrectorPair( data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), @@ -335,22 +335,22 @@ def model_initialization_jabw( data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid, is_halfdim=True), ), - vt=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), - vn_ie=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid, is_halfdim=True), - w_concorr_c=field_alloc.allocate_zero_field( + vt=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + vn_ie=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid, is_halfdim=True), + w_concorr_c=data_alloc.allocate_zero_field( dims.CellDim, dims.KDim, grid=grid, is_halfdim=True ), rho_incr=None, # solve_nonhydro_init_savepoint.rho_incr(), vn_incr=None, # solve_nonhydro_init_savepoint.vn_incr(), exner_incr=None, # solve_nonhydro_init_savepoint.exner_incr(), - exner_dyn_incr=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), + exner_dyn_incr=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), ) prep_adv = dycore_states.PrepAdvection( - vn_traj=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), - mass_flx_me=field_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), - mass_flx_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), - vol_flx_ic=field_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), + vn_traj=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + mass_flx_me=data_alloc.allocate_zero_field(dims.EdgeDim, dims.KDim, grid=grid), + mass_flx_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), + vol_flx_ic=data_alloc.allocate_zero_field(dims.CellDim, dims.KDim, grid=grid), ) log.info("Initialization completed.") diff --git a/model/driver/tests/conftest.py b/model/driver/tests/conftest.py index c7b07a5689..1b2b2e4d86 100644 --- a/model/driver/tests/conftest.py +++ b/model/driver/tests/conftest.py @@ -10,6 +10,9 @@ import pytest +from icon4py.model.testing.helpers import backend +from icon4py.model.testing.pytest_config import * # noqa: F401 + from icon4py.model.atmosphere.diffusion import diffusion from icon4py.model.testing.datatest_fixtures import ( damping_height, @@ -49,7 +52,8 @@ # local: "r04b09_diffusion_config", "r04b09_iconrun_config", - "timeloop_diffusion_savepoint_init" "timeloop_diffusion_savepoint_exit", + "timeloop_diffusion_savepoint_init", + "timeloop_diffusion_savepoint_exit", "timeloop_date_init", "timeloop_date_exit", # imported fixtures: @@ -82,6 +86,7 @@ "stretch_factor", "top_height_limit_for_maximal_layer_thickness", "vn_only", + "backend" ] From a321b797063f6970f4593f0202d80ba03151e6a7 Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Fri, 13 Dec 2024 09:54:49 +0100 Subject: [PATCH 45/83] import grid fixture in conftest.py --- model/atmosphere/advection/tests/conftest.py | 3 ++- model/atmosphere/diffusion/tests/conftest.py | 3 ++- model/atmosphere/dycore/tests/conftest.py | 3 ++- model/common/tests/conftest.py | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/model/atmosphere/advection/tests/conftest.py b/model/atmosphere/advection/tests/conftest.py index 02054fb680..0624b44b71 100644 --- a/model/atmosphere/advection/tests/conftest.py +++ b/model/atmosphere/advection/tests/conftest.py @@ -7,10 +7,11 @@ # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.testing.helpers import backend +from icon4py.model.testing.helpers import backend, grid from icon4py.model.testing.pytest_config import * # noqa: F401 __all__ = [ # imported fixtures: "backend", + "grid" ] diff --git a/model/atmosphere/diffusion/tests/conftest.py b/model/atmosphere/diffusion/tests/conftest.py index 02054fb680..0624b44b71 100644 --- a/model/atmosphere/diffusion/tests/conftest.py +++ b/model/atmosphere/diffusion/tests/conftest.py @@ -7,10 +7,11 @@ # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.testing.helpers import backend +from icon4py.model.testing.helpers import backend, grid from icon4py.model.testing.pytest_config import * # noqa: F401 __all__ = [ # imported fixtures: "backend", + "grid" ] diff --git a/model/atmosphere/dycore/tests/conftest.py b/model/atmosphere/dycore/tests/conftest.py index 6e02d3c8b7..e33356cd5d 100644 --- a/model/atmosphere/dycore/tests/conftest.py +++ b/model/atmosphere/dycore/tests/conftest.py @@ -6,10 +6,11 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.testing.helpers import backend +from icon4py.model.testing.helpers import backend, grid from icon4py.model.testing.pytest_config import * # noqa: F401 __all__ = [ # imported fixtures: "backend", + "grid" ] diff --git a/model/common/tests/conftest.py b/model/common/tests/conftest.py index 87703f6868..b0ae087250 100644 --- a/model/common/tests/conftest.py +++ b/model/common/tests/conftest.py @@ -15,7 +15,7 @@ decomposition_info, experiment, ) -from icon4py.model.testing.helpers import backend +from icon4py.model.testing.helpers import backend, grid from icon4py.model.testing.pytest_config import * # noqa: F401 __all__ = [ @@ -24,6 +24,7 @@ "test_path", # imported fixtures: "backend", + "grid", "decomposition_info", "experiment" ] From b1c1c20c587783c1990baeb043b34421382d05e3 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 13 Dec 2024 09:45:24 +0100 Subject: [PATCH 46/83] Update READMe --- README.md | 2 ++ model/README.md | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b3570be6b8..522b37c047 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ [![Open in Gitpod](https://img.shields.io/badge/Gitpod-ready--to--code-908a85?logo=gitpod)](https://gitpod.io/#https://github.com/C2SM/icon4py) +[![Nox](https://img.shields.io/badge/%F0%9F%A6%8A-Nox-D85E00.svg)](https://github.com/wntrblm/nox) + # ICON4Py diff --git a/model/README.md b/model/README.md index 4e0d6bd587..da09cd972c 100644 --- a/model/README.md +++ b/model/README.md @@ -1,7 +1,5 @@ # ICON4Py Model -[![Nox](https://img.shields.io/badge/%F0%9F%A6%8A-Nox-D85E00.svg)](https://github.com/wntrblm/nox) - This folder contains Python implementations for multiple ICON components. It includes the following packages: From 82a7a2c3ba8b22ab16f76836093705b3e7f8ca7f Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 13 Dec 2024 11:32:43 +0100 Subject: [PATCH 47/83] Move serialbox utils to testing --- model/atmosphere/advection/tests/advection_tests/utils.py | 4 ++-- .../diffusion/tests/diffusion_tests/test_diffusion.py | 3 ++- model/atmosphere/diffusion/tests/diffusion_tests/utils.py | 2 +- model/atmosphere/dycore/tests/dycore_tests/utils.py | 4 ++-- model/common/pyproject.toml | 4 +--- model/common/src/icon4py/model/common/utils/__init__.py | 2 +- model/driver/pyproject.toml | 3 ++- model/driver/src/icon4py/model/driver/initialization_utils.py | 3 ++- model/driver/src/icon4py/model/driver/serialbox_helpers.py | 2 +- model/driver/src/icon4py/model/driver/test_cases/gauss3d.py | 2 +- .../icon4py/model/driver/test_cases/jablonowski_williamson.py | 2 +- model/testing/pyproject.toml | 2 +- model/testing/src/icon4py/model/testing/datatest_utils.py | 4 ++-- .../utils => testing/src/icon4py/model/testing}/serialbox.py | 0 tach.toml | 1 + tools/pyproject.toml | 2 +- 16 files changed, 21 insertions(+), 19 deletions(-) rename model/{common/src/icon4py/model/common/utils => testing/src/icon4py/model/testing}/serialbox.py (100%) diff --git a/model/atmosphere/advection/tests/advection_tests/utils.py b/model/atmosphere/advection/tests/advection_tests/utils.py index 2b0ca296ce..0e516adee7 100644 --- a/model/atmosphere/advection/tests/advection_tests/utils.py +++ b/model/atmosphere/advection/tests/advection_tests/utils.py @@ -14,8 +14,8 @@ from icon4py.model.atmosphere.advection import advection, advection_states from icon4py.model.common import dimension as dims, field_type_aliases as fa, type_alias as ta from icon4py.model.common.grid import horizontal as h_grid, icon as icon_grid -from icon4py.model.testing import helpers -from icon4py.model.common.utils import data_allocation as data_alloc, serialbox as sb +from icon4py.model.testing import helpers, serialbox as sb +from icon4py.model.common.utils import data_allocation as data_alloc # flake8: noqa diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py index fa9f2be2b9..ce2655c5a2 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py @@ -20,8 +20,9 @@ grid_utils, helpers, reference_funcs as ref_funcs, + serialbox as sb, ) -from icon4py.model.common.utils import data_allocation as data_alloc, serialbox as sb +from icon4py.model.common.utils import data_allocation as data_alloc from .utils import ( compare_dace_orchestration_multiple_steps, diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/utils.py b/model/atmosphere/diffusion/tests/diffusion_tests/utils.py index 0594beb034..0e59009c24 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/utils.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/utils.py @@ -6,7 +6,7 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause -from icon4py.model.common.utils import serialbox as sb +from icon4py.model.testing import serialbox as sb import numpy as np from icon4py.model.atmosphere.diffusion import diffusion, diffusion_states diff --git a/model/atmosphere/dycore/tests/dycore_tests/utils.py b/model/atmosphere/dycore/tests/dycore_tests/utils.py index b68206f401..333f88d973 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/utils.py +++ b/model/atmosphere/dycore/tests/dycore_tests/utils.py @@ -10,8 +10,8 @@ from icon4py.model.common import dimension as dims, utils as common_utils from icon4py.model.common.grid import vertical as v_grid from icon4py.model.common.states import prognostic_state as prognostics -from icon4py.model.testing import helpers -from icon4py.model.common.utils import serialbox as sb, data_allocation as data_alloc +from icon4py.model.testing import helpers, serialbox as sb +from icon4py.model.common.utils import data_allocation as data_alloc def construct_interpolation_state( diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index 2f170f1486..384956f1d0 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -39,13 +39,12 @@ all = ["icon4py-common[distributed,io,dace]"] dace = ["gt4py[dace]>=1.0.4"] distributed = ["ghex>=0.3.0", "mpi4py>=3.1.5"] io = [ - # self dependency - "icon4py-common[netcdf]", # external dependencies "cartopy>=0.22.0", "cftime>=1.6.3", "datashader>=0.16.1", "holoviews>=1.16.0", + "netcdf4>=1.6.1", "numpy>=1.23.3", "scikit-learn>=1.4.0", # TODO [magdalena] there are failing tests starting from uxarray==2024.4.0: when a data file does not have @@ -54,7 +53,6 @@ io = [ "uxarray==2024.3.0", "xarray[complete]>=2024.3.0" ] -netcdf = ["netcdf4>=1.6.1"] [project.urls] repository = "https://github.com/C2SM/icon4py" diff --git a/model/common/src/icon4py/model/common/utils/__init__.py b/model/common/src/icon4py/model/common/utils/__init__.py index d4b453443b..9a7a3d531d 100644 --- a/model/common/src/icon4py/model/common/utils/__init__.py +++ b/model/common/src/icon4py/model/common/utils/__init__.py @@ -16,7 +16,7 @@ chainable, named_property, ) -from . import data_allocation, serialbox +from . import data_allocation __all__ = [ diff --git a/model/driver/pyproject.toml b/model/driver/pyproject.toml index b545996416..05bbe67c42 100644 --- a/model/driver/pyproject.toml +++ b/model/driver/pyproject.toml @@ -21,9 +21,10 @@ classifiers = [ ] dependencies = [ # workspace members - "icon4py-common>=0.0.6", "icon4py-atmosphere-dycore>=0.0.6", "icon4py-atmosphere-diffusion>=0.0.6", + "icon4py-common>=0.0.6", + "icon4py-testing>=0.0.6", # TODO: remove this dependency when fully standalone # external dependencies "click>=8.0.1", "devtools>=0.12", diff --git a/model/driver/src/icon4py/model/driver/initialization_utils.py b/model/driver/src/icon4py/model/driver/initialization_utils.py index 349ee2eed6..288a3425a5 100644 --- a/model/driver/src/icon4py/model/driver/initialization_utils.py +++ b/model/driver/src/icon4py/model/driver/initialization_utils.py @@ -24,11 +24,12 @@ diagnostic_state as diagnostics, prognostic_state as prognostics, ) -from icon4py.model.common.utils import data_allocation as data_alloc, serialbox as sb +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.driver import ( serialbox_helpers as driver_sb, ) from icon4py.model.driver.test_cases import gauss3d, jablonowski_williamson +from icon4py.model.testing import serialbox as sb # TODO(egparedes): Read these hardcoded constants from grid file diff --git a/model/driver/src/icon4py/model/driver/serialbox_helpers.py b/model/driver/src/icon4py/model/driver/serialbox_helpers.py index f69022139f..e2cd29affa 100644 --- a/model/driver/src/icon4py/model/driver/serialbox_helpers.py +++ b/model/driver/src/icon4py/model/driver/serialbox_helpers.py @@ -8,7 +8,7 @@ from icon4py.model.atmosphere.diffusion import diffusion_states as diffus_states from icon4py.model.common import dimension as dims -from icon4py.model.common.utils import serialbox as sb +from icon4py.model.testing import serialbox as sb from icon4py.model.common.utils import data_allocation as data_alloc diff --git a/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py b/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py index 0a216f4bd1..b2079313d7 100644 --- a/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py +++ b/model/driver/src/icon4py/model/driver/test_cases/gauss3d.py @@ -23,7 +23,7 @@ diagnostic_state as diagnostics, prognostic_state as prognostics, ) -from icon4py.model.common.utils import serialbox as sb +from icon4py.model.testing import serialbox as sb from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.driver.test_cases import utils as testcases_utils diff --git a/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py b/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py index 39597c0d78..bac258118a 100644 --- a/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py +++ b/model/driver/src/icon4py/model/driver/test_cases/jablonowski_williamson.py @@ -24,7 +24,7 @@ diagnostic_state as diagnostics, prognostic_state as prognostics, ) -from icon4py.model.common.utils import serialbox as sb +from icon4py.model.testing import serialbox as sb from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.driver.test_cases import utils as testcases_utils diff --git a/model/testing/pyproject.toml b/model/testing/pyproject.toml index a4e423bc99..3fca00d568 100644 --- a/model/testing/pyproject.toml +++ b/model/testing/pyproject.toml @@ -21,7 +21,7 @@ classifiers = [ ] dependencies = [ # workspace members - 'icon4py-common[netcdf]>=0.0.6', + 'icon4py-common[io]>=0.0.6', # external dependencies "gt4py>=1.0.4", "numpy>=1.23.3", diff --git a/model/testing/src/icon4py/model/testing/datatest_utils.py b/model/testing/src/icon4py/model/testing/datatest_utils.py index b179f95c59..194c29ae59 100644 --- a/model/testing/src/icon4py/model/testing/datatest_utils.py +++ b/model/testing/src/icon4py/model/testing/datatest_utils.py @@ -122,7 +122,7 @@ def get_datapath_for_experiment_advection(ranked_base_path, experiment=REGIONAL_ def create_icon_serial_data_provider(datapath, processor_props): # note: this needs to be here, otherwise spack doesn't find serialbox - from icon4py.model.common.utils.serialbox import IconSerialDataProvider + from icon4py.model.testing.serialbox import IconSerialDataProvider return IconSerialDataProvider( fname_prefix="icon_pydycore", @@ -134,7 +134,7 @@ def create_icon_serial_data_provider(datapath, processor_props): def create_icon_serial_data_provider_advection(datapath, processor_props): # note: this needs to be here, otherwise spack doesn't find serialbox - from icon4py.model.common.utils.serialbox import IconSerialDataProvider + from icon4py.model.testing.serialbox import IconSerialDataProvider return IconSerialDataProvider( fname_prefix="icon_pyadvection", diff --git a/model/common/src/icon4py/model/common/utils/serialbox.py b/model/testing/src/icon4py/model/testing/serialbox.py similarity index 100% rename from model/common/src/icon4py/model/common/utils/serialbox.py rename to model/testing/src/icon4py/model/testing/serialbox.py diff --git a/tach.toml b/tach.toml index 8600356970..444e912e50 100644 --- a/tach.toml +++ b/tach.toml @@ -47,6 +47,7 @@ depends_on = [ { path = "icon4py.model.atmosphere.diffusion" }, { path = "icon4py.model.atmosphere.dycore" }, { path = "icon4py.model.common" }, + { path = "icon4py.model.testing" }, # TODO: remove this dependency when fully standalone ] [[modules]] diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 579a92ded4..3c9224d2b1 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -24,7 +24,7 @@ dependencies = [ 'icon4py-atmosphere-advection>=0.0.6', 'icon4py-atmosphere-diffusion>=0.0.6', 'icon4py-atmosphere-dycore>=0.0.6', - 'icon4py-common[netcdf]>=0.0.6', + 'icon4py-common>=0.0.6', # external dependencies 'cffi>=1.5', 'fprettify>=0.3.7', From 208dea403ec7572bb78182230b5484c987d1aad7 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 13 Dec 2024 11:51:32 +0100 Subject: [PATCH 48/83] Update dependencies for driver --- model/driver/pyproject.toml | 2 +- tach.toml | 2 +- uv.lock | 3535 +++-------------------------------- 3 files changed, 310 insertions(+), 3229 deletions(-) diff --git a/model/driver/pyproject.toml b/model/driver/pyproject.toml index 05bbe67c42..0834c2485c 100644 --- a/model/driver/pyproject.toml +++ b/model/driver/pyproject.toml @@ -24,7 +24,7 @@ dependencies = [ "icon4py-atmosphere-dycore>=0.0.6", "icon4py-atmosphere-diffusion>=0.0.6", "icon4py-common>=0.0.6", - "icon4py-testing>=0.0.6", # TODO: remove this dependency when fully standalone + "icon4py-testing>=0.0.6", # TODO: remove this dependency when driver is fully standalone # external dependencies "click>=8.0.1", "devtools>=0.12", diff --git a/tach.toml b/tach.toml index 444e912e50..f1d555be22 100644 --- a/tach.toml +++ b/tach.toml @@ -47,7 +47,7 @@ depends_on = [ { path = "icon4py.model.atmosphere.diffusion" }, { path = "icon4py.model.atmosphere.dycore" }, { path = "icon4py.model.common" }, - { path = "icon4py.model.testing" }, # TODO: remove this dependency when fully standalone + { path = "icon4py.model.testing" }, # TODO: remove this dependency when driver is fully standalone ] [[modules]] diff --git a/uv.lock b/uv.lock index 51f561b913..febbb9acba 100644 --- a/uv.lock +++ b/uv.lock @@ -2,2920 +2,16 @@ version = 1 requires-python = ">=3.10" resolution-markers = [ "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", ] supported-markers = [ @@ -2996,11 +92,11 @@ wheels = [ [[package]] name = "argcomplete" -version = "3.5.1" +version = "3.5.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5f/39/27605e133e7f4bb0c8e48c9a6b87101515e3446003e0442761f6a02ac35e/argcomplete-3.5.1.tar.gz", hash = "sha256:eb1ee355aa2557bd3d0145de7b06b2a45b0ce461e1e7813f5d066039ab4177b4", size = 82280 } +sdist = { url = "https://files.pythonhosted.org/packages/7f/03/581b1c29d88fffaa08abbced2e628c34dd92d32f1adaed7e42fc416938b0/argcomplete-3.5.2.tar.gz", hash = "sha256:23146ed7ac4403b70bd6026402468942ceba34a6732255b9edf5b7354f68a6bb", size = 82341 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/be/a606a6701d491cfae75583c80a6583f8abe9c36c0b9666e867e7cdd62fe8/argcomplete-3.5.1-py3-none-any.whl", hash = "sha256:1a1d148bdaa3e3b93454900163403df41448a248af01b6e849edc5ac08e6c363", size = 43498 }, + { url = "https://files.pythonhosted.org/packages/a9/37/3fa718aaadd36e073891138dc3ebd919a71bafd4881c97d8a133265af191/argcomplete-3.5.2-py3-none-any.whl", hash = "sha256:036d020d79048a5d525bc63880d7a4b8d1668566b8a76daf1144c0bbe0f63472", size = 43506 }, ] [[package]] @@ -3124,7 +220,7 @@ wheels = [ [[package]] name = "bokeh" -version = "3.6.1" +version = "3.6.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "contourpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, @@ -3137,9 +233,9 @@ dependencies = [ { name = "tornado", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "xyzservices", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/54/1b/d62004ebe89b3abb1d329710daa92dd13980196b0f7f5ed82036445cc952/bokeh-3.6.1.tar.gz", hash = "sha256:04d3fb5fac871423f38e4535838164cd90c3d32e707bcb74c8bf991ed28878fc", size = 6246963 } +sdist = { url = "https://files.pythonhosted.org/packages/da/9d/cc9c561e1db8cbecc5cfad972159020700fff2339bdaa316498ace1cb04c/bokeh-3.6.2.tar.gz", hash = "sha256:2f3043d9ecb3d5dc2e8c0ebf8ad55727617188d4e534f3e7208b36357e352396", size = 6247610 } wheels = [ - { url = "https://files.pythonhosted.org/packages/72/a2/7b5a1a5419e400f715387a48f65225ec7a3f2104465f346fc75e8793407b/bokeh-3.6.1-py3-none-any.whl", hash = "sha256:6a97271bd4cc5b32c5bc7aa9c1c0dbe0beb0a8da2a22193e57c73f0c88d2075a", size = 6865904 }, + { url = "https://files.pythonhosted.org/packages/56/12/2c266a0dc57379c60b4e73a2f93e71343db4170bf26c5a76a74e7d8bce2a/bokeh-3.6.2-py3-none-any.whl", hash = "sha256:fddc4b91f8b40178c0e3e83dfcc33886d7803a3a1f041a840834255e435a18c2", size = 6866799 }, ] [[package]] @@ -3626,61 +722,61 @@ wheels = [ [[package]] name = "coverage" -version = "7.6.8" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ab/75/aecfd0a3adbec6e45753976bc2a9fed62b42cea9a206d10fd29244a77953/coverage-7.6.8.tar.gz", hash = "sha256:8b2b8503edb06822c86d82fa64a4a5cb0760bb8f31f26e138ec743f422f37cfc", size = 801425 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/31/86/6ed22e101badc8eedf181f0c2f65500df5929c44c79991cf45b9bf741424/coverage-7.6.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b39e6011cd06822eb964d038d5dff5da5d98652b81f5ecd439277b32361a3a50", size = 206988 }, - { url = "https://files.pythonhosted.org/packages/3b/04/16853c58bacc02b3ff5405193dfc6c66632442d931b23dd7b9452dc55cf3/coverage-7.6.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:63c19702db10ad79151a059d2d6336fe0c470f2e18d0d4d1a57f7f9713875dcf", size = 207418 }, - { url = "https://files.pythonhosted.org/packages/f8/eb/8a91520d04215eb549d6a7d7d3a79cbb1d78b5dd0814f4b23bf97521d580/coverage-7.6.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3985b9be361d8fb6b2d1adc9924d01dec575a1d7453a14cccd73225cb79243ee", size = 235860 }, - { url = "https://files.pythonhosted.org/packages/00/10/bf1ede5b54ae1bbf39921a5dd4cc84aee79041ed301ec8955064785ddb90/coverage-7.6.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:644ec81edec0f4ad17d51c838a7d01e42811054543b76d4ba2c5d6af741ce2a6", size = 233766 }, - { url = "https://files.pythonhosted.org/packages/5c/ea/741d9233eb502906e0d18ccf4c15c4fb74ff0e85fd8ee967590194b889a1/coverage-7.6.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f188a2402f8359cf0c4b1fe89eea40dc13b52e7b4fd4812450da9fcd210181d", size = 234924 }, - { url = "https://files.pythonhosted.org/packages/18/43/b2cfd4413a5b64ab27c289228b0c45b4527d1b99381cc9d6a00bfd515da4/coverage-7.6.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e19122296822deafce89a0c5e8685704c067ae65d45e79718c92df7b3ec3d331", size = 234019 }, - { url = "https://files.pythonhosted.org/packages/8e/95/8b2fbb9d1a79277963b6095cd51a90fb7088cd3618faf75550038331f78b/coverage-7.6.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:13618bed0c38acc418896005732e565b317aa9e98d855a0e9f211a7ffc2d6638", size = 232481 }, - { url = "https://files.pythonhosted.org/packages/4d/d7/9e939508a39ef67605b715ca89c6522214aceb27c2db9152ae3ae1cf8626/coverage-7.6.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:193e3bffca48ad74b8c764fb4492dd875038a2f9925530cb094db92bb5e47bed", size = 233609 }, - { url = "https://files.pythonhosted.org/packages/ba/e2/1c5fb52eafcffeebaa9db084bff47e7c3cf4f97db752226c232cee4d530b/coverage-7.6.8-cp310-cp310-win32.whl", hash = "sha256:3988665ee376abce49613701336544041f2117de7b7fbfe91b93d8ff8b151c8e", size = 209669 }, - { url = "https://files.pythonhosted.org/packages/31/31/6a56469609a252549dd4b090815428d5521edd4642440d987573a450c069/coverage-7.6.8-cp310-cp310-win_amd64.whl", hash = "sha256:f56f49b2553d7dd85fd86e029515a221e5c1f8cb3d9c38b470bc38bde7b8445a", size = 210509 }, - { url = "https://files.pythonhosted.org/packages/ab/9f/e98211980f6e2f439e251737482aa77906c9b9c507824c71a2ce7eea0402/coverage-7.6.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:86cffe9c6dfcfe22e28027069725c7f57f4b868a3f86e81d1c62462764dc46d4", size = 207093 }, - { url = "https://files.pythonhosted.org/packages/fd/c7/8bab83fb9c20f7f8163c5a20dcb62d591b906a214a6dc6b07413074afc80/coverage-7.6.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d82ab6816c3277dc962cfcdc85b1efa0e5f50fb2c449432deaf2398a2928ab94", size = 207536 }, - { url = "https://files.pythonhosted.org/packages/1e/d6/00243df625f1b282bb25c83ce153ae2c06f8e7a796a8d833e7235337b4d9/coverage-7.6.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13690e923a3932e4fad4c0ebfb9cb5988e03d9dcb4c5150b5fcbf58fd8bddfc4", size = 239482 }, - { url = "https://files.pythonhosted.org/packages/1e/07/faf04b3eeb55ffc2a6f24b65dffe6e0359ec3b283e6efb5050ea0707446f/coverage-7.6.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4be32da0c3827ac9132bb488d331cb32e8d9638dd41a0557c5569d57cf22c9c1", size = 236886 }, - { url = "https://files.pythonhosted.org/packages/43/23/c79e497bf4d8fcacd316bebe1d559c765485b8ec23ac4e23025be6bfce09/coverage-7.6.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44e6c85bbdc809383b509d732b06419fb4544dca29ebe18480379633623baafb", size = 238749 }, - { url = "https://files.pythonhosted.org/packages/b5/e5/791bae13be3c6451e32ef7af1192e711c6a319f3c597e9b218d148fd0633/coverage-7.6.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:768939f7c4353c0fac2f7c37897e10b1414b571fd85dd9fc49e6a87e37a2e0d8", size = 237679 }, - { url = "https://files.pythonhosted.org/packages/05/c6/bbfdfb03aada601fb8993ced17468c8c8e0b4aafb3097026e680fabb7ce1/coverage-7.6.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e44961e36cb13c495806d4cac67640ac2866cb99044e210895b506c26ee63d3a", size = 236317 }, - { url = "https://files.pythonhosted.org/packages/67/f9/f8e5a4b2ce96d1b0e83ae6246369eb8437001dc80ec03bb51c87ff557cd8/coverage-7.6.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3ea8bb1ab9558374c0ab591783808511d135a833c3ca64a18ec927f20c4030f0", size = 237084 }, - { url = "https://files.pythonhosted.org/packages/f0/70/b05328901e4debe76e033717e1452d00246c458c44e9dbd893e7619c2967/coverage-7.6.8-cp311-cp311-win32.whl", hash = "sha256:629a1ba2115dce8bf75a5cce9f2486ae483cb89c0145795603d6554bdc83e801", size = 209638 }, - { url = "https://files.pythonhosted.org/packages/70/55/1efa24f960a2fa9fbc44a9523d3f3c50ceb94dd1e8cd732168ab2dc41b07/coverage-7.6.8-cp311-cp311-win_amd64.whl", hash = "sha256:fb9fc32399dca861584d96eccd6c980b69bbcd7c228d06fb74fe53e007aa8ef9", size = 210506 }, - { url = "https://files.pythonhosted.org/packages/76/ce/3edf581c8fe429ed8ced6e6d9ac693c25975ef9093413276dab6ed68a80a/coverage-7.6.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e683e6ecc587643f8cde8f5da6768e9d165cd31edf39ee90ed7034f9ca0eefee", size = 207285 }, - { url = "https://files.pythonhosted.org/packages/09/9c/cf102ab046c9cf8895c3f7aadcde6f489a4b2ec326757e8c6e6581829b5e/coverage-7.6.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1defe91d41ce1bd44b40fabf071e6a01a5aa14de4a31b986aa9dfd1b3e3e414a", size = 207522 }, - { url = "https://files.pythonhosted.org/packages/39/06/42aa6dd13dbfca72e1fd8ffccadbc921b6e75db34545ebab4d955d1e7ad3/coverage-7.6.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7ad66e8e50225ebf4236368cc43c37f59d5e6728f15f6e258c8639fa0dd8e6d", size = 240543 }, - { url = "https://files.pythonhosted.org/packages/a0/20/2932971dc215adeca8eeff446266a7fef17a0c238e881ffedebe7bfa0669/coverage-7.6.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fe47da3e4fda5f1abb5709c156eca207eacf8007304ce3019eb001e7a7204cb", size = 237577 }, - { url = "https://files.pythonhosted.org/packages/ac/85/4323ece0cd5452c9522f4b6e5cc461e6c7149a4b1887c9e7a8b1f4e51146/coverage-7.6.8-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:202a2d645c5a46b84992f55b0a3affe4f0ba6b4c611abec32ee88358db4bb649", size = 239646 }, - { url = "https://files.pythonhosted.org/packages/77/52/b2537487d8f36241e518e84db6f79e26bc3343b14844366e35b090fae0d4/coverage-7.6.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4674f0daa1823c295845b6a740d98a840d7a1c11df00d1fd62614545c1583787", size = 239128 }, - { url = "https://files.pythonhosted.org/packages/7c/99/7f007762012186547d0ecc3d328da6b6f31a8c99f05dc1e13dcd929918cd/coverage-7.6.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:74610105ebd6f33d7c10f8907afed696e79c59e3043c5f20eaa3a46fddf33b4c", size = 237434 }, - { url = "https://files.pythonhosted.org/packages/97/53/e9b5cf0682a1cab9352adfac73caae0d77ae1d65abc88975d510f7816389/coverage-7.6.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37cda8712145917105e07aab96388ae76e787270ec04bcb9d5cc786d7cbb8443", size = 239095 }, - { url = "https://files.pythonhosted.org/packages/0c/50/054f0b464fbae0483217186478eefa2e7df3a79917ed7f1d430b6da2cf0d/coverage-7.6.8-cp312-cp312-win32.whl", hash = "sha256:9e89d5c8509fbd6c03d0dd1972925b22f50db0792ce06324ba069f10787429ad", size = 209895 }, - { url = "https://files.pythonhosted.org/packages/df/d0/09ba870360a27ecf09e177ca2ff59d4337fc7197b456f22ceff85cffcfa5/coverage-7.6.8-cp312-cp312-win_amd64.whl", hash = "sha256:379c111d3558272a2cae3d8e57e6b6e6f4fe652905692d54bad5ea0ca37c5ad4", size = 210684 }, - { url = "https://files.pythonhosted.org/packages/9a/84/6f0ccf94a098ac3d6d6f236bd3905eeac049a9e0efcd9a63d4feca37ac4b/coverage-7.6.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0b0c69f4f724c64dfbfe79f5dfb503b42fe6127b8d479b2677f2b227478db2eb", size = 207313 }, - { url = "https://files.pythonhosted.org/packages/db/2b/e3b3a3a12ebec738c545897ac9f314620470fcbc368cdac88cf14974ba20/coverage-7.6.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c15b32a7aca8038ed7644f854bf17b663bc38e1671b5d6f43f9a2b2bd0c46f63", size = 207574 }, - { url = "https://files.pythonhosted.org/packages/db/c0/5bf95d42b6a8d21dfce5025ce187f15db57d6460a59b67a95fe8728162f1/coverage-7.6.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63068a11171e4276f6ece913bde059e77c713b48c3a848814a6537f35afb8365", size = 240090 }, - { url = "https://files.pythonhosted.org/packages/57/b8/d6fd17d1a8e2b0e1a4e8b9cb1f0f261afd422570735899759c0584236916/coverage-7.6.8-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f4548c5ead23ad13fb7a2c8ea541357474ec13c2b736feb02e19a3085fac002", size = 237237 }, - { url = "https://files.pythonhosted.org/packages/d4/e4/a91e9bb46809c8b63e68fc5db5c4d567d3423b6691d049a4f950e38fbe9d/coverage-7.6.8-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b4b4299dd0d2c67caaaf286d58aef5e75b125b95615dda4542561a5a566a1e3", size = 239225 }, - { url = "https://files.pythonhosted.org/packages/31/9c/9b99b0591ec4555b7292d271e005f27b465388ce166056c435b288db6a69/coverage-7.6.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c9ebfb2507751f7196995142f057d1324afdab56db1d9743aab7f50289abd022", size = 238888 }, - { url = "https://files.pythonhosted.org/packages/a6/85/285c2df9a04bc7c31f21fd9d4a24d19e040ec5e2ff06e572af1f6514c9e7/coverage-7.6.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c1b4474beee02ede1eef86c25ad4600a424fe36cff01a6103cb4533c6bf0169e", size = 236974 }, - { url = "https://files.pythonhosted.org/packages/cb/a1/95ec8522206f76cdca033bf8bb61fff56429fb414835fc4d34651dfd29fc/coverage-7.6.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d9fd2547e6decdbf985d579cf3fc78e4c1d662b9b0ff7cc7862baaab71c9cc5b", size = 238815 }, - { url = "https://files.pythonhosted.org/packages/8d/ac/687e9ba5e6d0979e9dab5c02e01c4f24ac58260ef82d88d3b433b3f84f1e/coverage-7.6.8-cp313-cp313-win32.whl", hash = "sha256:8aae5aea53cbfe024919715eca696b1a3201886ce83790537d1c3668459c7146", size = 209957 }, - { url = "https://files.pythonhosted.org/packages/2f/a3/b61cc8e3fcf075293fb0f3dee405748453c5ba28ac02ceb4a87f52bdb105/coverage-7.6.8-cp313-cp313-win_amd64.whl", hash = "sha256:ae270e79f7e169ccfe23284ff5ea2d52a6f401dc01b337efb54b3783e2ce3f28", size = 210711 }, - { url = "https://files.pythonhosted.org/packages/ee/4b/891c8b9acf1b62c85e4a71dac142ab9284e8347409b7355de02e3f38306f/coverage-7.6.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:de38add67a0af869b0d79c525d3e4588ac1ffa92f39116dbe0ed9753f26eba7d", size = 208053 }, - { url = "https://files.pythonhosted.org/packages/18/a9/9e330409b291cc002723d339346452800e78df1ce50774ca439ade1d374f/coverage-7.6.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b07c25d52b1c16ce5de088046cd2432b30f9ad5e224ff17c8f496d9cb7d1d451", size = 208329 }, - { url = "https://files.pythonhosted.org/packages/9c/0d/33635fd429f6589c6e1cdfc7bf581aefe4c1792fbff06383f9d37f59db60/coverage-7.6.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62a66ff235e4c2e37ed3b6104d8b478d767ff73838d1222132a7a026aa548764", size = 251052 }, - { url = "https://files.pythonhosted.org/packages/23/32/8a08da0e46f3830bbb9a5b40614241b2e700f27a9c2889f53122486443ed/coverage-7.6.8-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09b9f848b28081e7b975a3626e9081574a7b9196cde26604540582da60235fdf", size = 246765 }, - { url = "https://files.pythonhosted.org/packages/56/3f/3b86303d2c14350fdb1c6c4dbf9bc76000af2382f42ca1d4d99c6317666e/coverage-7.6.8-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:093896e530c38c8e9c996901858ac63f3d4171268db2c9c8b373a228f459bbc5", size = 249125 }, - { url = "https://files.pythonhosted.org/packages/36/cb/c4f081b9023f9fd8646dbc4ef77be0df090263e8f66f4ea47681e0dc2cff/coverage-7.6.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9a7b8ac36fd688c8361cbc7bf1cb5866977ece6e0b17c34aa0df58bda4fa18a4", size = 248615 }, - { url = "https://files.pythonhosted.org/packages/32/ee/53bdbf67760928c44b57b2c28a8c0a4bf544f85a9ee129a63ba5c78fdee4/coverage-7.6.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:38c51297b35b3ed91670e1e4efb702b790002e3245a28c76e627478aa3c10d83", size = 246507 }, - { url = "https://files.pythonhosted.org/packages/57/49/5a57910bd0af6d8e802b4ca65292576d19b54b49f81577fd898505dee075/coverage-7.6.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2e4e0f60cb4bd7396108823548e82fdab72d4d8a65e58e2c19bbbc2f1e2bfa4b", size = 247785 }, - { url = "https://files.pythonhosted.org/packages/bd/37/e450c9f6b297c79bb9858407396ed3e084dcc22990dd110ab01d5ceb9770/coverage-7.6.8-cp313-cp313t-win32.whl", hash = "sha256:6535d996f6537ecb298b4e287a855f37deaf64ff007162ec0afb9ab8ba3b8b71", size = 210605 }, - { url = "https://files.pythonhosted.org/packages/44/79/7d0c7dd237c6905018e2936cd1055fe1d42e7eba2ebab3c00f4aad2a27d7/coverage-7.6.8-cp313-cp313t-win_amd64.whl", hash = "sha256:c79c0685f142ca53256722a384540832420dff4ab15fec1863d7e5bc8691bdcc", size = 211777 }, - { url = "https://files.pythonhosted.org/packages/32/df/0d2476121cd0bfb9ca2413efe02289c474b82c4b134863bef4b89ec7bcfa/coverage-7.6.8-pp39.pp310-none-any.whl", hash = "sha256:5c52a036535d12590c32c49209e79cabaad9f9ad8aa4cbd875b68c4d67a9cbce", size = 199230 }, +version = "7.6.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5b/d2/c25011f4d036cf7e8acbbee07a8e09e9018390aee25ba085596c4b83d510/coverage-7.6.9.tar.gz", hash = "sha256:4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d", size = 801710 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/f3/f830fb53bf7e4f1d5542756f61d9b740352a188f43854aab9409c8cdeb18/coverage-7.6.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85d9636f72e8991a1706b2b55b06c27545448baf9f6dbf51c4004609aacd7dcb", size = 207024 }, + { url = "https://files.pythonhosted.org/packages/4e/e3/ea5632a3a6efd00ab0a791adc0f3e48512097a757ee7dcbee5505f57bafa/coverage-7.6.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:608a7fd78c67bee8936378299a6cb9f5149bb80238c7a566fc3e6717a4e68710", size = 207463 }, + { url = "https://files.pythonhosted.org/packages/e4/ae/18ff8b5580e27e62ebcc888082aa47694c2772782ea7011ddf58e377e98f/coverage-7.6.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96d636c77af18b5cb664ddf12dab9b15a0cfe9c0bde715da38698c8cea748bfa", size = 235902 }, + { url = "https://files.pythonhosted.org/packages/6a/52/57030a8d15ab935624d298360f0a6704885578e39f7b4f68569e59f5902d/coverage-7.6.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75cded8a3cff93da9edc31446872d2997e327921d8eed86641efafd350e1df1", size = 233806 }, + { url = "https://files.pythonhosted.org/packages/d0/c5/4466602195ecaced298d55af1e29abceb812addabefd5bd9116a204f7bab/coverage-7.6.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7b15f589593110ae767ce997775d645b47e5cbbf54fd322f8ebea6277466cec", size = 234966 }, + { url = "https://files.pythonhosted.org/packages/b0/1c/55552c3009b7bf96732e36548596ade771c87f89cf1f5a8e3975b33539b5/coverage-7.6.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:44349150f6811b44b25574839b39ae35291f6496eb795b7366fef3bd3cf112d3", size = 234029 }, + { url = "https://files.pythonhosted.org/packages/bb/7d/da3dca6878701182ea42c51df47a47c80eaef2a76f5aa3e891dc2a8cce3f/coverage-7.6.9-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d891c136b5b310d0e702e186d70cd16d1119ea8927347045124cb286b29297e5", size = 232494 }, + { url = "https://files.pythonhosted.org/packages/28/cc/39de85ac1d5652bc34ff2bee39ae251b1fdcaae53fab4b44cab75a432bc0/coverage-7.6.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:db1dab894cc139f67822a92910466531de5ea6034ddfd2b11c0d4c6257168073", size = 233611 }, + { url = "https://files.pythonhosted.org/packages/d1/2b/7eb011a9378911088708f121825a71134d0c15fac96972a0ae7a8f5a4049/coverage-7.6.9-cp310-cp310-win32.whl", hash = "sha256:41ff7b0da5af71a51b53f501a3bac65fb0ec311ebed1632e58fc6107f03b9198", size = 209712 }, + { url = "https://files.pythonhosted.org/packages/5b/35/c3f40a2269b416db34ce1dedf682a7132c26f857e33596830fa4deebabf9/coverage-7.6.9-cp310-cp310-win_amd64.whl", hash = "sha256:35371f8438028fdccfaf3570b31d98e8d9eda8bb1d6ab9473f5a390969e98717", size = 210553 }, + { url = "https://files.pythonhosted.org/packages/b1/91/b3dc2f7f38b5cca1236ab6bbb03e84046dd887707b4ec1db2baa47493b3b/coverage-7.6.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:932fc826442132dde42ee52cf66d941f581c685a6313feebed358411238f60f9", size = 207133 }, + { url = "https://files.pythonhosted.org/packages/0d/2b/53fd6cb34d443429a92b3ec737f4953627e38b3bee2a67a3c03425ba8573/coverage-7.6.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:085161be5f3b30fd9b3e7b9a8c301f935c8313dcf928a07b116324abea2c1c2c", size = 207577 }, + { url = "https://files.pythonhosted.org/packages/74/f2/68edb1e6826f980a124f21ea5be0d324180bf11de6fd1defcf9604f76df0/coverage-7.6.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccc660a77e1c2bf24ddbce969af9447a9474790160cfb23de6be4fa88e3951c7", size = 239524 }, + { url = "https://files.pythonhosted.org/packages/d3/83/8fec0ee68c2c4a5ab5f0f8527277f84ed6f2bd1310ae8a19d0c5532253ab/coverage-7.6.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c69e42c892c018cd3c8d90da61d845f50a8243062b19d228189b0224150018a9", size = 236925 }, + { url = "https://files.pythonhosted.org/packages/8b/20/8f50e7c7ad271144afbc2c1c6ec5541a8c81773f59352f8db544cad1a0ec/coverage-7.6.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0824a28ec542a0be22f60c6ac36d679e0e262e5353203bea81d44ee81fe9c6d4", size = 238792 }, + { url = "https://files.pythonhosted.org/packages/6f/62/4ac2e5ad9e7a5c9ec351f38947528e11541f1f00e8a0cdce56f1ba7ae301/coverage-7.6.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4401ae5fc52ad8d26d2a5d8a7428b0f0c72431683f8e63e42e70606374c311a1", size = 237682 }, + { url = "https://files.pythonhosted.org/packages/58/2f/9d2203f012f3b0533c73336c74134b608742be1ce475a5c72012573cfbb4/coverage-7.6.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:98caba4476a6c8d59ec1eb00c7dd862ba9beca34085642d46ed503cc2d440d4b", size = 236310 }, + { url = "https://files.pythonhosted.org/packages/33/6d/31f6ab0b4f0f781636075f757eb02141ea1b34466d9d1526dbc586ed7078/coverage-7.6.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ee5defd1733fd6ec08b168bd4f5387d5b322f45ca9e0e6c817ea6c4cd36313e3", size = 237096 }, + { url = "https://files.pythonhosted.org/packages/7d/fb/e14c38adebbda9ed8b5f7f8e03340ac05d68d27b24397f8d47478927a333/coverage-7.6.9-cp311-cp311-win32.whl", hash = "sha256:f2d1ec60d6d256bdf298cb86b78dd715980828f50c46701abc3b0a2b3f8a0dc0", size = 209682 }, + { url = "https://files.pythonhosted.org/packages/a4/11/a782af39b019066af83fdc0e8825faaccbe9d7b19a803ddb753114b429cc/coverage-7.6.9-cp311-cp311-win_amd64.whl", hash = "sha256:0d59fd927b1f04de57a2ba0137166d31c1a6dd9e764ad4af552912d70428c92b", size = 210542 }, + { url = "https://files.pythonhosted.org/packages/60/52/b16af8989a2daf0f80a88522bd8e8eed90b5fcbdecf02a6888f3e80f6ba7/coverage-7.6.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:99e266ae0b5d15f1ca8d278a668df6f51cc4b854513daab5cae695ed7b721cf8", size = 207325 }, + { url = "https://files.pythonhosted.org/packages/0f/79/6b7826fca8846c1216a113227b9f114ac3e6eacf168b4adcad0cb974aaca/coverage-7.6.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9901d36492009a0a9b94b20e52ebfc8453bf49bb2b27bca2c9706f8b4f5a554a", size = 207563 }, + { url = "https://files.pythonhosted.org/packages/a7/07/0bc73da0ccaf45d0d64ef86d33b7d7fdeef84b4c44bf6b85fb12c215c5a6/coverage-7.6.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abd3e72dd5b97e3af4246cdada7738ef0e608168de952b837b8dd7e90341f015", size = 240580 }, + { url = "https://files.pythonhosted.org/packages/71/8a/9761f409910961647d892454687cedbaccb99aae828f49486734a82ede6e/coverage-7.6.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff74026a461eb0660366fb01c650c1d00f833a086b336bdad7ab00cc952072b3", size = 237613 }, + { url = "https://files.pythonhosted.org/packages/8b/10/ee7d696a17ac94f32f2dbda1e17e730bf798ae9931aec1fc01c1944cd4de/coverage-7.6.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65dad5a248823a4996724a88eb51d4b31587aa7aa428562dbe459c684e5787ae", size = 239684 }, + { url = "https://files.pythonhosted.org/packages/16/60/aa1066040d3c52fff051243c2d6ccda264da72dc6d199d047624d395b2b2/coverage-7.6.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:22be16571504c9ccea919fcedb459d5ab20d41172056206eb2994e2ff06118a4", size = 239112 }, + { url = "https://files.pythonhosted.org/packages/4e/e5/69f35344c6f932ba9028bf168d14a79fedb0dd4849b796d43c81ce75a3c9/coverage-7.6.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f957943bc718b87144ecaee70762bc2bc3f1a7a53c7b861103546d3a403f0a6", size = 237428 }, + { url = "https://files.pythonhosted.org/packages/32/20/adc895523c4a28f63441b8ac645abd74f9bdd499d2d175bef5b41fc7f92d/coverage-7.6.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ae1387db4aecb1f485fb70a6c0148c6cdaebb6038f1d40089b1fc84a5db556f", size = 239098 }, + { url = "https://files.pythonhosted.org/packages/a9/a6/e0e74230c9bb3549ec8ffc137cfd16ea5d56e993d6bffed2218bff6187e3/coverage-7.6.9-cp312-cp312-win32.whl", hash = "sha256:1a330812d9cc7ac2182586f6d41b4d0fadf9be9049f350e0efb275c8ee8eb692", size = 209940 }, + { url = "https://files.pythonhosted.org/packages/3e/18/cb5b88349d4aa2f41ec78d65f92ea32572b30b3f55bc2b70e87578b8f434/coverage-7.6.9-cp312-cp312-win_amd64.whl", hash = "sha256:b12c6b18269ca471eedd41c1b6a1065b2f7827508edb9a7ed5555e9a56dcfc97", size = 210726 }, + { url = "https://files.pythonhosted.org/packages/35/26/9abab6539d2191dbda2ce8c97b67d74cbfc966cc5b25abb880ffc7c459bc/coverage-7.6.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:899b8cd4781c400454f2f64f7776a5d87bbd7b3e7f7bda0cb18f857bb1334664", size = 207356 }, + { url = "https://files.pythonhosted.org/packages/44/da/d49f19402240c93453f606e660a6676a2a1fbbaa6870cc23207790aa9697/coverage-7.6.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:61f70dc68bd36810972e55bbbe83674ea073dd1dcc121040a08cdf3416c5349c", size = 207614 }, + { url = "https://files.pythonhosted.org/packages/da/e6/93bb9bf85497816082ec8da6124c25efa2052bd4c887dd3b317b91990c9e/coverage-7.6.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a289d23d4c46f1a82d5db4abeb40b9b5be91731ee19a379d15790e53031c014", size = 240129 }, + { url = "https://files.pythonhosted.org/packages/df/65/6a824b9406fe066835c1274a9949e06f084d3e605eb1a602727a27ec2fe3/coverage-7.6.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e216d8044a356fc0337c7a2a0536d6de07888d7bcda76febcb8adc50bdbbd00", size = 237276 }, + { url = "https://files.pythonhosted.org/packages/9f/79/6c7a800913a9dd23ac8c8da133ebb556771a5a3d4df36b46767b1baffd35/coverage-7.6.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c026eb44f744acaa2bda7493dad903aa5bf5fc4f2554293a798d5606710055d", size = 239267 }, + { url = "https://files.pythonhosted.org/packages/57/e7/834d530293fdc8a63ba8ff70033d5182022e569eceb9aec7fc716b678a39/coverage-7.6.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e77363e8425325384f9d49272c54045bbed2f478e9dd698dbc65dbc37860eb0a", size = 238887 }, + { url = "https://files.pythonhosted.org/packages/15/05/ec9d6080852984f7163c96984444e7cd98b338fd045b191064f943ee1c08/coverage-7.6.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:777abfab476cf83b5177b84d7486497e034eb9eaea0d746ce0c1268c71652077", size = 236970 }, + { url = "https://files.pythonhosted.org/packages/0a/d8/775937670b93156aec29f694ce37f56214ed7597e1a75b4083ee4c32121c/coverage-7.6.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:447af20e25fdbe16f26e84eb714ba21d98868705cb138252d28bc400381f6ffb", size = 238831 }, + { url = "https://files.pythonhosted.org/packages/f4/58/88551cb7fdd5ec98cb6044e8814e38583436b14040a5ece15349c44c8f7c/coverage-7.6.9-cp313-cp313-win32.whl", hash = "sha256:d872ec5aeb086cbea771c573600d47944eea2dcba8be5f3ee649bfe3cb8dc9ba", size = 210000 }, + { url = "https://files.pythonhosted.org/packages/b7/12/cfbf49b95120872785ff8d56ab1c7fe3970a65e35010c311d7dd35c5fd00/coverage-7.6.9-cp313-cp313-win_amd64.whl", hash = "sha256:fd1213c86e48dfdc5a0cc676551db467495a95a662d2396ecd58e719191446e1", size = 210753 }, + { url = "https://files.pythonhosted.org/packages/7c/68/c1cb31445599b04bde21cbbaa6d21b47c5823cdfef99eae470dfce49c35a/coverage-7.6.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ba9e7484d286cd5a43744e5f47b0b3fb457865baf07bafc6bee91896364e1419", size = 208091 }, + { url = "https://files.pythonhosted.org/packages/11/73/84b02c6b19c4a11eb2d5b5eabe926fb26c21c080e0852f5e5a4f01165f9e/coverage-7.6.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e5ea1cf0872ee455c03e5674b5bca5e3e68e159379c1af0903e89f5eba9ccc3a", size = 208369 }, + { url = "https://files.pythonhosted.org/packages/de/e0/ae5d878b72ff26df2e994a5c5b1c1f6a7507d976b23beecb1ed4c85411ef/coverage-7.6.9-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d10e07aa2b91835d6abec555ec8b2733347956991901eea6ffac295f83a30e4", size = 251089 }, + { url = "https://files.pythonhosted.org/packages/ab/9c/0aaac011aef95a93ef3cb2fba3fde30bc7e68a6635199ed469b1f5ea355a/coverage-7.6.9-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:13a9e2d3ee855db3dd6ea1ba5203316a1b1fd8eaeffc37c5b54987e61e4194ae", size = 246806 }, + { url = "https://files.pythonhosted.org/packages/f8/19/4d5d3ae66938a7dcb2f58cef3fa5386f838f469575b0bb568c8cc9e3a33d/coverage-7.6.9-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c38bf15a40ccf5619fa2fe8f26106c7e8e080d7760aeccb3722664c8656b030", size = 249164 }, + { url = "https://files.pythonhosted.org/packages/b3/0b/4ee8a7821f682af9ad440ae3c1e379da89a998883271f088102d7ca2473d/coverage-7.6.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d5275455b3e4627c8e7154feaf7ee0743c2e7af82f6e3b561967b1cca755a0be", size = 248642 }, + { url = "https://files.pythonhosted.org/packages/8a/12/36ff1d52be18a16b4700f561852e7afd8df56363a5edcfb04cf26a0e19e0/coverage-7.6.9-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8f8770dfc6e2c6a2d4569f411015c8d751c980d17a14b0530da2d7f27ffdd88e", size = 246516 }, + { url = "https://files.pythonhosted.org/packages/43/d0/8e258f6c3a527c1655602f4f576215e055ac704de2d101710a71a2affac2/coverage-7.6.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8d2dfa71665a29b153a9681edb1c8d9c1ea50dfc2375fb4dac99ea7e21a0bcd9", size = 247783 }, + { url = "https://files.pythonhosted.org/packages/a9/0d/1e4a48d289429d38aae3babdfcadbf35ca36bdcf3efc8f09b550a845bdb5/coverage-7.6.9-cp313-cp313t-win32.whl", hash = "sha256:5e6b86b5847a016d0fbd31ffe1001b63355ed309651851295315031ea7eb5a9b", size = 210646 }, + { url = "https://files.pythonhosted.org/packages/26/74/b0729f196f328ac55e42b1e22ec2f16d8bcafe4b8158a26ec9f1cdd1d93e/coverage-7.6.9-cp313-cp313t-win_amd64.whl", hash = "sha256:97ddc94d46088304772d21b060041c97fc16bdda13c6c7f9d8fcd8d5ae0d8611", size = 211815 }, + { url = "https://files.pythonhosted.org/packages/15/0e/4ac9035ee2ee08d2b703fdad2d84283ec0bad3b46eb4ad6affb150174cb6/coverage-7.6.9-pp39.pp310-none-any.whl", hash = "sha256:f3ca78518bc6bc92828cd11867b121891d75cae4ea9e908d72030609b996db1b", size = 199270 }, ] [package.optional-dependencies] @@ -3751,60 +847,74 @@ wheels = [ [[package]] name = "cytoolz" -version = "1.0.0" +version = "1.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e2/4c/ca9b05bdfa28ddbb4a5365c27021a1d4be61db7d8f6b4e5d4e76aa4ba3b7/cytoolz-1.0.0.tar.gz", hash = "sha256:eb453b30182152f9917a5189b7d99046b6ce90cdf8aeb0feff4b2683e600defd", size = 626708 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4b/77/2afed35b93fdc38c4565ae79aca6b6149d0ea2fc4eeeca9b0adf9da04b9e/cytoolz-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ecf5a887acb8f079ab1b81612b1c889bcbe6611aa7804fd2df46ed310aa5a345", size = 403505 }, - { url = "https://files.pythonhosted.org/packages/a8/dc/6b5af6932b656213883557dcc6b1f843ec302dc02fec4b75bf1356b938f9/cytoolz-1.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ef0ef30c1e091d4d59d14d8108a16d50bd227be5d52a47da891da5019ac2f8e4", size = 383918 }, - { url = "https://files.pythonhosted.org/packages/2e/8c/d42dc240cda418b8241541c240c4696cf99475141c4d58fbe89b8c39bac1/cytoolz-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7df2dfd679f0517a96ced1cdd22f5c6c6aeeed28d928a82a02bf4c3fd6fd7ac4", size = 1934558 }, - { url = "https://files.pythonhosted.org/packages/ff/74/af7863cc407ebf535aec9adf0cb72bbac2f036ec2550726d4d8ab00eb41c/cytoolz-1.0.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c51452c938e610f57551aa96e34924169c9100c0448bac88c2fb395cbd3538c", size = 2015123 }, - { url = "https://files.pythonhosted.org/packages/01/98/83a0d9051e56e0b26a290439bd15b696c431c91d1dca384370cf9b23f04a/cytoolz-1.0.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6433f03910c5e5345d82d6299457c26bf33821224ebb837c6b09d9cdbc414a6c", size = 2000496 }, - { url = "https://files.pythonhosted.org/packages/d1/2d/ea68ba5d9c07f5d6cdb8ef85ec92f1a573deaad998807d035d2ef71aeb00/cytoolz-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:389ec328bb535f09e71dfe658bf0041f17194ca4cedaacd39bafe7893497a819", size = 1957529 }, - { url = "https://files.pythonhosted.org/packages/7d/f3/e5b6b7128412bcb8d58c5cbd5a785befdc2c633502653937be41a54b2037/cytoolz-1.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c64658e1209517ce4b54c1c9269a508b289d8d55fc742760e4b8579eacf09a33", size = 1863322 }, - { url = "https://files.pythonhosted.org/packages/ee/ff/534c227de78e9c45c6e764b46830640f73390b7fe5dd39556cd4de4fd3b8/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f6039a9bd5bb988762458b9ca82b39e60ca5e5baae2ba93913990dcc5d19fa88", size = 1849933 }, - { url = "https://files.pythonhosted.org/packages/ef/a9/7a51c084ceba8809f18aacb0bae86caf02aa5d5ebe5d5465819228a690d0/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85c9c8c4465ed1b2c8d67003809aec9627b129cb531d2f6cf0bbfe39952e7e4d", size = 1852341 }, - { url = "https://files.pythonhosted.org/packages/ae/01/9b00fa8956c6b76ffd72fc896b2ba4e06165d7f90e03cf4ff253a4282d01/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:49375aad431d76650f94877afb92f09f58b6ff9055079ef4f2cd55313f5a1b39", size = 1989871 }, - { url = "https://files.pythonhosted.org/packages/30/5a/3857a60ce3083d083fffcac13938ae045d22ee0a55f88b83a22443132e5d/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:4c45106171c824a61e755355520b646cb35a1987b34bbf5789443823ee137f63", size = 1994484 }, - { url = "https://files.pythonhosted.org/packages/6c/3d/8585a635ebeba67f234f7779926519fda732399dd875b7cdff2cb2a3bff7/cytoolz-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3b319a7f0fed5db07d189db4046162ebc183c108df3562a65ba6ebe862d1f634", size = 1896072 }, - { url = "https://files.pythonhosted.org/packages/4c/3f/9f208381c12d2c8437ea09eef56f12c6f44af74ef5bc7546ca4fb099979e/cytoolz-1.0.0-cp310-cp310-win32.whl", hash = "sha256:9770e1b09748ad0d751853d994991e2592a9f8c464a87014365f80dac2e83faa", size = 322319 }, - { url = "https://files.pythonhosted.org/packages/d7/95/cbc120ba4f70f874481f6ec650d26c265db1645fb5285a81e589d5831073/cytoolz-1.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:20194dd02954c00c1f0755e636be75a20781f91a4ac9270c7f747e82d3c7f5a5", size = 363803 }, - { url = "https://files.pythonhosted.org/packages/bc/99/b489081777ad02c9bba294c757583416d0bdbd9403017145aba68145c16f/cytoolz-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dffc22fd2c91be64dbdbc462d0786f8e8ac9a275cfa1869a1084d1867d4f67e0", size = 406148 }, - { url = "https://files.pythonhosted.org/packages/b2/d3/a4d58bf89924dbca34e8dbb643b26935e08c16b4a2ee255d43a8b7489939/cytoolz-1.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a99e7e29274e293f4ffe20e07f76c2ac753a78f1b40c1828dfc54b2981b2f6c4", size = 384956 }, - { url = "https://files.pythonhosted.org/packages/81/d4/4d09e6571ef3b143f668c590a7a00c97ff24e6df6901f457ea7c782cd2ba/cytoolz-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c507a3e0a45c41d66b43f96797290d75d1e7a8549aa03a4a6b8854fdf3f7b8d8", size = 2091688 }, - { url = "https://files.pythonhosted.org/packages/8d/7b/68c89bed2e0490e9b946574c3bc79711179f35b1dc5eb31046c535f1bed2/cytoolz-1.0.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:643a593ec272ef7429099e1182a22f64ec2696c00d295d2a5be390db1b7ff176", size = 2188448 }, - { url = "https://files.pythonhosted.org/packages/56/a3/4e536fc7b72fd7495e19180463e8160a4fe1d50ab59a5854fc596621d5c3/cytoolz-1.0.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6ce38e2e42cbae30446190c59b92a8a9029e1806fd79eaf88f48b0fe33003893", size = 2174196 }, - { url = "https://files.pythonhosted.org/packages/5a/7f/0451778af9e22755a95ef4400ee7fc6e41387521ab0f17699593cb07169a/cytoolz-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810a6a168b8c5ecb412fbae3dd6f7ed6c6253a63caf4174ee9794ebd29b2224f", size = 2099823 }, - { url = "https://files.pythonhosted.org/packages/58/b7/8ffdef1ac8f74b0cc650b9d4a74d93d911a7e20fcf7cc0abac0f4bce225f/cytoolz-1.0.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ce8a2a85c0741c1b19b16e6782c4a5abc54c3caecda66793447112ab2fa9884", size = 1996733 }, - { url = "https://files.pythonhosted.org/packages/1c/ab/9c694c883f3038d167b797cc55c64c2bdb64146428000cea15f235f30a0f/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ea4ac72e6b830861035c4c7999af8e55813f57c6d1913a3d93cc4a6babc27bf7", size = 2013725 }, - { url = "https://files.pythonhosted.org/packages/6c/df/859faaee91c795dc969c79cd38159031f373828d44b0b18999feb7d9a44d/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a09cdfb21dfb38aa04df43e7546a41f673377eb5485da88ceb784e327ec7603b", size = 1994851 }, - { url = "https://files.pythonhosted.org/packages/34/2a/26ac5a34e859c5ba32351f5a74492f4ed12e7a7e75b6afccf11c4100aa70/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:658dd85deb375ff7af990a674e5c9058cef1c9d1f5dc89bc87b77be499348144", size = 2155343 }, - { url = "https://files.pythonhosted.org/packages/3d/41/f687d2e40407b29bfcce36a7d456dad368283ea543aa39da53bcc119974e/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9715d1ff5576919d10b68f17241375f6a1eec8961c25b78a83e6ef1487053f39", size = 2163507 }, - { url = "https://files.pythonhosted.org/packages/39/7c/70d529f909d97ea214d59923c19e3d05a3768fe8e2066542b72550a31ca4/cytoolz-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f370a1f1f1afc5c1c8cc5edc1cfe0ba444263a0772af7ce094be8e734f41769d", size = 2054428 }, - { url = "https://files.pythonhosted.org/packages/5a/4a/7bb2eafe4077f6d9867547ca74ca4b75bc8a081e32a47e186e5c067f6cab/cytoolz-1.0.0-cp311-cp311-win32.whl", hash = "sha256:dbb2ec1177dca700f3db2127e572da20de280c214fc587b2a11c717fc421af56", size = 322300 }, - { url = "https://files.pythonhosted.org/packages/5a/ed/a1c955444343224ab1317a41f6575bc640055eb2495e8f9175f8f28bd776/cytoolz-1.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:0983eee73df86e54bb4a79fcc4996aa8b8368fdbf43897f02f9c3bf39c4dc4fb", size = 365539 }, - { url = "https://files.pythonhosted.org/packages/28/2e/a8b71f74ee75f33164bfbc6324ddd1e8d0f425255b1c930141516f51d539/cytoolz-1.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:10e3986066dc379e30e225b230754d9f5996aa8d84c2accc69c473c21d261e46", size = 414110 }, - { url = "https://files.pythonhosted.org/packages/c6/0a/999af6bb896375b0c687e292a3dcd4edb338a2764bbac40c0ce11eb21c64/cytoolz-1.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:16576f1bb143ee2cb9f719fcc4b845879fb121f9075c7c5e8a5ff4854bd02fc6", size = 390900 }, - { url = "https://files.pythonhosted.org/packages/30/04/02f0ee5339f8c6ef785f06caee85e17e8e0b406e7e553c8fd99a55ff8390/cytoolz-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3faa25a1840b984315e8b3ae517312375f4273ffc9a2f035f548b7f916884f37", size = 2090729 }, - { url = "https://files.pythonhosted.org/packages/04/de/296ded5f81ada90ae4db8c06cc34b142cf6c51fabb4c3c78583abba91c36/cytoolz-1.0.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:781fce70a277b20fd95dc66811d1a97bb07b611ceea9bda8b7dd3c6a4b05d59a", size = 2155926 }, - { url = "https://files.pythonhosted.org/packages/cc/ce/d5782bdd3d2fd16d87e83e70e14fcfa65ba67ba21cf7e1007505baef7d79/cytoolz-1.0.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7a562c25338eb24d419d1e80a7ae12133844ce6fdeb4ab54459daf250088a1b2", size = 2171893 }, - { url = "https://files.pythonhosted.org/packages/d0/02/22a8c74ff13f8a08e8cacd0a0aa34da3a6e3637cf477e376efc61f7567e5/cytoolz-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f29d8330aaf070304f7cd5cb7e73e198753624eb0aec278557cccd460c699b5b", size = 2125265 }, - { url = "https://files.pythonhosted.org/packages/50/d1/a3f2e2ced1fa7e2b5607d05ed4de9951491004a4804e96f78778d11bebd4/cytoolz-1.0.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:98a96c54aa55ed9c7cdb23c2f0df39a7b4ee518ac54888480b5bdb5ef69c7ef0", size = 1973962 }, - { url = "https://files.pythonhosted.org/packages/3e/10/174d9585e1011824e2e6e79380f8b1c6e49070c35a278d823d996d1c11e6/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:287d6d7f475882c2ddcbedf8da9a9b37d85b77690779a2d1cdceb5ae3998d52e", size = 2021691 }, - { url = "https://files.pythonhosted.org/packages/84/aa/bebdca3ae140698d3d4fe75ffd4c87a15ee999cee6b994e0831e5a24cdd7/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:05a871688df749b982839239fcd3f8ec3b3b4853775d575ff9cd335fa7c75035", size = 2010169 }, - { url = "https://files.pythonhosted.org/packages/2e/9f/8d5940c953534a4d2ae4419bb4fdc1eb5559345fed1f4838708073d7e6b4/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:28bb88e1e2f7d6d4b8e0890b06d292c568984d717de3e8381f2ca1dd12af6470", size = 2154314 }, - { url = "https://files.pythonhosted.org/packages/84/bf/a5414601c95afde30a0c038c5d6273c188f1da8ff25a057bd0c683679e5c/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:576a4f1fc73d8836b10458b583f915849da6e4f7914f4ecb623ad95c2508cad5", size = 2188368 }, - { url = "https://files.pythonhosted.org/packages/67/fe/990ea30d56b9b6602f3bf4af77a1bfd9233e6ffb761b11b8864619fed508/cytoolz-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:509ed3799c47e4ada14f63e41e8f540ac6e2dab97d5d7298934e6abb9d3830ec", size = 2077906 }, - { url = "https://files.pythonhosted.org/packages/ab/95/94b936501e1e23460732631e5d7c6efc4f6c09df21a594dfca9bf30b9411/cytoolz-1.0.0-cp312-cp312-win32.whl", hash = "sha256:9ce25f02b910630f6dc2540dd1e26c9326027ddde6c59f8cab07c56acc70714c", size = 322445 }, - { url = "https://files.pythonhosted.org/packages/be/04/a49b73591b132be5a28c0670229629a3c002cfac59582a1d38b16bdc6fed/cytoolz-1.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:7e53cfcce87e05b7f0ae2fb2b3e5820048cd0bb7b701e92bd8f75c9fbb7c9ae9", size = 364595 }, - { url = "https://files.pythonhosted.org/packages/16/7c/8b9fc006925b08579ae35293ad7d14fea4ee94edf1efaaa17e1bdde85b9a/cytoolz-1.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e672712d5dc3094afc6fb346dd4e9c18c1f3c69608ddb8cf3b9f8428f9c26a5c", size = 345694 }, - { url = "https://files.pythonhosted.org/packages/76/d1/159cc7c0c86d6fb8177be437dd6112d90c7f40ef0ceda2102472242b0ccf/cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86fb208bfb7420e1d0d20065d661310e4a8a6884851d4044f47d37ed4cd7410e", size = 385691 }, - { url = "https://files.pythonhosted.org/packages/43/99/21361970f2d7cce241f116d84e8f5c21f1440414be96d0c8cad7832d35cb/cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6dbe5fe3b835859fc559eb59bf2775b5a108f7f2cfab0966f3202859d787d8fd", size = 406251 }, - { url = "https://files.pythonhosted.org/packages/d8/98/bc3d6eadb495de0d48c4d738e5ee6f011d8adbf6a3fcc1f7c17d05bc49d3/cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cace092dfda174eed09ed871793beb5b65633963bcda5b1632c73a5aceea1ce", size = 397203 }, - { url = "https://files.pythonhosted.org/packages/91/b1/df1ed78f08abe8781376bd197532e6e4b38bb3595dd82f6a2b8751407a52/cytoolz-1.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f7a9d816af3be9725c70efe0a6e4352a45d3877751b395014b8eb2f79d7d8d9d", size = 343504 }, +sdist = { url = "https://files.pythonhosted.org/packages/a7/f9/3243eed3a6545c2a33a21f74f655e3fcb5d2192613cd3db81a93369eb339/cytoolz-1.0.1.tar.gz", hash = "sha256:89cc3161b89e1bb3ed7636f74ed2e55984fd35516904fc878cae216e42b2c7d6", size = 626652 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d9/f13d66c16cff1fa1cb6c234698029877c456f35f577ef274aba3b86e7c51/cytoolz-1.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cec9af61f71fc3853eb5dca3d42eb07d1f48a4599fa502cbe92adde85f74b042", size = 403515 }, + { url = "https://files.pythonhosted.org/packages/4b/2d/4cdf848a69300c7d44984f2ebbebb3b8576e5449c8dea157298f3bdc4da3/cytoolz-1.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:140bbd649dbda01e91add7642149a5987a7c3ccc251f2263de894b89f50b6608", size = 383936 }, + { url = "https://files.pythonhosted.org/packages/72/a4/ccfdd3f0ed9cc818f734b424261f6018fc61e3ec833bf85225a9aca0d994/cytoolz-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e90124bdc42ff58b88cdea1d24a6bc5f776414a314cc4d94f25c88badb3a16d1", size = 1934569 }, + { url = "https://files.pythonhosted.org/packages/50/fc/38d5344fa595683ad10dc819cfc1d8b9d2b3391ccf3e8cb7bab4899a01f5/cytoolz-1.0.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e74801b751e28f7c5cc3ad264c123954a051f546f2fdfe089f5aa7a12ccfa6da", size = 2015129 }, + { url = "https://files.pythonhosted.org/packages/28/29/75261748dc54a20a927f33641f4e9aac674cfc6d3fbd4f332e10d0b37639/cytoolz-1.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:582dad4545ddfb5127494ef23f3fa4855f1673a35d50c66f7638e9fb49805089", size = 2000506 }, + { url = "https://files.pythonhosted.org/packages/00/ae/e4ead004cc2698281d153c4a5388638d67cdb5544d6d6cc1e5b3db2bd2a3/cytoolz-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd7bd0618e16efe03bd12f19c2a26a27e6e6b75d7105adb7be1cd2a53fa755d8", size = 1957537 }, + { url = "https://files.pythonhosted.org/packages/4a/ff/4f3aa07f4f47701f7f63df60ce0a5669fa09c256c3d4a33503a9414ea5cc/cytoolz-1.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d74cca6acf1c4af58b2e4a89cc565ed61c5e201de2e434748c93e5a0f5c541a5", size = 1863331 }, + { url = "https://files.pythonhosted.org/packages/a2/29/654f57f2a9b8e9765a4ab876765f64f94530b61fc6471a07feea42ece6d4/cytoolz-1.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:823a3763828d8d457f542b2a45d75d6b4ced5e470b5c7cf2ed66a02f508ed442", size = 1849938 }, + { url = "https://files.pythonhosted.org/packages/bc/7b/11f457db6b291060a98315ab2c7198077d8bddeeebe5f7126d9dad98cc54/cytoolz-1.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:51633a14e6844c61db1d68c1ffd077cf949f5c99c60ed5f1e265b9e2966f1b52", size = 1852345 }, + { url = "https://files.pythonhosted.org/packages/6b/92/0dccc96ce0323be236d404f5084479b79b747fa0e74e43a270e95868b5f9/cytoolz-1.0.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f3ec9b01c45348f1d0d712507d54c2bfd69c62fbd7c9ef555c9d8298693c2432", size = 1989877 }, + { url = "https://files.pythonhosted.org/packages/a3/c8/1c5203a81200bae51aa8f7b5fad613f695bf1afa03f16251ca23ecb2ef9f/cytoolz-1.0.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1855022b712a9c7a5bce354517ab4727a38095f81e2d23d3eabaf1daeb6a3b3c", size = 1994492 }, + { url = "https://files.pythonhosted.org/packages/e2/8a/04bc193c4d7ced8ef6bb62cdcd0bf40b5e5eb26586ed2cfb4433ec7dfd0a/cytoolz-1.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9930f7288c4866a1dc1cc87174f0c6ff4cad1671eb1f6306808aa6c445857d78", size = 1896077 }, + { url = "https://files.pythonhosted.org/packages/21/a5/bee63a58f51d2c74856db66e6119a014464ff8cb1c9387fa4bd2d94e49b0/cytoolz-1.0.1-cp310-cp310-win32.whl", hash = "sha256:a9baad795d72fadc3445ccd0f122abfdbdf94269157e6d6d4835636dad318804", size = 322135 }, + { url = "https://files.pythonhosted.org/packages/e8/16/7abfb1685e8b7f2838264551ee33651748994813f566ac4c3d737dfe90e5/cytoolz-1.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:ad95b386a84e18e1f6136f6d343d2509d4c3aae9f5a536f3dc96808fcc56a8cf", size = 363599 }, + { url = "https://files.pythonhosted.org/packages/dc/ea/8131ae39119820b8867cddc23716fa9f681f2b3bbce6f693e68dfb36b55b/cytoolz-1.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2d958d4f04d9d7018e5c1850790d9d8e68b31c9a2deebca74b903706fdddd2b6", size = 406162 }, + { url = "https://files.pythonhosted.org/packages/26/18/3d9bd4c146f6ea6e51300c242b20cb416966b21d481dac230e1304f1e54b/cytoolz-1.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0f445b8b731fc0ecb1865b8e68a070084eb95d735d04f5b6c851db2daf3048ab", size = 384961 }, + { url = "https://files.pythonhosted.org/packages/e4/73/9034827907c7f85c7c484c9494e905d022fb8174526004e9ef332570349e/cytoolz-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f546a96460a7e28eb2ec439f4664fa646c9b3e51c6ebad9a59d3922bbe65e30", size = 2091698 }, + { url = "https://files.pythonhosted.org/packages/74/af/d5c2733b0fde1a08254ff1a8a8d567874040c9eb1606363cfebc0713c73f/cytoolz-1.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0317681dd065532d21836f860b0563b199ee716f55d0c1f10de3ce7100c78a3b", size = 2188452 }, + { url = "https://files.pythonhosted.org/packages/6a/bb/77c71fa9c217260b4056a732d754748903423c2cdd82a673d6064741e375/cytoolz-1.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c0ef52febd5a7821a3fd8d10f21d460d1a3d2992f724ba9c91fbd7a96745d41", size = 2174203 }, + { url = "https://files.pythonhosted.org/packages/fc/a9/a5b4a3ff5d22faa1b60293bfe97362e2caf4a830c26d37ab5557f60d04b2/cytoolz-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5ebaf419acf2de73b643cf96108702b8aef8e825cf4f63209ceb078d5fbbbfd", size = 2099831 }, + { url = "https://files.pythonhosted.org/packages/35/08/7f6869ea1ff31ce5289a7d58d0e7090acfe7058baa2764473048ff61ea3c/cytoolz-1.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5f7f04eeb4088947585c92d6185a618b25ad4a0f8f66ea30c8db83cf94a425e3", size = 1996744 }, + { url = "https://files.pythonhosted.org/packages/46/b4/9ac424c994b51763fd1bbed62d95f8fba8fa0e45c8c3c583904fdaf8f51d/cytoolz-1.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f61928803bb501c17914b82d457c6f50fe838b173fb40d39c38d5961185bd6c7", size = 2013733 }, + { url = "https://files.pythonhosted.org/packages/3e/99/03009765c4b87d742d5b5a8670abb56a8c7ede033c2cdaa4be8662d3b001/cytoolz-1.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d2960cb4fa01ccb985ad1280db41f90dc97a80b397af970a15d5a5de403c8c61", size = 1994850 }, + { url = "https://files.pythonhosted.org/packages/40/9a/8458af9a5557e177ea42f8cf7e477bede518b0bbef564e28c4151feaa52c/cytoolz-1.0.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b2b407cc3e9defa8df5eb46644f6f136586f70ba49eba96f43de67b9a0984fd3", size = 2155352 }, + { url = "https://files.pythonhosted.org/packages/5e/5c/2a701423e001fcbec288b4f3fc2bf67557d114c2388237fc1ae67e1e2686/cytoolz-1.0.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:8245f929144d4d3bd7b972c9593300195c6cea246b81b4c46053c48b3f044580", size = 2163515 }, + { url = "https://files.pythonhosted.org/packages/36/16/ee2e06e65d9d533bc05cd52a0b355ba9072fc8f60d77289e529c6d2e3750/cytoolz-1.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e37385db03af65763933befe89fa70faf25301effc3b0485fec1c15d4ce4f052", size = 2054431 }, + { url = "https://files.pythonhosted.org/packages/d8/d5/2fac8315f210fa1bc7106e27c19e1211580aa25bb7fa17dfd79505e5baf2/cytoolz-1.0.1-cp311-cp311-win32.whl", hash = "sha256:50f9c530f83e3e574fc95c264c3350adde8145f4f8fc8099f65f00cc595e5ead", size = 322004 }, + { url = "https://files.pythonhosted.org/packages/a9/9e/0b70b641850a95f9ff90adde9d094a4b1d81ec54dadfd97fec0a2aaf440e/cytoolz-1.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:b7f6b617454b4326af7bd3c7c49b0fc80767f134eb9fd6449917a058d17a0e3c", size = 365358 }, + { url = "https://files.pythonhosted.org/packages/d8/e8/218098344ed2cb5f8441fade9b2428e435e7073962374a9c71e59ac141a7/cytoolz-1.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fcb8f7d0d65db1269022e7e0428471edee8c937bc288ebdcb72f13eaa67c2fe4", size = 414121 }, + { url = "https://files.pythonhosted.org/packages/de/27/4d729a5653718109262b758fec1a959aa9facb74c15460d9074dc76d6635/cytoolz-1.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:207d4e4b445e087e65556196ff472ff134370d9a275d591724142e255f384662", size = 390904 }, + { url = "https://files.pythonhosted.org/packages/72/c0/cbabfa788bab9c6038953bf9478adaec06e88903a726946ea7c88092f5c4/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21cdf6bac6fd843f3b20280a66fd8df20dea4c58eb7214a2cd8957ec176f0bb3", size = 2090734 }, + { url = "https://files.pythonhosted.org/packages/c3/66/369262c60f9423c2da82a60864a259c852f1aa122aced4acd2c679af58c0/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a55ec098036c0dea9f3bdc021f8acd9d105a945227d0811589f0573f21c9ce1", size = 2155933 }, + { url = "https://files.pythonhosted.org/packages/aa/4e/ee55186802f8d24b5fbf9a11405ccd1203b30eded07cc17750618219b94e/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a13ab79ff4ce202e03ab646a2134696988b554b6dc4b71451e948403db1331d8", size = 2171903 }, + { url = "https://files.pythonhosted.org/packages/a1/96/bd1a9f3396e9b7f618db8cd08d15630769ce3c8b7d0534f92cd639c977ae/cytoolz-1.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e2d944799026e1ff08a83241f1027a2d9276c41f7a74224cd98b7df6e03957d", size = 2125270 }, + { url = "https://files.pythonhosted.org/packages/28/48/2a3762873091c88a69e161111cfbc6c222ff145d57ff011a642b169f04f1/cytoolz-1.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88ba85834cd523b91fdf10325e1e6d71c798de36ea9bdc187ca7bd146420de6f", size = 1973967 }, + { url = "https://files.pythonhosted.org/packages/e4/50/500bd69774bdc49a4d78ec8779eb6ac7c1a9d706bfd91cf2a1dba604373a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a750b1af7e8bf6727f588940b690d69e25dc47cce5ce467925a76561317eaf7", size = 2021695 }, + { url = "https://files.pythonhosted.org/packages/e4/4e/ba5a0ce34869495eb50653de8d676847490cf13a2cac1760fc4d313e78de/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:44a71870f7eae31d263d08b87da7c2bf1176f78892ed8bdade2c2850478cb126", size = 2010177 }, + { url = "https://files.pythonhosted.org/packages/87/57/615c630b3089a13adb15351d958d227430cf624f03b1dd39eb52c34c1f59/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c8231b9abbd8e368e036f4cc2e16902c9482d4cf9e02a6147ed0e9a3cd4a9ab0", size = 2154321 }, + { url = "https://files.pythonhosted.org/packages/7f/0f/fe1aa2d931e3b35ecc05215bd75da945ea7346095b3b6f6027164e602d5a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:aa87599ccc755de5a096a4d6c34984de6cd9dc928a0c5eaa7607457317aeaf9b", size = 2188374 }, + { url = "https://files.pythonhosted.org/packages/de/fa/fd363d97a641b6d0e2fd1d5c35b8fd41d9ccaeb4df56302f53bf23a58e3a/cytoolz-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:67cd16537df51baabde3baa770ab7b8d16839c4d21219d5b96ac59fb012ebd2d", size = 2077911 }, + { url = "https://files.pythonhosted.org/packages/d9/68/0a22946b98ae5201b54ccb4e651295285c0fb79406022b6ee8b2f791940c/cytoolz-1.0.1-cp312-cp312-win32.whl", hash = "sha256:fb988c333f05ee30ad4693fe4da55d95ec0bb05775d2b60191236493ea2e01f9", size = 321903 }, + { url = "https://files.pythonhosted.org/packages/62/1a/f3903197956055032f8cb297342e2dff07e50f83991aebfe5b4c4fcb55e4/cytoolz-1.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:8f89c48d8e5aec55ffd566a8ec858706d70ed0c6a50228eca30986bfa5b4da8b", size = 364490 }, + { url = "https://files.pythonhosted.org/packages/aa/2e/a9f069db0107749e9e72baf6c21abe3f006841a3bcfdc9b8420e22ef31eb/cytoolz-1.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6944bb93b287032a4c5ca6879b69bcd07df46f3079cf8393958cf0b0454f50c0", size = 407365 }, + { url = "https://files.pythonhosted.org/packages/a9/9b/5e87dd0e31f54c778b4f9f34cc14c1162d3096c8d746b0f8be97d70dd73c/cytoolz-1.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e027260fd2fc5cb041277158ac294fc13dca640714527219f702fb459a59823a", size = 385233 }, + { url = "https://files.pythonhosted.org/packages/63/00/2fd32b16284cdb97cfe092822179bc0c3bcdd5e927dd39f986169a517642/cytoolz-1.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88662c0e07250d26f5af9bc95911e6137e124a5c1ec2ce4a5d74de96718ab242", size = 2062903 }, + { url = "https://files.pythonhosted.org/packages/85/39/b3cbb5a9847ba59584a263772ad4f8ca2dbfd2a0e11efd09211d1219804c/cytoolz-1.0.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:309dffa78b0961b4c0cf55674b828fbbc793cf2d816277a5c8293c0c16155296", size = 2139517 }, + { url = "https://files.pythonhosted.org/packages/ea/39/bfcab4a46d50c467e36fe704f19d8904efead417787806ee210327f68390/cytoolz-1.0.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:edb34246e6eb40343c5860fc51b24937698e4fa1ee415917a73ad772a9a1746b", size = 2154849 }, + { url = "https://files.pythonhosted.org/packages/fd/42/3bc6ee61b0aa47e1cb40819adc1a456d7efa809f0dea9faddacb43fdde8f/cytoolz-1.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a54da7a8e4348a18d45d4d5bc84af6c716d7f131113a4f1cc45569d37edff1b", size = 2102302 }, + { url = "https://files.pythonhosted.org/packages/00/66/3f636c6ddea7b18026b90a8c238af472e423b86e427b11df02213689b012/cytoolz-1.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:241c679c3b1913c0f7259cf1d9639bed5084c86d0051641d537a0980548aa266", size = 1960872 }, + { url = "https://files.pythonhosted.org/packages/40/36/cb3b7cdd651007b69f9c48e9d104cec7cb8dc53afa1d6a720e5ad08022fa/cytoolz-1.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5bfc860251a8f280ac79696fc3343cfc3a7c30b94199e0240b6c9e5b6b01a2a5", size = 2014430 }, + { url = "https://files.pythonhosted.org/packages/88/3f/2e9bd2a16cfd269808922147551dcb2d8b68ba54a2c4deca2fa6a6cd0d5f/cytoolz-1.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c8edd1547014050c1bdad3ff85d25c82bd1c2a3c96830c6181521eb78b9a42b3", size = 2003127 }, + { url = "https://files.pythonhosted.org/packages/c4/7d/08604ff940aa784df8343c387fdf2489b948b714a6afb587775ae94da912/cytoolz-1.0.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b349bf6162e8de215403d7f35f8a9b4b1853dc2a48e6e1a609a5b1a16868b296", size = 2142369 }, + { url = "https://files.pythonhosted.org/packages/d2/c6/39919a0645bdbdf720e97cae107f959ea9d1267fbc3b0d94fc6e1d12ac8f/cytoolz-1.0.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1b18b35256219b6c3dd0fa037741b85d0bea39c552eab0775816e85a52834140", size = 2180427 }, + { url = "https://files.pythonhosted.org/packages/d8/03/dbb9d47556ee54337e7e0ac209d17ceff2d2a197c34de08005abc7a7449b/cytoolz-1.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:738b2350f340ff8af883eb301054eb724997f795d20d90daec7911c389d61581", size = 2069785 }, + { url = "https://files.pythonhosted.org/packages/ea/f8/11bb7b8947002231faae3ec2342df5896afbc19eb783a332cce6d219ff79/cytoolz-1.0.1-cp313-cp313-win32.whl", hash = "sha256:9cbd9c103df54fcca42be55ef40e7baea624ac30ee0b8bf1149f21146d1078d9", size = 320685 }, + { url = "https://files.pythonhosted.org/packages/40/eb/dde173cf2357084ca9423950be1f2f11ab11d65d8bd30165bfb8fd4213e9/cytoolz-1.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:90e577e08d3a4308186d9e1ec06876d4756b1e8164b92971c69739ea17e15297", size = 362898 }, + { url = "https://files.pythonhosted.org/packages/d9/f7/ef2a10daaec5c0f7d781d50758c6187eee484256e356ae8ef178d6c48497/cytoolz-1.0.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:83d19d55738ad9c60763b94f3f6d3c6e4de979aeb8d76841c1401081e0e58d96", size = 345702 }, + { url = "https://files.pythonhosted.org/packages/c8/14/53c84adddedb67ff1546abb86fea04d26e24298c3ceab8436d20122ed0b9/cytoolz-1.0.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f112a71fad6ea824578e6393765ce5c054603afe1471a5c753ff6c67fd872d10", size = 385695 }, + { url = "https://files.pythonhosted.org/packages/bd/80/3ae356c5e7b8d7dc7d1adb52f6932fee85cd748ed4e1217c269d2dfd610f/cytoolz-1.0.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a515df8f8aa6e1eaaf397761a6e4aff2eef73b5f920aedf271416d5471ae5ee", size = 406261 }, + { url = "https://files.pythonhosted.org/packages/0c/31/8e43761ffc82d90bf9cab7e0959712eedcd1e33c211397e143dd42d7af57/cytoolz-1.0.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92c398e7b7023460bea2edffe5fcd0a76029580f06c3f6938ac3d198b47156f3", size = 397207 }, + { url = "https://files.pythonhosted.org/packages/d1/b9/fe9da37090b6444c65f848a83e390f87d8cb43d6a4df46de1556ad7e5ceb/cytoolz-1.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:3237e56211e03b13df47435b2369f5df281e02b04ad80a948ebd199b7bc10a47", size = 343358 }, ] [[package]] @@ -3832,7 +942,7 @@ wheels = [ [[package]] name = "dask" -version = "2024.11.2" +version = "2024.12.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, @@ -3844,9 +954,9 @@ dependencies = [ { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9d/a1/6d06c4cc93349377a9f318f2ebff5b637e6ffee373e38f363123b4b1afa7/dask-2024.11.2.tar.gz", hash = "sha256:9a72bee3f149ff89bc492340d4bcba33d5dd3e3a9d471d2b4b3872f2d71ddaae", size = 10688567 } +sdist = { url = "https://files.pythonhosted.org/packages/b8/0a/1011ce75bc1e2da627d481f4bfcaf0eaf3367eb2e432ed908620e0a0fcfa/dask-2024.12.0.tar.gz", hash = "sha256:ffd02b06ac06b993df0b48e0ba4fe02abceb5c8b34b40bd91d63f33ec7a272a4", size = 10691490 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/72/33ff765a07913cb5061baa94718f3a17003aa29adc89642a68c295d47582/dask-2024.11.2-py3-none-any.whl", hash = "sha256:6115c4b76015e8d9d9c2922b6a0a1c850e283fb7fee74eebbd2e28e9c117c30d", size = 1265299 }, + { url = "https://files.pythonhosted.org/packages/3a/46/9ea782eb1accabad0931d80818fcf8b286bdd1b457ae9c718f039430c489/dask-2024.12.0-py3-none-any.whl", hash = "sha256:e038e87b9f06e7927b81ecde6cf2b49aa699bb902fec11abba5697cb48baeb8d", size = 1268483 }, ] [package.optional-dependencies] @@ -3863,16 +973,16 @@ complete = [ [[package]] name = "dask-expr" -version = "1.1.19" +version = "1.1.20" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "dask", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "pyarrow", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ef/b0/a0c1050ee70be7a0274529b15edacea769c395b392edb1925118937fdb7c/dask_expr-1.1.19.tar.gz", hash = "sha256:5c8a50924bf6718bb630d58f11311e3d928c7037af913e096fa0eb3f0a493b9f", size = 223876 } +sdist = { url = "https://files.pythonhosted.org/packages/03/ef/9b7b7ccd25cef726f0b38a4d440092596e5fa6f593b82c676278c925327b/dask_expr-1.1.20.tar.gz", hash = "sha256:c5be6243296c299e21e02aa93e863e28e6f21ab3c01b645cec3dd56e1b1eac9b", size = 224530 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e9/57/e7996529256b13009fa8f4c34d1d7229755cc7d2b054aa43edb6ca655578/dask_expr-1.1.19-py3-none-any.whl", hash = "sha256:b2931c20241a3bc1978ccccc4b8a2f7b27b15bb85ce89fec04595bc5bcf20cf5", size = 244456 }, + { url = "https://files.pythonhosted.org/packages/c5/a4/c7c8e2a895eba9ce41bf811b2b6755c227a489b687d1a52521350ae37436/dask_expr-1.1.20-py3-none-any.whl", hash = "sha256:a10755f2bc7d7cfb060b4fc9c7e8b139a03d961c4420ebd50ea319ea906f8b80", size = 245309 }, ] [[package]] @@ -3981,7 +1091,7 @@ wheels = [ [[package]] name = "distributed" -version = "2024.11.2" +version = "2024.12.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, @@ -4000,9 +1110,9 @@ dependencies = [ { name = "urllib3", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "zict", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ea/b5/f8b27f48694c11721e2bbed4eadfcc5fe399a083ee449113b2a2fcd962b6/distributed-2024.11.2.tar.gz", hash = "sha256:60e430ab9d438102535f342521bc2673db08fcd373a4474b042caf9fe9fcf990", size = 1113817 } +sdist = { url = "https://files.pythonhosted.org/packages/02/6e/463536dba2893634537f62ef00abf9421bf55f867892fc7c47d865c27d85/distributed-2024.12.0.tar.gz", hash = "sha256:6a2c04e63d31973ee3c1f2160d66521ed8f08e637d6a25a450e7561582920f38", size = 1115740 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/24/312287ead487290c13e62f6d987e59eb0e22b8088b3539dfe6f4062a8370/distributed-2024.11.2-py3-none-any.whl", hash = "sha256:a455ae031689aee151172b3492de5dd637b67531720619c171df988974985cdf", size = 1022680 }, + { url = "https://files.pythonhosted.org/packages/93/ef/f0a96745cabeda5735d456403a007c2f9b6ac64a0f4c5fa4faf9d41f70dc/distributed-2024.12.0-py3-none-any.whl", hash = "sha256:ed05aa13b6c62b69b33d1ba7d1ca95e78406c8f37163fafd07f7ca94ae036b66", size = 1022908 }, ] [[package]] @@ -4148,43 +1258,43 @@ wheels = [ [[package]] name = "fonttools" -version = "4.55.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/4e/053fe1b5c0ce346c0a9d0557492c654362bafb14f026eae0d3ee98009152/fonttools-4.55.0.tar.gz", hash = "sha256:7636acc6ab733572d5e7eec922b254ead611f1cdad17be3f0be7418e8bfaca71", size = 3490431 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d8/8c/57600ebff0b2119b725bc11eeea32b17b0220f3fae71b5fff082a1891270/fonttools-4.55.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:51c029d4c0608a21a3d3d169dfc3fb776fde38f00b35ca11fdab63ba10a16f61", size = 2770301 }, - { url = "https://files.pythonhosted.org/packages/02/94/dff7e57a751918b133a303418202b4f43e3dc3c887e2a648089e0463b1a7/fonttools-4.55.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bca35b4e411362feab28e576ea10f11268b1aeed883b9f22ed05675b1e06ac69", size = 2295806 }, - { url = "https://files.pythonhosted.org/packages/09/31/ff18d79d449510850fe4a96c0ba50ee6d0b9b815a6b5a2489d809e9a8db5/fonttools-4.55.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ce4ba6981e10f7e0ccff6348e9775ce25ffadbee70c9fd1a3737e3e9f5fa74f", size = 4577709 }, - { url = "https://files.pythonhosted.org/packages/c4/03/8136887d1b0b7a9831c7e8e2598c0e5851e31cc2231295769350349a236b/fonttools-4.55.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31d00f9852a6051dac23294a4cf2df80ced85d1d173a61ba90a3d8f5abc63c60", size = 4633411 }, - { url = "https://files.pythonhosted.org/packages/a7/37/86ac06a7505e57de2daaf0a1cc885b7767c74d376ef2cf82933e8ef79399/fonttools-4.55.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e198e494ca6e11f254bac37a680473a311a88cd40e58f9cc4dc4911dfb686ec6", size = 4572887 }, - { url = "https://files.pythonhosted.org/packages/0d/85/1e429359d1842a104b638433587ff62d9dc8339a8c467787087962502a53/fonttools-4.55.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7208856f61770895e79732e1dcbe49d77bd5783adf73ae35f87fcc267df9db81", size = 4745036 }, - { url = "https://files.pythonhosted.org/packages/81/65/763ac1fe2a3e52220f7a7fd2a5de0c784045e773aa9d299450019ac66f9e/fonttools-4.55.0-cp310-cp310-win32.whl", hash = "sha256:e7e6a352ff9e46e8ef8a3b1fe2c4478f8a553e1b5a479f2e899f9dc5f2055880", size = 2170126 }, - { url = "https://files.pythonhosted.org/packages/3e/67/93939482715e629c4bd6fd1f3d154c1bf45b81ee383f50e44d31fa542f83/fonttools-4.55.0-cp310-cp310-win_amd64.whl", hash = "sha256:636caaeefe586d7c84b5ee0734c1a5ab2dae619dc21c5cf336f304ddb8f6001b", size = 2213882 }, - { url = "https://files.pythonhosted.org/packages/17/50/75461e050ded02b9eaa8097df52c2a8752cf4c24db8b44b150755b76c8f1/fonttools-4.55.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fa34aa175c91477485c44ddfbb51827d470011e558dfd5c7309eb31bef19ec51", size = 2771444 }, - { url = "https://files.pythonhosted.org/packages/de/5e/98130db3770e8d12f70aa61f2555c32284d4e9c592862469d32b7ee48626/fonttools-4.55.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:37dbb3fdc2ef7302d3199fb12468481cbebaee849e4b04bc55b77c24e3c49189", size = 2296439 }, - { url = "https://files.pythonhosted.org/packages/17/35/36fe271296fe7624811f5261a0662155e075b43b79ffacea85a03f36593d/fonttools-4.55.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5263d8e7ef3c0ae87fbce7f3ec2f546dc898d44a337e95695af2cd5ea21a967", size = 4883141 }, - { url = "https://files.pythonhosted.org/packages/47/2b/9bf7527260d265281dd812951aa22f3d1c331bcc91e86e7038dc6b9737cb/fonttools-4.55.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f307f6b5bf9e86891213b293e538d292cd1677e06d9faaa4bf9c086ad5f132f6", size = 4931050 }, - { url = "https://files.pythonhosted.org/packages/0b/7b/7324d3aa8424c71b63ba2e76eb4a46d6947e23065996e755c1682e666f42/fonttools-4.55.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f0a4b52238e7b54f998d6a56b46a2c56b59c74d4f8a6747fb9d4042190f37cd3", size = 4894154 }, - { url = "https://files.pythonhosted.org/packages/2c/53/a54926be69e43d277877106a6cbfab467cb02f9c756258c7c9932e8eb382/fonttools-4.55.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3e569711464f777a5d4ef522e781dc33f8095ab5efd7548958b36079a9f2f88c", size = 5064715 }, - { url = "https://files.pythonhosted.org/packages/0c/f7/9602868af9a2dfc4659637a752da8691655e81a2d6138231dcaa1efe8840/fonttools-4.55.0-cp311-cp311-win32.whl", hash = "sha256:2b3ab90ec0f7b76c983950ac601b58949f47aca14c3f21eed858b38d7ec42b05", size = 2169536 }, - { url = "https://files.pythonhosted.org/packages/30/57/9e2ddd16ad84ab26616ae4346b3b15e9a50669ca1b442cbe760af073807c/fonttools-4.55.0-cp311-cp311-win_amd64.whl", hash = "sha256:aa046f6a63bb2ad521004b2769095d4c9480c02c1efa7d7796b37826508980b6", size = 2215265 }, - { url = "https://files.pythonhosted.org/packages/ec/79/38209f8f6235021b6209147ec7b2f748afde65c59c6274ac96fef3912094/fonttools-4.55.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:838d2d8870f84fc785528a692e724f2379d5abd3fc9dad4d32f91cf99b41e4a7", size = 2765205 }, - { url = "https://files.pythonhosted.org/packages/e3/07/434a21eab80524613c9753db2ff21d6bc3cf264412d8833a85022fd39088/fonttools-4.55.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f46b863d74bab7bb0d395f3b68d3f52a03444964e67ce5c43ce43a75efce9246", size = 2293908 }, - { url = "https://files.pythonhosted.org/packages/c8/63/aa3274d9be36aaaef8c087e413cbc1dd682ff94776a82c111bad88482947/fonttools-4.55.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33b52a9cfe4e658e21b1f669f7309b4067910321757fec53802ca8f6eae96a5a", size = 4795901 }, - { url = "https://files.pythonhosted.org/packages/fc/0b/dbe13f2c8d745ffdf5c2bc25391263927d4ec2b927e44d5d5f70cd372873/fonttools-4.55.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:732a9a63d6ea4a81b1b25a1f2e5e143761b40c2e1b79bb2b68e4893f45139a40", size = 4879252 }, - { url = "https://files.pythonhosted.org/packages/46/85/eefb400ec66e9e7c159d13c72aba473d9c2a0c556d812b0916418aa9019e/fonttools-4.55.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7dd91ac3fcb4c491bb4763b820bcab6c41c784111c24172616f02f4bc227c17d", size = 4773177 }, - { url = "https://files.pythonhosted.org/packages/93/75/f06d175df4d7dbad97061c8698210ce4231cce9aa56cc263f3b6b5340540/fonttools-4.55.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1f0e115281a32ff532118aa851ef497a1b7cda617f4621c1cdf81ace3e36fb0c", size = 5032809 }, - { url = "https://files.pythonhosted.org/packages/78/eb/f3520ba63b5e4a034f2bfd34d8ab32eb95a1bf37a1f792ea48461fba08f6/fonttools-4.55.0-cp312-cp312-win32.whl", hash = "sha256:6c99b5205844f48a05cb58d4a8110a44d3038c67ed1d79eb733c4953c628b0f6", size = 2157762 }, - { url = "https://files.pythonhosted.org/packages/aa/d1/5f007861cab890f2a35a19a1d2a2815655ec10b0ea7fd881b1d3aaab0076/fonttools-4.55.0-cp312-cp312-win_amd64.whl", hash = "sha256:f8c8c76037d05652510ae45be1cd8fb5dd2fd9afec92a25374ac82255993d57c", size = 2203746 }, - { url = "https://files.pythonhosted.org/packages/c3/87/a669ac26c6077e37ffb06abf29c5571789eefe518d06c52df392181ee694/fonttools-4.55.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8118dc571921dc9e4b288d9cb423ceaf886d195a2e5329cc427df82bba872cd9", size = 2752519 }, - { url = "https://files.pythonhosted.org/packages/0c/e9/4822ad238fe215133c7df20f1cdb1a58cfb634a31523e77ff0fb2033970a/fonttools-4.55.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01124f2ca6c29fad4132d930da69158d3f49b2350e4a779e1efbe0e82bd63f6c", size = 2286819 }, - { url = "https://files.pythonhosted.org/packages/3e/a4/d7941c3897129e60fe68d20e4819fda4d0c4858d77badae0e80ca6440b36/fonttools-4.55.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ffd58d2691f11f7c8438796e9f21c374828805d33e83ff4b76e4635633674c", size = 4770382 }, - { url = "https://files.pythonhosted.org/packages/31/cf/c51ea1348f9fba9c627439afad9dee0090040809ab431f4422b5bfdda34c/fonttools-4.55.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5435e5f1eb893c35c2bc2b9cd3c9596b0fcb0a59e7a14121562986dd4c47b8dd", size = 4858336 }, - { url = "https://files.pythonhosted.org/packages/73/be/36c1fe0e5c9a96b068ddd7e82001243bbe7fe12549c8d14e1bd025bf40c9/fonttools-4.55.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d12081729280c39d001edd0f4f06d696014c26e6e9a0a55488fabc37c28945e4", size = 4756072 }, - { url = "https://files.pythonhosted.org/packages/5c/18/6dd381c29f215a017f79aa9fea0722424a0046b47991c4390a78ff87ce0c/fonttools-4.55.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7ad1f1b98ab6cb927ab924a38a8649f1ffd7525c75fe5b594f5dab17af70e18", size = 5008668 }, - { url = "https://files.pythonhosted.org/packages/b8/95/316f20092b389b927dba1d1dccd3f541853f96e707e210f1b9f4e7bacdd5/fonttools-4.55.0-cp313-cp313-win32.whl", hash = "sha256:abe62987c37630dca69a104266277216de1023cf570c1643bb3a19a9509e7a1b", size = 2155841 }, - { url = "https://files.pythonhosted.org/packages/35/ca/b4638aa3e446184892e2f9cc8ef44bb506f47fea04580df7fb84f5a4363d/fonttools-4.55.0-cp313-cp313-win_amd64.whl", hash = "sha256:2863555ba90b573e4201feaf87a7e71ca3b97c05aa4d63548a4b69ea16c9e998", size = 2200587 }, - { url = "https://files.pythonhosted.org/packages/b4/4a/786589606d4989cb34d8bc766cd687d955aaf3039c367fe7104bcf82dc98/fonttools-4.55.0-py3-none-any.whl", hash = "sha256:12db5888cd4dd3fcc9f0ee60c6edd3c7e1fd44b7dd0f31381ea03df68f8a153f", size = 1100249 }, +version = "4.55.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/76/61/a300d1574dc381393424047c0396a0e213db212e28361123af9830d71a8d/fonttools-4.55.3.tar.gz", hash = "sha256:3983313c2a04d6cc1fe9251f8fc647754cf49a61dac6cb1e7249ae67afaafc45", size = 3498155 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/f3/9ac8c6705e4a0ff3c29e524df1caeee6f2987b02fb630129f21cc99a8212/fonttools-4.55.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1dcc07934a2165ccdc3a5a608db56fb3c24b609658a5b340aee4ecf3ba679dc0", size = 2769857 }, + { url = "https://files.pythonhosted.org/packages/d8/24/e8b8edd280bdb7d0ecc88a5d952b1dec2ee2335be71cc5a33c64871cdfe8/fonttools-4.55.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f7d66c15ba875432a2d2fb419523f5d3d347f91f48f57b8b08a2dfc3c39b8a3f", size = 2299705 }, + { url = "https://files.pythonhosted.org/packages/f8/9e/e1ba20bd3b71870207fd45ca3b90208a7edd8ae3b001081dc31c45adb017/fonttools-4.55.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e4ae3592e62eba83cd2c4ccd9462dcfa603ff78e09110680a5444c6925d841", size = 4576104 }, + { url = "https://files.pythonhosted.org/packages/34/db/d423bc646e6703fe3e6aea0edd22a2df47b9d188c5f7f1b49070be4d2205/fonttools-4.55.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d65a3022c35e404d19ca14f291c89cc5890032ff04f6c17af0bd1927299674", size = 4618282 }, + { url = "https://files.pythonhosted.org/packages/75/a0/e5062ac960a385b984ba74e7b55132e7f2c65e449e8330ab0f595407a3de/fonttools-4.55.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d342e88764fb201286d185093781bf6628bbe380a913c24adf772d901baa8276", size = 4570539 }, + { url = "https://files.pythonhosted.org/packages/1f/33/0d744ff518ebe50020b63e5018b8b278efd6a930c1d2eedda7defc42153b/fonttools-4.55.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dd68c87a2bfe37c5b33bcda0fba39b65a353876d3b9006fde3adae31f97b3ef5", size = 4742411 }, + { url = "https://files.pythonhosted.org/packages/7e/6c/2f768652dba6b801f1567fc5d1829cda369bcd6e95e315a91e628f91c702/fonttools-4.55.3-cp310-cp310-win32.whl", hash = "sha256:1bc7ad24ff98846282eef1cbeac05d013c2154f977a79886bb943015d2b1b261", size = 2175132 }, + { url = "https://files.pythonhosted.org/packages/19/d1/4dcd865360fb2c499749a913fe80e41c26e8ae18629d87dfffa3de27e831/fonttools-4.55.3-cp310-cp310-win_amd64.whl", hash = "sha256:b54baf65c52952db65df39fcd4820668d0ef4766c0ccdf32879b77f7c804d5c5", size = 2219430 }, + { url = "https://files.pythonhosted.org/packages/4b/18/14be25545600bd100e5b74a3ac39089b7c1cb403dc513b7ca348be3381bf/fonttools-4.55.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8c4491699bad88efe95772543cd49870cf756b019ad56294f6498982408ab03e", size = 2771005 }, + { url = "https://files.pythonhosted.org/packages/b2/51/2e1a5d3871cd7c2ae2054b54e92604e7d6abc3fd3656e9583c399648fe1c/fonttools-4.55.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5323a22eabddf4b24f66d26894f1229261021dacd9d29e89f7872dd8c63f0b8b", size = 2300654 }, + { url = "https://files.pythonhosted.org/packages/73/1a/50109bb2703bc6f774b52ea081db21edf2a9fa4b6d7485faadf9d1b997e9/fonttools-4.55.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5480673f599ad410695ca2ddef2dfefe9df779a9a5cda89503881e503c9c7d90", size = 4877541 }, + { url = "https://files.pythonhosted.org/packages/5d/52/c0b9857fa075da1b8806c5dc2d8342918a8cc2065fd14fbddb3303282693/fonttools-4.55.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da9da6d65cd7aa6b0f806556f4985bcbf603bf0c5c590e61b43aa3e5a0f822d0", size = 4906304 }, + { url = "https://files.pythonhosted.org/packages/0b/1b/55f85c7e962d295e456d5209581c919620ee3e877b95cd86245187a5050f/fonttools-4.55.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e894b5bd60d9f473bed7a8f506515549cc194de08064d829464088d23097331b", size = 4888087 }, + { url = "https://files.pythonhosted.org/packages/83/13/6f2809c612ea2ac51391f92468ff861c63473601530fca96458b453212bf/fonttools-4.55.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:aee3b57643827e237ff6ec6d28d9ff9766bd8b21e08cd13bff479e13d4b14765", size = 5056958 }, + { url = "https://files.pythonhosted.org/packages/c1/28/d0ea9e872fa4208b9dfca686e1dd9ca22f6c9ef33ecff2f0ebc2dbe7c29b/fonttools-4.55.3-cp311-cp311-win32.whl", hash = "sha256:eb6ca911c4c17eb51853143624d8dc87cdcdf12a711fc38bf5bd21521e79715f", size = 2173939 }, + { url = "https://files.pythonhosted.org/packages/be/36/d74ae1020bc41a1dff3e6f5a99f646563beecb97e386d27abdac3ba07650/fonttools-4.55.3-cp311-cp311-win_amd64.whl", hash = "sha256:6314bf82c54c53c71805318fcf6786d986461622dd926d92a465199ff54b1b72", size = 2220363 }, + { url = "https://files.pythonhosted.org/packages/89/58/fbcf5dff7e3ea844bb00c4d806ca1e339e1f2dce5529633bf4842c0c9a1f/fonttools-4.55.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f9e736f60f4911061235603a6119e72053073a12c6d7904011df2d8fad2c0e35", size = 2765380 }, + { url = "https://files.pythonhosted.org/packages/81/dd/da6e329e51919b4f421c8738f3497e2ab08c168e76aaef7b6d5351862bdf/fonttools-4.55.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7a8aa2c5e5b8b3bcb2e4538d929f6589a5c6bdb84fd16e2ed92649fb5454f11c", size = 2297940 }, + { url = "https://files.pythonhosted.org/packages/00/44/f5ee560858425c99ef07e04919e736db09d6416408e5a8d3bbfb4a6623fd/fonttools-4.55.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07f8288aacf0a38d174445fc78377a97fb0b83cfe352a90c9d9c1400571963c7", size = 4793327 }, + { url = "https://files.pythonhosted.org/packages/24/da/0a001926d791c55e29ac3c52964957a20dbc1963615446b568b7432891c3/fonttools-4.55.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8d5e8916c0970fbc0f6f1bece0063363bb5857a7f170121a4493e31c3db3314", size = 4865624 }, + { url = "https://files.pythonhosted.org/packages/3d/d8/1edd8b13a427a9fb6418373437caa586c0caa57f260af8e0548f4d11e340/fonttools-4.55.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ae3b6600565b2d80b7c05acb8e24d2b26ac407b27a3f2e078229721ba5698427", size = 4774166 }, + { url = "https://files.pythonhosted.org/packages/9c/ec/ade054097976c3d6debc9032e09a351505a0196aa5493edf021be376f75e/fonttools-4.55.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:54153c49913f45065c8d9e6d0c101396725c5621c8aee744719300f79771d75a", size = 5001832 }, + { url = "https://files.pythonhosted.org/packages/e2/cd/233f0e31ad799bb91fc78099c8b4e5ec43b85a131688519640d6bae46f6a/fonttools-4.55.3-cp312-cp312-win32.whl", hash = "sha256:827e95fdbbd3e51f8b459af5ea10ecb4e30af50221ca103bea68218e9615de07", size = 2162228 }, + { url = "https://files.pythonhosted.org/packages/46/45/a498b5291f6c0d91b2394b1ed7447442a57d1c9b9cf8f439aee3c316a56e/fonttools-4.55.3-cp312-cp312-win_amd64.whl", hash = "sha256:e6e8766eeeb2de759e862004aa11a9ea3d6f6d5ec710551a88b476192b64fd54", size = 2209118 }, + { url = "https://files.pythonhosted.org/packages/9c/9f/00142a19bad96eeeb1aed93f567adc19b7f2c1af6f5bc0a1c3de90b4b1ac/fonttools-4.55.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a430178ad3e650e695167cb53242dae3477b35c95bef6525b074d87493c4bf29", size = 2752812 }, + { url = "https://files.pythonhosted.org/packages/b0/20/14b8250d63ba65e162091fb0dda07730f90c303bbf5257e9ddacec7230d9/fonttools-4.55.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:529cef2ce91dc44f8e407cc567fae6e49a1786f2fefefa73a294704c415322a4", size = 2291521 }, + { url = "https://files.pythonhosted.org/packages/34/47/a681cfd10245eb74f65e491a934053ec75c4af639655446558f29818e45e/fonttools-4.55.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e75f12c82127486fac2d8bfbf5bf058202f54bf4f158d367e41647b972342ca", size = 4770980 }, + { url = "https://files.pythonhosted.org/packages/d2/6c/a7066afc19db0705a12efd812e19c32cde2b9514eb714659522f2ebd60b6/fonttools-4.55.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859c358ebf41db18fb72342d3080bce67c02b39e86b9fbcf1610cca14984841b", size = 4845534 }, + { url = "https://files.pythonhosted.org/packages/0c/a2/3c204fbabbfd845d9bdcab9ae35279d41e9a4bf5c80a0a2708f9c5a195d6/fonttools-4.55.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:546565028e244a701f73df6d8dd6be489d01617863ec0c6a42fa25bf45d43048", size = 4753910 }, + { url = "https://files.pythonhosted.org/packages/6e/8c/b4cb3592880340b89e4ef6601b531780bba73862332a6451d78fe135d6cb/fonttools-4.55.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aca318b77f23523309eec4475d1fbbb00a6b133eb766a8bdc401faba91261abe", size = 4976411 }, + { url = "https://files.pythonhosted.org/packages/fc/a8/4bf98840ff89fcc188470b59daec57322178bf36d2f4f756cd19a42a826b/fonttools-4.55.3-cp313-cp313-win32.whl", hash = "sha256:8c5ec45428edaa7022f1c949a632a6f298edc7b481312fc7dc258921e9399628", size = 2160178 }, + { url = "https://files.pythonhosted.org/packages/e6/57/4cc35004605416df3225ff362f3455cf09765db00df578ae9e46d0fefd23/fonttools-4.55.3-cp313-cp313-win_amd64.whl", hash = "sha256:11e5de1ee0d95af4ae23c1a138b184b7f06e0b6abacabf1d0db41c90b03d834b", size = 2206102 }, + { url = "https://files.pythonhosted.org/packages/99/3b/406d17b1f63e04a82aa621936e6e1c53a8c05458abd66300ac85ea7f9ae9/fonttools-4.55.3-py3-none-any.whl", hash = "sha256:f412604ccbeee81b091b420272841e5ec5ef68967a9790e80bffd0e30b8e2977", size = 1111638 }, ] [[package]] @@ -4700,9 +1810,6 @@ io = [ { name = "uxarray", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "xarray", extra = ["complete"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -netcdf = [ - { name = "netcdf4", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, -] [package.metadata] requires-dist = [ @@ -4714,9 +1821,8 @@ requires-dist = [ { name = "gt4py", extras = ["dace"], marker = "extra == 'dace'", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "holoviews", marker = "extra == 'io'", specifier = ">=1.16.0" }, { name = "icon4py-common", extras = ["distributed", "io", "dace"], marker = "extra == 'all'", editable = "model/common" }, - { name = "icon4py-common", extras = ["netcdf"], marker = "extra == 'io'", editable = "model/common" }, { name = "mpi4py", marker = "extra == 'distributed'", specifier = ">=3.1.5" }, - { name = "netcdf4", marker = "extra == 'netcdf'", specifier = ">=1.6.1" }, + { name = "netcdf4", marker = "extra == 'io'", specifier = ">=1.6.1" }, { name = "numpy", marker = "extra == 'io'", specifier = ">=1.23.3" }, { name = "packaging", specifier = ">=20.0" }, { name = "scikit-learn", marker = "extra == 'io'", specifier = ">=1.4.0" }, @@ -4737,6 +1843,7 @@ dependencies = [ { name = "icon4py-atmosphere-diffusion", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-atmosphere-dycore", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-testing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] @@ -4748,6 +1855,7 @@ requires-dist = [ { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, { name = "icon4py-common", editable = "model/common" }, + { name = "icon4py-testing", editable = "model/testing" }, { name = "packaging", specifier = ">=20.0" }, ] @@ -4757,7 +1865,7 @@ version = "0.0.6" source = { editable = "model/testing" } dependencies = [ { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-common", extra = ["netcdf"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", extra = ["io"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, @@ -4769,7 +1877,7 @@ dependencies = [ [package.metadata] requires-dist = [ { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, - { name = "icon4py-common", extras = ["netcdf"], editable = "model/common" }, + { name = "icon4py-common", extras = ["io"], editable = "model/common" }, { name = "numpy", specifier = ">=1.23.3" }, { name = "packaging", specifier = ">=20.0" }, { name = "pytest", specifier = ">=8.0.1" }, @@ -4789,7 +1897,7 @@ dependencies = [ { name = "icon4py-atmosphere-advection", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-atmosphere-diffusion", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "icon4py-atmosphere-dycore", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-common", extra = ["netcdf"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] @@ -4812,7 +1920,7 @@ requires-dist = [ { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, - { name = "icon4py-common", extras = ["netcdf"], editable = "model/common" }, + { name = "icon4py-common", editable = "model/common" }, { name = "numpy", specifier = ">=1.23.3" }, { name = "packaging", specifier = ">=20.0" }, ] @@ -5057,14 +2165,14 @@ wheels = [ [[package]] name = "mako" -version = "1.3.6" +version = "1.3.8" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fa/0b/29bc5a230948bf209d3ed3165006d257e547c02c3c2a96f6286320dfe8dc/mako-1.3.6.tar.gz", hash = "sha256:9ec3a1583713479fae654f83ed9fa8c9a4c16b7bb0daba0e6bbebff50c0d983d", size = 390206 } +sdist = { url = "https://files.pythonhosted.org/packages/5f/d9/8518279534ed7dace1795d5a47e49d5299dd0994eed1053996402a8902f9/mako-1.3.8.tar.gz", hash = "sha256:577b97e414580d3e088d47c2dbbe9594aa7a5146ed2875d4dfa9075af2dd3cc8", size = 392069 } wheels = [ - { url = "https://files.pythonhosted.org/packages/48/22/bc14c6f02e6dccaafb3eba95764c8f096714260c2aa5f76f654fd16a23dd/Mako-1.3.6-py3-none-any.whl", hash = "sha256:a91198468092a2f1a0de86ca92690fb0cfc43ca90ee17e15d93662b4c04b241a", size = 78557 }, + { url = "https://files.pythonhosted.org/packages/1e/bf/7a6a36ce2e4cafdfb202752be68850e22607fccd692847c45c1ae3c17ba6/Mako-1.3.8-py3-none-any.whl", hash = "sha256:42f48953c7eb91332040ff567eb7eea69b22e7a4affbc5ba8e845e8f730f6627", size = 78569 }, ] [[package]] @@ -5148,7 +2256,7 @@ wheels = [ [[package]] name = "matplotlib" -version = "3.9.2" +version = "3.9.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "contourpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, @@ -5161,37 +2269,38 @@ dependencies = [ { name = "pyparsing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "python-dateutil", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9e/d8/3d7f706c69e024d4287c1110d74f7dabac91d9843b99eadc90de9efc8869/matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92", size = 36088381 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/9d/84eeb82ecdd3ba71b12dd6ab5c820c5cc1e868003ecb3717d41b589ec02a/matplotlib-3.9.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9d78bbc0cbc891ad55b4f39a48c22182e9bdaea7fc0e5dbd364f49f729ca1bbb", size = 7893310 }, - { url = "https://files.pythonhosted.org/packages/36/98/cbacbd30241369d099f9c13a2b6bc3b7068d85214f5b5795e583ac3d8aba/matplotlib-3.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c375cc72229614632c87355366bdf2570c2dac01ac66b8ad048d2dabadf2d0d4", size = 7764089 }, - { url = "https://files.pythonhosted.org/packages/a8/a0/917f3c6d3a8774a3a1502d9f3dfc1456e07c1fa0c211a23b75a69e154180/matplotlib-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d94ff717eb2bd0b58fe66380bd8b14ac35f48a98e7c6765117fe67fb7684e64", size = 8192377 }, - { url = "https://files.pythonhosted.org/packages/8d/9d/d06860390f9d154fa884f1740a5456378fb153ff57443c91a4a32bab7092/matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab68d50c06938ef28681073327795c5db99bb4666214d2d5f880ed11aeaded66", size = 8303983 }, - { url = "https://files.pythonhosted.org/packages/9e/a7/c0e848ed7de0766c605af62d8097472a37f1a81d93e9afe94faa5890f24d/matplotlib-3.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:65aacf95b62272d568044531e41de26285d54aec8cb859031f511f84bd8b495a", size = 9083318 }, - { url = "https://files.pythonhosted.org/packages/09/6c/0fa50c001340a45cde44853c116d6551aea741e59a7261c38f473b53553b/matplotlib-3.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:3fd595f34aa8a55b7fc8bf9ebea8aa665a84c82d275190a61118d33fbc82ccae", size = 7819628 }, - { url = "https://files.pythonhosted.org/packages/77/c2/f9d7fe80a8fcce9bb128d1381c6fe41a8d286d7e18395e273002e8e0fa34/matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772", size = 7902925 }, - { url = "https://files.pythonhosted.org/packages/28/ba/8be09886eb56ac04a218a1dc3fa728a5c4cac60b019b4f1687885166da00/matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41", size = 7773193 }, - { url = "https://files.pythonhosted.org/packages/e6/9a/5991972a560db3ab621312a7ca5efec339ae2122f25901c0846865c4b72f/matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f", size = 8202378 }, - { url = "https://files.pythonhosted.org/packages/01/75/6c7ce560e95714a10fcbb3367d1304975a1a3e620f72af28921b796403f3/matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447", size = 8314361 }, - { url = "https://files.pythonhosted.org/packages/6e/49/dc7384c6c092958e0b75e754efbd9e52500154939c3d715789cee9fb8a53/matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e", size = 9091428 }, - { url = "https://files.pythonhosted.org/packages/8b/ce/15b0bb2fb29b3d46211d8ca740b96b5232499fc49200b58b8d571292c9a6/matplotlib-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:ae82a14dab96fbfad7965403c643cafe6515e386de723e498cf3eeb1e0b70cc7", size = 7829377 }, - { url = "https://files.pythonhosted.org/packages/82/de/54f7f38ce6de79cb77d513bb3eaa4e0b1031e9fd6022214f47943fa53a88/matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9", size = 7892511 }, - { url = "https://files.pythonhosted.org/packages/35/3e/5713b84a02b24b2a4bd4d6673bfc03017e6654e1d8793ece783b7ed4d484/matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d", size = 7769370 }, - { url = "https://files.pythonhosted.org/packages/5b/bd/c404502aa1824456d2862dd6b9b0c1917761a51a32f7f83ff8cf94b6d117/matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7", size = 8193260 }, - { url = "https://files.pythonhosted.org/packages/27/75/de5b9cd67648051cae40039da0c8cbc497a0d99acb1a1f3d087cd66d27b7/matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c", size = 8306310 }, - { url = "https://files.pythonhosted.org/packages/de/e3/2976e4e54d7ee76eaf54b7639fdc10a223d05c2bdded7045233e9871e469/matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e", size = 9086717 }, - { url = "https://files.pythonhosted.org/packages/d2/92/c2b9464a0562feb6ae780bdc152364810862e07ef5e6affa2b7686028db2/matplotlib-3.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:5413401594cfaff0052f9d8b1aafc6d305b4bd7c4331dccd18f561ff7e1d3bd3", size = 7832805 }, - { url = "https://files.pythonhosted.org/packages/5c/7f/8932eac316b32f464b8f9069f151294dcd892c8fbde61fe8bcd7ba7f7f7e/matplotlib-3.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:18128cc08f0d3cfff10b76baa2f296fc28c4607368a8402de61bb3f2eb33c7d9", size = 7893012 }, - { url = "https://files.pythonhosted.org/packages/90/89/9db9db3dd0ff3e2c49e452236dfe29e60b5586a88f8928ca1d153d0da8b5/matplotlib-3.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4876d7d40219e8ae8bb70f9263bcbe5714415acfdf781086601211335e24f8aa", size = 7769810 }, - { url = "https://files.pythonhosted.org/packages/67/26/d2661cdc2e1410b8929c5f12dfd521e4528abfed1b3c3d5a28ac48258b43/matplotlib-3.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d9f07a80deab4bb0b82858a9e9ad53d1382fd122be8cde11080f4e7dfedb38b", size = 8193779 }, - { url = "https://files.pythonhosted.org/packages/95/70/4839eaa672bf4eacc98ebc8d23633e02b6daf39e294e7433c4ab11a689be/matplotlib-3.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7c0410f181a531ec4e93bbc27692f2c71a15c2da16766f5ba9761e7ae518413", size = 8306260 }, - { url = "https://files.pythonhosted.org/packages/88/62/7b263b2cb2724b45d3a4f9c8c6137696cc3ef037d44383fb01ac2a9555c2/matplotlib-3.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:909645cce2dc28b735674ce0931a4ac94e12f5b13f6bb0b5a5e65e7cea2c192b", size = 9086073 }, - { url = "https://files.pythonhosted.org/packages/b0/6d/3572fe243c74112fef120f0bc86f5edd21f49b60e8322fc7f6a01fe945dd/matplotlib-3.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:f32c7410c7f246838a77d6d1eff0c0f87f3cb0e7c4247aebea71a6d5a68cab49", size = 7833041 }, - { url = "https://files.pythonhosted.org/packages/03/8f/9d505be3eb2f40ec731674fb6b47d10cc3147bbd6a9ea7a08c8da55415c6/matplotlib-3.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:37e51dd1c2db16ede9cfd7b5cabdfc818b2c6397c83f8b10e0e797501c963a03", size = 7933657 }, - { url = "https://files.pythonhosted.org/packages/5d/68/44b458b9794bcff2a66921f8c9a8110a50a0bb099bd5f7cabb428a1dc765/matplotlib-3.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b82c5045cebcecd8496a4d694d43f9cc84aeeb49fe2133e036b207abe73f4d30", size = 7799276 }, - { url = "https://files.pythonhosted.org/packages/47/79/8486d4ddcaaf676314b5fb58e8fe19d1a6210a443a7c31fa72d4215fcb87/matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f053c40f94bc51bc03832a41b4f153d83f2062d88c72b5e79997072594e97e51", size = 8221027 }, - { url = "https://files.pythonhosted.org/packages/56/62/72a472181578c3d035dcda0d0fa2e259ba2c4cb91132588a348bb705b70d/matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbe196377a8248972f5cede786d4c5508ed5f5ca4a1e09b44bda889958b33f8c", size = 8329097 }, - { url = "https://files.pythonhosted.org/packages/01/8a/760f7fce66b39f447ad160800619d0bd5d0936d2b4633587116534a4afe0/matplotlib-3.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5816b1e1fe8c192cbc013f8f3e3368ac56fbecf02fb41b8f8559303f24c5015e", size = 9093770 }, +sdist = { url = "https://files.pythonhosted.org/packages/df/17/1747b4154034befd0ed33b52538f5eb7752d05bb51c5e2a31470c3bc7d52/matplotlib-3.9.4.tar.gz", hash = "sha256:1e00e8be7393cbdc6fedfa8a6fba02cf3e83814b285db1c60b906a023ba41bc3", size = 36106529 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/94/27d2e2c30d54b56c7b764acc1874a909e34d1965a427fc7092bb6a588b63/matplotlib-3.9.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c5fdd7abfb706dfa8d307af64a87f1a862879ec3cd8d0ec8637458f0885b9c50", size = 7885089 }, + { url = "https://files.pythonhosted.org/packages/c6/25/828273307e40a68eb8e9df832b6b2aaad075864fdc1de4b1b81e40b09e48/matplotlib-3.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d89bc4e85e40a71d1477780366c27fb7c6494d293e1617788986f74e2a03d7ff", size = 7770600 }, + { url = "https://files.pythonhosted.org/packages/f2/65/f841a422ec994da5123368d76b126acf4fc02ea7459b6e37c4891b555b83/matplotlib-3.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddf9f3c26aae695c5daafbf6b94e4c1a30d6cd617ba594bbbded3b33a1fcfa26", size = 8200138 }, + { url = "https://files.pythonhosted.org/packages/07/06/272aca07a38804d93b6050813de41ca7ab0e29ba7a9dd098e12037c919a9/matplotlib-3.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18ebcf248030173b59a868fda1fe42397253f6698995b55e81e1f57431d85e50", size = 8312711 }, + { url = "https://files.pythonhosted.org/packages/98/37/f13e23b233c526b7e27ad61be0a771894a079e0f7494a10d8d81557e0e9a/matplotlib-3.9.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974896ec43c672ec23f3f8c648981e8bc880ee163146e0312a9b8def2fac66f5", size = 9090622 }, + { url = "https://files.pythonhosted.org/packages/4f/8c/b1f5bd2bd70e60f93b1b54c4d5ba7a992312021d0ddddf572f9a1a6d9348/matplotlib-3.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:4598c394ae9711cec135639374e70871fa36b56afae17bdf032a345be552a88d", size = 7828211 }, + { url = "https://files.pythonhosted.org/packages/74/4b/65be7959a8fa118a3929b49a842de5b78bb55475236fcf64f3e308ff74a0/matplotlib-3.9.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d4dd29641d9fb8bc4492420c5480398dd40a09afd73aebe4eb9d0071a05fbe0c", size = 7894430 }, + { url = "https://files.pythonhosted.org/packages/e9/18/80f70d91896e0a517b4a051c3fd540daa131630fd75e02e250365353b253/matplotlib-3.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30e5b22e8bcfb95442bf7d48b0d7f3bdf4a450cbf68986ea45fca3d11ae9d099", size = 7780045 }, + { url = "https://files.pythonhosted.org/packages/a2/73/ccb381026e3238c5c25c3609ba4157b2d1a617ec98d65a8b4ee4e1e74d02/matplotlib-3.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bb0030d1d447fd56dcc23b4c64a26e44e898f0416276cac1ebc25522e0ac249", size = 8209906 }, + { url = "https://files.pythonhosted.org/packages/ab/33/1648da77b74741c89f5ea95cbf42a291b4b364f2660b316318811404ed97/matplotlib-3.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aca90ed222ac3565d2752b83dbb27627480d27662671e4d39da72e97f657a423", size = 8322873 }, + { url = "https://files.pythonhosted.org/packages/57/d3/8447ba78bc6593c9044c372d1609f8ea10fb1e071e7a9e0747bea74fc16c/matplotlib-3.9.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a181b2aa2906c608fcae72f977a4a2d76e385578939891b91c2550c39ecf361e", size = 9099566 }, + { url = "https://files.pythonhosted.org/packages/23/e1/4f0e237bf349c02ff9d1b6e7109f1a17f745263809b9714a8576dc17752b/matplotlib-3.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:1f6882828231eca17f501c4dcd98a05abb3f03d157fbc0769c6911fe08b6cfd3", size = 7838065 }, + { url = "https://files.pythonhosted.org/packages/1a/2b/c918bf6c19d6445d1cefe3d2e42cb740fb997e14ab19d4daeb6a7ab8a157/matplotlib-3.9.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:dfc48d67e6661378a21c2983200a654b72b5c5cdbd5d2cf6e5e1ece860f0cc70", size = 7891131 }, + { url = "https://files.pythonhosted.org/packages/c1/e5/b4e8fc601ca302afeeabf45f30e706a445c7979a180e3a978b78b2b681a4/matplotlib-3.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:47aef0fab8332d02d68e786eba8113ffd6f862182ea2999379dec9e237b7e483", size = 7776365 }, + { url = "https://files.pythonhosted.org/packages/99/06/b991886c506506476e5d83625c5970c656a491b9f80161458fed94597808/matplotlib-3.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fba1f52c6b7dc764097f52fd9ab627b90db452c9feb653a59945de16752e965f", size = 8200707 }, + { url = "https://files.pythonhosted.org/packages/c3/e2/556b627498cb27e61026f2d1ba86a78ad1b836fef0996bef5440e8bc9559/matplotlib-3.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:173ac3748acaac21afcc3fa1633924609ba1b87749006bc25051c52c422a5d00", size = 8313761 }, + { url = "https://files.pythonhosted.org/packages/58/ff/165af33ec766ff818306ea88e91f9f60d2a6ed543be1eb122a98acbf3b0d/matplotlib-3.9.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320edea0cadc07007765e33f878b13b3738ffa9745c5f707705692df70ffe0e0", size = 9095284 }, + { url = "https://files.pythonhosted.org/packages/9f/8b/3d0c7a002db3b1ed702731c2a9a06d78d035f1f2fb0fb936a8e43cc1e9f4/matplotlib-3.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a4a4cfc82330b27042a7169533da7991e8789d180dd5b3daeaee57d75cd5a03b", size = 7841160 }, + { url = "https://files.pythonhosted.org/packages/49/b1/999f89a7556d101b23a2f0b54f1b6e140d73f56804da1398f2f0bc0924bc/matplotlib-3.9.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:37eeffeeca3c940985b80f5b9a7b95ea35671e0e7405001f249848d2b62351b6", size = 7891499 }, + { url = "https://files.pythonhosted.org/packages/87/7b/06a32b13a684977653396a1bfcd34d4e7539c5d55c8cbfaa8ae04d47e4a9/matplotlib-3.9.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3e7465ac859ee4abcb0d836137cd8414e7bb7ad330d905abced457217d4f0f45", size = 7776802 }, + { url = "https://files.pythonhosted.org/packages/65/87/ac498451aff739e515891bbb92e566f3c7ef31891aaa878402a71f9b0910/matplotlib-3.9.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4c12302c34afa0cf061bea23b331e747e5e554b0fa595c96e01c7b75bc3b858", size = 8200802 }, + { url = "https://files.pythonhosted.org/packages/f8/6b/9eb761c00e1cb838f6c92e5f25dcda3f56a87a52f6cb8fdfa561e6cf6a13/matplotlib-3.9.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b8c97917f21b75e72108b97707ba3d48f171541a74aa2a56df7a40626bafc64", size = 8313880 }, + { url = "https://files.pythonhosted.org/packages/d7/a2/c8eaa600e2085eec7e38cbbcc58a30fc78f8224939d31d3152bdafc01fd1/matplotlib-3.9.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0229803bd7e19271b03cb09f27db76c918c467aa4ce2ae168171bc67c3f508df", size = 9094637 }, + { url = "https://files.pythonhosted.org/packages/71/1f/c6e1daea55b7bfeb3d84c6cb1abc449f6a02b181e7e2a5e4db34c3afb793/matplotlib-3.9.4-cp313-cp313-win_amd64.whl", hash = "sha256:7c0d8ef442ebf56ff5e206f8083d08252ee738e04f3dc88ea882853a05488799", size = 7841311 }, + { url = "https://files.pythonhosted.org/packages/c0/3a/2757d3f7d388b14dd48f5a83bea65b6d69f000e86b8f28f74d86e0d375bd/matplotlib-3.9.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a04c3b00066a688834356d196136349cb32f5e1003c55ac419e91585168b88fb", size = 7919989 }, + { url = "https://files.pythonhosted.org/packages/24/28/f5077c79a4f521589a37fe1062d6a6ea3534e068213f7357e7cfffc2e17a/matplotlib-3.9.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:04c519587f6c210626741a1e9a68eefc05966ede24205db8982841826af5871a", size = 7809417 }, + { url = "https://files.pythonhosted.org/packages/36/c8/c523fd2963156692916a8eb7d4069084cf729359f7955cf09075deddfeaf/matplotlib-3.9.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308afbf1a228b8b525fcd5cec17f246bbbb63b175a3ef6eb7b4d33287ca0cf0c", size = 8226258 }, + { url = "https://files.pythonhosted.org/packages/f6/88/499bf4b8fa9349b6f5c0cf4cead0ebe5da9d67769129f1b5651e5ac51fbc/matplotlib-3.9.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddb3b02246ddcffd3ce98e88fed5b238bc5faff10dbbaa42090ea13241d15764", size = 8335849 }, + { url = "https://files.pythonhosted.org/packages/b8/9f/20a4156b9726188646a030774ee337d5ff695a965be45ce4dbcb9312c170/matplotlib-3.9.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8a75287e9cb9eee48cb79ec1d806f75b29c0fde978cb7223a1f4c5848d696041", size = 9102152 }, + { url = "https://files.pythonhosted.org/packages/10/11/237f9c3a4e8d810b1759b67ff2da7c32c04f9c80aa475e7beb36ed43a8fb/matplotlib-3.9.4-cp313-cp313t-win_amd64.whl", hash = "sha256:488deb7af140f0ba86da003e66e10d55ff915e152c78b4b66d231638400b1965", size = 7896987 }, ] [[package]] @@ -5374,11 +2483,11 @@ wheels = [ [[package]] name = "nanobind" -version = "2.2.0" +version = "2.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c5/f2/f1e6c86edf90caf04a4c28e789b15a6a5aa87a5e037e0bf03bbfcc4937b6/nanobind-2.2.0.tar.gz", hash = "sha256:53fa7a6227bddecaa4a0710e0b8dc18fad4c8ded7a0a31d6eddcf68009ead603", size = 944277 } +sdist = { url = "https://files.pythonhosted.org/packages/1e/01/a28722f6626e5c8a606dee71cb40c0b2ab9f7715b96bd34a9553c79dbf42/nanobind-2.4.0.tar.gz", hash = "sha256:a0392dee5f58881085b2ac8bfe8e53f74285aa4868b1472bfaf76cfb414e1c96", size = 953467 } wheels = [ - { url = "https://files.pythonhosted.org/packages/52/af/7032b05a35284e741666acbf3eac3a14b5e81cd92264ac775426884ed460/nanobind-2.2.0-py3-none-any.whl", hash = "sha256:138685ec9c5de4f57dd02d715b89ffcbcabae39c4e36b8b2c40eea2f1aa2f0d7", size = 231618 }, + { url = "https://files.pythonhosted.org/packages/7a/07/abff41fcade3613349eac71dacb166352babef515efd960a751e3175c262/nanobind-2.4.0-py3-none-any.whl", hash = "sha256:8cf27b04fbadeb9deb4a73f02bd838bf9f7e3e5a8ce44c50c93142b5728da58a", size = 232882 }, ] [[package]] @@ -6033,16 +3142,16 @@ wheels = [ [[package]] name = "pydantic" -version = "2.10.2" +version = "2.10.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-types", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "pydantic-core", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/41/86/a03390cb12cf64e2a8df07c267f3eb8d5035e0f9a04bb20fb79403d2a00e/pydantic-2.10.2.tar.gz", hash = "sha256:2bc2d7f17232e0841cbba4641e65ba1eb6fafb3a08de3a091ff3ce14a197c4fa", size = 785401 } +sdist = { url = "https://files.pythonhosted.org/packages/45/0f/27908242621b14e649a84e62b133de45f84c255eecb350ab02979844a788/pydantic-2.10.3.tar.gz", hash = "sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9", size = 786486 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d5/74/da832196702d0c56eb86b75bfa346db9238617e29b0b7ee3b8b4eccfe654/pydantic-2.10.2-py3-none-any.whl", hash = "sha256:cfb96e45951117c3024e6b67b25cdc33a3cb7b2fa62e239f7af1378358a1d99e", size = 456364 }, + { url = "https://files.pythonhosted.org/packages/62/51/72c18c55cf2f46ff4f91ebcc8f75aa30f7305f3d726be3f4ebffb4ae972b/pydantic-2.10.3-py3-none-any.whl", hash = "sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d", size = 456997 }, ] [[package]] @@ -6122,27 +3231,27 @@ wheels = [ [[package]] name = "pydantic-settings" -version = "2.6.1" +version = "2.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "python-dotenv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b5/d4/9dfbe238f45ad8b168f5c96ee49a3df0598ce18a0795a983b419949ce65b/pydantic_settings-2.6.1.tar.gz", hash = "sha256:e0f92546d8a9923cb8941689abf85d6601a8c19a23e97a34b2964a2e3f813ca0", size = 75646 } +sdist = { url = "https://files.pythonhosted.org/packages/86/41/19b62b99e7530cfa1d6ccd16199afd9289a12929bef1a03aa4382b22e683/pydantic_settings-2.7.0.tar.gz", hash = "sha256:ac4bfd4a36831a48dbf8b2d9325425b549a0a6f18cea118436d728eb4f1c4d66", size = 79743 } wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/f9/ff95fd7d760af42f647ea87f9b8a383d891cdb5e5dbd4613edaeb094252a/pydantic_settings-2.6.1-py3-none-any.whl", hash = "sha256:7fb0637c786a558d3103436278a7c4f1cfd29ba8973238a50c5bb9a55387da87", size = 28595 }, + { url = "https://files.pythonhosted.org/packages/f9/00/57b4540deb5c3a39ba689bb519a4e03124b24ab8589e618be4aac2c769bd/pydantic_settings-2.7.0-py3-none-any.whl", hash = "sha256:e00c05d5fa6cbbb227c84bd7487c5c1065084119b750df7c8c1a554aed236eb5", size = 29549 }, ] [[package]] name = "pydot" -version = "3.0.2" +version = "3.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyparsing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/85/10/4e4da8c271540dc35914e927546cbb821397f0f9477f4079cd8732946699/pydot-3.0.2.tar.gz", hash = "sha256:9180da540b51b3aa09fbf81140b3edfbe2315d778e8589a7d0a4a69c41332bae", size = 167979 } +sdist = { url = "https://files.pythonhosted.org/packages/bf/b8/500a772825c7ca87e4fd69c3bd6740e3375d6792a7065dd92759249f223d/pydot-3.0.3.tar.gz", hash = "sha256:5e009d97b2fff92b7a88f09ec1fd5b163f07f3b10469c927d362471d6faa0d50", size = 168086 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/e4/463fd46922e0b0b369305662f85f1c70dcc1cde1584906cf8defed8308a3/pydot-3.0.2-py3-none-any.whl", hash = "sha256:99cedaa55d04abb0b2bc56d9981a6da781053dd5ac75c428e8dd53db53f90b14", size = 35773 }, + { url = "https://files.pythonhosted.org/packages/3e/1b/ef569ac44598b6b24bc0f80d5ac4f811af59d3f0d0d23b0216e014c0ec33/pydot-3.0.3-py3-none-any.whl", hash = "sha256:9b0b3081e0bd362d0c61148da10eb1281ec80089b02a28cf06f9093843986f3d", size = 35784 }, ] [[package]] @@ -6228,7 +3337,7 @@ wheels = [ [[package]] name = "pytest" -version = "8.3.3" +version = "8.3.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "implementation_name == 'cpython' and sys_platform == 'win32'" }, @@ -6238,9 +3347,9 @@ dependencies = [ { name = "pluggy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8b/6c/62bbd536103af674e227c41a8f3dcd022d591f6eed5facb5a0f31ee33bbc/pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181", size = 1442487 } +sdist = { url = "https://files.pythonhosted.org/packages/05/35/30e0d83068951d90a01852cb1cef56e5d8a09d20c7f511634cc2f7e0372a/pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761", size = 1445919 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/77/7440a06a8ead44c7757a64362dd22df5760f9b12dc5f11b6188cd2fc27a0/pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2", size = 342341 }, + { url = "https://files.pythonhosted.org/packages/11/92/76a1c94d3afee238333bc0a42b82935dd8f9cf8ce9e336ff87ee14d9e1cf/pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6", size = 343083 }, ] [[package]] @@ -6454,16 +3563,16 @@ wheels = [ [[package]] name = "rich-click" -version = "1.8.4" +version = "1.8.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "rich", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fc/f4/e48dc2850662526a26fb0961aacb0162c6feab934312b109b748ae4efee2/rich_click-1.8.4.tar.gz", hash = "sha256:0f49471f04439269d0e66a6f43120f52d11d594869a2a0be600cfb12eb0616b9", size = 38247 } +sdist = { url = "https://files.pythonhosted.org/packages/9a/31/103501e85e885e3e202c087fa612cfe450693210372766552ce1ab5b57b9/rich_click-1.8.5.tar.gz", hash = "sha256:a3eebe81da1c9da3c32f3810017c79bd687ff1b3fa35bfc9d8a3338797f1d1a1", size = 38229 } wheels = [ - { url = "https://files.pythonhosted.org/packages/84/f3/72f93d8494ee641bde76bfe1208cf4abc44c6f9448673762f6077bc162d6/rich_click-1.8.4-py3-none-any.whl", hash = "sha256:2d2841b3cebe610d5682baa1194beaf78ab00c4fa31931533261b5eba2ee80b7", size = 35071 }, + { url = "https://files.pythonhosted.org/packages/aa/0b/e2de98c538c0ee9336211d260f88b7e69affab44969750aaca0b48a697c8/rich_click-1.8.5-py3-none-any.whl", hash = "sha256:0fab7bb5b66c15da17c210b4104277cd45f3653a7322e0098820a169880baee0", size = 35081 }, ] [[package]] @@ -6490,6 +3599,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7f/b7/20c6f3c0b656fe609675d69bc135c03aac9e3865912444be6339207b6648/ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f66efbc1caa63c088dead1c4170d148eabc9b80d95fb75b6c92ac0aad2437d76", size = 686712 }, { url = "https://files.pythonhosted.org/packages/cd/11/d12dbf683471f888d354dac59593873c2b45feb193c5e3e0f2ebf85e68b9/ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22353049ba4181685023b25b5b51a574bce33e7f51c759371a7422dcae5402a6", size = 663936 }, { url = "https://files.pythonhosted.org/packages/72/14/4c268f5077db5c83f743ee1daeb236269fa8577133a5cfa49f8b382baf13/ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:932205970b9f9991b34f55136be327501903f7c66830e9760a8ffb15b07f05cd", size = 696580 }, + { url = "https://files.pythonhosted.org/packages/30/fc/8cd12f189c6405a4c1cf37bd633aa740a9538c8e40497c231072d0fef5cf/ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a52d48f4e7bf9005e8f0a89209bf9a73f7190ddf0489eee5eb51377385f59f2a", size = 663393 }, { url = "https://files.pythonhosted.org/packages/80/29/c0a017b704aaf3cbf704989785cd9c5d5b8ccec2dae6ac0c53833c84e677/ruamel.yaml.clib-0.2.12-cp310-cp310-win32.whl", hash = "sha256:3eac5a91891ceb88138c113f9db04f3cebdae277f5d44eaa3651a4f573e6a5da", size = 100326 }, { url = "https://files.pythonhosted.org/packages/3a/65/fa39d74db4e2d0cd252355732d966a460a41cd01c6353b820a0952432839/ruamel.yaml.clib-0.2.12-cp310-cp310-win_amd64.whl", hash = "sha256:ab007f2f5a87bd08ab1499bdf96f3d5c6ad4dcfa364884cb4549aa0154b13a28", size = 118079 }, { url = "https://files.pythonhosted.org/packages/fb/8f/683c6ad562f558cbc4f7c029abcd9599148c51c54b5ef0f24f2638da9fbb/ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6", size = 132224 }, @@ -6498,6 +3608,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/86/29/88c2567bc893c84d88b4c48027367c3562ae69121d568e8a3f3a8d363f4d/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:811ea1594b8a0fb466172c384267a4e5e367298af6b228931f273b111f17ef52", size = 703012 }, { url = "https://files.pythonhosted.org/packages/11/46/879763c619b5470820f0cd6ca97d134771e502776bc2b844d2adb6e37753/ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cf12567a7b565cbf65d438dec6cfbe2917d3c1bdddfce84a9930b7d35ea59642", size = 704352 }, { url = "https://files.pythonhosted.org/packages/02/80/ece7e6034256a4186bbe50dee28cd032d816974941a6abf6a9d65e4228a7/ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7dd5adc8b930b12c8fc5b99e2d535a09889941aa0d0bd06f4749e9a9397c71d2", size = 737344 }, + { url = "https://files.pythonhosted.org/packages/f0/ca/e4106ac7e80efbabdf4bf91d3d32fc424e41418458251712f5672eada9ce/ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1492a6051dab8d912fc2adeef0e8c72216b24d57bd896ea607cb90bb0c4981d3", size = 714498 }, { url = "https://files.pythonhosted.org/packages/67/58/b1f60a1d591b771298ffa0428237afb092c7f29ae23bad93420b1eb10703/ruamel.yaml.clib-0.2.12-cp311-cp311-win32.whl", hash = "sha256:bd0a08f0bab19093c54e18a14a10b4322e1eacc5217056f3c063bd2f59853ce4", size = 100205 }, { url = "https://files.pythonhosted.org/packages/b4/4f/b52f634c9548a9291a70dfce26ca7ebce388235c93588a1068028ea23fcc/ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl", hash = "sha256:a274fb2cb086c7a3dea4322ec27f4cb5cc4b6298adb583ab0e211a4682f241eb", size = 118185 }, { url = "https://files.pythonhosted.org/packages/48/41/e7a405afbdc26af961678474a55373e1b323605a4f5e2ddd4a80ea80f628/ruamel.yaml.clib-0.2.12-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:20b0f8dc160ba83b6dcc0e256846e1a02d044e13f7ea74a3d1d56ede4e48c632", size = 133433 }, @@ -6506,6 +3617,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/52/a9/d39f3c5ada0a3bb2870d7db41901125dbe2434fa4f12ca8c5b83a42d7c53/ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:749c16fcc4a2b09f28843cda5a193e0283e47454b63ec4b81eaa2242f50e4ccd", size = 706497 }, { url = "https://files.pythonhosted.org/packages/b0/fa/097e38135dadd9ac25aecf2a54be17ddf6e4c23e43d538492a90ab3d71c6/ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bf165fef1f223beae7333275156ab2022cffe255dcc51c27f066b4370da81e31", size = 698042 }, { url = "https://files.pythonhosted.org/packages/ec/d5/a659ca6f503b9379b930f13bc6b130c9f176469b73b9834296822a83a132/ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:32621c177bbf782ca5a18ba4d7af0f1082a3f6e517ac2a18b3974d4edf349680", size = 745831 }, + { url = "https://files.pythonhosted.org/packages/db/5d/36619b61ffa2429eeaefaab4f3374666adf36ad8ac6330d855848d7d36fd/ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b82a7c94a498853aa0b272fd5bc67f29008da798d4f93a2f9f289feb8426a58d", size = 715692 }, { url = "https://files.pythonhosted.org/packages/b1/82/85cb92f15a4231c89b95dfe08b09eb6adca929ef7df7e17ab59902b6f589/ruamel.yaml.clib-0.2.12-cp312-cp312-win32.whl", hash = "sha256:e8c4ebfcfd57177b572e2040777b8abc537cdef58a2120e830124946aa9b42c5", size = 98777 }, { url = "https://files.pythonhosted.org/packages/d7/8f/c3654f6f1ddb75daf3922c3d8fc6005b1ab56671ad56ffb874d908bfa668/ruamel.yaml.clib-0.2.12-cp312-cp312-win_amd64.whl", hash = "sha256:0467c5965282c62203273b838ae77c0d29d7638c8a4e3a1c8bdd3602c10904e4", size = 115523 }, { url = "https://files.pythonhosted.org/packages/29/00/4864119668d71a5fa45678f380b5923ff410701565821925c69780356ffa/ruamel.yaml.clib-0.2.12-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4c8c5d82f50bb53986a5e02d1b3092b03622c02c2eb78e29bec33fd9593bae1a", size = 132011 }, @@ -6514,38 +3626,39 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e2/a9/28f60726d29dfc01b8decdb385de4ced2ced9faeb37a847bd5cf26836815/ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96777d473c05ee3e5e3c3e999f5d23c6f4ec5b0c38c098b3a5229085f74236c6", size = 701785 }, { url = "https://files.pythonhosted.org/packages/84/7e/8e7ec45920daa7f76046578e4f677a3215fe8f18ee30a9cb7627a19d9b4c/ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:3bc2a80e6420ca8b7d3590791e2dfc709c88ab9152c00eeb511c9875ce5778bf", size = 693017 }, { url = "https://files.pythonhosted.org/packages/c5/b3/d650eaade4ca225f02a648321e1ab835b9d361c60d51150bac49063b83fa/ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e188d2699864c11c36cdfdada94d781fd5d6b0071cd9c427bceb08ad3d7c70e1", size = 741270 }, + { url = "https://files.pythonhosted.org/packages/87/b8/01c29b924dcbbed75cc45b30c30d565d763b9c4d540545a0eeecffb8f09c/ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4f6f3eac23941b32afccc23081e1f50612bdbe4e982012ef4f5797986828cd01", size = 709059 }, { url = "https://files.pythonhosted.org/packages/30/8c/ed73f047a73638257aa9377ad356bea4d96125b305c34a28766f4445cc0f/ruamel.yaml.clib-0.2.12-cp313-cp313-win32.whl", hash = "sha256:6442cb36270b3afb1b4951f060eccca1ce49f3d087ca1ca4563a6eb479cb3de6", size = 98583 }, { 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.8.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/95/d0/8ff5b189d125f4260f2255d143bf2fa413b69c2610c405ace7a0a8ec81ec/ruff-0.8.1.tar.gz", hash = "sha256:3583db9a6450364ed5ca3f3b4225958b24f78178908d5c4bc0f46251ccca898f", size = 3313222 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/d6/1a6314e568db88acdbb5121ed53e2c52cebf3720d3437a76f82f923bf171/ruff-0.8.1-py3-none-linux_armv6l.whl", hash = "sha256:fae0805bd514066f20309f6742f6ee7904a773eb9e6c17c45d6b1600ca65c9b5", size = 10532605 }, - { url = "https://files.pythonhosted.org/packages/89/a8/a957a8812e31facffb6a26a30be0b5b4af000a6e30c7d43a22a5232a3398/ruff-0.8.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b8a4f7385c2285c30f34b200ca5511fcc865f17578383db154e098150ce0a087", size = 10278243 }, - { url = "https://files.pythonhosted.org/packages/a8/23/9db40fa19c453fabf94f7a35c61c58f20e8200b4734a20839515a19da790/ruff-0.8.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cd054486da0c53e41e0086e1730eb77d1f698154f910e0cd9e0d64274979a209", size = 9917739 }, - { url = "https://files.pythonhosted.org/packages/e2/a0/6ee2d949835d5701d832fc5acd05c0bfdad5e89cfdd074a171411f5ccad5/ruff-0.8.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2029b8c22da147c50ae577e621a5bfbc5d1fed75d86af53643d7a7aee1d23871", size = 10779153 }, - { url = "https://files.pythonhosted.org/packages/7a/25/9c11dca9404ef1eb24833f780146236131a3c7941de394bc356912ef1041/ruff-0.8.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2666520828dee7dfc7e47ee4ea0d928f40de72056d929a7c5292d95071d881d1", size = 10304387 }, - { url = "https://files.pythonhosted.org/packages/c8/b9/84c323780db1b06feae603a707d82dbbd85955c8c917738571c65d7d5aff/ruff-0.8.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:333c57013ef8c97a53892aa56042831c372e0bb1785ab7026187b7abd0135ad5", size = 11360351 }, - { url = "https://files.pythonhosted.org/packages/6b/e1/9d4bbb2ace7aad14ded20e4674a48cda5b902aed7a1b14e6b028067060c4/ruff-0.8.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:288326162804f34088ac007139488dcb43de590a5ccfec3166396530b58fb89d", size = 12022879 }, - { url = "https://files.pythonhosted.org/packages/75/28/752ff6120c0e7f9981bc4bc275d540c7f36db1379ba9db9142f69c88db21/ruff-0.8.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b12c39b9448632284561cbf4191aa1b005882acbc81900ffa9f9f471c8ff7e26", size = 11610354 }, - { url = "https://files.pythonhosted.org/packages/ba/8c/967b61c2cc8ebd1df877607fbe462bc1e1220b4a30ae3352648aec8c24bd/ruff-0.8.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:364e6674450cbac8e998f7b30639040c99d81dfb5bbc6dfad69bc7a8f916b3d1", size = 12813976 }, - { url = "https://files.pythonhosted.org/packages/7f/29/e059f945d6bd2d90213387b8c360187f2fefc989ddcee6bbf3c241329b92/ruff-0.8.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b22346f845fec132aa39cd29acb94451d030c10874408dbf776af3aaeb53284c", size = 11154564 }, - { url = "https://files.pythonhosted.org/packages/55/47/cbd05e5a62f3fb4c072bc65c1e8fd709924cad1c7ec60a1000d1e4ee8307/ruff-0.8.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b2f2f7a7e7648a2bfe6ead4e0a16745db956da0e3a231ad443d2a66a105c04fa", size = 10760604 }, - { url = "https://files.pythonhosted.org/packages/bb/ee/4c3981c47147c72647a198a94202633130cfda0fc95cd863a553b6f65c6a/ruff-0.8.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:adf314fc458374c25c5c4a4a9270c3e8a6a807b1bec018cfa2813d6546215540", size = 10391071 }, - { url = "https://files.pythonhosted.org/packages/6b/e6/083eb61300214590b188616a8ac6ae1ef5730a0974240fb4bec9c17de78b/ruff-0.8.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a885d68342a231b5ba4d30b8c6e1b1ee3a65cf37e3d29b3c74069cdf1ee1e3c9", size = 10896657 }, - { url = "https://files.pythonhosted.org/packages/77/bd/aacdb8285d10f1b943dbeb818968efca35459afc29f66ae3bd4596fbf954/ruff-0.8.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d2c16e3508c8cc73e96aa5127d0df8913d2290098f776416a4b157657bee44c5", size = 11228362 }, - { url = "https://files.pythonhosted.org/packages/39/72/fcb7ad41947f38b4eaa702aca0a361af0e9c2bf671d7fd964480670c297e/ruff-0.8.1-py3-none-win32.whl", hash = "sha256:93335cd7c0eaedb44882d75a7acb7df4b77cd7cd0d2255c93b28791716e81790", size = 8803476 }, - { url = "https://files.pythonhosted.org/packages/e4/ea/cae9aeb0f4822c44651c8407baacdb2e5b4dcd7b31a84e1c5df33aa2cc20/ruff-0.8.1-py3-none-win_amd64.whl", hash = "sha256:2954cdbe8dfd8ab359d4a30cd971b589d335a44d444b6ca2cb3d1da21b75e4b6", size = 9614463 }, - { url = "https://files.pythonhosted.org/packages/eb/76/fbb4bd23dfb48fa7758d35b744413b650a9fd2ddd93bca77e30376864414/ruff-0.8.1-py3-none-win_arm64.whl", hash = "sha256:55873cc1a473e5ac129d15eccb3c008c096b94809d693fc7053f588b67822737", size = 8959621 }, +version = "0.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bf/5e/683c7ef7a696923223e7d95ca06755d6e2acbc5fd8382b2912a28008137c/ruff-0.8.3.tar.gz", hash = "sha256:5e7558304353b84279042fc584a4f4cb8a07ae79b2bf3da1a7551d960b5626d3", size = 3378522 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/c4/bfdbb8b9c419ff3b52479af8581026eeaac3764946fdb463dec043441b7d/ruff-0.8.3-py3-none-linux_armv6l.whl", hash = "sha256:8d5d273ffffff0acd3db5bf626d4b131aa5a5ada1276126231c4174543ce20d6", size = 10535860 }, + { url = "https://files.pythonhosted.org/packages/ef/c5/0aabdc9314b4b6f051168ac45227e2aa8e1c6d82718a547455e40c9c9faa/ruff-0.8.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e4d66a21de39f15c9757d00c50c8cdd20ac84f55684ca56def7891a025d7e939", size = 10346327 }, + { url = "https://files.pythonhosted.org/packages/1a/78/4843a59e7e7b398d6019cf91ab06502fd95397b99b2b858798fbab9151f5/ruff-0.8.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c356e770811858bd20832af696ff6c7e884701115094f427b64b25093d6d932d", size = 9942585 }, + { url = "https://files.pythonhosted.org/packages/91/5a/642ed8f1ba23ffc2dd347697e01eef3c42fad6ac76603be4a8c3a9d6311e/ruff-0.8.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c0a60a825e3e177116c84009d5ebaa90cf40dfab56e1358d1df4e29a9a14b13", size = 10797597 }, + { url = "https://files.pythonhosted.org/packages/30/25/2e654bc7226da09a49730a1a2ea6e89f843b362db80b4b2a7a4f948ac986/ruff-0.8.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:75fb782f4db39501210ac093c79c3de581d306624575eddd7e4e13747e61ba18", size = 10307244 }, + { url = "https://files.pythonhosted.org/packages/c0/2d/a224d56bcd4383583db53c2b8f410ebf1200866984aa6eb9b5a70f04e71f/ruff-0.8.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f26bc76a133ecb09a38b7868737eded6941b70a6d34ef53a4027e83913b6502", size = 11362439 }, + { url = "https://files.pythonhosted.org/packages/82/01/03e2857f9c371b8767d3e909f06a33bbdac880df17f17f93d6f6951c3381/ruff-0.8.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:01b14b2f72a37390c1b13477c1c02d53184f728be2f3ffc3ace5b44e9e87b90d", size = 12078538 }, + { url = "https://files.pythonhosted.org/packages/af/ae/ff7f97b355da16d748ceec50e1604a8215d3659b36b38025a922e0612e9b/ruff-0.8.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:53babd6e63e31f4e96ec95ea0d962298f9f0d9cc5990a1bbb023a6baf2503a82", size = 11616172 }, + { url = "https://files.pythonhosted.org/packages/6a/d0/6156d4d1e53ebd17747049afe801c5d7e3014d9b2f398b9236fe36ba4320/ruff-0.8.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ae441ce4cf925b7f363d33cd6570c51435972d697e3e58928973994e56e1452", size = 12919886 }, + { url = "https://files.pythonhosted.org/packages/4e/84/affcb30bacb94f6036a128ad5de0e29f543d3f67ee42b490b17d68e44b8a/ruff-0.8.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7c65bc0cadce32255e93c57d57ecc2cca23149edd52714c0c5d6fa11ec328cd", size = 11212599 }, + { url = "https://files.pythonhosted.org/packages/60/b9/5694716bdefd8f73df7c0104334156c38fb0f77673d2966a5a1345bab94d/ruff-0.8.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:5be450bb18f23f0edc5a4e5585c17a56ba88920d598f04a06bd9fd76d324cb20", size = 10784637 }, + { url = "https://files.pythonhosted.org/packages/24/7e/0e8f835103ac7da81c3663eedf79dec8359e9ae9a3b0d704bae50be59176/ruff-0.8.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8faeae3827eaa77f5721f09b9472a18c749139c891dbc17f45e72d8f2ca1f8fc", size = 10390591 }, + { url = "https://files.pythonhosted.org/packages/27/da/180ec771fc01c004045962ce017ca419a0281f4bfaf867ed0020f555b56e/ruff-0.8.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:db503486e1cf074b9808403991663e4277f5c664d3fe237ee0d994d1305bb060", size = 10894298 }, + { url = "https://files.pythonhosted.org/packages/6d/f8/29f241742ed3954eb2222314b02db29f531a15cab3238d1295e8657c5f18/ruff-0.8.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:6567be9fb62fbd7a099209257fef4ad2c3153b60579818b31a23c886ed4147ea", size = 11275965 }, + { url = "https://files.pythonhosted.org/packages/79/e9/5b81dc9afc8a80884405b230b9429efeef76d04caead904bd213f453b973/ruff-0.8.3-py3-none-win32.whl", hash = "sha256:19048f2f878f3ee4583fc6cb23fb636e48c2635e30fb2022b3a1cd293402f964", size = 8807651 }, + { url = "https://files.pythonhosted.org/packages/ea/67/7291461066007617b59a707887b90e319b6a043c79b4d19979f86b7a20e7/ruff-0.8.3-py3-none-win_amd64.whl", hash = "sha256:f7df94f57d7418fa7c3ffb650757e0c2b96cf2501a0b192c18e4fb5571dfada9", size = 9625289 }, + { url = "https://files.pythonhosted.org/packages/03/8f/e4fa95288b81233356d9a9dcaed057e5b0adc6399aa8fd0f6d784041c9c3/ruff-0.8.3-py3-none-win_arm64.whl", hash = "sha256:fe2756edf68ea79707c8d68b78ca9a58ed9af22e430430491ee03e718b5e4936", size = 9078754 }, ] [[package]] name = "scikit-learn" -version = "1.5.2" +version = "1.6.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "joblib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, @@ -6553,28 +3666,32 @@ dependencies = [ { name = "scipy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "threadpoolctl", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/37/59/44985a2bdc95c74e34fef3d10cb5d93ce13b0e2a7baefffe1b53853b502d/scikit_learn-1.5.2.tar.gz", hash = "sha256:b4237ed7b3fdd0a4882792e68ef2545d5baa50aca3bb45aa7df468138ad8f94d", size = 7001680 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/98/89/be41419b4bec629a4691183a5eb1796f91252a13a5ffa243fd958cad7e91/scikit_learn-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:299406827fb9a4f862626d0fe6c122f5f87f8910b86fe5daa4c32dcd742139b6", size = 12106070 }, - { url = "https://files.pythonhosted.org/packages/bf/e0/3b6d777d375f3b685f433c93384cdb724fb078e1dc8f8ff0950467e56c30/scikit_learn-1.5.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:2d4cad1119c77930b235579ad0dc25e65c917e756fe80cab96aa3b9428bd3fb0", size = 10971758 }, - { url = "https://files.pythonhosted.org/packages/7b/31/eb7dd56c371640753953277de11356c46a3149bfeebb3d7dcd90b993715a/scikit_learn-1.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c412ccc2ad9bf3755915e3908e677b367ebc8d010acbb3f182814524f2e5540", size = 12500080 }, - { url = "https://files.pythonhosted.org/packages/4c/1e/a7c7357e704459c7d56a18df4a0bf08669442d1f8878cc0864beccd6306a/scikit_learn-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a686885a4b3818d9e62904d91b57fa757fc2bed3e465c8b177be652f4dd37c8", size = 13347241 }, - { url = "https://files.pythonhosted.org/packages/48/76/154ebda6794faf0b0f3ccb1b5cd9a19f0a63cb9e1f3d2c61b6114002677b/scikit_learn-1.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:c15b1ca23d7c5f33cc2cb0a0d6aaacf893792271cddff0edbd6a40e8319bc113", size = 11000477 }, - { url = "https://files.pythonhosted.org/packages/ff/91/609961972f694cb9520c4c3d201e377a26583e1eb83bc5a334c893729214/scikit_learn-1.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:03b6158efa3faaf1feea3faa884c840ebd61b6484167c711548fce208ea09445", size = 12088580 }, - { url = "https://files.pythonhosted.org/packages/cd/7a/19fe32c810c5ceddafcfda16276d98df299c8649e24e84d4f00df4a91e01/scikit_learn-1.5.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1ff45e26928d3b4eb767a8f14a9a6efbf1cbff7c05d1fb0f95f211a89fd4f5de", size = 10975994 }, - { url = "https://files.pythonhosted.org/packages/4c/75/62e49f8a62bf3c60b0e64d0fce540578ee4f0e752765beb2e1dc7c6d6098/scikit_learn-1.5.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f763897fe92d0e903aa4847b0aec0e68cadfff77e8a0687cabd946c89d17e675", size = 12465782 }, - { url = "https://files.pythonhosted.org/packages/49/21/3723de321531c9745e40f1badafd821e029d346155b6c79704e0b7197552/scikit_learn-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8b0ccd4a902836493e026c03256e8b206656f91fbcc4fde28c57a5b752561f1", size = 13322034 }, - { url = "https://files.pythonhosted.org/packages/17/1c/ccdd103cfcc9435a18819856fbbe0c20b8fa60bfc3343580de4be13f0668/scikit_learn-1.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:6c16d84a0d45e4894832b3c4d0bf73050939e21b99b01b6fd59cbb0cf39163b6", size = 11015224 }, - { url = "https://files.pythonhosted.org/packages/a4/db/b485c1ac54ff3bd9e7e6b39d3cc6609c4c76a65f52ab0a7b22b6c3ab0e9d/scikit_learn-1.5.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f932a02c3f4956dfb981391ab24bda1dbd90fe3d628e4b42caef3e041c67707a", size = 12110344 }, - { url = "https://files.pythonhosted.org/packages/54/1a/7deb52fa23aebb855431ad659b3c6a2e1709ece582cb3a63d66905e735fe/scikit_learn-1.5.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:3b923d119d65b7bd555c73be5423bf06c0105678ce7e1f558cb4b40b0a5502b1", size = 11033502 }, - { url = "https://files.pythonhosted.org/packages/a1/32/4a7a205b14c11225609b75b28402c196e4396ac754dab6a81971b811781c/scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f60021ec1574e56632be2a36b946f8143bf4e5e6af4a06d85281adc22938e0dd", size = 12085794 }, - { url = "https://files.pythonhosted.org/packages/c6/29/044048c5e911373827c0e1d3051321b9183b2a4f8d4e2f11c08fcff83f13/scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:394397841449853c2290a32050382edaec3da89e35b3e03d6cc966aebc6a8ae6", size = 12945797 }, - { url = "https://files.pythonhosted.org/packages/aa/ce/c0b912f2f31aeb1b756a6ba56bcd84dd1f8a148470526a48515a3f4d48cd/scikit_learn-1.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:57cc1786cfd6bd118220a92ede80270132aa353647684efa385a74244a41e3b1", size = 10985467 }, - { url = "https://files.pythonhosted.org/packages/a4/50/8891028437858cc510e13578fe7046574a60c2aaaa92b02d64aac5b1b412/scikit_learn-1.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9a702e2de732bbb20d3bad29ebd77fc05a6b427dc49964300340e4c9328b3f5", size = 12025584 }, - { url = "https://files.pythonhosted.org/packages/d2/79/17feef8a1c14149436083bec0e61d7befb4812e272d5b20f9d79ea3e9ab1/scikit_learn-1.5.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:b0768ad641981f5d3a198430a1d31c3e044ed2e8a6f22166b4d546a5116d7908", size = 10959795 }, - { url = "https://files.pythonhosted.org/packages/b1/c8/f08313f9e2e656bd0905930ae8bf99a573ea21c34666a813b749c338202f/scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:178ddd0a5cb0044464fc1bfc4cca5b1833bfc7bb022d70b05db8530da4bb3dd3", size = 12077302 }, - { url = "https://files.pythonhosted.org/packages/a7/48/fbfb4dc72bed0fe31fe045fb30e924909ad03f717c36694351612973b1a9/scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7284ade780084d94505632241bf78c44ab3b6f1e8ccab3d2af58e0e950f9c12", size = 13002811 }, - { url = "https://files.pythonhosted.org/packages/a5/e7/0c869f9e60d225a77af90d2aefa7a4a4c0e745b149325d1450f0f0ce5399/scikit_learn-1.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:b7b0f9a0b1040830d38c39b91b3a44e1b643f4b36e36567b80b7c6bd2202a27f", size = 10951354 }, +sdist = { url = "https://files.pythonhosted.org/packages/fa/19/5aa2002044afc297ecaf1e3517ed07bba4aece3b5613b5160c1212995fc8/scikit_learn-1.6.0.tar.gz", hash = "sha256:9d58481f9f7499dff4196927aedd4285a0baec8caa3790efbe205f13de37dd6e", size = 7074944 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/97/55060f91a5e7c4df945e5a69b16148b5f2256e6e1ea3f17da8e27edf9953/scikit_learn-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:366fb3fa47dce90afed3d6106183f4978d6f24cfd595c2373424171b915ee718", size = 12060299 }, + { url = "https://files.pythonhosted.org/packages/36/7b/8c5dfc64a8344ebf2ae493d59af4b3650588051f654e164ff4f9952877b3/scikit_learn-1.6.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:59cd96a8d9f8dfd546f5d6e9787e1b989e981388d7803abbc9efdcde61e47460", size = 11105443 }, + { url = "https://files.pythonhosted.org/packages/25/9f/61544f2a5cae1bc27c97f0ec9ffcc9837e469f215817608840a4ccbb277a/scikit_learn-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efa7a579606c73a0b3d210e33ea410ea9e1af7933fe324cb7e6fbafae4ea5948", size = 12637137 }, + { url = "https://files.pythonhosted.org/packages/50/79/d21599fc44d2d497ced440480670b6314ebc00308e3bae0d0ebca44cd481/scikit_learn-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a46d3ca0f11a540b8eaddaf5e38172d8cd65a86cb3e3632161ec96c0cffb774c", size = 13490128 }, + { url = "https://files.pythonhosted.org/packages/ff/87/788da20cfefcd261123d4bb015b2de076e49cdd3b811b55e6811acd3cb21/scikit_learn-1.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:5be4577769c5dde6e1b53de8e6520f9b664ab5861dd57acee47ad119fd7405d6", size = 11118524 }, + { url = "https://files.pythonhosted.org/packages/07/95/070d6e70f735d13f1c10afebb65ba3526125b7d6c6fc7022651a4a061148/scikit_learn-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1f50b4f24cf12a81c3c09958ae3b864d7534934ca66ded3822de4996d25d7285", size = 12095168 }, + { url = "https://files.pythonhosted.org/packages/72/3d/0381e3a59ebd4154e6a61b0ceaf299c3c141035033dd3b868776cd9af02d/scikit_learn-1.6.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:eb9ae21f387826da14b0b9cb1034f5048ddb9182da429c689f5f4a87dc96930b", size = 11108880 }, + { url = "https://files.pythonhosted.org/packages/fe/2d/0999ae3eed2ac67b1b3cd7fc33370bd5ca59a7514ffe43ae2b6f3cd85b9b/scikit_learn-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0baa91eeb8c32632628874a5c91885eaedd23b71504d24227925080da075837a", size = 12585449 }, + { url = "https://files.pythonhosted.org/packages/0e/ec/1b15b59c6cc7a993320a52234369e787f50345a4753e50d5a015a91e1a20/scikit_learn-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c716d13ba0a2f8762d96ff78d3e0cde90bc9c9b5c13d6ab6bb9b2d6ca6705fd", size = 13489728 }, + { url = "https://files.pythonhosted.org/packages/96/a2/cbfb5743de748d574ffdfd557e9cb29ba4f8b8a3e07836c6c176f713de2f/scikit_learn-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:9aafd94bafc841b626681e626be27bf1233d5a0f20f0a6fdb4bee1a1963c6643", size = 11132946 }, + { url = "https://files.pythonhosted.org/packages/18/0c/a5de627aa57b028aea7026cb3bbeaf63be3158adc118212d6cc7843d939a/scikit_learn-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:04a5ba45c12a5ff81518aa4f1604e826a45d20e53da47b15871526cda4ff5174", size = 12096999 }, + { url = "https://files.pythonhosted.org/packages/a3/7d/02a96e6fb28ddb213e84b1b4a44148d26ec96fc9db9c74e050277e009892/scikit_learn-1.6.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:21fadfc2ad7a1ce8bd1d90f23d17875b84ec765eecbbfc924ff11fb73db582ce", size = 11160579 }, + { url = "https://files.pythonhosted.org/packages/70/28/77b071f541d75247e6c3403f19aaa634371e972691f6aa1838ca9fd4cc52/scikit_learn-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30f34bb5fde90e020653bb84dcb38b6c83f90c70680dbd8c38bd9becbad7a127", size = 12246543 }, + { url = "https://files.pythonhosted.org/packages/17/0e/e6bb84074f1081245a165c0ee775ecef24beae9d2f2e24bcac0c9f155f13/scikit_learn-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1dad624cffe3062276a0881d4e441bc9e3b19d02d17757cd6ae79a9d192a0027", size = 13140402 }, + { url = "https://files.pythonhosted.org/packages/21/1d/3df58df8bd425f425df9f90b316618ace62b7f1f838ac1580191025cc735/scikit_learn-1.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:2fce7950a3fad85e0a61dc403df0f9345b53432ac0e47c50da210d22c60b6d85", size = 11103596 }, + { url = "https://files.pythonhosted.org/packages/2e/f4/c3b51920cf310169d19d07855a7bdf51a9b065314877d9a58c0c60d08eea/scikit_learn-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e5453b2e87ef8accedc5a8a4e6709f887ca01896cd7cc8a174fe39bd4bb00aef", size = 12002532 }, + { url = "https://files.pythonhosted.org/packages/e4/76/cfb0778a84c30df272f1c41fc7b3bd3ffac6e8b02ee6a078a592d35cf73f/scikit_learn-1.6.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:5fe11794236fb83bead2af26a87ced5d26e3370b8487430818b915dafab1724e", size = 11088997 }, + { url = "https://files.pythonhosted.org/packages/2b/8d/4563419d742b852e50871fa3494a8dd0304610601359209a2e614e200260/scikit_learn-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61fe3dcec0d82ae280877a818ab652f4988371e32dd5451e75251bece79668b1", size = 12203192 }, + { url = "https://files.pythonhosted.org/packages/15/a4/f4fdcdd11d82837804c888097ad02aa6381c4bbd57b9d3074ecf9eba8f42/scikit_learn-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b44e3a51e181933bdf9a4953cc69c6025b40d2b49e238233f149b98849beb4bf", size = 13164436 }, + { url = "https://files.pythonhosted.org/packages/1a/e1/32bdcf8f918de5a156da6886aba24a3b5718d267954bd34555be896289f0/scikit_learn-1.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:a17860a562bac54384454d40b3f6155200c1c737c9399e6a97962c63fce503ac", size = 11064779 }, + { url = "https://files.pythonhosted.org/packages/c6/8d/14464bea220bc02879f9e8d905c4b0a44b5c12afde6c375720b6f41d9407/scikit_learn-1.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:98717d3c152f6842d36a70f21e1468fb2f1a2f8f2624d9a3f382211798516426", size = 11962472 }, + { url = "https://files.pythonhosted.org/packages/b4/69/66899cdc65986188e0e255e52ee93dee5101a72f139ee05f263dfff2053a/scikit_learn-1.6.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:34e20bfac8ff0ebe0ff20fb16a4d6df5dc4cc9ce383e00c2ab67a526a3c67b18", size = 11104864 }, + { url = "https://files.pythonhosted.org/packages/3c/32/2c63bc108cc5438b116a0c6fd25c6126dd14c03118724385f10a3d218ee8/scikit_learn-1.6.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eba06d75815406091419e06dd650b91ebd1c5f836392a0d833ff36447c2b1bfa", size = 12435734 }, + { url = "https://files.pythonhosted.org/packages/0c/f5/9434dff19e04a334bfb30df90511904263c48a422a9952d91d8de5c3aa62/scikit_learn-1.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:b6916d1cec1ff163c7d281e699d7a6a709da2f2c5ec7b10547e08cc788ddd3ae", size = 11329803 }, ] [[package]] @@ -6702,11 +3819,11 @@ wheels = [ [[package]] name = "six" -version = "1.16.0" +version = "1.17.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", size = 34041 } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053 }, + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, ] [[package]] @@ -6993,7 +4110,7 @@ wheels = [ [[package]] name = "tach" -version = "0.16.0" +version = "0.17.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "gitpython", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, @@ -7005,54 +4122,18 @@ dependencies = [ { name = "tomli", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "tomli-w", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a7/97/e1cfb1f6e7b9505c9fb4af436f3b159121918217c8f1bd7154ece0ec7ead/tach-0.16.0.tar.gz", hash = "sha256:557a1840b716f57fecbab20b84bd305c35bd2a0a399897f10ee743fbc9e70ed0", size = 725266 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/86/bc/dc798973e3b369ff2a080a6a71ba73cb52af9a5fc4a42397d5903b288161/tach-0.16.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c06666e7c4e94ed8969e337b0f8bf4e2be1c1ad3931761ebaaa8159a1d3d307e", size = 2604383 }, - { url = "https://files.pythonhosted.org/packages/76/c5/e9d20d40b4bf0cb0e7c304969277d02c12aee143d8d91bdc7fb3659b5bf5/tach-0.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:71539ec9fe7f867ea08678175f9c490d12c6d9d1e7c5ffeace3d136a3ad60552", size = 2469356 }, - { url = "https://files.pythonhosted.org/packages/c6/82/96fb09fdddedd387d5f2211f5229daf123f083f64636d23c60ba12dce009/tach-0.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a0b7fa998b447b48eb949f316c73b7b84fe68943c3bc5871462b06934fbc2eb", size = 2712971 }, - { url = "https://files.pythonhosted.org/packages/05/a9/052e088aef8a298768c41890a64d09383d22718f4cec1d147d4048c01047/tach-0.16.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:786ad5410c5e7bb6d76de3abab2bf9315019dede9ab6938970b742381d828953", size = 2690078 }, - { url = "https://files.pythonhosted.org/packages/87/18/b82f8dfff539b9dbb7378843847ee219302a4112c71d41ef8913b4b50461/tach-0.16.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8095b9bde6dddf688d20fc00971d2d2ea0f36b2bd8a1a5586ca238134ac09764", size = 2931546 }, - { url = "https://files.pythonhosted.org/packages/46/9e/e6291f985a684e592e309603492f0abb84f9d11c4883d86f9b718af06ce6/tach-0.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8d55047e49e1f5675ea9e21adc1e37bd274ddb8d5abf430832df1f64709faf9b", size = 2955232 }, - { url = "https://files.pythonhosted.org/packages/09/cc/e3697b6407df54465391df65eb464b1af52c6952d0622937ba7f752a253f/tach-0.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d85fe12897f54735e603754e6ac4a11e4fa841a71c7f4c852c324ecf66e38594", size = 3121238 }, - { url = "https://files.pythonhosted.org/packages/7f/7b/a1bc84d60f708348d4990ba1d5cc1893821aa1f50ff1fee8b0efceb44219/tach-0.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f09b92350fa008c2e18c4f61974dc565ccbcb83baa75453f92e1cbd7a800c63", size = 2813457 }, - { url = "https://files.pythonhosted.org/packages/06/cd/482dfb31a22a292eedabc32d8204451f73f23e4c76bb72c2c4693c2bb3a5/tach-0.16.0-cp310-none-win32.whl", hash = "sha256:7da8c9dd7d78e51bcd7d0d17218b0fa3c6ac7132b7f1fa54dd2904bf59997ce8", size = 2226189 }, - { url = "https://files.pythonhosted.org/packages/fe/35/b5cba4a667dfd9601f04ac158d49041fd484e9c2080c879ef4c4896883af/tach-0.16.0-cp310-none-win_amd64.whl", hash = "sha256:fe7bc8182d7c8bbd55e56b38cfcab8a6c44272fe761dd1e538b6c127222b7483", size = 2381600 }, - { url = "https://files.pythonhosted.org/packages/af/a3/2cb275eef3ef49a9ae86566543b506c018e3a3913020febd9699f8c945ef/tach-0.16.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9ef79ebcdba2f9d63b0728e1125dd547b6a4f30c55da58d5429ef5e123ab2ca3", size = 2604432 }, - { url = "https://files.pythonhosted.org/packages/a1/1d/63a46ba916d7bc26c27845b129c8819a4592b1f77591ad1bdddfc43c0033/tach-0.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c150a8600c2dbba66f53c324e658cd904995c2e011606b68859dbb05fa6d940", size = 2469633 }, - { url = "https://files.pythonhosted.org/packages/cd/6d/d58e7c3d37fec58230f0cbb7e2a4601e9efbd59b168fdfbedb3e0772aec2/tach-0.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5165f0285c2ea47bbb34a37c13d736c0fe93c53df2e42b8ff6cd7ac43417db27", size = 2713242 }, - { url = "https://files.pythonhosted.org/packages/80/a2/982b19ec30976ac31de22697209a6c2ede9b2ec0aaea68c8e86d3d2bbb08/tach-0.16.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d2b3c186a86268f36cb168221b21e09d8ce061de912120f2f6eee7ed4b4625fc", size = 2689703 }, - { url = "https://files.pythonhosted.org/packages/8b/7c/066656fafbcd970e0b43dd3160613630906a1515a6554bd3743de5c04af9/tach-0.16.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d7f2e3b954b49a514b20ab7637fe36e1341d844a8184f9190c44bc6afaffd95e", size = 2931842 }, - { url = "https://files.pythonhosted.org/packages/fa/9b/592ac2b3e3f560efcba0c32c61f733c9acef5c4efaccdc2bb1319a31949a/tach-0.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d27e977bf75047f9d9db0146c74ddf285e4a05b369a1d63a93adfd5bc3fddad", size = 2955196 }, - { url = "https://files.pythonhosted.org/packages/ef/0c/6b137d58643100773ff78fcd46170f42b5b6a567c5542119bdeae84e4180/tach-0.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1845646b2ceef5d3031359a136375bb7d4dffa7cbf3573ac71bcd55f0e19e8c6", size = 3119902 }, - { url = "https://files.pythonhosted.org/packages/be/6e/88a817a2f683ee99f80449ab5359acf2c7b3f6e3334917dd088c105ebf7d/tach-0.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4dd77a2df7847c72596382ffb4e430639815feb14b99d5c5562c1510827fc323", size = 2813161 }, - { url = "https://files.pythonhosted.org/packages/53/3f/270b3a8374e78e55146491aa2a6c7d7c429c1aacede0d245650003631e35/tach-0.16.0-cp311-none-win32.whl", hash = "sha256:63d8c9bd0fdefbf0c57c41f24e2cba8fefbb72f32ea2b339811145eb8f5c8418", size = 2225909 }, - { url = "https://files.pythonhosted.org/packages/e0/80/74486b1736b2628beb37e1c4e0515469f987b0661e7f4f4ca79843f13a7a/tach-0.16.0-cp311-none-win_amd64.whl", hash = "sha256:e658e5b0b7defecea0cbc25ea8d3f541a9e5fbe460b341b4d1a93ec0648c0f37", size = 2381822 }, - { url = "https://files.pythonhosted.org/packages/03/d8/7b158c2b728651fa35dbc1db3560257a85d303145860a6dd841cbc2ee06f/tach-0.16.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:81e65b42da5a8dd174cd3328ed587b42264990740b580d5f099b910a8dc47566", size = 2605253 }, - { url = "https://files.pythonhosted.org/packages/30/dd/21a162d9db236a76beb5ea50b4d67410cddec1929ecbbf9d879f10b2d9ec/tach-0.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39722c773d06b1d8fff781bc8c41f1b11f2bff103dfdb328f5933fc3dcc8f153", size = 2470209 }, - { url = "https://files.pythonhosted.org/packages/0e/cc/44ca0e3cf76b20f416d063422a6cdb47014607978718935e4345c22c8dc9/tach-0.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:675b142fdeb1fc40eecfd1e500853a12aec1193124aa1a4711fea35f4103e07f", size = 2712574 }, - { url = "https://files.pythonhosted.org/packages/7c/a1/c5986807121cfe90e057dccfae0185c637136e410b1aa42267261fc2c89f/tach-0.16.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:671b230f0c3943e24b85c38348e04a506d0383e4dff2893d8f766e9e58d1ac8a", size = 2688435 }, - { url = "https://files.pythonhosted.org/packages/f0/61/5a367027400f5cc614466eaf5313aaa44f60a3468f79c98501f2afc26da3/tach-0.16.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e938ab2ed0c816e2ca6406615d3da8dfaf4efc7699a7f1b23a599f5826c1f17c", size = 2934403 }, - { url = "https://files.pythonhosted.org/packages/a7/41/551a81245e2e591148d302a2933351e1539221e2e5a7d2c5c43b8192eb2f/tach-0.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80517a2dbe33965149d737f89067fc83861e0c188b6015aa28f47bbb7864e9f7", size = 2954366 }, - { url = "https://files.pythonhosted.org/packages/09/bc/29f6c1fe606eac62b0ff57c5fe50a9bb4f61ef4421bb0079a2127feaf2f3/tach-0.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d8dd67881719ba8090d22c28240b6ce9aa51fe5e4f41cf2fd101f924af4b6e1", size = 3115713 }, - { url = "https://files.pythonhosted.org/packages/2b/e6/b086a2bba693b1b020f7da9b1d0339f297248531430ec4f11ab4dd324d25/tach-0.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a5fcad3d7992a02228229175e5f15e88574b0af53dfdfbabea104e090c5f667", size = 2812609 }, - { url = "https://files.pythonhosted.org/packages/f1/2a/85eabd3240976ae51cd185b7f766871754be17eef62b95a2941f3b4e86b8/tach-0.16.0-cp312-none-win32.whl", hash = "sha256:586abd41f835f5839fbf9bcd10abd32178e9007684604fde0b0a14724c097eed", size = 2230554 }, - { url = "https://files.pythonhosted.org/packages/9c/c1/33b1d9ad507eece310aba46bcfb5026050da0a9b84c12988de0b288d7206/tach-0.16.0-cp312-none-win_amd64.whl", hash = "sha256:db52f6bd97417bb1d4f71d0cc488133f430a594203483f85f70fea7c0f25862f", size = 2382453 }, - { url = "https://files.pythonhosted.org/packages/40/b3/2dd89c30f3266de14b439cfba54e67baa4f9e34a1e5cfbaf0c7102b9cdf1/tach-0.16.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e6be354bc177ef07148089ea147f8bbbfe65a3e0ecbe38ebb4c88aa8f4eafc26", size = 2604458 }, - { url = "https://files.pythonhosted.org/packages/1f/8e/2ec85316a8bc60e7ad2325c313da33148f47349181f4bf2eaa6d172bc4a2/tach-0.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:192951278d5a5291b3d4a0805b0d990eca592ccfb2774ded23bf23a0b5780dca", size = 2470492 }, - { url = "https://files.pythonhosted.org/packages/8f/30/fde606583558cb2e0f7ccd8c807b77ea63130394f765846da59d22d66714/tach-0.16.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e23ea9c96599a5d9851438d29e2078cfcee2f16036cbd15612b467a5bdda29d1", size = 2712249 }, - { url = "https://files.pythonhosted.org/packages/d9/15/1d47c1ded62b1cc440e5ea347af94487b84e0e81b295c0569553bb10143b/tach-0.16.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:087a6b3ba7681507e56591cd51c98ad8e12e2664ea7afb0b555c04f6afb0443b", size = 2688158 }, - { url = "https://files.pythonhosted.org/packages/7a/d4/7919d7eaf26674cba9a55b91b9cba1ada744ba03f3aeca0b6adfc613cc44/tach-0.16.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:febaccb564c054b2d9597fc4f3ac917db8c819aef8291c4b1f3d39bff1d44c11", size = 2933824 }, - { url = "https://files.pythonhosted.org/packages/f4/84/724bb077cf1d4f56deee7e54d92692d881a31849e6221531d98f154db09a/tach-0.16.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64c8c71ebfd0ad5c63dbc1ce3e0635ec0ee1b3e3c78f650f808f0c2f3456404b", size = 2953698 }, - { url = "https://files.pythonhosted.org/packages/e3/2e/dbfeccf45ba2e38b286473f770d917508cbf3f2b19209f4d99719805107f/tach-0.16.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5f8a84e778f46bf234d0462cfddc2277c5495778a15077420d20803920acd1be", size = 3115563 }, - { url = "https://files.pythonhosted.org/packages/a7/7d/ed6ffb77581659b1043bc47a708add75a65200b59e730167d7496c33fd1e/tach-0.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a4b2a1f2b87c6100382f8cc47be83abfabf9fe1213ca3f17e643215218aaf2c", size = 2812031 }, - { url = "https://files.pythonhosted.org/packages/f5/c1/bed0a70cc6b2e34a6f7c98170f48e8b43554b1bfba8a7340191106cd1e00/tach-0.16.0-cp313-none-win32.whl", hash = "sha256:27f6c9076f97e2a0d73ab56602035ae949f57b9b719bf813f9a7911e3b6d7136", size = 2230351 }, - { url = "https://files.pythonhosted.org/packages/f6/2d/69a5da5f99c677096bbec20ce3090a7aced91e1bfed19379b4cc5e3e3bc2/tach-0.16.0-cp313-none-win_amd64.whl", hash = "sha256:b1ea36848c158ca5f67e06eef7a920c58a341081d4e77353cd9821569ea8de43", size = 2381937 }, - { url = "https://files.pythonhosted.org/packages/fa/88/5838f2f94f1175cd5f909093b343ed6bbbd6e8363984ebc0dcea97f7c5ac/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:af9fc63ffe261017e63b854574be0d409bfe662b45e72841ce1b08c9507fe63e", size = 2715843 }, - { url = "https://files.pythonhosted.org/packages/48/ad/52ddd324544f67c9a4d2d8d17a05edf3864f37418e5202c590d12cf967c3/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:079041abbba2f23129a9c2ef8e81888080c8c6129ba5d489614a65bb9e424081", size = 2689909 }, - { url = "https://files.pythonhosted.org/packages/ac/1d/2d4c67e27375bd858b5f3ab9291c1610ac245a84eeac73a95167d72a3266/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b755bc0884ca3981eb919db60b04c0a5d1efddc053bf83f6116ace714a475c71", size = 2930649 }, - { url = "https://files.pythonhosted.org/packages/df/f1/0383165567902785f80cff65732389235a5fd90f032f8170092dd12b5323/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7cf3ea7c11bf15cf19c53486705ee214f2880fd373f1aa1cd5e14f31880d3c6c", size = 2956732 }, - { url = "https://files.pythonhosted.org/packages/27/fa/149627665abc1becc17040b81f12fdf83d7df756ef8bce639421e1937cbd/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6faca7931d208e71f400aa6a6aa3136945aa2411349016dd4f92b46acc6bb032", size = 3119216 }, - { url = "https://files.pythonhosted.org/packages/c3/95/20920d0ca05da20edfc709feb365837a4e5a1cc94b0094fa1f29567823fd/tach-0.16.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36200c7072e657e6c81358682fa95e44e510b6f7ac54ffff406e7bc3a39d5339", size = 2815672 }, +sdist = { url = "https://files.pythonhosted.org/packages/e6/53/580d3bfc18573e51f7a61bbfd18567774d4d647309fc944246c877b7df23/tach-0.17.0.tar.gz", hash = "sha256:da251345239d144048ebbe8c98552ca6d639344c010530676e4d138d8e268846", size = 729996 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/f3/d4c0e26f12d7625f7e01f90e1e27813dbea54b1c727ac59c427ad8a7ea6f/tach-0.17.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:6cc3d91dee8735f57ea009a82d601a5e5ec65324830182c9e46dff2fd8e128c4", size = 2622893 }, + { url = "https://files.pythonhosted.org/packages/53/35/b1f5c5db31d34b43ff2532bfc20c69ec676d0b2521a24d33d376f244a4f9/tach-0.17.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:b6a6f14ff44d9586798c67e09ff64a0246938eb26dab51f4af7667681faffa17", size = 2496453 }, + { url = "https://files.pythonhosted.org/packages/63/37/a1c03f6adc16c5aa2f7a32c170f93095a06d8f947142f511845168ba9de8/tach-0.17.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dee35dfff64d1a6c1b3edccb323043f4b768e9992a323161e6b6ccdda8f3fb4e", size = 2734716 }, + { url = "https://files.pythonhosted.org/packages/e1/07/30cf46aee106e45c323ca23f7f81de7a14a31afcc30890b887a6e150b03c/tach-0.17.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:67cb622182c2e8b478db327fe5197a9e9ca9c1e4b97a48332da96908c7d7feff", size = 2708504 }, + { url = "https://files.pythonhosted.org/packages/8c/fe/2eb9b2a8aeee56c3d2f94d2c0e436c4c865d762f296278b6db69317e5896/tach-0.17.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d5d0eec707b9823d3d1464882db3232a72b219098d97d53c491782eea6be644d", size = 2969174 }, + { url = "https://files.pythonhosted.org/packages/cd/38/e4dc75d3dee410402d630cc5abdc21ca83810fa16caf20b1b67c9f1fa933/tach-0.17.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:df952f7c434c6f3bb277e63c40219eac5fbbec695447dd5d3968411f9fa747d6", size = 2981733 }, + { url = "https://files.pythonhosted.org/packages/9f/17/b72c5d99cbef087a8c223e82d69e644f9a6d1ae0bee91fa7548e3b09f6a0/tach-0.17.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2eaa2b5b7a328b9e744fccbda216179ad3aa9e870294141958da5830051299a", size = 3137383 }, + { url = "https://files.pythonhosted.org/packages/d6/c2/784669382b9fd78de3b34baa198ef8368c71523dbb268e57b50138940ab9/tach-0.17.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30fd154235df9dca944ebabb43eca7641de0a84a74bbf72365c22cb6547ab2e9", size = 2838966 }, + { url = "https://files.pythonhosted.org/packages/bf/e0/28221f09a4a3e2672d1b5d7dbe08d4196566ac689fc7f366bcc93b8b7271/tach-0.17.0-cp37-abi3-win32.whl", hash = "sha256:525495fbf2ef7bf3352eb92a3f0c1988ff5f9444e62ba0ddd7561e3e4ad19cab", size = 2257785 }, + { url = "https://files.pythonhosted.org/packages/cd/3d/cfb14005e7a8eed6c6e5d29429e4904e0c147ba52e6a5310d13c814acf86/tach-0.17.0-cp37-abi3-win_amd64.whl", hash = "sha256:ed511d9f0e39c97da287aaeedbeaa980ba96bdc92b13d03d36a288b38dbd2cf2", size = 2408883 }, ] [[package]] From 6ef421bab139a6645ab82ee57b01275a0362da50 Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Fri, 13 Dec 2024 12:00:24 +0100 Subject: [PATCH 49/83] remove slow_test marker --- model/atmosphere/advection/pyproject.toml | 1 - .../test_prepare_ffsl_flux_area_patches_list.py | 1 - ...est_prepare_numerical_quadrature_for_cubic_reconstruction.py | 1 - ...repare_numerical_quadrature_list_for_cubic_reconstruction.py | 2 -- .../test_reconstruct_cubic_coefficients_svd.py | 2 -- model/atmosphere/dycore/pyproject.toml | 1 - .../atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py | 1 - tools/pyproject.toml | 1 - tools/tests/py2fgen/test_dycore_wrapper.py | 1 - 9 files changed, 11 deletions(-) diff --git a/model/atmosphere/advection/pyproject.toml b/model/atmosphere/advection/pyproject.toml index da865c37d8..0e72d4255b 100644 --- a/model/atmosphere/advection/pyproject.toml +++ b/model/atmosphere/advection/pyproject.toml @@ -89,7 +89,6 @@ filename = "src/icon4py/model/atmosphere/advection/__init__.py" [tool.pytest.ini_options] markers = [ "datatest: test depending on serialized data generated by a full model run", - "slow_tests: mark test as slow", ] testpaths = 'tests' diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_ffsl_flux_area_patches_list.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_ffsl_flux_area_patches_list.py index 73e476cfb8..6553cc6ad5 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_ffsl_flux_area_patches_list.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_ffsl_flux_area_patches_list.py @@ -113,7 +113,6 @@ def _line_intersect_numpy( return intersect_1, intersect_2 -@pytest.mark.slow_tests class TestPrepareFfslFluxAreaPatchesList(helpers.StencilTest): PROGRAM = prepare_ffsl_flux_area_patches_list OUTPUTS = ( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_for_cubic_reconstruction.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_for_cubic_reconstruction.py index f48b7f7928..ed5cc753c7 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_for_cubic_reconstruction.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_for_cubic_reconstruction.py @@ -18,7 +18,6 @@ from icon4py.model.common.utils import data_allocation as data_alloc -@pytest.mark.slow_tests class TestPrepareNumericalQuadratureForCubicReconstruction(helpers.StencilTest): PROGRAM = prepare_numerical_quadrature_for_cubic_reconstruction OUTPUTS = ( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_list_for_cubic_reconstruction.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_list_for_cubic_reconstruction.py index 55b2384212..040732b3fa 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_list_for_cubic_reconstruction.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_prepare_numerical_quadrature_list_for_cubic_reconstruction.py @@ -17,8 +17,6 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.utils import data_allocation as data_alloc -# TODO (@halungge): remove slow test marker: runs in reasonable time on gtfn backend -@pytest.mark.slow_tests class TestPrepareNumericalQuadratureListForCubicReconstruction(helpers.StencilTest): PROGRAM = prepare_numerical_quadrature_list_for_cubic_reconstruction OUTPUTS = ( diff --git a/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py b/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py index 04ce58b8b1..218dc6c853 100644 --- a/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py +++ b/model/atmosphere/advection/tests/advection_stencil_tests/test_reconstruct_cubic_coefficients_svd.py @@ -18,8 +18,6 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid -# TODO (@halungge): remove slow test marker: runs in reasonable time on gtfn backend -@pytest.mark.slow_tests class TestReconstructCubicCoefficientsSvd(helpers.StencilTest): PROGRAM = reconstruct_cubic_coefficients_svd OUTPUTS = ( diff --git a/model/atmosphere/dycore/pyproject.toml b/model/atmosphere/dycore/pyproject.toml index befe86d0fe..3424b1748f 100644 --- a/model/atmosphere/dycore/pyproject.toml +++ b/model/atmosphere/dycore/pyproject.toml @@ -90,7 +90,6 @@ filename = "src/icon4py/model/atmosphere/dycore/__init__.py" [tool.pytest.ini_options] markers = [ "datatest: test depending on serialized data generated by a full model run", - "slow_tests: mark test as slow", ] testpaths = 'tests' diff --git a/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py b/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py index 3a054654c8..55fdc9bcd4 100644 --- a/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py +++ b/model/atmosphere/dycore/tests/dycore_tests/test_solve_nonhydro.py @@ -837,7 +837,6 @@ def test_run_solve_nonhydro_single_step( ) -@pytest.mark.slow_tests @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT]) @pytest.mark.parametrize( diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 3c9224d2b1..ab818ff8b5 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -105,7 +105,6 @@ filename = "src/icon4pytools/__init__.py" [tool.pytest.ini_options] markers = [ "datatest: test depending on serialized data generated by a full model run", - "slow_tests: mark test as slow", ] testpaths = 'tests' diff --git a/tools/tests/py2fgen/test_dycore_wrapper.py b/tools/tests/py2fgen/test_dycore_wrapper.py index 6821f9a305..d83fb02d98 100644 --- a/tools/tests/py2fgen/test_dycore_wrapper.py +++ b/tools/tests/py2fgen/test_dycore_wrapper.py @@ -1148,7 +1148,6 @@ def test_granule_solve_nonhydro_single_step_regional( ) -@pytest.mark.slow_tests @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT]) @pytest.mark.parametrize( From b0d8ef64187e98fc5f78e4af9f30659a8f9bdade Mon Sep 17 00:00:00 2001 From: Magdalena Luz Date: Fri, 13 Dec 2024 13:21:25 +0100 Subject: [PATCH 50/83] remove markers from pytest.ini --- jenkins/spack/pytest.ini | 3 --- 1 file changed, 3 deletions(-) diff --git a/jenkins/spack/pytest.ini b/jenkins/spack/pytest.ini index 72d3b0453b..76b2740d57 100644 --- a/jenkins/spack/pytest.ini +++ b/jenkins/spack/pytest.ini @@ -1,9 +1,6 @@ [pytest] -norecursedirs = _external_src markers = - slow_tests: mark test as slow. datatest: test depending on serialized data generated by a full model run - with_netcdf: test depending on a compatible version of netCDF4 addopts = -p icon4py.model.testing.pytest_config testpaths = tools/tests/f2ser tools/tests/icon4pygen From 24889e5dd464c7c1a1455e502e6b4e0ff5d72bb6 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 13 Dec 2024 16:13:51 +0100 Subject: [PATCH 51/83] Test config fixes --- model/atmosphere/advection/pyproject.toml | 3 - model/atmosphere/dycore/pyproject.toml | 3 - model/common/pyproject.toml | 4 - model/driver/pyproject.toml | 3 - .../icon4py/model/testing/pytest_config.py | 1 - noxfile.py | 130 +++++++----------- tools/pyproject.toml | 3 - 7 files changed, 47 insertions(+), 100 deletions(-) diff --git a/model/atmosphere/advection/pyproject.toml b/model/atmosphere/advection/pyproject.toml index 0e72d4255b..73fdce0c3e 100644 --- a/model/atmosphere/advection/pyproject.toml +++ b/model/atmosphere/advection/pyproject.toml @@ -87,9 +87,6 @@ filename = "src/icon4py/model/atmosphere/advection/__init__.py" # -- pytest -- [tool.pytest.ini_options] -markers = [ - "datatest: test depending on serialized data generated by a full model run", -] testpaths = 'tests' # --ruff -- diff --git a/model/atmosphere/dycore/pyproject.toml b/model/atmosphere/dycore/pyproject.toml index 3424b1748f..d220b11e34 100644 --- a/model/atmosphere/dycore/pyproject.toml +++ b/model/atmosphere/dycore/pyproject.toml @@ -88,9 +88,6 @@ filename = "src/icon4py/model/atmosphere/dycore/__init__.py" # -- pytest -- [tool.pytest.ini_options] -markers = [ - "datatest: test depending on serialized data generated by a full model run", -] testpaths = 'tests' # --ruff -- diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index 384956f1d0..a18b8a62d3 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -107,10 +107,6 @@ filename = "src/icon4py/model/common/__init__.py" # -- pytest -- [tool.pytest.ini_options] -markers = [ - "datatest: test depending on serialized data generated by a full model run", - "with_netcdf: test depending on a compatible version of netCDF4" -] testpaths = 'tests' # --ruff -- diff --git a/model/driver/pyproject.toml b/model/driver/pyproject.toml index 0834c2485c..785bfc8a3a 100644 --- a/model/driver/pyproject.toml +++ b/model/driver/pyproject.toml @@ -95,9 +95,6 @@ filename = "src/icon4py/model/driver/__init__.py" # -- pytest -- [tool.pytest.ini_options] -markers = [ - "datatest: test depending on serialized data generated by a full model run", -] testpaths = 'tests' # --ruff -- diff --git a/model/testing/src/icon4py/model/testing/pytest_config.py b/model/testing/src/icon4py/model/testing/pytest_config.py index 699ab85ce9..7712826a08 100644 --- a/model/testing/src/icon4py/model/testing/pytest_config.py +++ b/model/testing/src/icon4py/model/testing/pytest_config.py @@ -65,7 +65,6 @@ def _check_backend_validity(backend_name: str) -> None: def pytest_configure(config): config.addinivalue_line("markers", "datatest: this test uses binary data") - config.addinivalue_line("markers", "slow_tests: this test takes a very long time") config.addinivalue_line( "markers", "with_netcdf: test uses netcdf which is an optional dependency" ) diff --git a/noxfile.py b/noxfile.py index b0666399d9..093b6350d6 100644 --- a/noxfile.py +++ b/noxfile.py @@ -6,12 +6,14 @@ # Please, refer to the LICENSE file in the root directory. # SPDX-License-Identifier: BSD-3-Clause +from __future__ import annotations + from collections.abc import Sequence import nox nox.options.default_venv_backend = "uv" -# nox.options.sessions = ["lint", "test"] +nox.options.sessions = ["test_atmosphere", "test_common", "test_driver", "test_tools"] @nox.session(python=["3.10", "3.11"]) @@ -24,7 +26,7 @@ def benchmark_atmosphere(session: nox.Session, subpackage: str) -> None: _install_session_venv(session, extras=["all"], groups=["test"]) with session.chdir(f"model/atmosphere/{subpackage}"): - session.run("pytest", "-sv", "--benchmark-only", *session.posargs) + session.run(*"pytest -sv --benchmark-only".split(), *session.posargs) @nox.session(python=["3.10", "3.11"]) @@ -32,142 +34,104 @@ def benchmark_atmosphere(session: nox.Session, subpackage: str) -> None: "subpackage", ["advection", "diffusion", "dycore", "subgrid_scale_physics/microphysics"], ) -@nox.parametrize("selection", ["regular_tests", "slow_tests"]) -def test_atmosphere(session: nox.Session, subpackage: str, selection: str) -> None: +@nox.parametrize("datatest", [False, True]) +def test_atmosphere(session: nox.Session, subpackage: str, datatest: bool) -> None: """Run tests for the `model.atmosphere` subpackages.""" _install_session_venv(session, extras=["all"], groups=["test"]) - assert ( - selection in _SELECTION_PARAM_TO_PYTEST_MARKERS - ), f"Invalid test selection argument: {selection}" - pytest_args = sum( - (["-m", tag] for tag in _SELECTION_PARAM_TO_PYTEST_MARKERS[selection]), start=[] - ) - with session.chdir(f"model/atmosphere/{subpackage}"): session.run( - "pytest", - "-sv", - "-n", - session.env.get("NUM_PROCESSES", "auto"), - "--benchmark-skip", - *pytest_args, - *session.posargs, + *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} -m {'' if datatest else 'not'} datatest".split(), + *session.posargs ) @nox.session(python=["3.10", "3.11"]) -@nox.parametrize("selection", ["regular_tests", "slow_tests"]) -def test_atmosphere_advection(session: nox.Session, selection: str) -> None: +@nox.parametrize("datatest", [False, True]) +def test_atmosphere_advection(session: nox.Session, datatest: bool) -> None: session.notify( - f"test_atmosphere-{session.python}(selection='{selection}', subpackage='advection')" + f"test_atmosphere-{session.python}(datatest='{datatest}', subpackage='advection')" ) @nox.session(python=["3.10", "3.11"]) -@nox.parametrize("selection", ["regular_tests", "slow_tests"]) -def test_atmosphere_diffusion(session: nox.Session, selection: str) -> None: +@nox.parametrize("datatest", [False, True]) +def test_atmosphere_diffusion(session: nox.Session, datatest: bool) -> None: session.notify( - f"test_atmosphere-{session.python}(selection='{selection}', subpackage='diffusion')" + f"test_atmosphere-{session.python}(datatest='{datatest}', subpackage='diffusion')" ) @nox.session(python=["3.10", "3.11"]) -@nox.parametrize("selection", ["regular_tests", "slow_tests"]) -def test_atmosphere_dycore(session: nox.Session, selection: str) -> None: +@nox.parametrize("datatest", [False, True]) +def test_atmosphere_dycore(session: nox.Session, datatest: bool) -> None: session.notify( - f"test_atmosphere-{session.python}(selection='{selection}', subpackage='dycore')" + f"test_atmosphere-{session.python}(datatest='{datatest}', subpackage='dycore')" ) @nox.session(python=["3.10", "3.11"]) -@nox.parametrize("selection", ["regular_tests", "slow_tests"]) -def test_atmosphere_microphysics(session: nox.Session, selection: str) -> None: +@nox.parametrize("datatest", [False, True]) +def test_atmosphere_microphysics(session: nox.Session, datatest: bool) -> None: session.notify( - f"test_atmosphere-{session.python}(selection='{selection}', subpackage='subgrid_scale_physics/microphysics')" + f"test_atmosphere-{session.python}(datatest='{datatest}', subpackage='subgrid_scale_physics/microphysics')" ) @nox.session(python=["3.10", "3.11"]) -@nox.parametrize("selection", ["regular_tests", "slow_tests"]) -def test_common(session: nox.Session, selection: str) -> None: +@nox.parametrize("datatest", [False, True]) +def test_common(session: nox.Session, datatest: bool) -> None: """Run tests for the common package of the icon4py model.""" _install_session_venv(session, extras=["all"], groups=["test"]) - assert ( - selection in _SELECTION_PARAM_TO_PYTEST_MARKERS - ), f"Invalid test selection argument: {selection}" - pytest_args = sum( - (["-m", tag] for tag in _SELECTION_PARAM_TO_PYTEST_MARKERS[selection]), start=[] - ) - with session.chdir("model/common"): session.run( - "pytest", - "-sv", - "--benchmark-skip", - "-n", - session.env.get("NUM_PROCESSES", "auto"), - *pytest_args, - *session.posargs, + *f"pytest -sv -n {session.env.get('NUM_PROCESSES', 'auto')} -m {'' if datatest else 'not'} datatest".split(), + *session.posargs ) @nox.session(python=["3.10", "3.11"]) -def test_driver(session: nox.Session) -> None: +@nox.parametrize("datatest", [False, True]) +def test_driver(session: nox.Session, datatest: bool) -> None: """Run tests for the driver.""" _install_session_venv(session, extras=["all"], groups=["test"]) with session.chdir("model/driver"): session.run( - "pytest", - "-sv", - "-n", - session.env.get("NUM_PROCESSES", "auto"), - *session.posargs, + *f"pytest -sv -n {session.env.get('NUM_PROCESSES', 'auto')} -m {'' if datatest else 'not'} datatest".split(), + *session.posargs ) +@nox.session(python=["3.10", "3.11"]) +def test_model_datatest(session: nox.Session) -> None: + session.run( + *f"pytest -sv -n {session.env.get('NUM_PROCESSES', 'auto')} -m datatest".split(), + *session.posargs + ) + @nox.session(python=["3.10", "3.11"]) -def test_tools(session: nox.Session) -> None: +def test_model_operators(session: nox.Session) -> None: + session.run( + *f"pytest -sv -n {session.env.get('NUM_PROCESSES', 'auto')} -k 'stencil_tests'".split(), + *session.posargs + ) + + +@nox.session(python=["3.10", "3.11"]) +@nox.parametrize("datatest", [False, True]) +def test_tools(session: nox.Session, datatest: bool) -> None: """Run tests for the Fortran integration tools.""" _install_session_venv(session, extras=["all"], groups=["test"]) with session.chdir("tools"): session.run( - "pytest", - "-sv", - "-n", - session.env.get("NUM_PROCESSES", "auto"), - *session.posargs, + *f"pytest -sv -n {session.env.get('NUM_PROCESSES', 'auto')} -m {'' if datatest else 'not'} datatest".split(), + *session.posargs ) -# [testenv:run_stencil_tests] -# commands = -# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/diffusion/tests/diffusion_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} -# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/dycore/tests/dycore_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} -# pytest -v -m "not slow_tests" --cov --cov-append atmosphere/advection/tests/advection_stencil_tests --benchmark-skip -n {env:NUM_PROCESSES:1} {posargs} - -# [testenv:run_benchmarks] -# commands = -# pytest -v -m "not slow_tests" atmosphere/diffusion/tests/diffusion_stencil_tests --benchmark-only {posargs} -# pytest -v -m "not slow_tests" atmosphere/dycore/tests/dycore_stencil_tests --benchmark-only {posargs} -# pytest -v -m "not slow_tests" atmosphere/advection/tests/advection_stencil_tests --benchmark-only {posargs} - -# [testenv:run_model_tests] -# commands = -# pytest -v -m "not slow_tests" --datatest {posargs} - -# addopts = ["-p", "icon4py.model.testing.pytest_config"] - - -_SELECTION_PARAM_TO_PYTEST_MARKERS: dict[str, list[str]] = { - "regular_tests": ["not slow_tests"], - "slow_tests": ["slow_tests"], -} - - def _install_session_venv( session: nox.Session, *args: str | Sequence[str], diff --git a/tools/pyproject.toml b/tools/pyproject.toml index ab818ff8b5..4fa73acf28 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -103,9 +103,6 @@ filename = "src/icon4pytools/__init__.py" # -- pytest -- [tool.pytest.ini_options] -markers = [ - "datatest: test depending on serialized data generated by a full model run", -] testpaths = 'tests' # -- ruff -- From 7d9d65d874ba8f87b902925f225a7a2ee77a22e5 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Mon, 16 Dec 2024 16:13:06 +0100 Subject: [PATCH 52/83] Final test config fixes --- model/atmosphere/advection/pyproject.toml | 4 ---- model/atmosphere/advection/tests/conftest.py | 9 ++++++++- model/atmosphere/diffusion/pyproject.toml | 4 ---- model/atmosphere/diffusion/tests/conftest.py | 9 ++++++++- model/atmosphere/dycore/pyproject.toml | 4 ---- model/atmosphere/dycore/tests/conftest.py | 9 ++++++++- .../microphysics/pyproject.toml | 4 ---- .../microphysics/tests/conftest.py | 9 ++++++++- model/common/pyproject.toml | 4 ---- model/common/tests/conftest.py | 8 +++++++- model/driver/pyproject.toml | 4 ---- model/driver/tests/conftest.py | 9 ++++++++- noxfile.py | 16 ++++++++++------ pyproject.toml | 4 ++++ tools/pyproject.toml | 4 ---- tools/tests/conftest.py | 9 ++++++++- 16 files changed, 69 insertions(+), 41 deletions(-) diff --git a/model/atmosphere/advection/pyproject.toml b/model/atmosphere/advection/pyproject.toml index 73fdce0c3e..646c382bb4 100644 --- a/model/atmosphere/advection/pyproject.toml +++ b/model/atmosphere/advection/pyproject.toml @@ -85,10 +85,6 @@ filename = "src/icon4py/model/atmosphere/advection/__init__.py" # parallel = true # source_pkgs = ['driver'] -# -- pytest -- -[tool.pytest.ini_options] -testpaths = 'tests' - # --ruff -- [tool.ruff] extend = "../../../pyproject.toml" diff --git a/model/atmosphere/advection/tests/conftest.py b/model/atmosphere/advection/tests/conftest.py index 0624b44b71..5b64c1f392 100644 --- a/model/atmosphere/advection/tests/conftest.py +++ b/model/atmosphere/advection/tests/conftest.py @@ -8,7 +8,14 @@ from icon4py.model.testing.helpers import backend, grid -from icon4py.model.testing.pytest_config import * # noqa: F401 + +# Make sure custom icon4py pytest hooks are loaded +try: + import sys + _ = sys.modules["icon4py.model.testing.pytest_config"] +except KeyError: + from icon4py.model.testing.pytest_config import * # noqa: F401 + __all__ = [ # imported fixtures: diff --git a/model/atmosphere/diffusion/pyproject.toml b/model/atmosphere/diffusion/pyproject.toml index ae2a4a652c..51dc40ee58 100644 --- a/model/atmosphere/diffusion/pyproject.toml +++ b/model/atmosphere/diffusion/pyproject.toml @@ -85,10 +85,6 @@ filename = "src/icon4py/model/atmosphere/diffusion/__init__.py" # parallel = true # source_pkgs = ['driver'] -# -- pytest -- -[tool.pytest.ini_options] -testpaths = 'tests' - # --ruff -- [tool.ruff] extend = "../../../pyproject.toml" diff --git a/model/atmosphere/diffusion/tests/conftest.py b/model/atmosphere/diffusion/tests/conftest.py index 0624b44b71..5b64c1f392 100644 --- a/model/atmosphere/diffusion/tests/conftest.py +++ b/model/atmosphere/diffusion/tests/conftest.py @@ -8,7 +8,14 @@ from icon4py.model.testing.helpers import backend, grid -from icon4py.model.testing.pytest_config import * # noqa: F401 + +# Make sure custom icon4py pytest hooks are loaded +try: + import sys + _ = sys.modules["icon4py.model.testing.pytest_config"] +except KeyError: + from icon4py.model.testing.pytest_config import * # noqa: F401 + __all__ = [ # imported fixtures: diff --git a/model/atmosphere/dycore/pyproject.toml b/model/atmosphere/dycore/pyproject.toml index d220b11e34..5f919cdf6f 100644 --- a/model/atmosphere/dycore/pyproject.toml +++ b/model/atmosphere/dycore/pyproject.toml @@ -86,10 +86,6 @@ filename = "src/icon4py/model/atmosphere/dycore/__init__.py" # parallel = true # source_pkgs = ['driver'] -# -- pytest -- -[tool.pytest.ini_options] -testpaths = 'tests' - # --ruff -- [tool.ruff] extend = "../../../pyproject.toml" diff --git a/model/atmosphere/dycore/tests/conftest.py b/model/atmosphere/dycore/tests/conftest.py index e33356cd5d..d2b2fd1bcc 100644 --- a/model/atmosphere/dycore/tests/conftest.py +++ b/model/atmosphere/dycore/tests/conftest.py @@ -7,7 +7,14 @@ # SPDX-License-Identifier: BSD-3-Clause from icon4py.model.testing.helpers import backend, grid -from icon4py.model.testing.pytest_config import * # noqa: F401 + +# Make sure custom icon4py pytest hooks are loaded +try: + import sys + _ = sys.modules["icon4py.model.testing.pytest_config"] +except KeyError: + from icon4py.model.testing.pytest_config import * # noqa: F401 + __all__ = [ # imported fixtures: diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml b/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml index 846e71cbad..ab10d4585b 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml +++ b/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml @@ -85,10 +85,6 @@ filename = "src/icon4py/model/atmosphere/subgrid_scale_physics/microphysics/__in # parallel = true # source_pkgs = ['driver'] -# -- pytest -- -[tool.pytest.ini_options] -testpaths = 'tests' - # --ruff -- [tool.ruff] extend = "../../../../pyproject.toml" diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py b/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py index cc3ef5fe1f..4bf5fa5a93 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py +++ b/model/atmosphere/subgrid_scale_physics/microphysics/tests/conftest.py @@ -28,7 +28,14 @@ ranked_data_path, ) from icon4py.model.testing.helpers import backend, grid -from icon4py.model.testing.pytest_config import * # noqa: F401 + +# Make sure custom icon4py pytest hooks are loaded +try: + import sys + _ = sys.modules["icon4py.model.testing.pytest_config"] +except KeyError: + from icon4py.model.testing.pytest_config import * # noqa: F401 + __all__ = [ # imported fixtures: diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index a18b8a62d3..4d12bd7ee4 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -105,10 +105,6 @@ filename = "src/icon4py/model/common/__init__.py" # parallel = true # source_pkgs = ['common'] -# -- pytest -- -[tool.pytest.ini_options] -testpaths = 'tests' - # --ruff -- [tool.ruff] extend = "../../pyproject.toml" diff --git a/model/common/tests/conftest.py b/model/common/tests/conftest.py index b0ae087250..9a4889d5bd 100644 --- a/model/common/tests/conftest.py +++ b/model/common/tests/conftest.py @@ -16,7 +16,13 @@ experiment, ) from icon4py.model.testing.helpers import backend, grid -from icon4py.model.testing.pytest_config import * # noqa: F401 + +# Make sure custom icon4py pytest hooks are loaded +try: + import sys + _ = sys.modules["icon4py.model.testing.pytest_config"] +except KeyError: + from icon4py.model.testing.pytest_config import * # noqa: F401 __all__ = [ # local: diff --git a/model/driver/pyproject.toml b/model/driver/pyproject.toml index 785bfc8a3a..2c62b2f02e 100644 --- a/model/driver/pyproject.toml +++ b/model/driver/pyproject.toml @@ -93,10 +93,6 @@ filename = "src/icon4py/model/driver/__init__.py" # parallel = true # source_pkgs = ['driver'] -# -- pytest -- -[tool.pytest.ini_options] -testpaths = 'tests' - # --ruff -- [tool.ruff] extend = "../../pyproject.toml" diff --git a/model/driver/tests/conftest.py b/model/driver/tests/conftest.py index 1b2b2e4d86..feb896f4cc 100644 --- a/model/driver/tests/conftest.py +++ b/model/driver/tests/conftest.py @@ -11,7 +11,14 @@ import pytest from icon4py.model.testing.helpers import backend -from icon4py.model.testing.pytest_config import * # noqa: F401 + +# Make sure custom icon4py pytest hooks are loaded +try: + import sys + _ = sys.modules["icon4py.model.testing.pytest_config"] +except KeyError: + from icon4py.model.testing.pytest_config import * # noqa: F401 + from icon4py.model.atmosphere.diffusion import diffusion from icon4py.model.testing.datatest_fixtures import ( diff --git a/noxfile.py b/noxfile.py index 093b6350d6..b1957c76ad 100644 --- a/noxfile.py +++ b/noxfile.py @@ -41,7 +41,7 @@ def test_atmosphere(session: nox.Session, subpackage: str, datatest: bool) -> No with session.chdir(f"model/atmosphere/{subpackage}"): session.run( - *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} -m {'' if datatest else 'not'} datatest".split(), + *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} {'--datatest' if datatest else ''}".split(), *session.posargs ) @@ -86,7 +86,7 @@ def test_common(session: nox.Session, datatest: bool) -> None: with session.chdir("model/common"): session.run( - *f"pytest -sv -n {session.env.get('NUM_PROCESSES', 'auto')} -m {'' if datatest else 'not'} datatest".split(), + *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} {'--datatest' if datatest else ''}".split(), *session.posargs ) @@ -99,22 +99,26 @@ def test_driver(session: nox.Session, datatest: bool) -> None: with session.chdir("model/driver"): session.run( - *f"pytest -sv -n {session.env.get('NUM_PROCESSES', 'auto')} -m {'' if datatest else 'not'} datatest".split(), + *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} {'--datatest' if datatest else ''}".split(), *session.posargs ) @nox.session(python=["3.10", "3.11"]) def test_model_datatest(session: nox.Session) -> None: + _install_session_venv(session, extras=["all"], groups=["test"]) + session.run( - *f"pytest -sv -n {session.env.get('NUM_PROCESSES', 'auto')} -m datatest".split(), + *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} --datatest".split(), *session.posargs ) @nox.session(python=["3.10", "3.11"]) def test_model_operators(session: nox.Session) -> None: + _install_session_venv(session, extras=["all"], groups=["test"]) + session.run( - *f"pytest -sv -n {session.env.get('NUM_PROCESSES', 'auto')} -k 'stencil_tests'".split(), + *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} -k 'stencil_tests'".split(), *session.posargs ) @@ -127,7 +131,7 @@ def test_tools(session: nox.Session, datatest: bool) -> None: with session.chdir("tools"): session.run( - *f"pytest -sv -n {session.env.get('NUM_PROCESSES', 'auto')} -m {'' if datatest else 'not'} datatest".split(), + *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} {'--datatest' if datatest else ''}".split(), *session.posargs ) diff --git a/pyproject.toml b/pyproject.toml index 43e0e92c1e..b441265948 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -225,3 +225,7 @@ max-complexity = 15 # -- setuptools -- [tool.setuptools] packages = [] + +# -- pytest -- +[tool.pytest.ini_options] +addopts = ['-p icon4py.model.testing.pytest_config'] diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 4fa73acf28..f069a6a501 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -101,10 +101,6 @@ filename = "src/icon4pytools/__init__.py" # parallel = true # source_pkgs = ['icon4pytools'] -# -- pytest -- -[tool.pytest.ini_options] -testpaths = 'tests' - # -- ruff -- [tool.ruff] extend = "../pyproject.toml" diff --git a/tools/tests/conftest.py b/tools/tests/conftest.py index bdc40af51e..d2e2cbbfa6 100644 --- a/tools/tests/conftest.py +++ b/tools/tests/conftest.py @@ -40,7 +40,14 @@ step_date_init, stretch_factor, ) -from icon4py.model.testing.pytest_config import * # noqa: F401 + +# Make sure custom icon4py pytest hooks are loaded +try: + import sys + _ = sys.modules["icon4py.model.testing.pytest_config"] +except KeyError: + from icon4py.model.testing.pytest_config import * # noqa: F401 + __all__ = [ # local: From fd9731e038139d46d38ab108d9c8a59cd095500f Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Mon, 16 Dec 2024 16:21:22 +0100 Subject: [PATCH 53/83] Pre-commit and format settings --- .pre-commit-config.yaml | 18 +++++++++--------- model/common/tests/conftest.py | 6 ++++-- pyproject.toml | 1 + .../py2fgen/wrappers/dycore_wrapper.py | 10 ++++++---- tools/tests/conftest.py | 6 ++++-- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e34231bb5c..d85c65df30 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -31,15 +31,15 @@ repos: - id: debug-statements - id: destroyed-symlinks -- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks - rev: v2.6.0 - hooks: - - id: pretty-format-ini - args: [--autofix] - - id: pretty-format-toml - args: [--autofix] - - id: pretty-format-yaml - args: [--autofix, --preserve-quotes, --indent, "2"] +# - repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks +# rev: v2.6.0 +# hooks: +# - id: pretty-format-ini +# args: [--autofix] +# - id: pretty-format-toml +# args: [--autofix] +# - id: pretty-format-yaml +# args: [--autofix, --preserve-quotes, --indent, "2"] - repo: https://github.com/pre-commit/mirrors-prettier rev: v3.0.0-alpha.4 diff --git a/model/common/tests/conftest.py b/model/common/tests/conftest.py index 9a4889d5bd..3786486921 100644 --- a/model/common/tests/conftest.py +++ b/model/common/tests/conftest.py @@ -17,12 +17,14 @@ ) from icon4py.model.testing.helpers import backend, grid + # Make sure custom icon4py pytest hooks are loaded try: import sys + _ = sys.modules["icon4py.model.testing.pytest_config"] except KeyError: - from icon4py.model.testing.pytest_config import * # noqa: F401 + from icon4py.model.testing.pytest_config import * # noqa: F403 __all__ = [ # local: @@ -32,7 +34,7 @@ "backend", "grid", "decomposition_info", - "experiment" + "experiment", ] diff --git a/pyproject.toml b/pyproject.toml index b441265948..96feabc8de 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -211,6 +211,7 @@ ignore = [ 'E501', # Line too long (using Bugbear's B950 warning) 'RUF009', # Do not perform function call in dataclass defaults 'B010', # Do not call `setattr` with a constant attribute value. + 'B905', # Checks for zip calls without an explicit strict parameter. ] [tool.ruff.lint.isort] diff --git a/tools/src/icon4pytools/py2fgen/wrappers/dycore_wrapper.py b/tools/src/icon4pytools/py2fgen/wrappers/dycore_wrapper.py index 00a23107c3..1252b4457f 100644 --- a/tools/src/icon4pytools/py2fgen/wrappers/dycore_wrapper.py +++ b/tools/src/icon4pytools/py2fgen/wrappers/dycore_wrapper.py @@ -32,8 +32,9 @@ import pstats import gt4py.next as gtx -import icon4py.model.common.grid.states as grid_states from gt4py.next import common as gt4py_common + +import icon4py.model.common.grid.states as grid_states from icon4py.model.atmosphere.dycore import dycore_states, solve_nonhydro from icon4py.model.common import dimension as dims, utils as common_utils from icon4py.model.common.dimension import ( @@ -58,8 +59,7 @@ from icon4py.model.common.grid.icon import GlobalGridParams from icon4py.model.common.grid.vertical import VerticalGrid, VerticalGridConfig from icon4py.model.common.states.prognostic_state import PrognosticState -from icon4py.model.common.utils import data_allocation as fields_utils - +from icon4py.model.common.utils import data_allocation as data_alloc from icon4pytools.common.logger import setup_logger from icon4pytools.py2fgen.settings import backend, device from icon4pytools.py2fgen.wrappers import common as wrapper_common @@ -385,7 +385,9 @@ def solve_nh_run( vn_traj=vn_traj, mass_flx_me=mass_flx_me, mass_flx_ic=mass_flx_ic, - vol_flx_ic=fields_utils.zero_field(dycore_wrapper_state["grid"], CellDim, KDim, dtype=gtx.float64), + vol_flx_ic=data_alloc.zero_field( + dycore_wrapper_state["grid"], CellDim, KDim, dtype=gtx.float64 + ), ) diagnostic_state_nh = dycore_states.DiagnosticStateNonHydro( diff --git a/tools/tests/conftest.py b/tools/tests/conftest.py index d2e2cbbfa6..8d7418f5db 100644 --- a/tools/tests/conftest.py +++ b/tools/tests/conftest.py @@ -12,7 +12,7 @@ import pytest import icon4py.model.common.type_alias as type_alias -from icon4py.model.testing.datatest_fixtures import ( # noqa F401 +from icon4py.model.testing.datatest_fixtures import ( # F401 damping_height, data_provider, download_ser_data, @@ -41,12 +41,14 @@ stretch_factor, ) + # Make sure custom icon4py pytest hooks are loaded try: import sys + _ = sys.modules["icon4py.model.testing.pytest_config"] except KeyError: - from icon4py.model.testing.pytest_config import * # noqa: F401 + from icon4py.model.testing.pytest_config import * # noqa: F403 __all__ = [ From ac59797a040176e98ed979dfac00ff8cbaeed984 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Mon, 16 Dec 2024 16:27:01 +0100 Subject: [PATCH 54/83] Fix format with ruff & pre-commit --- .../src/icon4py/model/common/type_alias.py | 2 ++ .../src/icon4py/model/common/utils/__init__.py | 2 +- .../model/common/utils/data_allocation.py | 11 +++++++---- .../test_diagnostic_calculations.py | 3 ++- model/common/tests/grid_tests/test_geometry.py | 2 +- .../test_interpolation_factory.py | 1 - .../test_interpolation_fields.py | 2 +- model/common/tests/io_tests/test_io.py | 6 ++++-- model/common/tests/io_tests/test_writers.py | 1 - model/common/tests/math_tests/test_helpers.py | 2 +- .../test_compute_diffusion_metrics.py | 16 ++++++++++++---- .../metric_tests/test_compute_nudgecoeffs.py | 4 ++-- .../tests/metric_tests/test_compute_wgtfac_c.py | 8 +++++--- .../tests/metric_tests/test_metric_fields.py | 10 +++++++--- .../tests/metric_tests/test_metric_scalars.py | 6 ++++-- .../metric_tests/test_reference_atmosphere.py | 4 ++-- .../test_cell_2_edge_interpolation.py | 2 +- .../test_compute_cell_2_vertex_interpolation.py | 2 +- .../stencil_tests/test_diagnose_pressure.py | 2 +- .../test_diagnose_surface_pressure.py | 2 +- .../stencil_tests/test_diagnose_temperature.py | 2 +- .../test_edge_2_cell_vector_rbf_interpolation.py | 2 +- .../test_mo_intp_rbf_rbf_vec_interpol_vertex.py | 4 ++-- tools/src/icon4pytools/common/icochainsize.py | 1 + tools/src/icon4pytools/common/metadata.py | 4 ++-- tools/src/icon4pytools/icon4pygen/backend.py | 2 +- .../icon4pygen/bindings/locations.py | 2 +- tools/src/icon4pytools/py2fgen/template.py | 1 - .../src/icon4pytools/py2fgen/wrappers/common.py | 1 - .../icon4pytools/py2fgen/wrappers/debug_utils.py | 1 - .../py2fgen/wrappers/diffusion_wrapper.py | 8 +++++--- .../src/icon4pytools/py2fgen/wrappers/simple.py | 2 +- tools/tests/icon4pygen/test_backend.py | 2 +- tools/tests/icon4pygen/test_codegen.py | 6 +++--- tools/tests/icon4pygen/test_exceptions.py | 2 +- tools/tests/icon4pygen/test_field_rendering.py | 2 +- tools/tests/icon4pygen/test_metadata.py | 2 +- tools/tests/py2fgen/test_codegen.py | 2 +- tools/tests/py2fgen/test_diffusion_wrapper.py | 4 ++-- tools/tests/py2fgen/test_dycore_wrapper.py | 5 ++--- tools/tests/py2fgen/utils.py | 2 +- 41 files changed, 83 insertions(+), 62 deletions(-) diff --git a/model/common/src/icon4py/model/common/type_alias.py b/model/common/src/icon4py/model/common/type_alias.py index afd0bb9497..0b635dff6e 100644 --- a/model/common/src/icon4py/model/common/type_alias.py +++ b/model/common/src/icon4py/model/common/type_alias.py @@ -19,6 +19,7 @@ precision = os.environ.get("FLOAT_PRECISION", DEFAULT_PRECISION).lower() + def set_precision(new_precision: Literal["double", "mixed"]) -> None: global precision global vpfloat @@ -32,4 +33,5 @@ def set_precision(new_precision: Literal["double", "mixed"]) -> None: case _: raise ValueError("Only 'double' and 'mixed' precision are supported.") + set_precision(precision) diff --git a/model/common/src/icon4py/model/common/utils/__init__.py b/model/common/src/icon4py/model/common/utils/__init__.py index 9a7a3d531d..2c45ba849c 100644 --- a/model/common/src/icon4py/model/common/utils/__init__.py +++ b/model/common/src/icon4py/model/common/utils/__init__.py @@ -8,6 +8,7 @@ from __future__ import annotations +from . import data_allocation from ._common import ( DoubleBuffering, Pair, @@ -16,7 +17,6 @@ chainable, named_property, ) -from . import data_allocation __all__ = [ diff --git a/model/common/src/icon4py/model/common/utils/data_allocation.py b/model/common/src/icon4py/model/common/utils/data_allocation.py index 3a96854a33..ef974c73a3 100644 --- a/model/common/src/icon4py/model/common/utils/data_allocation.py +++ b/model/common/src/icon4py/model/common/utils/data_allocation.py @@ -9,16 +9,17 @@ from __future__ import annotations import logging as log -from typing import Optional, TypeAlias, Union, TYPE_CHECKING +from typing import TYPE_CHECKING, Optional, TypeAlias, Union import gt4py._core.definitions as gt_core_defs import gt4py.next as gtx -from gt4py.next import backend import numpy as np import numpy.typing as npt +from gt4py.next import backend from icon4py.model.common import dimension, type_alias as ta + if TYPE_CHECKING: from icon4py.model.common.grid import base as grid_base @@ -47,6 +48,7 @@ def as_numpy(array: NDArrayInterface): else: return array.asnumpy() + def is_cupy_device(backend: backend.Backend) -> bool: if backend is not None: return backend.allocator.__gt_device_type__ in CUDA_DEVICE_TYPES @@ -117,7 +119,7 @@ def random_field( high: float = 1.0, dtype: Optional[npt.DTypeLike] = None, extend: Optional[dict[gtx.Dimension, int]] = None, - backend=None + backend=None, ) -> gtx.Field: arr = np.random.default_rng().uniform( low=low, high=high, size=_shape(grid, *dims, extend=extend) @@ -132,7 +134,7 @@ def zero_field( *dims: gtx.Dimension, dtype=ta.wpfloat, extend: Optional[dict[gtx.Dimension, int]] = None, - backend=None + backend=None, ) -> gtx.Field: field_domain = {dim: (0, stop) for dim, stop in zip(dims, _shape(grid, *dims, extend=extend))} return gtx.constructors.zeros(field_domain, dtype=dtype, allocator=backend) @@ -155,6 +157,7 @@ def _shape( extend = extend or {} return tuple(grid.size[dim] + extend.get(dim, 0) for dim in dims) + def _size(grid, dim: gtx.Dimension, is_half_dim: bool) -> int: if dim == dimension.KDim and is_half_dim: return grid.size[dim] + 1 diff --git a/model/common/tests/diagnostic_calculations_tests/test_diagnostic_calculations.py b/model/common/tests/diagnostic_calculations_tests/test_diagnostic_calculations.py index 5453729329..5e9868167f 100644 --- a/model/common/tests/diagnostic_calculations_tests/test_diagnostic_calculations.py +++ b/model/common/tests/diagnostic_calculations_tests/test_diagnostic_calculations.py @@ -23,8 +23,9 @@ prognostic_state, tracer_state as tracers, ) -from icon4py.model.testing import datatest_utils as dt_utils, helpers from icon4py.model.common.utils import data_allocation as data_alloc +from icon4py.model.testing import datatest_utils as dt_utils, helpers + @pytest.mark.datatest @pytest.mark.parametrize( diff --git a/model/common/tests/grid_tests/test_geometry.py b/model/common/tests/grid_tests/test_geometry.py index 5652ae1911..a35af3156c 100644 --- a/model/common/tests/grid_tests/test_geometry.py +++ b/model/common/tests/grid_tests/test_geometry.py @@ -11,7 +11,6 @@ import pytest from icon4py.model.common import dimension as dims -from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.grid import ( geometry as geometry, geometry_attributes as attrs, @@ -19,6 +18,7 @@ simple as simple, ) from icon4py.model.common.grid.geometry import as_sparse_field +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.testing import datatest_utils as dt_utils, grid_utils, helpers diff --git a/model/common/tests/interpolation_tests/test_interpolation_factory.py b/model/common/tests/interpolation_tests/test_interpolation_factory.py index 5339db6dd6..5b2ceed735 100644 --- a/model/common/tests/interpolation_tests/test_interpolation_factory.py +++ b/model/common/tests/interpolation_tests/test_interpolation_factory.py @@ -15,7 +15,6 @@ interpolation_attributes as attrs, interpolation_factory, ) - from icon4py.model.testing import ( datatest_utils as dt_utils, grid_utils as gridtest_utils, diff --git a/model/common/tests/interpolation_tests/test_interpolation_fields.py b/model/common/tests/interpolation_tests/test_interpolation_fields.py index dfaa9f3130..5202cb4bb0 100644 --- a/model/common/tests/interpolation_tests/test_interpolation_fields.py +++ b/model/common/tests/interpolation_tests/test_interpolation_fields.py @@ -27,6 +27,7 @@ compute_mass_conserving_bilinear_cell_average_weight, compute_pos_on_tplane_e_x_y, ) +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.testing import datatest_utils as dt_utils from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package data_provider, @@ -35,7 +36,6 @@ processor_props, ranked_data_path, ) -from icon4py.model.common.utils import data_allocation as data_alloc cell_domain = h_grid.domain(dims.CellDim) diff --git a/model/common/tests/io_tests/test_io.py b/model/common/tests/io_tests/test_io.py index 590a5471e4..099184ceb0 100644 --- a/model/common/tests/io_tests/test_io.py +++ b/model/common/tests/io_tests/test_io.py @@ -30,7 +30,7 @@ ) from icon4py.model.common.states import data from icon4py.model.common.utils import data_allocation as data_alloc -from icon4py.model.testing import datatest_utils, grid_utils, helpers +from icon4py.model.testing import datatest_utils, grid_utils # setting backend to fieldview embedded here. @@ -50,7 +50,9 @@ def model_state(grid: base.BaseGrid) -> dict[str, xr.DataArray]: rho = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) exner = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) theta_v = data_alloc.random_field(grid, dims.CellDim, dims.KDim, dtype=np.float32) - w = data_alloc.random_field(grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}, dtype=np.float32) + w = data_alloc.random_field( + grid, dims.CellDim, dims.KDim, extend={dims.KDim: 1}, dtype=np.float32 + ) vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim, dtype=np.float32) return { "air_density": utils.to_data_array(rho, data.PROGNOSTIC_CF_ATTRIBUTES["air_density"]), diff --git a/model/common/tests/io_tests/test_writers.py b/model/common/tests/io_tests/test_writers.py index 27961e2acc..e12fbc161a 100644 --- a/model/common/tests/io_tests/test_writers.py +++ b/model/common/tests/io_tests/test_writers.py @@ -20,7 +20,6 @@ filter_by_standard_name, ) from icon4py.model.common.states import data, metadata -from icon4py.model.testing import helpers from icon4py.model.common.utils import data_allocation as data_alloc from . import test_io diff --git a/model/common/tests/math_tests/test_helpers.py b/model/common/tests/math_tests/test_helpers.py index 565ede0374..0157493a7b 100644 --- a/model/common/tests/math_tests/test_helpers.py +++ b/model/common/tests/math_tests/test_helpers.py @@ -9,9 +9,9 @@ import numpy as np from icon4py.model.common import dimension as dims -from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.grid import simple from icon4py.model.common.math import helpers +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.testing import helpers as test_helpers diff --git a/model/common/tests/metric_tests/test_compute_diffusion_metrics.py b/model/common/tests/metric_tests/test_compute_diffusion_metrics.py index d3c4228ab0..d172bdbd1b 100644 --- a/model/common/tests/metric_tests/test_compute_diffusion_metrics.py +++ b/model/common/tests/metric_tests/test_compute_diffusion_metrics.py @@ -37,9 +37,13 @@ def test_compute_diffusion_metrics( pytest.skip(f"Fields not computed for {experiment}") mask_hdiff = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=bool).asnumpy() - zd_vertoffset_dsl = data_alloc.zero_field(icon_grid, dims.CellDim, dims.C2E2CDim, dims.KDim).asnumpy() + zd_vertoffset_dsl = data_alloc.zero_field( + icon_grid, dims.CellDim, dims.C2E2CDim, dims.KDim + ).asnumpy() z_vintcoeff = data_alloc.zero_field(icon_grid, dims.CellDim, dims.C2E2CDim, dims.KDim).asnumpy() - zd_intcoef_dsl = data_alloc.zero_field(icon_grid, dims.CellDim, dims.C2E2CDim, dims.KDim).asnumpy() + zd_intcoef_dsl = data_alloc.zero_field( + icon_grid, dims.CellDim, dims.C2E2CDim, dims.KDim + ).asnumpy() z_maxslp_avg = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) z_maxhgtd_avg = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim) zd_diffcoef_dsl = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim).asnumpy() @@ -139,6 +143,10 @@ def test_compute_diffusion_metrics( ) assert helpers.dallclose(mask_hdiff, metrics_savepoint.mask_hdiff().asnumpy()) - assert helpers.dallclose(zd_diffcoef_dsl, metrics_savepoint.zd_diffcoef().asnumpy(), rtol=1.0e-11) - assert helpers.dallclose(zd_vertoffset_dsl.asnumpy(), metrics_savepoint.zd_vertoffset().asnumpy()) + assert helpers.dallclose( + zd_diffcoef_dsl, metrics_savepoint.zd_diffcoef().asnumpy(), rtol=1.0e-11 + ) + assert helpers.dallclose( + zd_vertoffset_dsl.asnumpy(), metrics_savepoint.zd_vertoffset().asnumpy() + ) assert helpers.dallclose(zd_intcoef_dsl.asnumpy(), metrics_savepoint.zd_intcoef().asnumpy()) diff --git a/model/common/tests/metric_tests/test_compute_nudgecoeffs.py b/model/common/tests/metric_tests/test_compute_nudgecoeffs.py index e000d24a18..dcacce79fb 100644 --- a/model/common/tests/metric_tests/test_compute_nudgecoeffs.py +++ b/model/common/tests/metric_tests/test_compute_nudgecoeffs.py @@ -12,6 +12,8 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.grid import horizontal as h_grid, refinement from icon4py.model.common.metrics.compute_nudgecoeffs import compute_nudgecoeffs +from icon4py.model.common.type_alias import wpfloat +from icon4py.model.common.utils.data_allocation import zero_field from icon4py.model.testing import datatest_utils as dt_utils from icon4py.model.testing.datatest_fixtures import ( # noqa: F401 # import fixtures from test_utils package data_provider, @@ -23,8 +25,6 @@ processor_props, ranked_data_path, ) -from icon4py.model.common.utils.data_allocation import zero_field -from icon4py.model.common.type_alias import wpfloat @pytest.mark.datatest diff --git a/model/common/tests/metric_tests/test_compute_wgtfac_c.py b/model/common/tests/metric_tests/test_compute_wgtfac_c.py index ae481d1f41..093c8fa43e 100644 --- a/model/common/tests/metric_tests/test_compute_wgtfac_c.py +++ b/model/common/tests/metric_tests/test_compute_wgtfac_c.py @@ -12,13 +12,15 @@ from icon4py.model.common.metrics.compute_wgtfac_c import compute_wgtfac_c from icon4py.model.common.type_alias import wpfloat from icon4py.model.common.utils import data_allocation as data_alloc -from icon4py.model.testing import datatest_utils as dt_utils -from icon4py.model.testing import helpers +from icon4py.model.testing import datatest_utils as dt_utils, helpers + @pytest.mark.datatest @pytest.mark.parametrize("experiment", [dt_utils.REGIONAL_EXPERIMENT, dt_utils.GLOBAL_EXPERIMENT]) def test_compute_wgtfac_c(icon_grid, metrics_savepoint): # fixture - wgtfac_c = data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=wpfloat, extend={dims.KDim: 1}) + wgtfac_c = data_alloc.zero_field( + icon_grid, dims.CellDim, dims.KDim, dtype=wpfloat, extend={dims.KDim: 1} + ) wgtfac_c_ref = metrics_savepoint.wgtfac_c() z_ifc = metrics_savepoint.z_ifc() k = data_alloc.allocate_indices(dims.KDim, grid=icon_grid, is_halfdim=True) diff --git a/model/common/tests/metric_tests/test_metric_fields.py b/model/common/tests/metric_tests/test_metric_fields.py index 78cb14df2c..097308ae69 100644 --- a/model/common/tests/metric_tests/test_metric_fields.py +++ b/model/common/tests/metric_tests/test_metric_fields.py @@ -47,8 +47,8 @@ compute_wgtfac_e, compute_z_mc, ) -from icon4py.model.testing import datatest_utils as dt_utils from icon4py.model.common.utils import data_allocation as data_alloc +from icon4py.model.testing import datatest_utils as dt_utils from icon4py.model.testing.helpers import ( StencilTest, dallclose, @@ -523,10 +523,14 @@ def test_compute_vwind_impl_wgt( pytest.skip("skipping: slow backend") z_ifc = metrics_savepoint.z_ifc() inv_dual_edge_length = grid_savepoint.inv_dual_edge_length() - z_ddxn_z_half_e = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + z_ddxn_z_half_e = data_alloc.zero_field( + icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1} + ) tangent_orientation = grid_savepoint.tangent_orientation() inv_primal_edge_length = grid_savepoint.inverse_primal_edge_lengths() - z_ddxt_z_half_e = data_alloc.zero_field(icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + z_ddxt_z_half_e = data_alloc.zero_field( + icon_grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1} + ) z_ifv = data_alloc.zero_field(icon_grid, dims.VertexDim, dims.KDim, extend={dims.KDim: 1}) horizontal_start = icon_grid.start_index(edge_domain(horizontal.Zone.LATERAL_BOUNDARY_LEVEL_2)) diff --git a/model/common/tests/metric_tests/test_metric_scalars.py b/model/common/tests/metric_tests/test_metric_scalars.py index adad6c4270..da2d81ab31 100644 --- a/model/common/tests/metric_tests/test_metric_scalars.py +++ b/model/common/tests/metric_tests/test_metric_scalars.py @@ -7,16 +7,18 @@ # SPDX-License-Identifier: BSD-3-Clause from icon4py.model.common import dimension as dims -from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.grid.simple import SimpleGrid from icon4py.model.common.metrics.metric_scalars import compute_kstart_dd3d from icon4py.model.common.type_alias import wpfloat +from icon4py.model.common.utils import data_allocation as data_alloc def test_compute_kstart_dd3d(): grid = SimpleGrid() - scalfac_dd3d_full = data_alloc.random_field(grid, dims.KDim, low=0.1, high=3.0, dtype=wpfloat).asnumpy() + scalfac_dd3d_full = data_alloc.random_field( + grid, dims.KDim, low=0.1, high=3.0, dtype=wpfloat + ).asnumpy() scalfac_dd3d_full[0:3] = 0.0 kstart_dd3d_ref = 3 diff --git a/model/common/tests/metric_tests/test_reference_atmosphere.py b/model/common/tests/metric_tests/test_reference_atmosphere.py index e6b896f5b8..927ebf6a22 100644 --- a/model/common/tests/metric_tests/test_reference_atmosphere.py +++ b/model/common/tests/metric_tests/test_reference_atmosphere.py @@ -8,8 +8,8 @@ import gt4py.next as gtx import pytest -import icon4py.model.testing.helpers as helpers import icon4py.model.common.type_alias as ta +import icon4py.model.testing.helpers as helpers from icon4py.model.common import constants, dimension as dims from icon4py.model.common.grid import horizontal from icon4py.model.common.interpolation.stencils.cell_2_edge_interpolation import ( @@ -21,8 +21,8 @@ compute_reference_atmosphere_cell_fields, compute_reference_atmosphere_edge_fields, ) -from icon4py.model.testing import datatest_utils as dt_utils from icon4py.model.common.utils import data_allocation as data_alloc +from icon4py.model.testing import datatest_utils as dt_utils # TODO (@halungge) some tests need to run on a compiled backend: embedded does not work with the diff --git a/model/common/tests/stencil_tests/test_cell_2_edge_interpolation.py b/model/common/tests/stencil_tests/test_cell_2_edge_interpolation.py index 478ff05da3..53972ef700 100644 --- a/model/common/tests/stencil_tests/test_cell_2_edge_interpolation.py +++ b/model/common/tests/stencil_tests/test_cell_2_edge_interpolation.py @@ -13,8 +13,8 @@ from icon4py.model.common.interpolation.stencils.cell_2_edge_interpolation import ( cell_2_edge_interpolation, ) -from icon4py.model.testing import helpers from icon4py.model.common.utils import data_allocation as data_alloc +from icon4py.model.testing import helpers class TestCell2EdgeInterpolation(helpers.StencilTest): diff --git a/model/common/tests/stencil_tests/test_compute_cell_2_vertex_interpolation.py b/model/common/tests/stencil_tests/test_compute_cell_2_vertex_interpolation.py index 2e2058424d..0547b3f902 100644 --- a/model/common/tests/stencil_tests/test_compute_cell_2_vertex_interpolation.py +++ b/model/common/tests/stencil_tests/test_compute_cell_2_vertex_interpolation.py @@ -14,8 +14,8 @@ from icon4py.model.common.interpolation.stencils.compute_cell_2_vertex_interpolation import ( compute_cell_2_vertex_interpolation, ) -from icon4py.model.testing import helpers from icon4py.model.common.utils import data_allocation as data_alloc +from icon4py.model.testing import helpers class TestComputeCells2VertsInterpolation(helpers.StencilTest): diff --git a/model/common/tests/stencil_tests/test_diagnose_pressure.py b/model/common/tests/stencil_tests/test_diagnose_pressure.py index bb61f73e7c..c25797239e 100644 --- a/model/common/tests/stencil_tests/test_diagnose_pressure.py +++ b/model/common/tests/stencil_tests/test_diagnose_pressure.py @@ -13,8 +13,8 @@ from icon4py.model.common.diagnostic_calculations.stencils.diagnose_pressure import ( diagnose_pressure, ) -from icon4py.model.testing import helpers from icon4py.model.common.utils import data_allocation as data_alloc +from icon4py.model.testing import helpers class TestDiagnosePressure(helpers.StencilTest): diff --git a/model/common/tests/stencil_tests/test_diagnose_surface_pressure.py b/model/common/tests/stencil_tests/test_diagnose_surface_pressure.py index 9c036b3172..b8625573f5 100644 --- a/model/common/tests/stencil_tests/test_diagnose_surface_pressure.py +++ b/model/common/tests/stencil_tests/test_diagnose_surface_pressure.py @@ -13,8 +13,8 @@ from icon4py.model.common.diagnostic_calculations.stencils.diagnose_surface_pressure import ( diagnose_surface_pressure, ) -from icon4py.model.testing import helpers from icon4py.model.common.utils import data_allocation as data_alloc +from icon4py.model.testing import helpers class TestDiagnoseSurfacePressure(helpers.StencilTest): diff --git a/model/common/tests/stencil_tests/test_diagnose_temperature.py b/model/common/tests/stencil_tests/test_diagnose_temperature.py index 75df9a285e..e9796bbed1 100644 --- a/model/common/tests/stencil_tests/test_diagnose_temperature.py +++ b/model/common/tests/stencil_tests/test_diagnose_temperature.py @@ -13,8 +13,8 @@ from icon4py.model.common.diagnostic_calculations.stencils.diagnose_temperature import ( diagnose_virtual_temperature_and_temperature, ) -from icon4py.model.testing import helpers from icon4py.model.common.utils import data_allocation as data_alloc +from icon4py.model.testing import helpers class TestDiagnoseTemperature(helpers.StencilTest): diff --git a/model/common/tests/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py b/model/common/tests/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py index 30701280cd..5883f7c683 100644 --- a/model/common/tests/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py +++ b/model/common/tests/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py @@ -13,8 +13,8 @@ from icon4py.model.common.interpolation.stencils.edge_2_cell_vector_rbf_interpolation import ( edge_2_cell_vector_rbf_interpolation, ) -from icon4py.model.testing import helpers from icon4py.model.common.utils import data_allocation as data_alloc +from icon4py.model.testing import helpers class TestEdge2CellVectorRBFInterpolation(helpers.StencilTest): diff --git a/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py b/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py index c48fedd7df..1185694eb9 100644 --- a/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py +++ b/model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py @@ -13,9 +13,9 @@ from icon4py.model.common.interpolation.stencils.mo_intp_rbf_rbf_vec_interpol_vertex import ( mo_intp_rbf_rbf_vec_interpol_vertex, ) -from icon4py.model.testing.helpers import StencilTest -from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.type_alias import wpfloat +from icon4py.model.common.utils import data_allocation as data_alloc +from icon4py.model.testing.helpers import StencilTest class TestMoIntpRbfRbfVecInterpolVertex(StencilTest): diff --git a/tools/src/icon4pytools/common/icochainsize.py b/tools/src/icon4pytools/common/icochainsize.py index 40ca7bf304..ec8effa28a 100644 --- a/tools/src/icon4pytools/common/icochainsize.py +++ b/tools/src/icon4pytools/common/icochainsize.py @@ -106,6 +106,7 @@ from typing import ClassVar, List, TypeAlias from gt4py.next.common import Dimension + from icon4py.model.common import dimension as dims diff --git a/tools/src/icon4pytools/common/metadata.py b/tools/src/icon4pytools/common/metadata.py index a3114a9a5f..76b798562e 100644 --- a/tools/src/icon4pytools/common/metadata.py +++ b/tools/src/icon4pytools/common/metadata.py @@ -12,7 +12,6 @@ from dataclasses import dataclass from typing import Any, TypeGuard -import icon4py.model.common.dimension from gt4py import eve from gt4py.next.common import Connectivity, Dimension, DimensionKind from gt4py.next.ffront import program_ast as past @@ -21,8 +20,9 @@ from gt4py.next.iterator import ir as itir from gt4py.next.iterator.runtime import FendefDispatcher from gt4py.next.type_system import type_specifications as ts -from icon4py.model.common import dimension as dims +import icon4py.model.common.dimension +from icon4py.model.common import dimension as dims from icon4pytools.common import icochainsize as ico diff --git a/tools/src/icon4pytools/icon4pygen/backend.py b/tools/src/icon4pytools/icon4pygen/backend.py index bfe1b0ac1e..a164d7b08e 100644 --- a/tools/src/icon4pytools/icon4pygen/backend.py +++ b/tools/src/icon4pytools/icon4pygen/backend.py @@ -15,8 +15,8 @@ from gt4py.next.iterator.transforms import LiftMode from gt4py.next.program_processors.codegens.gtfn import gtfn_module from gt4py.next.type_system import type_specifications as ts -from icon4py.model.common import dimension as dims +from icon4py.model.common import dimension as dims from icon4pytools.common.metadata import StencilInfo from icon4pytools.common.utils import write_string diff --git a/tools/src/icon4pytools/icon4pygen/bindings/locations.py b/tools/src/icon4pytools/icon4pygen/bindings/locations.py index f04f7fe088..4be6bfcf15 100644 --- a/tools/src/icon4pytools/icon4pygen/bindings/locations.py +++ b/tools/src/icon4pytools/icon4pygen/bindings/locations.py @@ -10,8 +10,8 @@ from typing import Iterator from gt4py.next.ffront.fbuiltins import Dimension -from icon4py.model.common import dimension as dims +from icon4py.model.common import dimension as dims from icon4pytools.icon4pygen.bindings.codegen.render.location import LocationRenderer diff --git a/tools/src/icon4pytools/py2fgen/template.py b/tools/src/icon4pytools/py2fgen/template.py index 1240533f0a..ad58a1b67e 100644 --- a/tools/src/icon4pytools/py2fgen/template.py +++ b/tools/src/icon4pytools/py2fgen/template.py @@ -121,7 +121,6 @@ def get_uninitialised_arrays(limited_area: bool): def build_array_size_args() -> dict[str, str]: array_size_args = {} from icon4py.model.common import dimension - from icon4pytools.py2fgen.wrappers import wrapper_dimension # Function to process the dimensions diff --git a/tools/src/icon4pytools/py2fgen/wrappers/common.py b/tools/src/icon4pytools/py2fgen/wrappers/common.py index 55e515682d..f0e721b566 100644 --- a/tools/src/icon4pytools/py2fgen/wrappers/common.py +++ b/tools/src/icon4pytools/py2fgen/wrappers/common.py @@ -12,7 +12,6 @@ from icon4py.model.common import dimension as dims from icon4py.model.common.decomposition import definitions from icon4py.model.common.grid import base, horizontal, icon - from icon4pytools.py2fgen.settings import config diff --git a/tools/src/icon4pytools/py2fgen/wrappers/debug_utils.py b/tools/src/icon4pytools/py2fgen/wrappers/debug_utils.py index fd176d6362..4c23a8e892 100644 --- a/tools/src/icon4pytools/py2fgen/wrappers/debug_utils.py +++ b/tools/src/icon4pytools/py2fgen/wrappers/debug_utils.py @@ -18,7 +18,6 @@ VertexDim, ) from icon4py.model.common.grid.icon import IconGrid - from icon4pytools.common.logger import setup_logger from icon4pytools.py2fgen.settings import config diff --git a/tools/src/icon4pytools/py2fgen/wrappers/diffusion_wrapper.py b/tools/src/icon4pytools/py2fgen/wrappers/diffusion_wrapper.py index aafb3d24fe..ad04cdd40c 100644 --- a/tools/src/icon4pytools/py2fgen/wrappers/diffusion_wrapper.py +++ b/tools/src/icon4pytools/py2fgen/wrappers/diffusion_wrapper.py @@ -20,6 +20,7 @@ import pstats import gt4py.next as gtx + import icon4py.model.common.grid.states as grid_states from icon4py.model.atmosphere.diffusion.diffusion import ( Diffusion, @@ -39,9 +40,8 @@ from icon4py.model.common.grid.icon import GlobalGridParams from icon4py.model.common.grid.vertical import VerticalGrid, VerticalGridConfig from icon4py.model.common.states.prognostic_state import PrognosticState -from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.type_alias import wpfloat - +from icon4py.model.common.utils import data_allocation as data_alloc from icon4pytools.common.logger import setup_logger from icon4pytools.py2fgen.settings import backend, config as config_settings, device from icon4pytools.py2fgen.wrappers import common as wrapper_common @@ -219,7 +219,9 @@ def diffusion_init( theta_ref_mc=theta_ref_mc, wgtfac_c=wgtfac_c, zd_intcoef=data_alloc.flatten_first_two_dims(dims.CECDim, dims.KDim, field=zd_intcoef), - zd_vertoffset=data_alloc.flatten_first_two_dims(dims.CECDim, dims.KDim, field=zd_vertoffset), + zd_vertoffset=data_alloc.flatten_first_two_dims( + dims.CECDim, dims.KDim, field=zd_vertoffset + ), zd_diffcoef=zd_diffcoef, ) diff --git a/tools/src/icon4pytools/py2fgen/wrappers/simple.py b/tools/src/icon4pytools/py2fgen/wrappers/simple.py index 2adf436bbf..80526db6b0 100644 --- a/tools/src/icon4pytools/py2fgen/wrappers/simple.py +++ b/tools/src/icon4pytools/py2fgen/wrappers/simple.py @@ -13,9 +13,9 @@ import gt4py.next as gtx from gt4py.next.common import GridType from gt4py.next.ffront.decorator import field_operator, program + from icon4py.model.common import dimension as dims from icon4py.model.common.grid.simple import SimpleGrid - from icon4pytools.py2fgen.settings import backend diff --git a/tools/tests/icon4pygen/test_backend.py b/tools/tests/icon4pygen/test_backend.py index 3b6e82f020..de687236c2 100644 --- a/tools/tests/icon4pygen/test_backend.py +++ b/tools/tests/icon4pygen/test_backend.py @@ -12,10 +12,10 @@ import pytest from gt4py.next.ffront.decorator import field_operator, program from gt4py.next.iterator import ir as itir + from icon4py.model.common import dimension as dims from icon4py.model.common.dimension import E2V from icon4py.model.common.grid.simple import SimpleGrid - from icon4pytools.icon4pygen import backend from icon4pytools.icon4pygen.backend import generate_gtheader, get_missing_domain_params diff --git a/tools/tests/icon4pygen/test_codegen.py b/tools/tests/icon4pygen/test_codegen.py index 013e108d1d..7c2d279fef 100644 --- a/tools/tests/icon4pygen/test_codegen.py +++ b/tools/tests/icon4pygen/test_codegen.py @@ -12,13 +12,13 @@ import traceback from importlib import reload +import pytest +from gt4py.next.ffront.fbuiltins import float32, float64 + import icon4py.model.atmosphere.diffusion.stencils as diffusion import icon4py.model.atmosphere.dycore.stencils as dycore import icon4py.model.common.interpolation.stencils as intp import icon4py.model.common.type_alias as type_alias -import pytest -from gt4py.next.ffront.fbuiltins import float32, float64 - from icon4pytools.icon4pygen.cli import main from .conftest import get_stencil_module_path diff --git a/tools/tests/icon4pygen/test_exceptions.py b/tools/tests/icon4pygen/test_exceptions.py index 99bb241a91..5f23560c3b 100644 --- a/tools/tests/icon4pygen/test_exceptions.py +++ b/tools/tests/icon4pygen/test_exceptions.py @@ -10,8 +10,8 @@ import pytest from gt4py.next.ffront.decorator import field_operator, program from gt4py.next.ffront.fbuiltins import Dimension -from icon4py.model.common import dimension as dims +from icon4py.model.common import dimension as dims from icon4pytools.common.metadata import get_stencil_info from icon4pytools.icon4pygen.bindings.codegen.render.location import LocationRenderer from icon4pytools.icon4pygen.bindings.entities import Offset, chain_from_str diff --git a/tools/tests/icon4pygen/test_field_rendering.py b/tools/tests/icon4pygen/test_field_rendering.py index e30da2ab4a..85b84e19bb 100644 --- a/tools/tests/icon4pygen/test_field_rendering.py +++ b/tools/tests/icon4pygen/test_field_rendering.py @@ -9,9 +9,9 @@ import gt4py.next as gtx from gt4py.next.ffront.decorator import field_operator, program from gt4py.next.ffront.fbuiltins import neighbor_sum + from icon4py.model.common import dimension as dims from icon4py.model.common.dimension import E2CDim - from icon4pytools.common.metadata import get_stencil_info from icon4pytools.icon4pygen.bindings.workflow import PyBindGen diff --git a/tools/tests/icon4pygen/test_metadata.py b/tools/tests/icon4pygen/test_metadata.py index ee57c33bb5..ea6ff898ee 100644 --- a/tools/tests/icon4pygen/test_metadata.py +++ b/tools/tests/icon4pygen/test_metadata.py @@ -9,8 +9,8 @@ import gt4py.next as gtx import pytest from gt4py.next.ffront.decorator import field_operator, program -from icon4py.model.common import dimension as dims +from icon4py.model.common import dimension as dims from icon4pytools.common.metadata import _get_field_infos, _provide_neighbor_table diff --git a/tools/tests/py2fgen/test_codegen.py b/tools/tests/py2fgen/test_codegen.py index d75d24e7a1..d5f921e8a0 100644 --- a/tools/tests/py2fgen/test_codegen.py +++ b/tools/tests/py2fgen/test_codegen.py @@ -10,8 +10,8 @@ import pytest from gt4py.next.type_system.type_specifications import ScalarKind -from icon4py.model.common import dimension as dims +from icon4py.model.common import dimension as dims from icon4pytools.py2fgen.generate import ( generate_c_header, generate_f90_interface, diff --git a/tools/tests/py2fgen/test_diffusion_wrapper.py b/tools/tests/py2fgen/test_diffusion_wrapper.py index 9e4d96af1c..170210cb73 100644 --- a/tools/tests/py2fgen/test_diffusion_wrapper.py +++ b/tools/tests/py2fgen/test_diffusion_wrapper.py @@ -11,12 +11,12 @@ import gt4py.next as gtx import numpy as np import pytest + from icon4py.model.atmosphere.diffusion import diffusion, diffusion_states from icon4py.model.common import constants, dimension as dims -from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.grid import states as grid_states, vertical as v_grid +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.testing import datatest_utils as dt_utils, helpers - from icon4pytools.py2fgen.wrappers import diffusion_wrapper, wrapper_dimension as w_dim from . import utils diff --git a/tools/tests/py2fgen/test_dycore_wrapper.py b/tools/tests/py2fgen/test_dycore_wrapper.py index d83fb02d98..0628f74c94 100644 --- a/tools/tests/py2fgen/test_dycore_wrapper.py +++ b/tools/tests/py2fgen/test_dycore_wrapper.py @@ -24,19 +24,18 @@ import gt4py.next as gtx import pytest + from icon4py.model.atmosphere.dycore import dycore_states, solve_nonhydro as solve_nh from icon4py.model.common import constants, dimension as dims, utils as common_utils -from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common.grid import horizontal as h_grid, vertical as v_grid from icon4py.model.common.grid.vertical import VerticalGridConfig from icon4py.model.common.states import prognostic_state as prognostics from icon4py.model.common.states.prognostic_state import PrognosticState +from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.testing import ( datatest_utils as dt_utils, helpers, ) -from icon4py.model.common.utils import data_allocation as data_alloc - from icon4pytools.py2fgen.wrappers import dycore_wrapper, wrapper_dimension as w_dim from . import utils diff --git a/tools/tests/py2fgen/utils.py b/tools/tests/py2fgen/utils.py index 4ec2828d77..4e13d99ce3 100644 --- a/tools/tests/py2fgen/utils.py +++ b/tools/tests/py2fgen/utils.py @@ -8,9 +8,9 @@ from gt4py.next.embedded.nd_array_field import NdArrayField + from icon4py.model.atmosphere.diffusion import diffusion from icon4py.model.atmosphere.dycore import solve_nonhydro as solve_nh - from icon4pytools.py2fgen.settings import config From 380c20193784402af461a06c1981e737806f2bfd Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 18 Dec 2024 12:32:57 +0100 Subject: [PATCH 55/83] Update main docs --- README.md | 91 ++++++++++++++++++------------------------------------ noxfile.py | 8 ++--- 2 files changed, 34 insertions(+), 65 deletions(-) diff --git a/README.md b/README.md index 522b37c047..879a16e6c0 100644 --- a/README.md +++ b/README.md @@ -4,94 +4,60 @@ # ICON4Py -ICON4Py hosts Python implementations of various components from the ICON climate and weather model. Additionally, it includes icon4pytools, a collection of command-line interfaces (CLIs), and utilities required for the integration of ICON4Py code into the ICON Fortran model. ICON4Py leverages [GT4Py](https://github.com/GridTools/gt4py) to ensure efficient and performance portable implementations of these components. +This repository hosts a work-in-progress Python implementation of the ICON climate and weather model. Additionally, it includes `icon4pytools`, a collection of command-line interfaces (CLIs), and utilities required for the integration of ICON4Py code into the ICON Fortran model. ICON4Py leverages [GT4Py](https://github.com/GridTools/gt4py) to ensure efficient and performance portable implementations of these components. ## Project Structure -The repository is organized into directories, each containing independent Python namespace packages for different ICON components or utility packages. These packages can be installed independently. Since these packages are not available from a package repository (yet), you need to specify the location of dependencies within this repository. This can be done by installing the required dependencies first. Refer to the [Installation instructions](#installation-instructions) below. +The repository is organized as a _monorepo_, where various ICON model components and utilities are developed as independent Python namespace packages in subfolders. An `icon4py` Python package is defined at the root folder just to collect the specific versions of the different components as project dependencies. The component packages can also be installed independently, although since they are not (yet) available from a package repository, they need to be installed from their specific location within this repository. This can be easily done by following the [Installation instructions](#installation-instructions) explained below. ## License ICON4Py is licensed under the terms of the BSD-3-Clause. ## Installation instructions -### Dependencies -A minimal installation of ICON4Py needs -- Python 3.10 -- boost >= 1.85.0 -You can install all packages at once by using the provided `requirements.txt` or `requirements-dev.txt` files in the root of the repository. For example: -The `-dev.txt` file installs ICON4Py packages and GT4Py in editable mode, such that source changes are immediatly picked up and used in the virtual environment. -```bash -# Clone the repository -git clone git@github.com:C2SM/icon4py.git -cd icon4py +Since this project is still in a highly experimental state, it is not yet available as a regular Python distribution project through PyPI. The expected installation procedure is to clone the [https://github.com/C2SM/icon4py](https://github.com/C2SM/icon4py) repository and install it in a venv using the following development workflow. -# Create a (Python 3.10) virtual environment (usually at `.venv`) -python3.10 -m venv .venv +### System dependencies -# Activate the virtual environment and make sure that 'wheel' is installed -source .venv/bin/activate -pip install --upgrade wheel pip setuptools - -# Install all the ICON4Py packages and its dependencies -# External dependencies would be checked out at './_external_src' -pip install --src _external_src -r requirements-dev.txt +ICON4Py requires **_Python >= 3.10_** and **_boost >= 1.85.0_**, and uses the `uv` tool to manage the development workflow. `uv` is a versatile tool which bundles together functionality from different applications: it can work as a _fast_ Python package manager (like `pip`), as a dependency version exporter (like `pip-tools`), as a Python application runner (like `pipx`) or as a full project development manager (like `hatch`). +`uv` can be installed in different ways (check its [installation instructions](https://docs.astral.sh/uv/getting-started/installation/)), like using the recommended standalone installer: -# Finally, check that everything works -pytest -v +```bash +$ curl -LsSf https://astral.sh/uv/install.sh | sh ``` - -The `--src _external_src` option tells `pip` to use a specific folder as the base path for checked out sources, which is very convenient for development tasks involving changes in external dependencies like `gt4py`. For convenience, `./_external_src` has been already added to the repository `.gitignore`. - -You can also use [tox](https://tox.wiki/en/latest/) for the automatic installation of all packages in development mode in a single step: - +although it can also be installed with `pip` / `pipx` ```bash -# Clone the repository -git clone git@github.com:C2SM/icon4py.git -cd icon4py - -# Use tox to create and set up a development environment (usually at `.venv`) in verbose mode -pip install tox -python -m tox -vv -e dev --devenv .venv - -# Activate the virtual environment and check that everything works -source .venv/bin/activate -pytest -v +$ pipx install uv ``` +### ICON4Py development environment - -### Installation of specific subpackages - -In case you only want to install a specific subpackage, use the actual subpackage `requirements.txt` or `requirements-dev.txt` files. - -For example: +Once `uv` is installed in your system, it is enough to clone this repository and let `uv` handling the installation of the development environment. ```bash # Clone the repository git clone git@github.com:C2SM/icon4py.git cd icon4py -# Create a (Python 3.10) virtual environment (usually at `.venv`) -python3.10 -m venv .venv +# Let uv create the development environment at `.venv`. +# The `--extra all` option tells uv to install all optional +# dependencies of icon4py so it is not strictly necessary +uv sync --extra all -# Activate the virtual environment and make sure that 'wheel' is installed +# Activate the virtual environment and start writing code! source .venv/bin/activate -pip install --upgrade wheel +``` -# Install a specific ICON4Py subpackage and its dependencies -cd _SUBPACKAGE_ # where _SUBPACKAGE_ in model/atmosphere/dycore | tools | ... -pip install -r requirements-dev.txt +The new `venv` is a standard Python virtual environment with all the necessary run-time and development dependencies, where all the icon4py subpackages have been already installed in editable mode. New packages can be installed with the `uv pip` subcommand which emulates the `pip` interface or even using the regular `pip` which is also available in the venv (although it's usually much slower and not really recommended). + +The `pyproject.toml` file at the root folder contains both the definition of the `icon4py` Python distribution package and the settings of the development tools used in this project, most notably `uv`, `ruff`, `mypy` and `pytest`. It also contains _dependency groups_ (see [PEP 735](https://peps.python.org/pep-0735/) for further reference) with the development requirements listed in different groups (`build`, `docs`, `lint`, `test`, `typing`, ...) and collected together in the general `dev` group which gets installed by default by `uv`. -# or in the case of there being a pyproject.toml file -pip install . -``` ## Development instructions -After following the installation instructions above using the development requirements (`*-dev.txt` files), an _editable_ installation of all the packages will be active in the virtual environment. In this mode, code changes are immediately visible since source files are imported directly by the Python interpreter. +By following the installation instructions above, the source files are imported directly by the Python interpreter meaning that any code change is available and executed by the interpreter. ### Code quality checks @@ -117,14 +83,17 @@ pytest -v pytest -v path/to/test/folder ``` -Nonetheless, we also recommended to use `tox` to run the complete test suite: +Nonetheless, we also recommended to use `nox` to run the parametrized test suite: ```bash -# Run test suite in the default environment -tox +# List all available test sessions (colored items are the default sessions) +nox -l + +# Run all parametrized cases of a session +nox -s 'test_common' -# Run test suite in a specific environment (use `tox -a` to see list of envs) -tox -e py310 +# Run a test session for a specific python version and parameter values +nox -s 'test_atmosphere_advection-3.10(datatest=True)' ``` The default `tox` environment is configured to generate HTML test coverage reports in `_reports/coverage_html/`. diff --git a/noxfile.py b/noxfile.py index b1957c76ad..d58e7de2ee 100644 --- a/noxfile.py +++ b/noxfile.py @@ -50,7 +50,7 @@ def test_atmosphere(session: nox.Session, subpackage: str, datatest: bool) -> No @nox.parametrize("datatest", [False, True]) def test_atmosphere_advection(session: nox.Session, datatest: bool) -> None: session.notify( - f"test_atmosphere-{session.python}(datatest='{datatest}', subpackage='advection')" + f"test_atmosphere-{session.python}(datatest={datatest}, subpackage='advection')" ) @@ -58,7 +58,7 @@ def test_atmosphere_advection(session: nox.Session, datatest: bool) -> None: @nox.parametrize("datatest", [False, True]) def test_atmosphere_diffusion(session: nox.Session, datatest: bool) -> None: session.notify( - f"test_atmosphere-{session.python}(datatest='{datatest}', subpackage='diffusion')" + f"test_atmosphere-{session.python}(datatest={datatest}, subpackage='diffusion')" ) @@ -66,7 +66,7 @@ def test_atmosphere_diffusion(session: nox.Session, datatest: bool) -> None: @nox.parametrize("datatest", [False, True]) def test_atmosphere_dycore(session: nox.Session, datatest: bool) -> None: session.notify( - f"test_atmosphere-{session.python}(datatest='{datatest}', subpackage='dycore')" + f"test_atmosphere-{session.python}(datatest={datatest}, subpackage='dycore')" ) @@ -74,7 +74,7 @@ def test_atmosphere_dycore(session: nox.Session, datatest: bool) -> None: @nox.parametrize("datatest", [False, True]) def test_atmosphere_microphysics(session: nox.Session, datatest: bool) -> None: session.notify( - f"test_atmosphere-{session.python}(datatest='{datatest}', subpackage='subgrid_scale_physics/microphysics')" + f"test_atmosphere-{session.python}(datatest={datatest}, subpackage='subgrid_scale_physics/microphysics')" ) From 35d9a21ac98d6d51ed5b57fc0d3abaedd6893f80 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 18 Dec 2024 12:45:02 +0100 Subject: [PATCH 56/83] More documentation changes --- README.md | 3 +++ model/README.md | 15 ++------------- tools/README.md | 13 +------------ 3 files changed, 6 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 879a16e6c0..d7526cb9b8 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,9 @@ The `pyproject.toml` file at the root folder contains both the definition of the By following the installation instructions above, the source files are imported directly by the Python interpreter meaning that any code change is available and executed by the interpreter. +To add new dependencies to the project, either core/optional run-time or development-only dependencies, it is possible to use the `uv` cli direcly or to modify by hand the appropriate tables in the corresponding `pyproject.toml` (check `uv` documentation for more information [https://docs.astral.sh/uv/concepts/projects/dependencies/](https://docs.astral.sh/uv/concepts/projects/dependencies/)). + + ### Code quality checks [pre-commit](https://pre-commit.com/) is used to run several linting and checking tools. It should always be executed locally before opening a pull request. When executing pre-commit locally you can either run it for the `model` or `tools` folder: diff --git a/model/README.md b/model/README.md index da09cd972c..167ed085b9 100644 --- a/model/README.md +++ b/model/README.md @@ -11,20 +11,9 @@ It includes the following packages: - `common`: Contains shared functionality that is required by multiple components. - `driver`: Contains the driving code for the model -## Installation Instructions +## Installation instructions -You can follow the general installation instructions used for the entire icon4py repository, or install each namespace package within this folder independently using the individual folder-specific `requirements.txt` or `requirements-dev.txt` files. - -In the following example it is assumed that you have already created and activated a virtual environment. - -```bash -# changing into the corresponding directory -cd model/atmosphere/dycore -cd model/atmosphere/advection - -# installing a development version -pip install -r requirements-dev.txt -``` +Until the development reaches a stable state, we recommend you to follow the general instructions in the [../README.md](../README.md) root folder to install all model component and all its dependencies in a virtual environment for development. **Note**: For more information specific to each component, please refer to the README in their respective subfolders. diff --git a/tools/README.md b/tools/README.md index 7cdd5e8a25..bfb530f836 100644 --- a/tools/README.md +++ b/tools/README.md @@ -6,18 +6,7 @@ Tools and utilities for integrating icon4py code into the ICON model. ## Installation instructions -To install `icon4pytools` in a virtual environment, one can use pip with either the `requirements-dev.txt` or `requirements.txt` file. While the `requirements.txt` file will install the package along with its runtime dependencies, the `requirements-dev.txt` file additionally includes development dependencies required for running tests, generating documentation, and building the package from source. Furthermore by using the `requirements-dev.txt` file, the package will be installed in editable mode, allowing the user to make changes to the package's source code and immediately see the effects without having to reinstall the package every time. This is particularly useful during development and testing phases. - -```bash -# create a virtual environment -python3 -m venv .venv - -# activate the virtual environment -source .venv/bin/activate - -# install all dependencies -pip install -r requirements-dev.txt -``` +Until the development reaches a stable state, we recommend you to follow the general instructions in the [../README.md](../README.md) root folder to install `icon4pytools` and all its dependencies in a virtual environment for development. ## Command-line tools From 0b89628e2694678ae7629115a38fc048c321384f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Gonz=C3=A1lez=20Paredes?= Date: Wed, 18 Dec 2024 16:53:52 +0100 Subject: [PATCH 57/83] Update tools/README.md Co-authored-by: Nicoletta Farabullini <41536517+nfarabullini@users.noreply.github.com> --- tools/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/README.md b/tools/README.md index bfb530f836..36da1c3332 100644 --- a/tools/README.md +++ b/tools/README.md @@ -6,7 +6,7 @@ Tools and utilities for integrating icon4py code into the ICON model. ## Installation instructions -Until the development reaches a stable state, we recommend you to follow the general instructions in the [../README.md](../README.md) root folder to install `icon4pytools` and all its dependencies in a virtual environment for development. +Until development reaches a stable state, we recommend that you follow the general instructions in the [../README.md](../README.md) root folder to install `icon4pytools` and all of its dependencies in a virtual environment. ## Command-line tools From df7ab61895b8e6e81d376aa7fc78898233cc74de Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 18 Dec 2024 17:19:24 +0100 Subject: [PATCH 58/83] Address review comments --- .../model/atmosphere/dycore/solve_nonhydro.py | 3 +- ...fused_velocity_advection_stencil_1_to_7.py | 37 +++++++++---------- .../test_saturation_adjustment.py | 28 +++++++------- tools/src/icon4pytools/common/metadata.py | 3 +- 4 files changed, 34 insertions(+), 37 deletions(-) diff --git a/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py b/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py index e6979480f6..fba99687ca 100644 --- a/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py +++ b/model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/solve_nonhydro.py @@ -8,7 +8,7 @@ import logging import dataclasses -from typing import Final,Literal, Optional +from typing import Final, Optional import gt4py.next as gtx from gt4py.next import backend @@ -154,7 +154,6 @@ ) from icon4py.model.common.math import smagorinsky from icon4py.model.common.states import prognostic_state as prognostics -from icon4py.model.common.utils import data_allocation as data_alloc from icon4py.model.common import field_type_aliases as fa import enum diff --git a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py index cc7a7d1ada..a570ce29a9 100644 --- a/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py +++ b/model/atmosphere/dycore/tests/dycore_stencil_tests/test_fused_velocity_advection_stencil_1_to_7.py @@ -13,7 +13,6 @@ fused_velocity_advection_stencil_1_to_7, ) from icon4py.model.common import dimension as dims -from icon4py.model.common.utils.data_allocation import random_field, zero_field from icon4py.model.testing.helpers import StencilTest from icon4py.model.common.utils import data_allocation as data_alloc @@ -203,27 +202,27 @@ def input_data(self, grid): "Verification of z_v_grad_w currently not working, because numpy version incorrect." ) - c_intp = random_field(grid, dims.VertexDim, dims.V2CDim) - vn = random_field(grid, dims.EdgeDim, dims.KDim) - rbf_vec_coeff_e = random_field(grid, dims.EdgeDim, dims.E2C2EDim) - vt = zero_field(grid, dims.EdgeDim, dims.KDim) - wgtfac_e = random_field(grid, dims.EdgeDim, dims.KDim) - vn_ie = zero_field(grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) - z_kin_hor_e = zero_field(grid, dims.EdgeDim, dims.KDim) - z_vt_ie = zero_field(grid, dims.EdgeDim, dims.KDim) - ddxn_z_full = random_field(grid, dims.EdgeDim, dims.KDim) - ddxt_z_full = random_field(grid, dims.EdgeDim, dims.KDim) - z_w_concorr_me = zero_field(grid, dims.EdgeDim, dims.KDim) - inv_dual_edge_length = random_field(grid, dims.EdgeDim) - w = random_field(grid, dims.CellDim, dims.KDim) - inv_primal_edge_length = random_field(grid, dims.EdgeDim) - tangent_orientation = random_field(grid, dims.EdgeDim) - z_v_grad_w = zero_field(grid, dims.EdgeDim, dims.KDim) - wgtfacq_e = random_field(grid, dims.EdgeDim, dims.KDim) + c_intp = data_alloc.random_field(grid, dims.VertexDim, dims.V2CDim) + vn = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + rbf_vec_coeff_e = data_alloc.random_field(grid, dims.EdgeDim, dims.E2C2EDim) + vt = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + wgtfac_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + vn_ie = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim, extend={dims.KDim: 1}) + z_kin_hor_e = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + z_vt_ie = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + ddxn_z_full = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + ddxt_z_full = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) + z_w_concorr_me = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + inv_dual_edge_length = data_alloc.random_field(grid, dims.EdgeDim) + w = data_alloc.random_field(grid, dims.CellDim, dims.KDim) + inv_primal_edge_length = data_alloc.random_field(grid, dims.EdgeDim) + tangent_orientation = data_alloc.random_field(grid, dims.EdgeDim) + z_v_grad_w = data_alloc.zero_field(grid, dims.EdgeDim, dims.KDim) + wgtfacq_e = data_alloc.random_field(grid, dims.EdgeDim, dims.KDim) k = data_alloc.allocate_indices(dims.KDim, grid=grid, is_halfdim=True) - edge = zero_field(grid, dims.EdgeDim, dtype=gtx.int32) + edge = data_alloc.zero_field(grid, dims.EdgeDim, dtype=gtx.int32) for e in range(grid.num_edges): edge[e] = e diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjustment.py b/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjustment.py index f59aaf9eff..8d1eb6c35b 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjustment.py +++ b/model/atmosphere/subgrid_scale_physics/microphysics/tests/microphysics_tests/test_saturation_adjustment.py @@ -17,8 +17,8 @@ tracer_state as tracers, ) from icon4py.model.testing import datatest_utils as dt_utils -from icon4py.model.testing.helpers import dallclose -from icon4py.model.common.utils.data_allocation import zero_field +from icon4py.model.testing import helpers +from icon4py.model.common.utils import data_allocation as data_alloc @pytest.mark.parametrize( @@ -96,8 +96,8 @@ def test_saturation_adjustment_in_gscp_call( diagnostic_state = diagnostics.DiagnosticState( temperature=gscp_satad_entry_savepoint.temperature(), virtual_temperature=None, - pressure=zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), - pressure_ifc=zero_field( + pressure=data_alloc.zero_field(icon_grid, dims.CellDim, dims.KDim, dtype=float), + pressure_ifc=data_alloc.zero_field( icon_grid, dims.CellDim, dims.KDim, dtype=float, extend={dims.KDim: 1} ), u=None, @@ -123,17 +123,17 @@ def test_saturation_adjustment_in_gscp_call( + gscp_saturation_adjustment_granule.temperature_tendency.ndarray * dtime ) - assert dallclose( + assert helpers.dallclose( updated_qv, gscp_satad_exit_savepoint.qv().ndarray, atol=1.0e-13, ) - assert dallclose( + assert helpers.dallclose( updated_qc, gscp_satad_exit_savepoint.qc().ndarray, atol=1.0e-13, ) - assert dallclose( + assert helpers.dallclose( updated_temperature, gscp_satad_exit_savepoint.temperature().ndarray, atol=1.0e-13, @@ -261,37 +261,37 @@ def test_saturation_adjustment_in_physics_interface_call( + nwp_interface_saturation_adjustment_granule.pressure_ifc_tendency.ndarray * dtime ) - assert dallclose( + assert helpers.dallclose( updated_qv, nwp_interface_satad_exit_savepoint.qv().ndarray, atol=1.0e-13, ) - assert dallclose( + assert helpers.dallclose( updated_qc, nwp_interface_satad_exit_savepoint.qc().ndarray, atol=1.0e-13, ) - assert dallclose( + assert helpers.dallclose( updated_temperature, nwp_interface_satad_exit_savepoint.temperature().ndarray, atol=1.0e-13, ) - assert dallclose( + assert helpers.dallclose( updated_virtual_temperature, nwp_interface_satad_diag_exit_savepoint.virtual_temperature().ndarray, atol=1.0e-13, ) - assert dallclose( + assert helpers.dallclose( updated_exner, nwp_interface_satad_diag_exit_savepoint.exner().ndarray, atol=1.0e-13, ) - assert dallclose( + assert helpers.dallclose( updated_pressure, nwp_interface_satad_diag_exit_savepoint.pressure().ndarray, atol=1.0e-13, ) - assert dallclose( + assert helpers.dallclose( updated_pressure_ifc, nwp_interface_satad_diag_exit_savepoint.pressure_ifc().ndarray, atol=1.0e-13, diff --git a/tools/src/icon4pytools/common/metadata.py b/tools/src/icon4pytools/common/metadata.py index 76b798562e..8e299aa46e 100644 --- a/tools/src/icon4pytools/common/metadata.py +++ b/tools/src/icon4pytools/common/metadata.py @@ -21,7 +21,6 @@ from gt4py.next.iterator.runtime import FendefDispatcher from gt4py.next.type_system import type_specifications as ts -import icon4py.model.common.dimension from icon4py.model.common import dimension as dims from icon4pytools.common import icochainsize as ico @@ -136,7 +135,7 @@ def _provide_neighbor_table(chain: str, is_global: bool) -> DummyConnectivity: A new sparse dimension may look like C2CE or V2CVEC. In this case, we need to strip the 2 and pass the tokens after to the algorithm below """ - offset = getattr(icon4py.model.common.dimension, chain) + offset = getattr(dims, chain) assert isinstance(offset, FieldOffset) # note: this seems really brittle. maybe agree on a keyword to indicate new sparse fields? From 4238c807296a41416c4e2a001c2aa6ef14934d0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Gonz=C3=A1lez=20Paredes?= Date: Wed, 18 Dec 2024 17:24:47 +0100 Subject: [PATCH 59/83] Update README.md Co-authored-by: Nicoletta Farabullini <41536517+nfarabullini@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d7526cb9b8..75cb44ebcb 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This repository hosts a work-in-progress Python implementation of the ICON clima ## Project Structure -The repository is organized as a _monorepo_, where various ICON model components and utilities are developed as independent Python namespace packages in subfolders. An `icon4py` Python package is defined at the root folder just to collect the specific versions of the different components as project dependencies. The component packages can also be installed independently, although since they are not (yet) available from a package repository, they need to be installed from their specific location within this repository. This can be easily done by following the [Installation instructions](#installation-instructions) explained below. +The repository is organized as a _monorepo_, where various ICON model components and utilities are developed as independent Python namespace packages in subfolders. An `icon4py` Python package is defined at the root folder with the purpose to collect specific versions of the different components in the form of project dependencies. The component packages can also be installed independently, although since they are not (yet) available from a package repository, they need to be installed from their specific location within this repository. This can be easily done by following the [Installation instructions](#installation-instructions) explained below. ## License From 29c1b2ce893716b6a9410d47f63b51b6a01f9e7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Gonz=C3=A1lez=20Paredes?= Date: Wed, 18 Dec 2024 17:25:55 +0100 Subject: [PATCH 60/83] Update README.md Co-authored-by: Nicoletta Farabullini <41536517+nfarabullini@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 75cb44ebcb..1009a44a79 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ ICON4Py is licensed under the terms of the BSD-3-Clause. ## Installation instructions -Since this project is still in a highly experimental state, it is not yet available as a regular Python distribution project through PyPI. The expected installation procedure is to clone the [https://github.com/C2SM/icon4py](https://github.com/C2SM/icon4py) repository and install it in a venv using the following development workflow. +Since this project is still in a highly experimental state, it is not yet available as a regular Python distribution project through PyPI. The installation procedure comprises cloning the [https://github.com/C2SM/icon4py](https://github.com/C2SM/icon4py) repository and install it in a `venv` using the following development workflow. ### System dependencies From 5b327019819dd6bf05372995753f9487b3091871 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 18 Dec 2024 17:26:31 +0100 Subject: [PATCH 61/83] Address more review comments --- CODE_OF_CONDUCT.md | 134 --------------------------------------------- README.md | 5 -- 2 files changed, 139 deletions(-) delete mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 3c9ae313a4..0000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,134 +0,0 @@ - -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -* Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -* The use of sexualized language or imagery, and sexual attention or advances of - any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email address, - without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official email address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[magdalena.luz@c2sm.ethz.ch](mailto:magdalena.luz@c2sm.ethz.ch). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations - diff --git a/README.md b/README.md index 1009a44a79..ec590f6163 100644 --- a/README.md +++ b/README.md @@ -26,11 +26,6 @@ ICON4Py requires **_Python >= 3.10_** and **_boost >= 1.85.0_**, and uses the `u ```bash $ curl -LsSf https://astral.sh/uv/install.sh | sh ``` -although it can also be installed with `pip` / `pipx` - -```bash -$ pipx install uv -``` ### ICON4Py development environment From bf34deedf87e5a002293544f2cc9c9e3b0544684 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 18 Dec 2024 17:40:53 +0100 Subject: [PATCH 62/83] Address more review comments --- README.md | 8 ++-- pyproject.toml | 3 +- uv.lock | 103 +++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 104 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ec590f6163..386d210669 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This repository hosts a work-in-progress Python implementation of the ICON clima ## Project Structure -The repository is organized as a _monorepo_, where various ICON model components and utilities are developed as independent Python namespace packages in subfolders. An `icon4py` Python package is defined at the root folder with the purpose to collect specific versions of the different components in the form of project dependencies. The component packages can also be installed independently, although since they are not (yet) available from a package repository, they need to be installed from their specific location within this repository. This can be easily done by following the [Installation instructions](#installation-instructions) explained below. +The repository is organized as a _monorepo_, where various ICON model components and utilities are developed as independent Python namespace packages in subfolders. An `icon4py` Python package is defined at the root folder with the purpose to collect specific versions of the different components as package dependencies. The component can also be installed independently, although since they are not (yet) available from a package repository, they need to be installed from their specific location within this repository. ## License @@ -16,7 +16,7 @@ ICON4Py is licensed under the terms of the BSD-3-Clause. ## Installation instructions -Since this project is still in a highly experimental state, it is not yet available as a regular Python distribution project through PyPI. The installation procedure comprises cloning the [https://github.com/C2SM/icon4py](https://github.com/C2SM/icon4py) repository and install it in a `venv` using the following development workflow. +Since this project is still in a highly experimental state, it is not yet available as a regular Python distribution project through PyPI. The installation procedure comprises cloning the [https://github.com/C2SM/icon4py](https://github.com/C2SM/icon4py) repository and install it in a _venv_ using the following development workflow. ### System dependencies @@ -45,7 +45,7 @@ uv sync --extra all source .venv/bin/activate ``` -The new `venv` is a standard Python virtual environment with all the necessary run-time and development dependencies, where all the icon4py subpackages have been already installed in editable mode. New packages can be installed with the `uv pip` subcommand which emulates the `pip` interface or even using the regular `pip` which is also available in the venv (although it's usually much slower and not really recommended). +The new _venv_ is a standard Python virtual environment with all the necessary run-time and development dependencies, where all the icon4py subpackages have been already installed in editable mode. New packages can be installed with the `uv pip` subcommand which emulates the `pip` interface or even using the regular `pip` which is also available in the _venv_ (although it's usually much slower and not really recommended). The `pyproject.toml` file at the root folder contains both the definition of the `icon4py` Python distribution package and the settings of the development tools used in this project, most notably `uv`, `ruff`, `mypy` and `pytest`. It also contains _dependency groups_ (see [PEP 735](https://peps.python.org/pep-0735/) for further reference) with the development requirements listed in different groups (`build`, `docs`, `lint`, `test`, `typing`, ...) and collected together in the general `dev` group which gets installed by default by `uv`. @@ -94,8 +94,6 @@ nox -s 'test_common' nox -s 'test_atmosphere_advection-3.10(datatest=True)' ``` -The default `tox` environment is configured to generate HTML test coverage reports in `_reports/coverage_html/`. - ### Benchmarking We use [`pytest-benchmark`](https://pytest-benchmark.readthedocs.io/en/latest/) to benchmark the execution time of stencils in icon4py. To disable benchmarking during testing you can use `--benchmark-disable` when invoking `pytest`. diff --git a/pyproject.toml b/pyproject.toml index 96feabc8de..c263a407ff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -99,8 +99,7 @@ environments = [ ] [tool.uv.sources] -ghex = { git = "https://github.com/havogt/GHEX.git", branch = "fix_rpath", subdirectory = "bindings/python" } -#ghex = { git = "https://github.com/ghex-org/GHEX.git", branch = "master", subdirectory = "bindings/python" } +# ghex = { git = "https://github.com/ghex-org/GHEX.git", branch = "master"} # use GT4Py tagged release until #596 & gt4py#1738 are merged gt4py = { git = "https://github.com/GridTools/gt4py", tag = "icon4py_20241113" } icon4py-atmosphere-advection = { workspace = true } diff --git a/uv.lock b/uv.lock index febbb9acba..e774f9e5bc 100644 --- a/uv.lock +++ b/uv.lock @@ -2,16 +2,112 @@ version = 1 requires-python = ">=3.10" resolution-markers = [ "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", ] supported-markers = [ @@ -1351,12 +1447,13 @@ wheels = [ [[package]] name = "ghex" -version = "0.3.0" -source = { git = "https://github.com/havogt/GHEX.git?subdirectory=bindings%2Fpython&branch=fix_rpath#a918acf5c40a4a11e6dc9c27b20fea1ca8fa2bf5" } +version = "0.4.0" +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mpi4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] +sdist = { url = "https://files.pythonhosted.org/packages/d4/4f/d6217b2afcecff78620c8d3df315b3a354820447ad48962889fe029a3b2c/ghex-0.4.0.tar.gz", hash = "sha256:65135fee88a0bea16bbcc6a48fda9065850db7af4340726c0ea804affed04890", size = 8309041 } [[package]] name = "gitdb" @@ -1816,7 +1913,7 @@ requires-dist = [ { name = "cartopy", marker = "extra == 'io'", specifier = ">=0.22.0" }, { name = "cftime", marker = "extra == 'io'", specifier = ">=1.6.3" }, { name = "datashader", marker = "extra == 'io'", specifier = ">=0.16.1" }, - { name = "ghex", marker = "extra == 'distributed'", git = "https://github.com/havogt/GHEX.git?subdirectory=bindings%2Fpython&branch=fix_rpath" }, + { name = "ghex", marker = "extra == 'distributed'", specifier = ">=0.3.0" }, { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "gt4py", extras = ["dace"], marker = "extra == 'dace'", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "holoviews", marker = "extra == 'io'", specifier = ">=1.16.0" }, From 2b6e79767dcebe96d4c558c32e78609e1d2e09bb Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 18 Dec 2024 17:51:12 +0100 Subject: [PATCH 63/83] More README fixes and updates to project dependencies --- README.md | 4 +- pyproject.toml | 3 +- uv.lock | 273 ++++++++++++++++++++++++++++++++++++++----------- 3 files changed, 219 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index 386d210669..0a2c3374c8 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ pytest -v pytest -v path/to/test/folder ``` -Nonetheless, we also recommended to use `nox` to run the parametrized test suite: +`nox` is recommended for running comprehensive test suites across multiple Python versions and configurations, mirroring the setup used in the CI pipeline. ```bash # List all available test sessions (colored items are the default sessions) @@ -90,7 +90,7 @@ nox -l # Run all parametrized cases of a session nox -s 'test_common' -# Run a test session for a specific python version and parameter values +# Run a test session for a specific python version and parameter value nox -s 'test_atmosphere_advection-3.10(datatest=True)' ``` diff --git a/pyproject.toml b/pyproject.toml index c263a407ff..0c97dc52aa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ test = [ "icon4py-testing>=0.0.6", # external dependencies "coverage[toml]>=7.5.0", - "nox @ git+https://github.com/wntrblm/nox.git@aa09595437608dfe21eb776d8a4bcc0bd5f9916b", # TODO: remove once next version is released + "nox @ git+https://github.com/wntrblm/nox.git@aa09595437608dfe21eb776d8a4bcc0bd5f9916b", # TODO: remove once there is any release newer than 2024.10.09 "pytest>=8.0.1", "pytest-benchmark>=5.0.0", "pytest-cache>=1.0", @@ -77,7 +77,6 @@ test = [ "pytest-factoryboy>=2.6.1", "pytest-mpi>=0.6", "pytest-xdist[psutil]>=3.5.0", - "tox>=3.25", ] typing = [ "mypy[faster-cache]>=1.13.0", diff --git a/uv.lock b/uv.lock index e774f9e5bc..39df014b84 100644 --- a/uv.lock +++ b/uv.lock @@ -10,6 +10,38 @@ resolution-markers = [ "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -19,6 +51,22 @@ resolution-markers = [ "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -28,6 +76,21 @@ resolution-markers = [ "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -37,6 +100,22 @@ resolution-markers = [ "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -46,6 +125,21 @@ resolution-markers = [ "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -55,6 +149,37 @@ resolution-markers = [ "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -64,6 +189,22 @@ resolution-markers = [ "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -73,6 +214,22 @@ resolution-markers = [ "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -82,6 +239,22 @@ resolution-markers = [ "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -91,6 +264,21 @@ resolution-markers = [ "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -100,6 +288,34 @@ resolution-markers = [ "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", @@ -437,15 +653,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/11/0e/7d8225aab3bc1a0f5811f8e1b557aa034ac04bdf641925b30d3caf586b28/cached_property-2.0.1-py3-none-any.whl", hash = "sha256:f617d70ab1100b7bcf6e42228f9ddcb78c676ffa167278d9f730d1c2fba69ccb", size = 7428 }, ] -[[package]] -name = "cachetools" -version = "5.5.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c3/38/a0f315319737ecf45b4319a8cd1f3a908e29d9277b46942263292115eee7/cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a", size = 27661 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/07/14f8ad37f2d12a5ce41206c21820d8cb6561b728e51fad4530dff0552a67/cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292", size = 9524 }, -] - [[package]] name = "cartopy" version = "0.24.1" @@ -588,15 +795,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f3/2d/980323fb5ec1ef369604b61ba259a41d0336cc1a85b639ed7bd210bd1290/cftime-1.6.4.post1-cp313-cp313-win_amd64.whl", hash = "sha256:d2a8c223faea7f1248ab469cc0d7795dd46f2a423789038f439fee7190bae259", size = 178496 }, ] -[[package]] -name = "chardet" -version = "5.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7", size = 2069618 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385 }, -] - [[package]] name = "charset-normalizer" version = "3.4.0" @@ -1670,7 +1868,6 @@ dev = [ { name = "sphinx-toolbox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "tach", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "texsoup", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "types-cffi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "wget", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, @@ -1700,7 +1897,6 @@ test = [ { name = "pytest-factoryboy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "pytest-mpi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, { name = "pytest-xdist", extra = ["psutil"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, ] typing = [ { name = "mypy", extra = ["faster-cache"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, @@ -1757,7 +1953,6 @@ dev = [ { name = "sphinx-toolbox", specifier = ">=3.8.1" }, { name = "tach", specifier = ">=0.16.0" }, { name = "texsoup", specifier = ">=0.3.1" }, - { name = "tox", specifier = ">=3.25" }, { name = "types-cffi", specifier = ">=1.16.0" }, { name = "typing-extensions", specifier = ">=4.11.0" }, { name = "wget", specifier = ">=3.2" }, @@ -1787,7 +1982,6 @@ test = [ { name = "pytest-factoryboy", specifier = ">=2.6.1" }, { name = "pytest-mpi", specifier = ">=0.6" }, { name = "pytest-xdist", extras = ["psutil"], specifier = ">=3.5.0" }, - { name = "tox", specifier = ">=3.25" }, ] typing = [ { name = "mypy", extras = ["faster-cache"], specifier = ">=1.13.0" }, @@ -3404,19 +3598,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f8/33/3c8c6302717096b54aa14ccbb271045ba04629e21cbf348f2f2dc94f69b4/pyproj-3.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:10a8dc6ec61af97c89ff032647d743f8dc023645773da42ef43f7ae1125b3509", size = 6218036 }, ] -[[package]] -name = "pyproject-api" -version = "1.8.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/bb/19/441e0624a8afedd15bbcce96df1b80479dd0ff0d965f5ce8fde4f2f6ffad/pyproject_api-1.8.0.tar.gz", hash = "sha256:77b8049f2feb5d33eefcc21b57f1e279636277a8ac8ad6b5871037b243778496", size = 22340 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/f4/3c4ddfcc0c19c217c6de513842d286de8021af2f2ab79bbb86c00342d778/pyproject_api-1.8.0-py3-none-any.whl", hash = "sha256:3d7d347a047afe796fd5d1885b1e391ba29be7169bd2f102fcd378f04273d228", size = 13100 }, -] - [[package]] name = "pyreadline" version = "2.1" @@ -4344,28 +4525,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/61/cc/58b1adeb1bb46228442081e746fcdbc4540905c87e8add7c277540934edb/tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38", size = 438907 }, ] -[[package]] -name = "tox" -version = "4.23.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cachetools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "chardet", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "colorama", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "filelock", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "platformdirs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pluggy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyproject-api", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "virtualenv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/1f/86/32b10f91b4b975a37ac402b0f9fa016775088e0565c93602ba0b3c729ce8/tox-4.23.2.tar.gz", hash = "sha256:86075e00e555df6e82e74cfc333917f91ecb47ffbc868dcafbd2672e332f4a2c", size = 189998 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/af/c0/124b73d01c120e917383bc6c53ebc34efdf7243faa9fca64d105c94cf2ab/tox-4.23.2-py3-none-any.whl", hash = "sha256:452bc32bb031f2282881a2118923176445bac783ab97c874b8770ab4c3b76c38", size = 166758 }, -] - [[package]] name = "tqdm" version = "4.67.1" From 66bd08feac84f9c418808e2994aef45aa0329ab0 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Wed, 18 Dec 2024 18:07:05 +0100 Subject: [PATCH 64/83] More comments --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a2c3374c8..fd52d3d0eb 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,9 @@ uv sync --extra all source .venv/bin/activate ``` -The new _venv_ is a standard Python virtual environment with all the necessary run-time and development dependencies, where all the icon4py subpackages have been already installed in editable mode. New packages can be installed with the `uv pip` subcommand which emulates the `pip` interface or even using the regular `pip` which is also available in the _venv_ (although it's usually much slower and not really recommended). +The new _venv_ is a standard Python virtual environment preconfigured with all necessary runtime and development dependencies. Additionally, all icon4py subpackages are installed in editable mode, allowing for seamless development and testing. + +To install new packages, use the `uv pip` subcommand, which emulates the `pip` interface and is generally much faster. Alternatively, the standard `pip` command is also available within the venv, although using `pip` directly is slower and not recommended. The `pyproject.toml` file at the root folder contains both the definition of the `icon4py` Python distribution package and the settings of the development tools used in this project, most notably `uv`, `ruff`, `mypy` and `pytest`. It also contains _dependency groups_ (see [PEP 735](https://peps.python.org/pep-0735/) for further reference) with the development requirements listed in different groups (`build`, `docs`, `lint`, `test`, `typing`, ...) and collected together in the general `dev` group which gets installed by default by `uv`. From 5dc62dc8b2526ebb32c592a5d87a6250b1a95071 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Thu, 19 Dec 2024 13:45:37 +0100 Subject: [PATCH 65/83] Fixes to dependencies (versions and sources), nox and CI settings --- .python-version | 2 +- ci/benchmark.yml | 2 +- ci/dace.yml | 12 +- ci/default.yml | 8 +- ci/docker/base.Dockerfile | 3 + model/common/pyproject.toml | 2 +- model/testing/pyproject.toml | 2 +- noxfile.py | 149 ++- pyproject.toml | 15 +- uv.lock | 1884 +++++++++++++++------------------- 10 files changed, 895 insertions(+), 1184 deletions(-) diff --git a/.python-version b/.python-version index 2c0733315e..c8cfe39591 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.11 +3.10 diff --git a/ci/benchmark.yml b/ci/benchmark.yml index 9a90a70ca1..8bc2c411b4 100644 --- a/ci/benchmark.yml +++ b/ci/benchmark.yml @@ -5,7 +5,7 @@ include: stage: benchmark script: # force execution of tests where validation is expected to fail, because the reason for failure is wrong numpy reference - - tox -r -e run_benchmarks -c model/ -- --backend=$BACKEND --grid=$GRID --runxfail + - nox -s benchmark_model-3.10 -- --backend=$BACKEND --grid=$GRID --runxfail parallel: matrix: - BACKEND: [gtfn_cpu, gtfn_gpu] diff --git a/ci/dace.yml b/ci/dace.yml index e96243d918..5cc4289faf 100644 --- a/ci/dace.yml +++ b/ci/dace.yml @@ -1,14 +1,10 @@ include: - local: 'ci/base.yml' -variables: - DACE_VERSION: "0.16.1" - .test_model_stencils: stage: test script: - - pip install dace==$DACE_VERSION - - tox -r -e run_stencil_tests -c model/ -- --backend=$BACKEND --grid=$GRID + - nox -s test_model_stencils-3.10 -- --backend=$BACKEND --grid=$GRID parallel: matrix: - BACKEND: [dace_cpu, dace_gpu] @@ -21,8 +17,7 @@ test_model_stencils_aarch64: .test_model_datatests: stage: test script: - - pip install dace==$DACE_VERSION - - tox -r -e run_model_tests -c model/ -- --backend=$BACKEND $COMPONENT --verbose + - nox -s "test_model_datatest-3.10(subpackage='$COMPONENT')" -- --backend=$BACKEND --verbose parallel: matrix: - COMPONENT: [atmosphere/diffusion/tests/diffusion_tests] @@ -35,9 +30,8 @@ test_model_datatests_aarch64: .benchmark_model_stencils: stage: benchmark script: - - pip install dace==$DACE_VERSION # force execution of tests where validation is expected to fail, because the reason for failure is wrong numpy reference - - tox -r -e run_benchmarks -c model/ -- --backend=$BACKEND --grid=$GRID --runxfail + - nox -s benchmark_model-3.10 -- --backend=$BACKEND --grid=$GRID --runxfail parallel: matrix: - BACKEND: [dace_cpu, dace_gpu] diff --git a/ci/default.yml b/ci/default.yml index 70bf351d94..7c10b56707 100644 --- a/ci/default.yml +++ b/ci/default.yml @@ -4,7 +4,7 @@ include: .test_model_stencils: stage: test script: - - tox -r -e run_stencil_tests -c model/ -- --backend=$BACKEND --grid=$GRID + - nox -s test_model_stencils-3.10 -- --backend=$BACKEND --grid=$GRID parallel: matrix: - BACKEND: [gtfn_cpu, gtfn_gpu, roundtrip] @@ -22,7 +22,7 @@ test_model_stencils_aarch64: .test_tools: stage: test script: - - tox -r -c tools/ + - nox -s 'test_tools-3.10' test_tools_x86_64: extends: [.test_tools, .test_template_x86_64] test_tools_aarch64: @@ -31,10 +31,10 @@ test_tools_aarch64: .test_model_datatests: stage: test script: - - tox -r -e run_model_tests -c model/ -- --backend=$BACKEND $COMPONENT + - nox -s "test_model_datatest-3.10(subpackage='$COMPONENT')" -- --backend=$BACKEND parallel: matrix: - - COMPONENT: [atmosphere/advection/tests/advection_tests, atmosphere/diffusion/tests/diffusion_tests, atmosphere/dycore/tests/dycore_tests, atmosphere/subgrid_scale_physics/microphysics/tests, common/tests, driver/tests] + - COMPONENT: [atmosphere/advection, atmosphere/diffusion, atmosphere/dycore, atmosphere/subgrid_scale_physics/microphysics, common, driver] BACKEND: [gtfn_cpu] test_model_datatests_x86_64: extends: [.test_model_datatests, .test_template_x86_64] diff --git a/ci/docker/base.Dockerfile b/ci/docker/base.Dockerfile index c50fa76bff..1e2c0082ed 100644 --- a/ci/docker/base.Dockerfile +++ b/ci/docker/base.Dockerfile @@ -81,5 +81,8 @@ RUN pyenv update && \ ENV PATH="/root/.pyenv/shims:${PATH}" +# Install uv +RUN curl -LsSf https://astral.sh/uv/install.sh | sh + ARG CUPY_PACKAGE=cupy-cuda11x RUN pip install --upgrade pip setuptools wheel tox clang-format ${CUPY_PACKAGE} diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index 4d12bd7ee4..893f048691 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -22,7 +22,7 @@ classifiers = [ dependencies = [ "gt4py>=1.0.4", 'packaging>=20.0', - "serialbox>=0.0.1", + "serialbox4py>=2.6.2", 'packaging>=20.0', "typing-extensions>=4.11.0" ] diff --git a/model/testing/pyproject.toml b/model/testing/pyproject.toml index 3fca00d568..16ce8bf7cd 100644 --- a/model/testing/pyproject.toml +++ b/model/testing/pyproject.toml @@ -27,7 +27,7 @@ dependencies = [ "numpy>=1.23.3", 'packaging>=20.0', "pytest>=8.0.1", - "serialbox>=0.0.1", + "serialbox4py>=2.6.2", "typing-extensions>=4.11.0", "wget>=3.2", ] diff --git a/noxfile.py b/noxfile.py index d58e7de2ee..cf9a3035b7 100644 --- a/noxfile.py +++ b/noxfile.py @@ -9,120 +9,84 @@ from __future__ import annotations from collections.abc import Sequence +from typing import Final, Literal, TypeAlias import nox +# -- Parameter sets -- +ModelSubpackagePath: TypeAlias = Literal[ + "atmosphere/advection", + "atmosphere/diffusion", + "atmosphere/dycore", + "atmosphere/subgrid_scale_physics/microphysics", + "common", + "driver", + # "testing", #TODO: Add tests to testing subpackage +] +ModelTestsSubset: TypeAlias = Literal["datatest", "stencils", "basic"] + +MODEL_SUBPACKAGE_PATHS: Final[Sequence[str]] = ModelSubpackagePath.__args__ +MODEL_TESTS_SUBSETS: Final[Sequence[str]] = ModelTestsSubset.__args__ + +# -- nox configuration -- nox.options.default_venv_backend = "uv" -nox.options.sessions = ["test_atmosphere", "test_common", "test_driver", "test_tools"] +nox.options.sessions = ["test_model", "test_tools"] +# -- nox sessions -- +# Model benchmark sessions +# TODO(egparedes): Add backend parameter @nox.session(python=["3.10", "3.11"]) -@nox.parametrize( - "subpackage", - ["advection", "diffusion", "dycore", "subgrid_scale_physics/microphysics"], -) -def benchmark_atmosphere(session: nox.Session, subpackage: str) -> None: - """Run pytest benchmarks for the `model.atmosphere` subpackages.""" +@nox.parametrize("subpackage", MODEL_SUBPACKAGE_PATHS) +def benchmark_model(session: nox.Session, subpackage: ModelSubpackagePath) -> None: + """Run pytest benchmarks for selected icon4py model subpackages.""" _install_session_venv(session, extras=["all"], groups=["test"]) - with session.chdir(f"model/atmosphere/{subpackage}"): + with session.chdir(f"model/{subpackage}"): session.run(*"pytest -sv --benchmark-only".split(), *session.posargs) +# Model test sessions +# TODO(egparedes): Add backend parameter @nox.session(python=["3.10", "3.11"]) -@nox.parametrize( - "subpackage", - ["advection", "diffusion", "dycore", "subgrid_scale_physics/microphysics"], -) -@nox.parametrize("datatest", [False, True]) -def test_atmosphere(session: nox.Session, subpackage: str, datatest: bool) -> None: - """Run tests for the `model.atmosphere` subpackages.""" +@nox.parametrize("subpackage", MODEL_SUBPACKAGE_PATHS) +@nox.parametrize("selection", MODEL_TESTS_SUBSETS) +def test_model(session: nox.Session, selection: ModelTestsSubset, subpackage: ModelSubpackagePath) -> None: + """Run tests for selected icon4py model subpackages.""" _install_session_venv(session, extras=["all"], groups=["test"]) - with session.chdir(f"model/atmosphere/{subpackage}"): + pytest_args = _selection_to_pytest_args(selection) + with session.chdir(f"model/{subpackage}"): session.run( - *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} {'--datatest' if datatest else ''}".split(), + *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')}".split(), + *pytest_args, *session.posargs ) - @nox.session(python=["3.10", "3.11"]) -@nox.parametrize("datatest", [False, True]) -def test_atmosphere_advection(session: nox.Session, datatest: bool) -> None: +@nox.parametrize("subpackage", MODEL_SUBPACKAGE_PATHS) +def test_model_datatest(session: nox.Session, subpackage: ModelSubpackagePath) -> None: session.notify( - f"test_atmosphere-{session.python}(datatest={datatest}, subpackage='advection')" + f"test_model-{session.python}(selection='datatest', subpackage='{subpackage}')" ) @nox.session(python=["3.10", "3.11"]) -@nox.parametrize("datatest", [False, True]) -def test_atmosphere_diffusion(session: nox.Session, datatest: bool) -> None: +@nox.parametrize("subpackage", MODEL_SUBPACKAGE_PATHS) +def test_model_stencils(session: nox.Session, subpackage: ModelSubpackagePath) -> None: session.notify( - f"test_atmosphere-{session.python}(datatest={datatest}, subpackage='diffusion')" + f"test_model-{session.python}(selection='stencils', subpackage='{subpackage}')" ) - -@nox.session(python=["3.10", "3.11"]) -@nox.parametrize("datatest", [False, True]) -def test_atmosphere_dycore(session: nox.Session, datatest: bool) -> None: - session.notify( - f"test_atmosphere-{session.python}(datatest={datatest}, subpackage='dycore')" - ) - - -@nox.session(python=["3.10", "3.11"]) -@nox.parametrize("datatest", [False, True]) -def test_atmosphere_microphysics(session: nox.Session, datatest: bool) -> None: - session.notify( - f"test_atmosphere-{session.python}(datatest={datatest}, subpackage='subgrid_scale_physics/microphysics')" - ) - - -@nox.session(python=["3.10", "3.11"]) -@nox.parametrize("datatest", [False, True]) -def test_common(session: nox.Session, datatest: bool) -> None: - """Run tests for the common package of the icon4py model.""" - _install_session_venv(session, extras=["all"], groups=["test"]) - - with session.chdir("model/common"): - session.run( - *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} {'--datatest' if datatest else ''}".split(), - *session.posargs - ) - - -@nox.session(python=["3.10", "3.11"]) -@nox.parametrize("datatest", [False, True]) -def test_driver(session: nox.Session, datatest: bool) -> None: - """Run tests for the driver.""" - _install_session_venv(session, extras=["all"], groups=["test"]) - - with session.chdir("model/driver"): - session.run( - *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} {'--datatest' if datatest else ''}".split(), - *session.posargs - ) - -@nox.session(python=["3.10", "3.11"]) -def test_model_datatest(session: nox.Session) -> None: - _install_session_venv(session, extras=["all"], groups=["test"]) - - session.run( - *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} --datatest".split(), - *session.posargs - ) - - -@nox.session(python=["3.10", "3.11"]) -def test_model_operators(session: nox.Session) -> None: - _install_session_venv(session, extras=["all"], groups=["test"]) - - session.run( - *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')} -k 'stencil_tests'".split(), - *session.posargs - ) +# @nox.session(python=["3.10", "3.11"]) +# @nox.parametrize("selection", MODEL_TEST_SELECTION) +# def test_testing(session: nox.Session, selection: ModelTestKind) -> None: +# session.notify( +# f"test_model-{session.python}(selection='{selection}', subpackage='testing')" +# ) +# Tools test sessions @nox.session(python=["3.10", "3.11"]) @nox.parametrize("datatest", [False, True]) def test_tools(session: nox.Session, datatest: bool) -> None: @@ -135,7 +99,7 @@ def test_tools(session: nox.Session, datatest: bool) -> None: *session.posargs ) - +# -- utils -- def _install_session_venv( session: nox.Session, *args: str | Sequence[str], @@ -159,3 +123,18 @@ def _install_session_venv( *((item,) if isinstance(item, str) else item), env={"UV_PROJECT_ENVIRONMENT": session.virtualenv.location}, ) + +def _selection_to_pytest_args(selection: ModelTestsSubset) -> list[str]: + pytest_args = [] + + match selection: + case "datatest": + pytest_args.append("--datatest") + case "stencils": + pytest_args.extend(["-k", "stencil_tests"]) + case "basic": + pytest_args.extend(["-k", "not stencil_tests"]) + case _: + raise AssertionError(f"Invalid selection: {selection}") + + return pytest_args \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 0c97dc52aa..099543ea71 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ version = "0.0.6" [project.optional-dependencies] all = ["icon4py[dace,distributed,fortran,io,testing]"] -dace = ["icon4py-common[dace]>=0.0.6", "dace<1.0"] # Dace should be removed after updating gt4py +dace = ["icon4py-common[dace]>=0.0.6", "dace<1.0"] # TODO(egparedes): Dace should be removed after updating gt4py distributed = ["icon4py-common[distributed]>=0.0.6"] fortran = ["icon4pytools>=0.0.6"] io = ["icon4py-common[io]>=0.0.6"] @@ -93,13 +93,15 @@ dev = [ # -- uv: packages & workspace -- [tool.uv] -environments = [ - "implementation_name == 'cpython' and sys_platform != 'windows'" -] + +[[tool.uv.index]] +name = "test.pypi" +url = "https://test.pypi.org/simple/" +explicit = true [tool.uv.sources] # ghex = { git = "https://github.com/ghex-org/GHEX.git", branch = "master"} -# use GT4Py tagged release until #596 & gt4py#1738 are merged +# TODO(egparedes): use GT4Py tagged release until #596 & gt4py#1738 are merged gt4py = { git = "https://github.com/GridTools/gt4py", tag = "icon4py_20241113" } icon4py-atmosphere-advection = { workspace = true } icon4py-atmosphere-diffusion = { workspace = true } @@ -109,7 +111,8 @@ icon4py-common = { workspace = true } icon4py-driver = { workspace = true } icon4py-testing = { workspace = true } icon4pytools = { workspace = true } -serialbox = { git = "https://github.com/GridTools/serialbox", subdirectory = "src/serialbox-python" } +serialbox4py = { index = "test.pypi" } +# serialbox4py = { git = "https://github.com/GridTools/serialbox", rev = "b3a7e22b73b6294011e900aa4f5b3a304860e67a" } [tool.uv.workspace] members = [ diff --git a/uv.lock b/uv.lock index 39df014b84..b2dc15e0cd 100644 --- a/uv.lock +++ b/uv.lock @@ -1,333 +1,42 @@ version = 1 requires-python = ">=3.10" resolution-markers = [ - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.11.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version == '3.12.*' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", - "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'", -] -supported-markers = [ - "implementation_name == 'cpython' and sys_platform != 'windows'", + "python_full_version < '3.11'", + "python_full_version < '3.11'", + "python_full_version < '3.11'", + "python_full_version == '3.11.*'", + "python_full_version == '3.11.*'", + "python_full_version == '3.11.*'", + "python_full_version == '3.12.*'", + "python_full_version == '3.12.*'", + "python_full_version == '3.12.*'", + "python_full_version >= '3.13'", + "python_full_version >= '3.13'", + "python_full_version >= '3.13'", + "python_full_version < '3.11'", + "python_full_version < '3.11'", + "python_full_version < '3.11'", + "python_full_version == '3.11.*'", + "python_full_version == '3.11.*'", + "python_full_version == '3.11.*'", + "python_full_version == '3.12.*'", + "python_full_version == '3.12.*'", + "python_full_version == '3.12.*'", + "python_full_version >= '3.13'", + "python_full_version >= '3.13'", + "python_full_version >= '3.13'", + "python_full_version < '3.11'", + "python_full_version < '3.11'", + "python_full_version < '3.11'", + "python_full_version == '3.11.*'", + "python_full_version == '3.11.*'", + "python_full_version == '3.11.*'", + "python_full_version == '3.12.*'", + "python_full_version == '3.12.*'", + "python_full_version == '3.12.*'", + "python_full_version >= '3.13'", + "python_full_version >= '3.13'", + "python_full_version >= '3.13'", ] conflicts = [[ { package = "icon4pytools", extra = "cupy11" }, @@ -379,10 +88,10 @@ name = "apeye" version = "1.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "apeye-core", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "domdf-python-tools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "platformdirs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "requests", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "apeye-core" }, + { name = "domdf-python-tools" }, + { name = "platformdirs" }, + { name = "requests" }, ] sdist = { url = "https://files.pythonhosted.org/packages/4f/6b/cc65e31843d7bfda8313a9dc0c77a21e8580b782adca53c7cb3e511fe023/apeye-1.4.1.tar.gz", hash = "sha256:14ea542fad689e3bfdbda2189a354a4908e90aee4bf84c15ab75d68453d76a36", size = 99219 } wheels = [ @@ -394,8 +103,8 @@ name = "apeye-core" version = "1.1.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "domdf-python-tools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "idna", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "domdf-python-tools" }, + { name = "idna" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e5/4c/4f108cfd06923bd897bf992a6ecb6fb122646ee7af94d7f9a64abd071d4c/apeye_core-1.1.5.tar.gz", hash = "sha256:5de72ed3d00cc9b20fea55e54b7ab8f5ef8500eb33a5368bc162a5585e238a55", size = 96511 } wheels = [ @@ -422,7 +131,7 @@ name = "asttokens" version = "2.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "six", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "six" }, ] sdist = { url = "https://files.pythonhosted.org/packages/45/1d/f03bcb60c4a3212e15f99a56085d93093a497718adf828d050b9d675da81/asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0", size = 62284 } wheels = [ @@ -434,8 +143,8 @@ name = "astunparse" version = "1.6.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "six", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "wheel", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "six" }, + { name = "wheel" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872", size = 18290 } wheels = [ @@ -444,11 +153,11 @@ wheels = [ [[package]] name = "attrs" -version = "24.2.0" +version = "24.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fc/0f/aafca9af9315aee06a89ffde799a10a582fe8de76c563ee80bbcdc08b3fb/attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", size = 792678 } +sdist = { url = "https://files.pythonhosted.org/packages/48/c8/6260f8ccc11f0917360fc0da435c5c9c7504e3db174d5a12a1494887b045/attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff", size = 805984 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2", size = 63001 }, + { url = "https://files.pythonhosted.org/packages/89/aa/ab0f7891a01eeb2d2e338ae8fecbe57fcebea1a24dbb64d45801bfab481d/attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308", size = 63397 }, ] [[package]] @@ -456,7 +165,7 @@ name = "autodocsumm" version = "0.2.14" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx" }, ] sdist = { url = "https://files.pythonhosted.org/packages/03/96/92afe8a7912b327c01f0a8b6408c9556ee13b1aba5b98d587ac7327ff32d/autodocsumm-0.2.14.tar.gz", hash = "sha256:2839a9d4facc3c4eccd306c08695540911042b46eeafcdc3203e6d0bab40bc77", size = 46357 } wheels = [ @@ -477,7 +186,7 @@ name = "beautifulsoup4" version = "4.12.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "soupsieve", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "soupsieve" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", size = 581181 } wheels = [ @@ -489,13 +198,13 @@ name = "black" version = "24.10.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "mypy-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pathspec", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "platformdirs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "click" }, + { name = "mypy-extensions" }, + { name = "packaging" }, + { name = "pathspec" }, + { name = "platformdirs" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d8/0d/cc2fb42b8c50d80143221515dd7e4766995bd07c56c9a3ed30baf080b6dc/black-24.10.0.tar.gz", hash = "sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875", size = 645813 } wheels = [ @@ -523,7 +232,7 @@ name = "bleach" version = "6.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "webencodings", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "webencodings" }, ] sdist = { url = "https://files.pythonhosted.org/packages/76/9a/0e33f5054c54d349ea62c277191c020c2d6ef1d65ab2cb1993f91ec846d1/bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f", size = 203083 } wheels = [ @@ -535,15 +244,15 @@ name = "bokeh" version = "3.6.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "contourpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pillow", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tornado", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "xyzservices", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "contourpy" }, + { name = "jinja2" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pillow" }, + { name = "pyyaml" }, + { name = "tornado" }, + { name = "xyzservices" }, ] sdist = { url = "https://files.pythonhosted.org/packages/da/9d/cc9c561e1db8cbecc5cfad972159020700fff2339bdaa316498ace1cb04c/bokeh-3.6.2.tar.gz", hash = "sha256:2f3043d9ecb3d5dc2e8c0ebf8ad55727617188d4e534f3e7208b36357e352396", size = 6247610 } wheels = [ @@ -564,7 +273,7 @@ name = "bottleneck" version = "1.4.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/2e/61/9fb34409d58f04e1929da41666a055c36f9495903ff669b80c893bdee65f/bottleneck-1.4.2.tar.gz", hash = "sha256:fa8e8e1799dea5483ce6669462660f9d9a95649f6f98a80d315b84ec89f449f4", size = 103563 } wheels = [ @@ -609,21 +318,21 @@ wheels = [ [[package]] name = "bump-my-version" -version = "0.28.1" +version = "0.28.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pydantic", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pydantic-settings", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "questionary", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "rich", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "rich-click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tomlkit", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "wcmatch", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "click" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "questionary" }, + { name = "rich" }, + { name = "rich-click" }, + { name = "tomlkit" }, + { name = "wcmatch" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1d/44/8f4f5dc472a054634bffd86e4941b2624e0b050f15578d40ec15e670d8e5/bump_my_version-0.28.1.tar.gz", hash = "sha256:e608def5191baf505b6cde88bd679a0a95fc4cfeace4247adb60ac0f8a7e57ee", size = 983509 } +sdist = { url = "https://files.pythonhosted.org/packages/9f/8b/0c53a031c3ec706900ae4a52733d1ece3fe24dbcc9ad4073e69fbb4c80ce/bump_my_version-0.28.3.tar.gz", hash = "sha256:37086aaae3e1a0ffcfa82111cf271850d5ffbe1997a17b1630f2437d8a9a5160", size = 1013463 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/2c/10f770bf71116ecfcc8b2e67dd6752e7e135998579bc1dc98a6edb47bafc/bump_my_version-0.28.1-py3-none-any.whl", hash = "sha256:df7fdb02a1b43c122a6714df6d1fe4efc7a1220b5638ca5a0eb3018813c1b222", size = 52210 }, + { url = "https://files.pythonhosted.org/packages/6a/c5/6ba8d3764373d7896c313b70fa519df07e8aa314134096521ca277990516/bump_my_version-0.28.3-py3-none-any.whl", hash = "sha256:d853bf0e92bf83beed88e129b9cb7e20eeacc87617bf4a7c2d78f6154cf2ba16", size = 52054 }, ] [[package]] @@ -631,8 +340,8 @@ name = "cachecontrol" version = "0.14.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "msgpack", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "requests", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "msgpack" }, + { name = "requests" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d2/23/db12e0b6b241e33f77f7cce01a06b4cc6f8071728656cc0ea262d2a14dad/cachecontrol-0.14.1.tar.gz", hash = "sha256:06ef916a1e4eb7dba9948cdfc9c76e749db2e02104a9a1277e8b642591a0f717", size = 28928 } wheels = [ @@ -641,7 +350,7 @@ wheels = [ [package.optional-dependencies] filecache = [ - { name = "filelock", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "filelock" }, ] [[package]] @@ -658,12 +367,12 @@ name = "cartopy" version = "0.24.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "matplotlib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyproj", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyshp", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "shapely", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "matplotlib" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pyproj" }, + { name = "pyshp" }, + { name = "shapely" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e0/75/94aff4fef338887641aa780d13795609861e6e9f9593bd66d4917ab7954b/cartopy-0.24.1.tar.gz", hash = "sha256:01c910d5634c69a7efdec46e0a17d473d2328767f001d4dc0b5c4b48e585c8bd", size = 10741277 } wheels = [ @@ -687,11 +396,11 @@ wheels = [ [[package]] name = "certifi" -version = "2024.8.30" +version = "2024.12.14" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", size = 168507 } +sdist = { url = "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", size = 166010 } wheels = [ - { url = "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", size = 167321 }, + { url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", size = 164927 }, ] [[package]] @@ -699,7 +408,7 @@ name = "cffi" version = "1.17.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pycparser", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pycparser" }, ] sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621 } wheels = [ @@ -765,7 +474,7 @@ name = "cftime" version = "1.6.4.post1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ab/c8/1155d1d58003105307c7e5985f422ae5bcb2ca0cbc553cc828f3c5a934a7/cftime-1.6.4.post1.tar.gz", hash = "sha256:50ac76cc9f10ab7bd46e44a71c51a6927051b499b4407df4f29ab13d741b942f", size = 54631 } wheels = [ @@ -869,7 +578,7 @@ name = "click" version = "8.1.7" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "implementation_name == 'cpython' and platform_system == 'Windows' and sys_platform != 'windows'" }, + { name = "colorama", marker = "platform_system == 'Windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121 } wheels = [ @@ -887,28 +596,28 @@ wheels = [ [[package]] name = "cmake" -version = "3.31.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c2/74/d8e7802997f3c54dedc5393aad3b9d7732fea61b957bbebf039514a12037/cmake-3.31.1.tar.gz", hash = "sha256:45e09ef6fc5a0d3d4cac11bfee43ba3f9925f301660630d3d1e5457fbe12ecdf", size = 31744 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/82/beb13092dff074518fa0bd8a9af340829ba19825eacc09a1dac80ed67eac/cmake-3.31.1-py3-none-macosx_10_10_universal2.whl", hash = "sha256:b105b171b830de26422a1a2d3ed54540e90438b87bbd07e4d1c53b95766b9a77", size = 47183972 }, - { url = "https://files.pythonhosted.org/packages/d2/9b/b5ea93e4fba5d2404c2bd31dcdc503d6f60afe2f320c453b878a5e958bf9/cmake-3.31.1-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:167753a1c8c708a9462eb4b2dba9eb4a51a0dbb88a52fe4057b2f0d58cef33df", size = 27553493 }, - { url = "https://files.pythonhosted.org/packages/e3/d9/451bc0665ca467ee17bd3956783899625fcbf89a95e9ec46b22633ecbf25/cmake-3.31.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5a26673cdb1b6d3e5bdb799becd7e92bb64515f95e4aa70a137a2a5030c2e940", size = 26809876 }, - { url = "https://files.pythonhosted.org/packages/ec/9d/f5f010c59015e6c630989e0b725ccf8e15c808acfd95b8ec85b19b858722/cmake-3.31.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5d993fb9093061ffc3c4fd73297d7e4821e93be26c9fd6adf8b2b4116370084", size = 27124659 }, - { url = "https://files.pythonhosted.org/packages/c9/72/870771bc5db937b5062a7566cc066da056024c99ff45a6fa8bc1cdfe0a78/cmake-3.31.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c76ee41bf4a63e2d3a0ba96f8f1d226bde0d01bb7d5b8638c30a18de2518f74", size = 28863303 }, - { url = "https://files.pythonhosted.org/packages/d2/5d/174e4edfbfe377e7ec1398f8af34dd851afce1c8e74f0a4046f6ed0fdc3e/cmake-3.31.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb8c23ab0069c40676c4dd2e2ea39de6a18aae6e155dde6073427e11f92b2f3", size = 30728320 }, - { url = "https://files.pythonhosted.org/packages/65/46/119a3a3bf916d2975c9d210a70da6609ca8c4a2ff8e4ab90b0af8ecdb172/cmake-3.31.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:412ef66b056628d7fe40fc8ceff3d5e2c1123782f29f5dfcbd4f7587a5d03df0", size = 26908293 }, - { url = "https://files.pythonhosted.org/packages/b8/8d/a7cf7573df4c67de7cb4b2e36cfc790462b90813baa14604c3693a23d89b/cmake-3.31.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b5f390336617fe476d36415c33e40de61c7381cd3b3657450f03d2c2f99e99a5", size = 27783854 }, - { url = "https://files.pythonhosted.org/packages/d3/f6/3a4be5783d9b40a2449d8f0315a29bf0dc0d66e88bdb3b3a18f60b69fa16/cmake-3.31.1-py3-none-manylinux_2_31_armv7l.whl", hash = "sha256:c38a478d87280aaaf133f69dea507eefd6503584eda79b641c767d80add1e4fe", size = 24961017 }, - { url = "https://files.pythonhosted.org/packages/33/ca/19852821a5c68adb5c2d6c29509f6b08e86296e94ee09a954ef7323c4efc/cmake-3.31.1-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:8584be174494458cbd1c2fef3da6f721b975f70d181a898f0d028a807ca4ee1c", size = 27821185 }, - { url = "https://files.pythonhosted.org/packages/d3/1a/a7edcb52f107d126422b965c20197bdbaed2166b8a01660fdf980b189d9e/cmake-3.31.1-py3-none-musllinux_1_1_i686.whl", hash = "sha256:b67ba0f3e3e4391f0dc1d8f734c57a1532cf8e24605a8470bb90b4bf88789605", size = 31364530 }, - { url = "https://files.pythonhosted.org/packages/c9/42/f1b2679ebaa206d9983347ff5616e446e66b9427c8ccd1dc39be07284db2/cmake-3.31.1-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:ed9fb18f8a7ad7ca483a34c8d4d400d7465f602626fdb478fc086f488297ec8d", size = 32069947 }, - { url = "https://files.pythonhosted.org/packages/5f/43/4ee66e496e726457758710ab8b3b5349b74b80c60ffa7970cf65ab1c226b/cmake-3.31.1-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:995d72c96feb64790bfc13a54bde5bd783685441c1532e1da7402a3f4705d0d9", size = 27942166 }, - { url = "https://files.pythonhosted.org/packages/85/b1/5a1a4a93dc833b770d7bdaff92d0e6f33441317474d1c245b820b764c22c/cmake-3.31.1-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:585ef94540a99a7acbc7001721d5d897df2e80a549a05b17e660e8a813fc9cc1", size = 29465511 }, - { url = "https://files.pythonhosted.org/packages/ba/9a/dc0ad5735d4f784afbf5a64b99b9f36c9cc1e3a188886a9cf0542ca87c8e/cmake-3.31.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7882f58fd4e7d7d87c9afa43e3e2b68f0621d5ad77bef76d9d5de99bb3d5f0d3", size = 32968611 }, - { url = "https://files.pythonhosted.org/packages/d9/af/3d2b63027e91a3e41b5ca8d28188689ef150a030768d477f3f8d312d23ef/cmake-3.31.1-py3-none-win32.whl", hash = "sha256:1b1e1f610ff11f7674dae4b048e92481ed3bb6f4d346fbd015ab548ef542c2be", size = 33325344 }, - { url = "https://files.pythonhosted.org/packages/1f/e3/b5259c734fc91e5ec0cad200e177dbc6434f7f3d414415c119617765b9b1/cmake-3.31.1-py3-none-win_amd64.whl", hash = "sha256:18e542c6e21b6f8d4ae1b219e894b00789ec78b4da800e3a60920dee4e33d575", size = 36424070 }, - { url = "https://files.pythonhosted.org/packages/55/8a/fcdb516b189b53847ea9e3a195acc37ac8b2310b4ebc9487f624d8a91656/cmake-3.31.1-py3-none-win_arm64.whl", hash = "sha256:9cee057f067c14bdee78ce3f56b9396051f744d20a409f0945052582f36020b5", size = 35549409 }, +version = "3.31.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/56/3e/7ffec8579746fcc7e961324cd987a73caca644309f65bc9415821f3b5e25/cmake-3.31.2.tar.gz", hash = "sha256:16a323fcbb86cf8a10aea82cd4deecb33edb3ed7e8907be8a06933ce04f6e6d1", size = 34269 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/2d/f1f718eadd56fa89097a294a25e26b712126b7353e5e146144f43820ad12/cmake-3.31.2-py3-none-macosx_10_10_universal2.whl", hash = "sha256:8c1fa50cafe54f9aa074d03cda1ade54271039d939194adc9cd1ac388b1af055", size = 47191006 }, + { url = "https://files.pythonhosted.org/packages/2e/71/8c7a409d1e47ebce31e8b40fb0bffb2b136ec85bdb77ba60b7c17910c218/cmake-3.31.2-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8210a40d5b08bec7c752974f2b217a062a092480e33dcbd39d46a8cd96c29ddc", size = 27555436 }, + { url = "https://files.pythonhosted.org/packages/b3/0f/99f6303b47d30870640b05919b0c83881f0cd8cbe902e065c5202c53373f/cmake-3.31.2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:82ec0a96b965874dc793ed6d3aa7edad6f364d4ba8b86307548bfbbca70fd2dd", size = 26810752 }, + { url = "https://files.pythonhosted.org/packages/5b/44/69e66432861694bc7740b33bafbc94c113e67167e78ba13fe086da387382/cmake-3.31.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:604c44684dbcbec1458310bd57b9e69b7768ddd7cd2fc852607ca24616f34518", size = 27137360 }, + { url = "https://files.pythonhosted.org/packages/c3/2a/e3b8afc83303f6742fcf9f0c4560604afa865974ceb2d047fe8cbca71587/cmake-3.31.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8d8c840502f84a16562820ee23f963583953939de63a9582f0f7735868cd18e6", size = 28868206 }, + { url = "https://files.pythonhosted.org/packages/a6/a8/d8ade7efbf462a56315fbdc9d45df226a5fed0f2f90e1e0c22657c3cba6b/cmake-3.31.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2988aac62b9ada74bb802a8065ea58abe57bf203c057bb7e0456c3575a89c48a", size = 30728966 }, + { url = "https://files.pythonhosted.org/packages/99/4b/6ef3bbf5a95a0d839a7f00ff349cf43823f1717ecb2915588c0743f3b1d6/cmake-3.31.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8f9d7f8371a6739bbec7c238d213877f31b22a10930c91dea59b8b9463b6ee1", size = 26908876 }, + { url = "https://files.pythonhosted.org/packages/e0/a7/d7c3e87d1547af16810b8b1bbfc8ffaa1c83a26725b6c152ab979df65dc1/cmake-3.31.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31aaa73c6bf49109b2a7ab86b3e6887b5db0da6be30ddfb30bed160b84787f89", size = 27784919 }, + { url = "https://files.pythonhosted.org/packages/17/86/905e614d302806e9c810939912f0f8ad3e9bc6b970c07dc34a8a42bf26c3/cmake-3.31.2-py3-none-manylinux_2_31_armv7l.whl", hash = "sha256:79b7eb78aea04e363a736e544afc4b4489f50415075bd77131e5314778b8e879", size = 24963426 }, + { url = "https://files.pythonhosted.org/packages/5b/6e/d2c8b91d47bdfa0e47aed660fd3b4d580e0ef28f4edca4cdb8d0820232bb/cmake-3.31.2-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:09b3b1c919c76d25272bd9a0f15baf954d6c883abffdd1cfb3fbf1afa7a2c556", size = 27824509 }, + { url = "https://files.pythonhosted.org/packages/f7/7f/ec5ff91ad2954dbe4b2d8fb2e2e34d19579a570fffaebdca36b1fb996cab/cmake-3.31.2-py3-none-musllinux_1_1_i686.whl", hash = "sha256:aec014f19536f2b6b0a94f4e20990c28fb93c4bdf9193d57fa5e50ef829aaf78", size = 31367498 }, + { url = "https://files.pythonhosted.org/packages/2e/9a/7b3daf8db08f4377b3cfb26f3f60dea59f841a542eef86af68ac438ebe5d/cmake-3.31.2-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:994e14f485329d58d316487bd1759ad89717b895079e8b892a8220f03c1c5267", size = 32073503 }, + { url = "https://files.pythonhosted.org/packages/56/c1/ed93f0b9a143d5e41af693533187f823df60593da68bb352efddc2dbf7bb/cmake-3.31.2-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:e8fc23d376b3fae8945067f397d8503fff210eefe1e49ab9ece1d99a88679cf4", size = 27945493 }, + { url = "https://files.pythonhosted.org/packages/f4/b2/e2aadbace9d5d83e7b76f4129be2d1130e8f37dedffd8f3c4817428bf18a/cmake-3.31.2-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:fa3b23b8bd52c0ae9e3c6b635ac8ee70d8f35d24bacf39cc4cea22aec6e4ed84", size = 29473116 }, + { url = "https://files.pythonhosted.org/packages/5b/d7/bdf86e883bc17a97e6465deac0c2c7ef39878985097e3cf4146c9722f1c2/cmake-3.31.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7b5f4f5ec4b0d6275369881a2a7bf7230af1cb60afdb20a7b2fbc70690f13564", size = 32968718 }, + { url = "https://files.pythonhosted.org/packages/80/e1/6153ca77294b08ff0470b98c5d0e2fb8360c981b467381f36224a1126e65/cmake-3.31.2-py3-none-win32.whl", hash = "sha256:378036396394dad7673cdfc603bb85af34945607df43e8dad731f5907c755f3b", size = 33308353 }, + { url = "https://files.pythonhosted.org/packages/20/24/44ebe92f371f277592f6c2043f6749c2bf9534ca43c2b82615038e3fbef7/cmake-3.31.2-py3-none-win_amd64.whl", hash = "sha256:cedb6de320a65ff0137e5c6090b9b7fba459788237d3d4deb6e66be19fe9b61d", size = 36493555 }, + { url = "https://files.pythonhosted.org/packages/59/ee/805ce3a356cac687b8eba6cb296fa6494cf0e234f85bb49914b92471463f/cmake-3.31.2-py3-none-win_arm64.whl", hash = "sha256:3bd054996b8a36ff5beb3cdd0ffbf8edf23d719cf946762662a9fb70525b1d1b", size = 35540751 }, ] [[package]] @@ -934,7 +643,7 @@ name = "colorlog" version = "6.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "implementation_name == 'cpython' and sys_platform == 'win32'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d3/7a/359f4d5df2353f26172b3cc39ea32daa39af8de522205f512f458923e677/colorlog-6.9.0.tar.gz", hash = "sha256:bfba54a1b93b94f54e1f4fe48395725a3d92fd2a4af702f6bd70946bdc0c6ac2", size = 16624 } wheels = [ @@ -955,7 +664,7 @@ name = "contourpy" version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/25/c2/fc7193cc5383637ff390a712e88e4ded0452c9fbcf84abe3de5ea3df1866/contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699", size = 13465753 } wheels = [ @@ -1075,7 +784,7 @@ wheels = [ [package.optional-dependencies] toml = [ - { name = "tomli", marker = "python_full_version <= '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "tomli", marker = "python_full_version <= '3.11'" }, ] [[package]] @@ -1083,7 +792,7 @@ name = "cssutils" version = "2.11.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "more-itertools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "more-itertools" }, ] sdist = { url = "https://files.pythonhosted.org/packages/33/9f/329d26121fe165be44b1dfff21aa0dc348f04633931f1d20ed6cf448a236/cssutils-2.11.1.tar.gz", hash = "sha256:0563a76513b6af6eebbe788c3bf3d01c920e46b3f90c8416738c5cfc773ff8e2", size = 711657 } wheels = [ @@ -1095,8 +804,8 @@ name = "cupy-cuda11x" version = "13.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "fastrlock", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "fastrlock" }, + { name = "numpy" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/2a/1b/3afbaea2b78114c82b33ecc9affc79b7d9f4899945940b9b50790c93fd33/cupy_cuda11x-13.3.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:ef854f0c63525d8163ab7af19f503d964de9dde0dd1cf9ea806a6ecb302cdce3", size = 109578634 }, @@ -1115,8 +824,8 @@ name = "cupy-cuda12x" version = "13.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "fastrlock", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "fastrlock" }, + { name = "numpy" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/34/60/dc268d1d9c5fdde4673a463feff5e9c70c59f477e647b54b501f65deef60/cupy_cuda12x-13.3.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:674488e990998042cc54d2486d3c37cae80a12ba3787636be5a10b9446dd6914", size = 103601326 }, @@ -1144,7 +853,7 @@ name = "cytoolz" version = "1.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "toolz" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a7/f9/3243eed3a6545c2a33a21f74f655e3fcb5d2192613cd3db81a93369eb339/cytoolz-1.0.1.tar.gz", hash = "sha256:89cc3161b89e1bb3ed7636f74ed2e55984fd35516904fc878cae216e42b2c7d6", size = 626652 } wheels = [ @@ -1216,18 +925,18 @@ name = "dace" version = "0.16.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "aenum", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "astunparse", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "dill", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "fparser", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "networkx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "ply", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyreadline", marker = "implementation_name == 'cpython' and platform_system == 'Windows' and sys_platform != 'windows'" }, - { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sympy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "websockets", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "aenum" }, + { name = "astunparse" }, + { name = "dill" }, + { name = "fparser" }, + { name = "jinja2" }, + { name = "networkx" }, + { name = "numpy" }, + { name = "ply" }, + { name = "pyreadline", marker = "platform_system == 'Windows'" }, + { name = "pyyaml" }, + { name = "sympy" }, + { name = "websockets" }, ] sdist = { url = "https://files.pythonhosted.org/packages/6a/4f/91260bf8b679572b5e0fd3410208ba3a724d7a23d675d1af0b362dac3e94/dace-0.16.1.tar.gz", hash = "sha256:9aef845f2f11964b587839a9ee3b4f914342b84d1d745aef44ace5227c3903f3", size = 5714118 } wheels = [ @@ -1236,47 +945,47 @@ wheels = [ [[package]] name = "dask" -version = "2024.12.0" +version = "2024.12.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "cloudpickle", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "fsspec", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "importlib-metadata", marker = "python_full_version < '3.12' and implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "partd", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "click" }, + { name = "cloudpickle" }, + { name = "fsspec" }, + { name = "importlib-metadata", marker = "python_full_version < '3.12'" }, + { name = "packaging" }, + { name = "partd" }, + { name = "pyyaml" }, + { name = "toolz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b8/0a/1011ce75bc1e2da627d481f4bfcaf0eaf3367eb2e432ed908620e0a0fcfa/dask-2024.12.0.tar.gz", hash = "sha256:ffd02b06ac06b993df0b48e0ba4fe02abceb5c8b34b40bd91d63f33ec7a272a4", size = 10691490 } +sdist = { url = "https://files.pythonhosted.org/packages/b6/19/1d1e57c0fa24dfd241bbec46d4b70c37ec15e8071a7e06d43d327c8dafbb/dask-2024.12.1.tar.gz", hash = "sha256:bac809af21c2dd7eb06827bccbfc612504f3ee6435580e548af912828f823195", size = 10693689 } wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/46/9ea782eb1accabad0931d80818fcf8b286bdd1b457ae9c718f039430c489/dask-2024.12.0-py3-none-any.whl", hash = "sha256:e038e87b9f06e7927b81ecde6cf2b49aa699bb902fec11abba5697cb48baeb8d", size = 1268483 }, + { url = "https://files.pythonhosted.org/packages/6d/5a/cdc78a77bb1c7290fd1ccfe6001437f99a2af63e28343299abd09336236e/dask-2024.12.1-py3-none-any.whl", hash = "sha256:1f32acddf1a6994e3af6734756f0a92467c47050bc29f3555bb9b140420e8e19", size = 1269300 }, ] [package.optional-dependencies] complete = [ - { name = "bokeh", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "dask-expr", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "distributed", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "lz4", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyarrow", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "bokeh" }, + { name = "dask-expr" }, + { name = "distributed" }, + { name = "jinja2" }, + { name = "lz4" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "pyarrow" }, ] [[package]] name = "dask-expr" -version = "1.1.20" +version = "1.1.21" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "dask", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyarrow", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "dask" }, + { name = "pandas" }, + { name = "pyarrow" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/03/ef/9b7b7ccd25cef726f0b38a4d440092596e5fa6f593b82c676278c925327b/dask_expr-1.1.20.tar.gz", hash = "sha256:c5be6243296c299e21e02aa93e863e28e6f21ab3c01b645cec3dd56e1b1eac9b", size = 224530 } +sdist = { url = "https://files.pythonhosted.org/packages/e2/d3/50af8a5826231a804b0286704ed7be494d685337e159bf600cb396fcfcf9/dask_expr-1.1.21.tar.gz", hash = "sha256:eb45de8e6fea1ce2608a431b4e03a484592defb1796665530c91386ffac581d3", size = 223929 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c5/a4/c7c8e2a895eba9ce41bf811b2b6755c227a489b687d1a52521350ae37436/dask_expr-1.1.20-py3-none-any.whl", hash = "sha256:a10755f2bc7d7cfb060b4fc9c7e8b139a03d961c4420ebd50ea319ea906f8b80", size = 245309 }, + { url = "https://files.pythonhosted.org/packages/a9/99/60c73ccb5a272ff396bc766bfa3c9caa71484424983f0334070263a16581/dask_expr-1.1.21-py3-none-any.whl", hash = "sha256:2c2a9a0b0e66b26cf918679988f97e947bc936544f3a106102055adb9a9edeba", size = 244297 }, ] [[package]] @@ -1284,20 +993,20 @@ name = "datashader" version = "0.16.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorcet", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "dask", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "multipledispatch", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numba", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "param", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pillow", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyct", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "requests", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "scipy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "xarray", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "colorcet" }, + { name = "dask" }, + { name = "multipledispatch" }, + { name = "numba" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "param" }, + { name = "pillow" }, + { name = "pyct" }, + { name = "requests" }, + { name = "scipy" }, + { name = "toolz" }, + { name = "xarray" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a0/15/3e28732b7ea0985929dd31612c073d5e49b99d67f6974de334ff81f22fb1/datashader-0.16.3.tar.gz", hash = "sha256:9d0040c7887f7a5a5edd374c297402fd208a62bf6845e87631b54f03b9ae479d", size = 35716446 } wheels = [ @@ -1306,14 +1015,14 @@ wheels = [ [[package]] name = "deepdiff" -version = "8.0.1" +version = "8.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "orderly-set", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "orderly-set" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/62/ba/aced1d6a7d988ca1b6f9b274faed7dafc7356a733e45a457819bddcf2dbc/deepdiff-8.0.1.tar.gz", hash = "sha256:245599a4586ab59bb599ca3517a9c42f3318ff600ded5e80a3432693c8ec3c4b", size = 427721 } +sdist = { url = "https://files.pythonhosted.org/packages/50/4b/ce2d3a36f77186d7dbca0f10b33e6a1c0eee390d9434960d2a14e2736b52/deepdiff-8.1.1.tar.gz", hash = "sha256:dd7bc7d5c8b51b5b90f01b0e2fe23c801fd8b4c6a7ee7e31c5a3c3663fcc7ceb", size = 433560 } wheels = [ - { url = "https://files.pythonhosted.org/packages/06/46/01673060e83277a863baf0909b387cd809865cba2d5e7213db76516bedd9/deepdiff-8.0.1-py3-none-any.whl", hash = "sha256:42e99004ce603f9a53934c634a57b04ad5900e0d8ed0abb15e635767489cbc05", size = 82741 }, + { url = "https://files.pythonhosted.org/packages/66/f7/2df72b55635926872b947203aacbe7e1109a51929aec8ebfef8c4a348eb5/deepdiff-8.1.1-py3-none-any.whl", hash = "sha256:b0231fa3afb0f7184e82535f2b4a36636442ed21e94a0cf3aaa7982157e7ebca", size = 84655 }, ] [[package]] @@ -1321,8 +1030,8 @@ name = "dependency-groups" version = "1.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b4/57/cd53c3e335eafbb0894449af078e2b71db47e9939ce2b45013e5a9fe89b7/dependency_groups-1.3.0.tar.gz", hash = "sha256:5b9751d5d98fbd6dfd038a560a69c8382e41afcbf7ffdbcc28a2a3f85498830f", size = 9832 } wheels = [ @@ -1334,9 +1043,9 @@ name = "devtools" version = "0.12.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "asttokens", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "executing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pygments", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "asttokens" }, + { name = "executing" }, + { name = "pygments" }, ] sdist = { url = "https://files.pythonhosted.org/packages/84/75/b78198620640d394bc435c17bb49db18419afdd6cfa3ed8bcfe14034ec80/devtools-0.12.2.tar.gz", hash = "sha256:efceab184cb35e3a11fa8e602cc4fadacaa2e859e920fc6f87bf130b69885507", size = 75005 } wheels = [ @@ -1348,8 +1057,8 @@ name = "dict2css" version = "0.3.0.post1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cssutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "domdf-python-tools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cssutils" }, + { name = "domdf-python-tools" }, ] sdist = { url = "https://files.pythonhosted.org/packages/24/eb/776eef1f1aa0188c0fc165c3a60b71027539f71f2eedc43ad21b060e9c39/dict2css-0.3.0.post1.tar.gz", hash = "sha256:89c544c21c4ca7472c3fffb9d37d3d926f606329afdb751dc1de67a411b70719", size = 7845 } wheels = [ @@ -1385,28 +1094,28 @@ wheels = [ [[package]] name = "distributed" -version = "2024.12.0" +version = "2024.12.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "cloudpickle", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "dask", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "locket", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "msgpack", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "psutil", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sortedcontainers", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tblib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tornado", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "urllib3", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "zict", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "click" }, + { name = "cloudpickle" }, + { name = "dask" }, + { name = "jinja2" }, + { name = "locket" }, + { name = "msgpack" }, + { name = "packaging" }, + { name = "psutil" }, + { name = "pyyaml" }, + { name = "sortedcontainers" }, + { name = "tblib" }, + { name = "toolz" }, + { name = "tornado" }, + { name = "urllib3" }, + { name = "zict" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/02/6e/463536dba2893634537f62ef00abf9421bf55f867892fc7c47d865c27d85/distributed-2024.12.0.tar.gz", hash = "sha256:6a2c04e63d31973ee3c1f2160d66521ed8f08e637d6a25a450e7561582920f38", size = 1115740 } +sdist = { url = "https://files.pythonhosted.org/packages/67/ce/0ca6d4e1da90f5b3af135b3abbf0487b2602d046cc090b793869928880b5/distributed-2024.12.1.tar.gz", hash = "sha256:438aa3ae48bfac9c2bb2ad03f9d47899286f9cb3db8a627b3b8c0de9e26f53dd", size = 1115786 } wheels = [ - { url = "https://files.pythonhosted.org/packages/93/ef/f0a96745cabeda5735d456403a007c2f9b6ac64a0f4c5fa4faf9d41f70dc/distributed-2024.12.0-py3-none-any.whl", hash = "sha256:ed05aa13b6c62b69b33d1ba7d1ca95e78406c8f37163fafd07f7ca94ae036b66", size = 1022908 }, + { url = "https://files.pythonhosted.org/packages/e8/90/82171cc7fe1c6d10bac57587c7ac012be80412ad06ef8c4952c5f067f869/distributed-2024.12.1-py3-none-any.whl", hash = "sha256:87e31abaa0ee3dc517b44fec4993d4b5d92257f926a8d2a12d52c005227154e7", size = 1022935 }, ] [[package]] @@ -1423,8 +1132,8 @@ name = "domdf-python-tools" version = "3.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "natsort", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "natsort" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/6b/78/974e10c583ba9d2302e748c9585313a7f2c7ba00e4f600324f432e38fe68/domdf_python_tools-3.9.0.tar.gz", hash = "sha256:1f8a96971178333a55e083e35610d7688cd7620ad2b99790164e1fc1a3614c18", size = 103792 } wheels = [ @@ -1463,7 +1172,7 @@ name = "factory-boy" version = "3.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "faker", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "faker" }, ] sdist = { url = "https://files.pythonhosted.org/packages/99/3d/8070dde623341401b1c80156583d4c793058fe250450178218bb6e45526c/factory_boy-3.3.1.tar.gz", hash = "sha256:8317aa5289cdfc45f9cae570feb07a6177316c82e34d14df3c2e1f22f26abef0", size = 163924 } wheels = [ @@ -1475,8 +1184,8 @@ name = "faker" version = "33.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "python-dateutil", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "python-dateutil" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/1e/9f/012fd6049fc86029951cba5112d32c7ba076c4290d7e8873b0413655b808/faker-33.1.0.tar.gz", hash = "sha256:1c925fc0e86a51fc46648b504078c88d0cd48da1da2595c4e712841cab43a1e4", size = 1850515 } wheels = [ @@ -1494,34 +1203,38 @@ wheels = [ [[package]] name = "fastrlock" -version = "0.8.2" +version = "0.8.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/89/4b/26357c444b48f3f4e3c17b999274e6c60f2367f7e9d454ca2280d8b463e1/fastrlock-0.8.2.tar.gz", hash = "sha256:644ec9215cf9c4df8028d8511379a15d9c1af3e16d80e47f1b6fdc6ba118356a", size = 79508 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/d7/05d9a697abf348bf73b5260fb1b89f539376b2bdec97d423fd20bf1e783a/fastrlock-0.8.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:e9904b5b37c3e5bb4a245c56bc4b7e497da57ffb8528f4fc39af9dcb168ee2e1", size = 30532 }, - { url = "https://files.pythonhosted.org/packages/2b/7a/519dda6365ceb81f35be4e3b26187ebc8aa8865679675b92a1547f3ca9f2/fastrlock-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:43a241655e83e4603a152192cf022d5ca348c2f4e56dfb02e5c9c4c1a32f9cdb", size = 47364 }, - { url = "https://files.pythonhosted.org/packages/12/92/ced328dd5ee079823c95d199c311eaa3b9eb44807832d8e5370ae9224894/fastrlock-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9121a894d74e65557e47e777060a495ab85f4b903e80dd73a3c940ba042920d7", size = 50200 }, - { url = "https://files.pythonhosted.org/packages/39/c1/29cbea3399fe108007df72198e9e0cba8f081eefdba10edbd5bc208fe5ac/fastrlock-0.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl", hash = "sha256:11bbbbc526363955aeddb9eec4cee2a0012322b7b2f15b54f44454fcf4fd398a", size = 48580 }, - { url = "https://files.pythonhosted.org/packages/52/66/15aa713925023b3eb8970f46acd3b2f02ec0b5137a418cad5250cbe8cfdc/fastrlock-0.8.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:27786c62a400e282756ae1b090bcd7cfa35f28270cff65a9e7b27a5327a32561", size = 48494 }, - { url = "https://files.pythonhosted.org/packages/bc/5d/d1f89b59f5b4b4710fd126e0df31ca4c58f46fc0a831058fc49010972d3d/fastrlock-0.8.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:08315bde19d0c2e6b06593d5a418be3dc8f9b1ee721afa96867b9853fceb45cf", size = 51280 }, - { url = "https://files.pythonhosted.org/packages/d7/2d/99707885ce625d2a5deb0fcba3eaee86462914d05009ce04cf1cfa5bacd3/fastrlock-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e8b49b5743ede51e0bcf6805741f39f5e0e0fd6a172ba460cb39e3097ba803bb", size = 51646 }, - { url = "https://files.pythonhosted.org/packages/3d/a3/cc2412acb468e0c59f966de22ea90e8b51f6e6e305251a2d94432a437575/fastrlock-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b443e73a4dfc7b6e0800ea4c13567b9694358e86f53bb2612a51c9e727cac67b", size = 51105 }, - { url = "https://files.pythonhosted.org/packages/72/26/3f773629d6367ef4764e0c77e6771bf0dc6390daf753e090947ea9c56a75/fastrlock-0.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:b3853ed4ce522598dc886160a7bab432a093051af85891fa2f5577c1dcac8ed6", size = 29775 }, - { url = "https://files.pythonhosted.org/packages/1c/0e/2324d71832db47e2949f846e80f79a1391a5cb79661cb1111eb23c27c8d4/fastrlock-0.8.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:790fc19bccbd39426060047e53629f171a44745613bf360a045e9f9c8c4a2cea", size = 54924 }, - { url = "https://files.pythonhosted.org/packages/92/d3/3fce38d4ed16db0936cc39fc7ea06ea0c2398d7033a37e49880edd0a8ca6/fastrlock-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:dbdce852e6bb66e1b8c36679d482971d69d93acf1785657522e51b7de30c3356", size = 48232 }, - { url = "https://files.pythonhosted.org/packages/ba/51/d66763b993d4f2bbd816fc37f42b78e9b45e98fc0c141bc8605ce0a21c9d/fastrlock-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d47713ffe6d4a627fbf078be9836a95ac106b4a0543e3841572c91e292a5d885", size = 51531 }, - { url = "https://files.pythonhosted.org/packages/58/ff/653b5b507aa75a962b2fc93bf055d45aa1015b1581b52883052e19abf31b/fastrlock-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl", hash = "sha256:ea96503b918fceaf40443182742b8964d47b65c5ebdea532893cb9479620000c", size = 49654 }, - { url = "https://files.pythonhosted.org/packages/49/82/df877710dd30860c5e858098fa56ce7b6d4ec82f552bfb384e4cd9eadf95/fastrlock-0.8.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:c6bffa978793bea5e1b00e677062e53a62255439339591b70e209fa1552d5ee0", size = 49536 }, - { url = "https://files.pythonhosted.org/packages/7f/8a/24067b0c3e5a0896dbe5e1e547ae176f25b94ce38e21020d1bf78d18d3ba/fastrlock-0.8.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:75c07726c8b1a52147fd7987d6baaa318c5dced1416c3f25593e40f56e10755b", size = 52581 }, - { url = "https://files.pythonhosted.org/packages/36/af/0f0dd7cfc7b202870a6d520b19f8d378ee638cd2b732a330bb16bcc8bc4b/fastrlock-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:88f079335e9da631efa64486c8207564a7bcd0c00526bb9e842e9d5b7e50a6cc", size = 52779 }, - { url = "https://files.pythonhosted.org/packages/8e/ee/1ad545f904ad8cd1ce7598b5af501148749a65dff8b9a7498cf7ceedafbb/fastrlock-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4fb2e77ff04bc4beb71d63c8e064f052ce5a6ea1e001d528d4d7f4b37d736f2e", size = 52185 }, - { url = "https://files.pythonhosted.org/packages/1d/6d/ccd8fce45a3a724a1682ebe4dc70f00a274e2a178852595298a1c43d70d4/fastrlock-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:b4c9083ea89ab236b06e9ef2263971db3b4b507195fc7d5eecab95828dcae325", size = 29926 }, - { url = "https://files.pythonhosted.org/packages/0d/54/b7c516be2039a4aabc4fbbc5d0346b9c4d878222346f7b37b85ae3624590/fastrlock-0.8.2-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:98195866d3a9949915935d40a88e4f1c166e82e378f622c88025f2938624a90a", size = 55286 }, - { url = "https://files.pythonhosted.org/packages/21/02/fe8f8e38cb875d1a882ef44bbc181310fde55cdb9046058f150d09c2af9b/fastrlock-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b22ea9bf5f9fad2b0077e944a7813f91593a4f61adf8faf734a70aed3f2b3a40", size = 50652 }, - { url = "https://files.pythonhosted.org/packages/3e/ca/16355012a2a5a029a524fd1eb8496eb43190f0e35f623a793ef73e16eb40/fastrlock-0.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc1bf0ac8a194313cf6e645e300a8a379674ceed8e0b1e910a2de3e3c28989e", size = 52435 }, - { url = "https://files.pythonhosted.org/packages/e1/a5/a853ca4c0da19d98664ecc36e8104931f63a67e33dd187cb91848783ca94/fastrlock-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a3dcc876050b8f5cbc0ee84ef1e7f0c1dfe7c148f10098828bc4403683c33f10", size = 51501 }, - { url = "https://files.pythonhosted.org/packages/10/84/7ee1705e4079f5eb54bf46d3a7eadf5b684fc2a8dce18a1df013c2d41c55/fastrlock-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:685e656048b59d8dfde8c601f188ad53a4d719eb97080cafc8696cda6d75865e", size = 52527 }, - { url = "https://files.pythonhosted.org/packages/f9/c0/c64e37a5b79966df6110942629dc483ffdeb6062f91afbdb60f848ddfbd1/fastrlock-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:fb5363cf0fddd9b50525ddbf64a1e1b28ec4c6dfb28670a940cb1cf988a6786b", size = 30150 }, +sdist = { url = "https://files.pythonhosted.org/packages/73/b1/1c3d635d955f2b4bf34d45abf8f35492e04dbd7804e94ce65d9f928ef3ec/fastrlock-0.8.3.tar.gz", hash = "sha256:4af6734d92eaa3ab4373e6c9a1dd0d5ad1304e172b1521733c6c3b3d73c8fa5d", size = 79327 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/02/3f771177380d8690812d5b2b7736dc6b6c8cd1c317e4572e65f823eede08/fastrlock-0.8.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:cc5fa9166e05409f64a804d5b6d01af670979cdb12cd2594f555cb33cdc155bd", size = 55094 }, + { url = "https://files.pythonhosted.org/packages/be/b4/aae7ed94b8122c325d89eb91336084596cebc505dc629b795fcc9629606d/fastrlock-0.8.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:7a77ebb0a24535ef4f167da2c5ee35d9be1e96ae192137e9dc3ff75b8dfc08a5", size = 48220 }, + { url = "https://files.pythonhosted.org/packages/96/87/9807af47617fdd65c68b0fcd1e714542c1d4d3a1f1381f591f1aa7383a53/fastrlock-0.8.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl", hash = "sha256:d51f7fb0db8dab341b7f03a39a3031678cf4a98b18533b176c533c122bfce47d", size = 49551 }, + { url = "https://files.pythonhosted.org/packages/9d/12/e201634810ac9aee59f93e3953cb39f98157d17c3fc9d44900f1209054e9/fastrlock-0.8.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:767ec79b7f6ed9b9a00eb9ff62f2a51f56fdb221c5092ab2dadec34a9ccbfc6e", size = 49398 }, + { url = "https://files.pythonhosted.org/packages/15/a1/439962ed439ff6f00b7dce14927e7830e02618f26f4653424220a646cd1c/fastrlock-0.8.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d6a77b3f396f7d41094ef09606f65ae57feeb713f4285e8e417f4021617ca62", size = 53334 }, + { url = "https://files.pythonhosted.org/packages/b5/9e/1ae90829dd40559ab104e97ebe74217d9da794c4bb43016da8367ca7a596/fastrlock-0.8.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:92577ff82ef4a94c5667d6d2841f017820932bc59f31ffd83e4a2c56c1738f90", size = 52495 }, + { url = "https://files.pythonhosted.org/packages/e5/8c/5e746ee6f3d7afbfbb0d794c16c71bfd5259a4e3fb1dda48baf31e46956c/fastrlock-0.8.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3df8514086e16bb7c66169156a8066dc152f3be892c7817e85bf09a27fa2ada2", size = 51972 }, + { url = "https://files.pythonhosted.org/packages/76/a7/8b91068f00400931da950f143fa0f9018bd447f8ed4e34bed3fe65ed55d2/fastrlock-0.8.3-cp310-cp310-win_amd64.whl", hash = "sha256:001fd86bcac78c79658bac496e8a17472d64d558cd2227fdc768aa77f877fe40", size = 30946 }, + { url = "https://files.pythonhosted.org/packages/90/9e/647951c579ef74b6541493d5ca786d21a0b2d330c9514ba2c39f0b0b0046/fastrlock-0.8.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:f68c551cf8a34b6460a3a0eba44bd7897ebfc820854e19970c52a76bf064a59f", size = 55233 }, + { url = "https://files.pythonhosted.org/packages/be/91/5f3afba7d14b8b7d60ac651375f50fff9220d6ccc3bef233d2bd74b73ec7/fastrlock-0.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:55d42f6286b9d867370af4c27bc70d04ce2d342fe450c4a4fcce14440514e695", size = 48911 }, + { url = "https://files.pythonhosted.org/packages/d5/7a/e37bd72d7d70a8a551b3b4610d028bd73ff5d6253201d5d3cf6296468bee/fastrlock-0.8.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl", hash = "sha256:bbc3bf96dcbd68392366c477f78c9d5c47e5d9290cb115feea19f20a43ef6d05", size = 50357 }, + { url = "https://files.pythonhosted.org/packages/0d/ef/a13b8bab8266840bf38831d7bf5970518c02603d00a548a678763322d5bf/fastrlock-0.8.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:77ab8a98417a1f467dafcd2226718f7ca0cf18d4b64732f838b8c2b3e4b55cb5", size = 50222 }, + { url = "https://files.pythonhosted.org/packages/01/e2/5e5515562b2e9a56d84659377176aef7345da2c3c22909a1897fe27e14dd/fastrlock-0.8.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:04bb5eef8f460d13b8c0084ea5a9d3aab2c0573991c880c0a34a56bb14951d30", size = 54553 }, + { url = "https://files.pythonhosted.org/packages/c0/8f/65907405a8cdb2fc8beaf7d09a9a07bb58deff478ff391ca95be4f130b70/fastrlock-0.8.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c9d459ce344c21ff03268212a1845aa37feab634d242131bc16c2a2355d5f65", size = 53362 }, + { url = "https://files.pythonhosted.org/packages/ec/b9/ae6511e52738ba4e3a6adb7c6a20158573fbc98aab448992ece25abb0b07/fastrlock-0.8.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:33e6fa4af4f3af3e9c747ec72d1eadc0b7ba2035456c2afb51c24d9e8a56f8fd", size = 52836 }, + { url = "https://files.pythonhosted.org/packages/88/3e/c26f8192c93e8e43b426787cec04bb46ac36e72b1033b7fe5a9267155fdf/fastrlock-0.8.3-cp311-cp311-win_amd64.whl", hash = "sha256:5e5f1665d8e70f4c5b4a67f2db202f354abc80a321ce5a26ac1493f055e3ae2c", size = 31046 }, + { url = "https://files.pythonhosted.org/packages/00/df/56270f2e10c1428855c990e7a7e5baafa9e1262b8e789200bd1d047eb501/fastrlock-0.8.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:8cb2cf04352ea8575d496f31b3b88c42c7976e8e58cdd7d1550dfba80ca039da", size = 55727 }, + { url = "https://files.pythonhosted.org/packages/57/21/ea1511b0ef0d5457efca3bf1823effb9c5cad4fc9dca86ce08e4d65330ce/fastrlock-0.8.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:85a49a1f1e020097d087e1963e42cea6f307897d5ebe2cb6daf4af47ffdd3eed", size = 52201 }, + { url = "https://files.pythonhosted.org/packages/80/07/cdecb7aa976f34328372f1c4efd6c9dc1b039b3cc8d3f38787d640009a25/fastrlock-0.8.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5f13ec08f1adb1aa916c384b05ecb7dbebb8df9ea81abd045f60941c6283a670", size = 53924 }, + { url = "https://files.pythonhosted.org/packages/88/6d/59c497f8db9a125066dd3a7442fab6aecbe90d6fec344c54645eaf311666/fastrlock-0.8.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0ea4e53a04980d646def0f5e4b5e8bd8c7884288464acab0b37ca0c65c482bfe", size = 52140 }, + { url = "https://files.pythonhosted.org/packages/62/04/9138943c2ee803d62a48a3c17b69de2f6fa27677a6896c300369e839a550/fastrlock-0.8.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:38340f6635bd4ee2a4fb02a3a725759fe921f2ca846cb9ca44531ba739cc17b4", size = 53261 }, + { url = "https://files.pythonhosted.org/packages/e2/4b/db35a52589764c7745a613b6943bbd018f128d42177ab92ee7dde88444f6/fastrlock-0.8.3-cp312-cp312-win_amd64.whl", hash = "sha256:da06d43e1625e2ffddd303edcd6d2cd068e1c486f5fd0102b3f079c44eb13e2c", size = 31235 }, + { url = "https://files.pythonhosted.org/packages/92/74/7b13d836c3f221cff69d6f418f46c2a30c4b1fe09a8ce7db02eecb593185/fastrlock-0.8.3-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:5264088185ca8e6bc83181dff521eee94d078c269c7d557cc8d9ed5952b7be45", size = 54157 }, + { url = "https://files.pythonhosted.org/packages/06/77/f06a907f9a07d26d0cca24a4385944cfe70d549a2c9f1c3e3217332f4f12/fastrlock-0.8.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a98ba46b3e14927550c4baa36b752d0d2f7387b8534864a8767f83cce75c160", size = 50954 }, + { url = "https://files.pythonhosted.org/packages/f9/4e/94480fb3fd93991dd6f4e658b77698edc343f57caa2870d77b38c89c2e3b/fastrlock-0.8.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dbdea6deeccea1917c6017d353987231c4e46c93d5338ca3e66d6cd88fbce259", size = 52535 }, + { url = "https://files.pythonhosted.org/packages/7d/a7/ee82bb55b6c0ca30286dac1e19ee9417a17d2d1de3b13bb0f20cefb86086/fastrlock-0.8.3-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c6e5bfecbc0d72ff07e43fed81671747914d6794e0926700677ed26d894d4f4f", size = 50942 }, + { url = "https://files.pythonhosted.org/packages/63/1d/d4b7782ef59e57dd9dde69468cc245adafc3674281905e42fa98aac30a79/fastrlock-0.8.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:2a83d558470c520ed21462d304e77a12639859b205759221c8144dd2896b958a", size = 52044 }, + { url = "https://files.pythonhosted.org/packages/28/a3/2ad0a0a69662fd4cf556ab8074f0de978ee9b56bff6ddb4e656df4aa9e8e/fastrlock-0.8.3-cp313-cp313-win_amd64.whl", hash = "sha256:8d1d6a28291b4ace2a66bd7b49a9ed9c762467617febdd9ab356b867ed901af8", size = 30472 }, ] [[package]] @@ -1538,12 +1251,12 @@ name = "flox" version = "0.9.15" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy-groupies", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "scipy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy" }, + { name = "numpy-groupies" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "scipy" }, + { name = "toolz" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f0/25/de8d971737b1819a97f8867c1346f89c6cadd06979bbd35a22e0b2628b23/flox-0.9.15.tar.gz", hash = "sha256:99befd8bb26951e88db993649d577ac27009f5a1e31a8c1aab5d794fab55d75a", size = 704669 } wheels = [ @@ -1596,7 +1309,7 @@ name = "fparser" version = "0.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "setuptools-scm", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "setuptools-scm" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f6/af/570c36d7bc374646ab82f579e2bf9d24a619cc53d83f95b38b0992de3492/fparser-0.2.0.tar.gz", hash = "sha256:3901d31c104062c4e532248286929e7405e43b79a6a85815146a176673e69c82", size = 433559 } wheels = [ @@ -1608,7 +1321,7 @@ name = "fprettify" version = "0.3.7" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "configargparse", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "configargparse" }, ] sdist = { url = "https://files.pythonhosted.org/packages/39/15/d88681bd2be4a375a78b52443b8e87608240913623d9be5c47e3c328b068/fprettify-0.3.7.tar.gz", hash = "sha256:1488a813f7e60a9e86c56fd0b82bd9df1b75bfb4bf2ee8e433c12f63b7e54057", size = 29639 } wheels = [ @@ -1648,8 +1361,8 @@ name = "ghex" version = "0.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "mpi4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "mpi4py" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d4/4f/d6217b2afcecff78620c8d3df315b3a354820447ad48962889fe029a3b2c/ghex-0.4.0.tar.gz", hash = "sha256:65135fee88a0bea16bbcc6a48fda9065850db7af4340726c0ea804affed04890", size = 8309041 } @@ -1658,7 +1371,7 @@ name = "gitdb" version = "4.0.11" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "smmap", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "smmap" }, ] sdist = { url = "https://files.pythonhosted.org/packages/19/0d/bbb5b5ee188dec84647a4664f3e11b06ade2bde568dbd489d9d64adef8ed/gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b", size = 394469 } wheels = [ @@ -1670,7 +1383,7 @@ name = "gitpython" version = "3.1.43" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "gitdb", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "gitdb" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b6/a1/106fd9fa2dd989b6fb36e5893961f82992cf676381707253e0bf93eb1662/GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c", size = 214149 } wheels = [ @@ -1690,37 +1403,37 @@ name = "gt4py" version = "1.0.4" source = { git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113#5ce0d9d9c569c7172dd2284a45bf67ff1ba68b31" } dependencies = [ - { name = "attrs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "black", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "boltons", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "cached-property", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "cmake", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "cytoolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "deepdiff", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "devtools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "diskcache", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "factory-boy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "frozendict", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "gridtools-cpp", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "lark", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "mako", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "nanobind", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "ninja", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pybind11", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "setuptools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tabulate", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "xxhash", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "attrs" }, + { name = "black" }, + { name = "boltons" }, + { name = "cached-property" }, + { name = "click" }, + { name = "cmake" }, + { name = "cytoolz" }, + { name = "deepdiff" }, + { name = "devtools" }, + { name = "diskcache" }, + { name = "factory-boy" }, + { name = "frozendict" }, + { name = "gridtools-cpp" }, + { name = "jinja2" }, + { name = "lark" }, + { name = "mako" }, + { name = "nanobind" }, + { name = "ninja" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pybind11" }, + { name = "setuptools" }, + { name = "tabulate" }, + { name = "typing-extensions" }, + { name = "xxhash" }, ] [package.optional-dependencies] dace = [ - { name = "dace", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sympy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "dace" }, + { name = "sympy" }, ] [[package]] @@ -1728,8 +1441,8 @@ name = "h5netcdf" version = "1.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "h5py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "h5py" }, + { name = "packaging" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d7/5d/d2ec815d797cd9f060f9791cc71223814f2830abcb2f7854a574c26225fb/h5netcdf-1.4.1.tar.gz", hash = "sha256:7c8401ab807ff37c9798edc90d99467595892e6c541a5d5abeb8f53aab5335fe", size = 64647 } wheels = [ @@ -1741,7 +1454,7 @@ name = "h5py" version = "3.12.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cc/0c/5c2b0a88158682aeafb10c1c2b735df5bc31f165bfe192f2ee9f2a23b5f1/h5py-3.12.1.tar.gz", hash = "sha256:326d70b53d31baa61f00b8aa5f95c2fcb9621a3ee8365d770c551a13dbbcbfdf", size = 411457 } wheels = [ @@ -1772,14 +1485,14 @@ name = "holoviews" version = "1.20.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "bokeh", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "colorcet", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "panel", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "param", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyviz-comms", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "bokeh" }, + { name = "colorcet" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "panel" }, + { name = "param" }, + { name = "pyviz-comms" }, ] sdist = { url = "https://files.pythonhosted.org/packages/9b/6d/460e318557121a3d22fa1dd60db44cac7357cf83a2890b2f781a91b5be25/holoviews-1.20.0.tar.gz", hash = "sha256:29d183045fafa3d846deda999d9687b99b8abdc1a8c06712e54afa576bb02b3e", size = 4590760 } wheels = [ @@ -1791,8 +1504,8 @@ name = "html5lib" version = "1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "six", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "webencodings", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "six" }, + { name = "webencodings" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ac/b6/b55c3f49042f1df3dcd422b7f224f939892ee94f22abcf503a9b7339eaf2/html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f", size = 272215 } wheels = [ @@ -1804,104 +1517,104 @@ name = "icon4py" version = "0.0.6" source = { editable = "." } dependencies = [ - { name = "icon4py-atmosphere-advection", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-atmosphere-diffusion", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-atmosphere-dycore", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-atmosphere-microphysics", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-driver", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-atmosphere-advection" }, + { name = "icon4py-atmosphere-diffusion" }, + { name = "icon4py-atmosphere-dycore" }, + { name = "icon4py-atmosphere-microphysics" }, + { name = "icon4py-common" }, + { name = "icon4py-driver" }, ] [package.optional-dependencies] all = [ - { name = "dace", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-common", extra = ["dace", "distributed", "io"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-testing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4pytools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "dace" }, + { name = "icon4py-common", extra = ["dace", "distributed", "io"] }, + { name = "icon4py-testing" }, + { name = "icon4pytools" }, ] dace = [ - { name = "dace", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-common", extra = ["dace"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "dace" }, + { name = "icon4py-common", extra = ["dace"] }, ] distributed = [ - { name = "icon4py-common", extra = ["distributed"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", extra = ["distributed"] }, ] fortran = [ - { name = "icon4pytools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4pytools" }, ] io = [ - { name = "icon4py-common", extra = ["io"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-common", extra = ["io"] }, ] testing = [ - { name = "icon4py-testing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "icon4py-testing" }, ] [package.dev-dependencies] build = [ - { name = "bump-my-version", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pip", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "setuptools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "wget", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "wheel", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "bump-my-version" }, + { name = "pip" }, + { name = "setuptools" }, + { name = "wget" }, + { name = "wheel" }, ] dev = [ - { name = "bump-my-version", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "coverage", extra = ["toml"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-testing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "mypy", extra = ["faster-cache"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "myst-parser", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "nox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pip", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pre-commit", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest-benchmark", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest-cache", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest-cov", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest-factoryboy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest-mpi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest-xdist", extra = ["psutil"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "ruff", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "setuptools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx-math-dollar", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx-rtd-theme", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx-toolbox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tach", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "texsoup", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "types-cffi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "wget", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "wheel", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "bump-my-version" }, + { name = "coverage", extra = ["toml"] }, + { name = "icon4py-testing" }, + { name = "mypy", extra = ["faster-cache"] }, + { name = "myst-parser" }, + { name = "nox" }, + { name = "pip" }, + { name = "pre-commit" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-cache" }, + { name = "pytest-cov" }, + { name = "pytest-factoryboy" }, + { name = "pytest-mpi" }, + { name = "pytest-xdist", extra = ["psutil"] }, + { name = "ruff" }, + { name = "setuptools" }, + { name = "sphinx" }, + { name = "sphinx-math-dollar" }, + { name = "sphinx-rtd-theme" }, + { name = "sphinx-toolbox" }, + { name = "tach" }, + { name = "texsoup" }, + { name = "types-cffi" }, + { name = "typing-extensions" }, + { name = "wget" }, + { name = "wheel" }, ] docs = [ - { name = "myst-parser", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx-math-dollar", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx-rtd-theme", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx-toolbox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "texsoup", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "myst-parser" }, + { name = "sphinx" }, + { name = "sphinx-math-dollar" }, + { name = "sphinx-rtd-theme" }, + { name = "sphinx-toolbox" }, + { name = "texsoup" }, ] lint = [ - { name = "pre-commit", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "ruff", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tach", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pre-commit" }, + { name = "ruff" }, + { name = "tach" }, ] test = [ - { name = "coverage", extra = ["toml"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-testing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "nox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest-benchmark", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest-cache", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest-cov", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest-factoryboy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest-mpi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest-xdist", extra = ["psutil"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "coverage", extra = ["toml"] }, + { name = "icon4py-testing" }, + { name = "nox" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-cache" }, + { name = "pytest-cov" }, + { name = "pytest-factoryboy" }, + { name = "pytest-mpi" }, + { name = "pytest-xdist", extra = ["psutil"] }, ] typing = [ - { name = "mypy", extra = ["faster-cache"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "types-cffi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "mypy", extra = ["faster-cache"] }, + { name = "types-cffi" }, + { name = "typing-extensions" }, ] [package.metadata] @@ -1994,9 +1707,9 @@ name = "icon4py-atmosphere-advection" version = "0.0.6" source = { editable = "model/atmosphere/advection" } dependencies = [ - { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "gt4py" }, + { name = "icon4py-common" }, + { name = "packaging" }, ] [package.metadata] @@ -2011,9 +1724,9 @@ name = "icon4py-atmosphere-diffusion" version = "0.0.6" source = { editable = "model/atmosphere/diffusion" } dependencies = [ - { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "gt4py" }, + { name = "icon4py-common" }, + { name = "packaging" }, ] [package.metadata] @@ -2028,9 +1741,9 @@ name = "icon4py-atmosphere-dycore" version = "0.0.6" source = { editable = "model/atmosphere/dycore" } dependencies = [ - { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "gt4py" }, + { name = "icon4py-common" }, + { name = "packaging" }, ] [package.metadata] @@ -2045,9 +1758,9 @@ name = "icon4py-atmosphere-microphysics" version = "0.0.6" source = { editable = "model/atmosphere/subgrid_scale_physics/microphysics" } dependencies = [ - { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "gt4py" }, + { name = "icon4py-common" }, + { name = "packaging" }, ] [package.metadata] @@ -2062,44 +1775,44 @@ name = "icon4py-common" version = "0.0.6" source = { editable = "model/common" } dependencies = [ - { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "serialbox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "gt4py" }, + { name = "packaging" }, + { name = "serialbox4py" }, + { name = "typing-extensions" }, ] [package.optional-dependencies] all = [ - { name = "cartopy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "cftime", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "datashader", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "ghex", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "gt4py", extra = ["dace"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "holoviews", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "mpi4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "netcdf4", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "scikit-learn", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "uxarray", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "xarray", extra = ["complete"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cartopy" }, + { name = "cftime" }, + { name = "datashader" }, + { name = "ghex" }, + { name = "gt4py", extra = ["dace"] }, + { name = "holoviews" }, + { name = "mpi4py" }, + { name = "netcdf4" }, + { name = "numpy" }, + { name = "scikit-learn" }, + { name = "uxarray" }, + { name = "xarray", extra = ["complete"] }, ] dace = [ - { name = "gt4py", extra = ["dace"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "gt4py", extra = ["dace"] }, ] distributed = [ - { name = "ghex", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "mpi4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "ghex" }, + { name = "mpi4py" }, ] io = [ - { name = "cartopy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "cftime", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "datashader", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "holoviews", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "netcdf4", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "scikit-learn", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "uxarray", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "xarray", extra = ["complete"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cartopy" }, + { name = "cftime" }, + { name = "datashader" }, + { name = "holoviews" }, + { name = "netcdf4" }, + { name = "numpy" }, + { name = "scikit-learn" }, + { name = "uxarray" }, + { name = "xarray", extra = ["complete"] }, ] [package.metadata] @@ -2117,7 +1830,7 @@ requires-dist = [ { name = "numpy", marker = "extra == 'io'", specifier = ">=1.23.3" }, { name = "packaging", specifier = ">=20.0" }, { name = "scikit-learn", marker = "extra == 'io'", specifier = ">=1.4.0" }, - { name = "serialbox", git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python" }, + { name = "serialbox4py", specifier = ">=2.6.2", index = "https://test.pypi.org/simple/" }, { name = "typing-extensions", specifier = ">=4.11.0" }, { name = "uxarray", marker = "extra == 'io'", specifier = "==2024.3.0" }, { name = "xarray", extras = ["complete"], marker = "extra == 'io'", specifier = ">=2024.3.0" }, @@ -2128,14 +1841,14 @@ name = "icon4py-driver" version = "0.0.6" source = { editable = "model/driver" } dependencies = [ - { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "devtools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-atmosphere-diffusion", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-atmosphere-dycore", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-testing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "click" }, + { name = "devtools" }, + { name = "gt4py" }, + { name = "icon4py-atmosphere-diffusion" }, + { name = "icon4py-atmosphere-dycore" }, + { name = "icon4py-common" }, + { name = "icon4py-testing" }, + { name = "packaging" }, ] [package.metadata] @@ -2155,14 +1868,14 @@ name = "icon4py-testing" version = "0.0.6" source = { editable = "model/testing" } dependencies = [ - { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-common", extra = ["io"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "serialbox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "wget", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "gt4py" }, + { name = "icon4py-common", extra = ["io"] }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pytest" }, + { name = "serialbox4py" }, + { name = "typing-extensions" }, + { name = "wget" }, ] [package.metadata] @@ -2172,7 +1885,7 @@ requires-dist = [ { name = "numpy", specifier = ">=1.23.3" }, { name = "packaging", specifier = ">=20.0" }, { name = "pytest", specifier = ">=8.0.1" }, - { name = "serialbox", git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python" }, + { name = "serialbox4py", specifier = ">=2.6.2", index = "https://test.pypi.org/simple/" }, { name = "typing-extensions", specifier = ">=4.11.0" }, { name = "wget", specifier = ">=3.2" }, ] @@ -2182,23 +1895,23 @@ name = "icon4pytools" version = "0.0.6" source = { editable = "tools" } dependencies = [ - { name = "cffi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "fprettify", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "gt4py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-atmosphere-advection", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-atmosphere-diffusion", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-atmosphere-dycore", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "icon4py-common", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cffi" }, + { name = "fprettify" }, + { name = "gt4py" }, + { name = "icon4py-atmosphere-advection" }, + { name = "icon4py-atmosphere-diffusion" }, + { name = "icon4py-atmosphere-dycore" }, + { name = "icon4py-common" }, + { name = "numpy" }, + { name = "packaging" }, ] [package.optional-dependencies] cupy11 = [ - { name = "cupy-cuda11x", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cupy-cuda11x" }, ] cupy12 = [ - { name = "cupy-cuda12x", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cupy-cuda12x" }, ] [package.metadata] @@ -2248,7 +1961,7 @@ name = "importlib-metadata" version = "8.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp", marker = "python_full_version < '3.12' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "zipp", marker = "python_full_version < '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } wheels = [ @@ -2278,7 +1991,7 @@ name = "jinja2" version = "3.1.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "markupsafe", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "markupsafe" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", size = 240245 } wheels = [ @@ -2386,7 +2099,7 @@ name = "linkify-it-py" version = "2.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "uc-micro-py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "uc-micro-py" }, ] sdist = { url = "https://files.pythonhosted.org/packages/2a/ae/bb56c6828e4797ba5a4821eec7c43b8bf40f69cda4d4f5f8c8a2810ec96a/linkify-it-py-2.0.3.tar.gz", hash = "sha256:68cda27e162e9215c17d786649d1da0021a451bdc436ef9e0fa0ba5234b9b048", size = 27946 } wheels = [ @@ -2459,7 +2172,7 @@ name = "mako" version = "1.3.8" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "markupsafe", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "markupsafe" }, ] sdist = { url = "https://files.pythonhosted.org/packages/5f/d9/8518279534ed7dace1795d5a47e49d5299dd0994eed1053996402a8902f9/mako-1.3.8.tar.gz", hash = "sha256:577b97e414580d3e088d47c2dbbe9594aa7a5146ed2875d4dfa9075af2dd3cc8", size = 392069 } wheels = [ @@ -2480,7 +2193,7 @@ name = "markdown-it-py" version = "3.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "mdurl", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "mdurl" }, ] sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 } wheels = [ @@ -2547,51 +2260,54 @@ wheels = [ [[package]] name = "matplotlib" -version = "3.9.4" +version = "3.10.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "contourpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "cycler", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "fonttools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "kiwisolver", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pillow", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyparsing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "python-dateutil", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/df/17/1747b4154034befd0ed33b52538f5eb7752d05bb51c5e2a31470c3bc7d52/matplotlib-3.9.4.tar.gz", hash = "sha256:1e00e8be7393cbdc6fedfa8a6fba02cf3e83814b285db1c60b906a023ba41bc3", size = 36106529 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/94/27d2e2c30d54b56c7b764acc1874a909e34d1965a427fc7092bb6a588b63/matplotlib-3.9.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c5fdd7abfb706dfa8d307af64a87f1a862879ec3cd8d0ec8637458f0885b9c50", size = 7885089 }, - { url = "https://files.pythonhosted.org/packages/c6/25/828273307e40a68eb8e9df832b6b2aaad075864fdc1de4b1b81e40b09e48/matplotlib-3.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d89bc4e85e40a71d1477780366c27fb7c6494d293e1617788986f74e2a03d7ff", size = 7770600 }, - { url = "https://files.pythonhosted.org/packages/f2/65/f841a422ec994da5123368d76b126acf4fc02ea7459b6e37c4891b555b83/matplotlib-3.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddf9f3c26aae695c5daafbf6b94e4c1a30d6cd617ba594bbbded3b33a1fcfa26", size = 8200138 }, - { url = "https://files.pythonhosted.org/packages/07/06/272aca07a38804d93b6050813de41ca7ab0e29ba7a9dd098e12037c919a9/matplotlib-3.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18ebcf248030173b59a868fda1fe42397253f6698995b55e81e1f57431d85e50", size = 8312711 }, - { url = "https://files.pythonhosted.org/packages/98/37/f13e23b233c526b7e27ad61be0a771894a079e0f7494a10d8d81557e0e9a/matplotlib-3.9.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974896ec43c672ec23f3f8c648981e8bc880ee163146e0312a9b8def2fac66f5", size = 9090622 }, - { url = "https://files.pythonhosted.org/packages/4f/8c/b1f5bd2bd70e60f93b1b54c4d5ba7a992312021d0ddddf572f9a1a6d9348/matplotlib-3.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:4598c394ae9711cec135639374e70871fa36b56afae17bdf032a345be552a88d", size = 7828211 }, - { url = "https://files.pythonhosted.org/packages/74/4b/65be7959a8fa118a3929b49a842de5b78bb55475236fcf64f3e308ff74a0/matplotlib-3.9.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d4dd29641d9fb8bc4492420c5480398dd40a09afd73aebe4eb9d0071a05fbe0c", size = 7894430 }, - { url = "https://files.pythonhosted.org/packages/e9/18/80f70d91896e0a517b4a051c3fd540daa131630fd75e02e250365353b253/matplotlib-3.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30e5b22e8bcfb95442bf7d48b0d7f3bdf4a450cbf68986ea45fca3d11ae9d099", size = 7780045 }, - { url = "https://files.pythonhosted.org/packages/a2/73/ccb381026e3238c5c25c3609ba4157b2d1a617ec98d65a8b4ee4e1e74d02/matplotlib-3.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bb0030d1d447fd56dcc23b4c64a26e44e898f0416276cac1ebc25522e0ac249", size = 8209906 }, - { url = "https://files.pythonhosted.org/packages/ab/33/1648da77b74741c89f5ea95cbf42a291b4b364f2660b316318811404ed97/matplotlib-3.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aca90ed222ac3565d2752b83dbb27627480d27662671e4d39da72e97f657a423", size = 8322873 }, - { url = "https://files.pythonhosted.org/packages/57/d3/8447ba78bc6593c9044c372d1609f8ea10fb1e071e7a9e0747bea74fc16c/matplotlib-3.9.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a181b2aa2906c608fcae72f977a4a2d76e385578939891b91c2550c39ecf361e", size = 9099566 }, - { url = "https://files.pythonhosted.org/packages/23/e1/4f0e237bf349c02ff9d1b6e7109f1a17f745263809b9714a8576dc17752b/matplotlib-3.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:1f6882828231eca17f501c4dcd98a05abb3f03d157fbc0769c6911fe08b6cfd3", size = 7838065 }, - { url = "https://files.pythonhosted.org/packages/1a/2b/c918bf6c19d6445d1cefe3d2e42cb740fb997e14ab19d4daeb6a7ab8a157/matplotlib-3.9.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:dfc48d67e6661378a21c2983200a654b72b5c5cdbd5d2cf6e5e1ece860f0cc70", size = 7891131 }, - { url = "https://files.pythonhosted.org/packages/c1/e5/b4e8fc601ca302afeeabf45f30e706a445c7979a180e3a978b78b2b681a4/matplotlib-3.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:47aef0fab8332d02d68e786eba8113ffd6f862182ea2999379dec9e237b7e483", size = 7776365 }, - { url = "https://files.pythonhosted.org/packages/99/06/b991886c506506476e5d83625c5970c656a491b9f80161458fed94597808/matplotlib-3.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fba1f52c6b7dc764097f52fd9ab627b90db452c9feb653a59945de16752e965f", size = 8200707 }, - { url = "https://files.pythonhosted.org/packages/c3/e2/556b627498cb27e61026f2d1ba86a78ad1b836fef0996bef5440e8bc9559/matplotlib-3.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:173ac3748acaac21afcc3fa1633924609ba1b87749006bc25051c52c422a5d00", size = 8313761 }, - { url = "https://files.pythonhosted.org/packages/58/ff/165af33ec766ff818306ea88e91f9f60d2a6ed543be1eb122a98acbf3b0d/matplotlib-3.9.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320edea0cadc07007765e33f878b13b3738ffa9745c5f707705692df70ffe0e0", size = 9095284 }, - { url = "https://files.pythonhosted.org/packages/9f/8b/3d0c7a002db3b1ed702731c2a9a06d78d035f1f2fb0fb936a8e43cc1e9f4/matplotlib-3.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a4a4cfc82330b27042a7169533da7991e8789d180dd5b3daeaee57d75cd5a03b", size = 7841160 }, - { url = "https://files.pythonhosted.org/packages/49/b1/999f89a7556d101b23a2f0b54f1b6e140d73f56804da1398f2f0bc0924bc/matplotlib-3.9.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:37eeffeeca3c940985b80f5b9a7b95ea35671e0e7405001f249848d2b62351b6", size = 7891499 }, - { url = "https://files.pythonhosted.org/packages/87/7b/06a32b13a684977653396a1bfcd34d4e7539c5d55c8cbfaa8ae04d47e4a9/matplotlib-3.9.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3e7465ac859ee4abcb0d836137cd8414e7bb7ad330d905abced457217d4f0f45", size = 7776802 }, - { url = "https://files.pythonhosted.org/packages/65/87/ac498451aff739e515891bbb92e566f3c7ef31891aaa878402a71f9b0910/matplotlib-3.9.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4c12302c34afa0cf061bea23b331e747e5e554b0fa595c96e01c7b75bc3b858", size = 8200802 }, - { url = "https://files.pythonhosted.org/packages/f8/6b/9eb761c00e1cb838f6c92e5f25dcda3f56a87a52f6cb8fdfa561e6cf6a13/matplotlib-3.9.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b8c97917f21b75e72108b97707ba3d48f171541a74aa2a56df7a40626bafc64", size = 8313880 }, - { url = "https://files.pythonhosted.org/packages/d7/a2/c8eaa600e2085eec7e38cbbcc58a30fc78f8224939d31d3152bdafc01fd1/matplotlib-3.9.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0229803bd7e19271b03cb09f27db76c918c467aa4ce2ae168171bc67c3f508df", size = 9094637 }, - { url = "https://files.pythonhosted.org/packages/71/1f/c6e1daea55b7bfeb3d84c6cb1abc449f6a02b181e7e2a5e4db34c3afb793/matplotlib-3.9.4-cp313-cp313-win_amd64.whl", hash = "sha256:7c0d8ef442ebf56ff5e206f8083d08252ee738e04f3dc88ea882853a05488799", size = 7841311 }, - { url = "https://files.pythonhosted.org/packages/c0/3a/2757d3f7d388b14dd48f5a83bea65b6d69f000e86b8f28f74d86e0d375bd/matplotlib-3.9.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a04c3b00066a688834356d196136349cb32f5e1003c55ac419e91585168b88fb", size = 7919989 }, - { url = "https://files.pythonhosted.org/packages/24/28/f5077c79a4f521589a37fe1062d6a6ea3534e068213f7357e7cfffc2e17a/matplotlib-3.9.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:04c519587f6c210626741a1e9a68eefc05966ede24205db8982841826af5871a", size = 7809417 }, - { url = "https://files.pythonhosted.org/packages/36/c8/c523fd2963156692916a8eb7d4069084cf729359f7955cf09075deddfeaf/matplotlib-3.9.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308afbf1a228b8b525fcd5cec17f246bbbb63b175a3ef6eb7b4d33287ca0cf0c", size = 8226258 }, - { url = "https://files.pythonhosted.org/packages/f6/88/499bf4b8fa9349b6f5c0cf4cead0ebe5da9d67769129f1b5651e5ac51fbc/matplotlib-3.9.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddb3b02246ddcffd3ce98e88fed5b238bc5faff10dbbaa42090ea13241d15764", size = 8335849 }, - { url = "https://files.pythonhosted.org/packages/b8/9f/20a4156b9726188646a030774ee337d5ff695a965be45ce4dbcb9312c170/matplotlib-3.9.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8a75287e9cb9eee48cb79ec1d806f75b29c0fde978cb7223a1f4c5848d696041", size = 9102152 }, - { url = "https://files.pythonhosted.org/packages/10/11/237f9c3a4e8d810b1759b67ff2da7c32c04f9c80aa475e7beb36ed43a8fb/matplotlib-3.9.4-cp313-cp313t-win_amd64.whl", hash = "sha256:488deb7af140f0ba86da003e66e10d55ff915e152c78b4b66d231638400b1965", size = 7896987 }, + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/68/dd/fa2e1a45fce2d09f4aea3cee169760e672c8262325aa5796c49d543dc7e6/matplotlib-3.10.0.tar.gz", hash = "sha256:b886d02a581b96704c9d1ffe55709e49b4d2d52709ccebc4be42db856e511278", size = 36686418 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/09/ec/3cdff7b5239adaaacefcc4f77c316dfbbdf853c4ed2beec467e0fec31b9f/matplotlib-3.10.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2c5829a5a1dd5a71f0e31e6e8bb449bc0ee9dbfb05ad28fc0c6b55101b3a4be6", size = 8160551 }, + { url = "https://files.pythonhosted.org/packages/41/f2/b518f2c7f29895c9b167bf79f8529c63383ae94eaf49a247a4528e9a148d/matplotlib-3.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2a43cbefe22d653ab34bb55d42384ed30f611bcbdea1f8d7f431011a2e1c62e", size = 8034853 }, + { url = "https://files.pythonhosted.org/packages/ed/8d/45754b4affdb8f0d1a44e4e2bcd932cdf35b256b60d5eda9f455bb293ed0/matplotlib-3.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:607b16c8a73943df110f99ee2e940b8a1cbf9714b65307c040d422558397dac5", size = 8446724 }, + { url = "https://files.pythonhosted.org/packages/09/5a/a113495110ae3e3395c72d82d7bc4802902e46dc797f6b041e572f195c56/matplotlib-3.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01d2b19f13aeec2e759414d3bfe19ddfb16b13a1250add08d46d5ff6f9be83c6", size = 8583905 }, + { url = "https://files.pythonhosted.org/packages/12/b1/8b1655b4c9ed4600c817c419f7eaaf70082630efd7556a5b2e77a8a3cdaf/matplotlib-3.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e6c6461e1fc63df30bf6f80f0b93f5b6784299f721bc28530477acd51bfc3d1", size = 9395223 }, + { url = "https://files.pythonhosted.org/packages/5a/85/b9a54d64585a6b8737a78a61897450403c30f39e0bd3214270bb0b96f002/matplotlib-3.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:994c07b9d9fe8d25951e3202a68c17900679274dadfc1248738dcfa1bd40d7f3", size = 8025355 }, + { url = "https://files.pythonhosted.org/packages/0c/f1/e37f6c84d252867d7ddc418fff70fc661cfd363179263b08e52e8b748e30/matplotlib-3.10.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:fd44fc75522f58612ec4a33958a7e5552562b7705b42ef1b4f8c0818e304a363", size = 8171677 }, + { url = "https://files.pythonhosted.org/packages/c7/8b/92e9da1f28310a1f6572b5c55097b0c0ceb5e27486d85fb73b54f5a9b939/matplotlib-3.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c58a9622d5dbeb668f407f35f4e6bfac34bb9ecdcc81680c04d0258169747997", size = 8044945 }, + { url = "https://files.pythonhosted.org/packages/c5/cb/49e83f0fd066937a5bd3bc5c5d63093703f3637b2824df8d856e0558beef/matplotlib-3.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:845d96568ec873be63f25fa80e9e7fae4be854a66a7e2f0c8ccc99e94a8bd4ef", size = 8458269 }, + { url = "https://files.pythonhosted.org/packages/b2/7d/2d873209536b9ee17340754118a2a17988bc18981b5b56e6715ee07373ac/matplotlib-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5439f4c5a3e2e8eab18e2f8c3ef929772fd5641876db71f08127eed95ab64683", size = 8599369 }, + { url = "https://files.pythonhosted.org/packages/b8/03/57d6cbbe85c61fe4cbb7c94b54dce443d68c21961830833a1f34d056e5ea/matplotlib-3.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4673ff67a36152c48ddeaf1135e74ce0d4bce1bbf836ae40ed39c29edf7e2765", size = 9405992 }, + { url = "https://files.pythonhosted.org/packages/14/cf/e382598f98be11bf51dd0bc60eca44a517f6793e3dc8b9d53634a144620c/matplotlib-3.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:7e8632baebb058555ac0cde75db885c61f1212e47723d63921879806b40bec6a", size = 8034580 }, + { url = "https://files.pythonhosted.org/packages/44/c7/6b2d8cb7cc251d53c976799cacd3200add56351c175ba89ab9cbd7c1e68a/matplotlib-3.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4659665bc7c9b58f8c00317c3c2a299f7f258eeae5a5d56b4c64226fca2f7c59", size = 8172465 }, + { url = "https://files.pythonhosted.org/packages/42/2a/6d66d0fba41e13e9ca6512a0a51170f43e7e7ed3a8dfa036324100775612/matplotlib-3.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d44cb942af1693cced2604c33a9abcef6205601c445f6d0dc531d813af8a2f5a", size = 8043300 }, + { url = "https://files.pythonhosted.org/packages/90/60/2a60342b27b90a16bada939a85e29589902b41073f59668b904b15ea666c/matplotlib-3.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a994f29e968ca002b50982b27168addfd65f0105610b6be7fa515ca4b5307c95", size = 8448936 }, + { url = "https://files.pythonhosted.org/packages/a7/b2/d872fc3d753516870d520595ddd8ce4dd44fa797a240999f125f58521ad7/matplotlib-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b0558bae37f154fffda54d779a592bc97ca8b4701f1c710055b609a3bac44c8", size = 8594151 }, + { url = "https://files.pythonhosted.org/packages/f4/bd/b2f60cf7f57d014ab33e4f74602a2b5bdc657976db8196bbc022185f6f9c/matplotlib-3.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:503feb23bd8c8acc75541548a1d709c059b7184cde26314896e10a9f14df5f12", size = 9400347 }, + { url = "https://files.pythonhosted.org/packages/9f/6e/264673e64001b99d747aff5a288eca82826c024437a3694e19aed1decf46/matplotlib-3.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:c40ba2eb08b3f5de88152c2333c58cee7edcead0a2a0d60fcafa116b17117adc", size = 8039144 }, + { url = "https://files.pythonhosted.org/packages/72/11/1b2a094d95dcb6e6edd4a0b238177c439006c6b7a9fe8d31801237bf512f/matplotlib-3.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96f2886f5c1e466f21cc41b70c5a0cd47bfa0015eb2d5793c88ebce658600e25", size = 8173073 }, + { url = "https://files.pythonhosted.org/packages/0d/c4/87b6ad2723070511a411ea719f9c70fde64605423b184face4e94986de9d/matplotlib-3.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:12eaf48463b472c3c0f8dbacdbf906e573013df81a0ab82f0616ea4b11281908", size = 8043892 }, + { url = "https://files.pythonhosted.org/packages/57/69/cb0812a136550b21361335e9ffb7d459bf6d13e03cb7b015555d5143d2d6/matplotlib-3.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fbbabc82fde51391c4da5006f965e36d86d95f6ee83fb594b279564a4c5d0d2", size = 8450532 }, + { url = "https://files.pythonhosted.org/packages/ea/3a/bab9deb4fb199c05e9100f94d7f1c702f78d3241e6a71b784d2b88d7bebd/matplotlib-3.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad2e15300530c1a94c63cfa546e3b7864bd18ea2901317bae8bbf06a5ade6dcf", size = 8593905 }, + { url = "https://files.pythonhosted.org/packages/8b/66/742fd242f989adc1847ddf5f445815f73ad7c46aa3440690cc889cfa423c/matplotlib-3.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3547d153d70233a8496859097ef0312212e2689cdf8d7ed764441c77604095ae", size = 9399609 }, + { url = "https://files.pythonhosted.org/packages/fa/d6/54cee7142cef7d910a324a7aedf335c0c147b03658b54d49ec48166f10a6/matplotlib-3.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:c55b20591ced744aa04e8c3e4b7543ea4d650b6c3c4b208c08a05b4010e8b442", size = 8039076 }, + { url = "https://files.pythonhosted.org/packages/43/14/815d072dc36e88753433bfd0385113405efb947e6895ff7b4d2e8614a33b/matplotlib-3.10.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ade1003376731a971e398cc4ef38bb83ee8caf0aee46ac6daa4b0506db1fd06", size = 8211000 }, + { url = "https://files.pythonhosted.org/packages/9a/76/34e75f364194ec352678adcb540964be6f35ec7d3d8c75ebcb17e6839359/matplotlib-3.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95b710fea129c76d30be72c3b38f330269363fbc6e570a5dd43580487380b5ff", size = 8087707 }, + { url = "https://files.pythonhosted.org/packages/c3/2b/b6bc0dff6a72d333bc7df94a66e6ce662d224e43daa8ad8ae4eaa9a77f55/matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdbaf909887373c3e094b0318d7ff230b2ad9dcb64da7ade654182872ab2593", size = 8477384 }, + { url = "https://files.pythonhosted.org/packages/c2/2d/b5949fb2b76e9b47ab05e25a5f5f887c70de20d8b0cbc704a4e2ee71c786/matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d907fddb39f923d011875452ff1eca29a9e7f21722b873e90db32e5d8ddff12e", size = 8610334 }, + { url = "https://files.pythonhosted.org/packages/d6/9a/6e3c799d5134d9af44b01c787e1360bee38cf51850506ea2e743a787700b/matplotlib-3.10.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3b427392354d10975c1d0f4ee18aa5844640b512d5311ef32efd4dd7db106ede", size = 9406777 }, + { url = "https://files.pythonhosted.org/packages/0e/dd/e6ae97151e5ed648ab2ea48885bc33d39202b640eec7a2910e2c843f7ac0/matplotlib-3.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5fd41b0ec7ee45cd960a8e71aea7c946a28a0b8a4dcee47d2856b2af051f334c", size = 8109742 }, + { url = "https://files.pythonhosted.org/packages/32/5f/29def7ce4e815ab939b56280976ee35afffb3bbdb43f332caee74cb8c951/matplotlib-3.10.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:81713dd0d103b379de4516b861d964b1d789a144103277769238c732229d7f03", size = 8155500 }, + { url = "https://files.pythonhosted.org/packages/de/6d/d570383c9f7ca799d0a54161446f9ce7b17d6c50f2994b653514bcaa108f/matplotlib-3.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:359f87baedb1f836ce307f0e850d12bb5f1936f70d035561f90d41d305fdacea", size = 8032398 }, + { url = "https://files.pythonhosted.org/packages/c9/b4/680aa700d99b48e8c4393fa08e9ab8c49c0555ee6f4c9c0a5e8ea8dfde5d/matplotlib-3.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae80dc3a4add4665cf2faa90138384a7ffe2a4e37c58d83e115b54287c4f06ef", size = 8587361 }, ] [[package]] @@ -2599,7 +2315,7 @@ name = "mdit-py-plugins" version = "0.4.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "markdown-it-py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "markdown-it-py" }, ] sdist = { url = "https://files.pythonhosted.org/packages/19/03/a2ecab526543b152300717cf232bb4bb8605b6edb946c845016fa9c9c9fd/mdit_py_plugins-0.4.2.tar.gz", hash = "sha256:5f2cd1fdb606ddf152d37ec30e46101a60512bc0e5fa1a7002c36647b09e26b5", size = 43542 } wheels = [ @@ -2712,9 +2428,9 @@ name = "mypy" version = "1.13.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "mypy-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "mypy-extensions" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e8/21/7e9e523537991d145ab8a0a2fd98548d67646dc2aaaf6091c31ad883e7c1/mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e", size = 3152532 } wheels = [ @@ -2743,7 +2459,7 @@ wheels = [ [package.optional-dependencies] faster-cache = [ - { name = "orjson", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "orjson" }, ] [[package]] @@ -2760,12 +2476,12 @@ name = "myst-parser" version = "4.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "docutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "markdown-it-py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "mdit-py-plugins", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "docutils" }, + { name = "jinja2" }, + { name = "markdown-it-py" }, + { name = "mdit-py-plugins" }, + { name = "pyyaml" }, + { name = "sphinx" }, ] sdist = { url = "https://files.pythonhosted.org/packages/85/55/6d1741a1780e5e65038b74bce6689da15f620261c490c3511eb4c12bac4b/myst_parser-4.0.0.tar.gz", hash = "sha256:851c9dfb44e36e56d15d05e72f02b80da21a9e0d07cba96baf5e2d476bb91531", size = 93858 } wheels = [ @@ -2795,9 +2511,9 @@ name = "nc-time-axis" version = "1.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cftime", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "matplotlib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cftime" }, + { name = "matplotlib" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/39/c7/ceaba2047ef4e08660a5a89a71cea30547bddb0e51236dab2dcb771a6fe1/nc-time-axis-1.4.1.tar.gz", hash = "sha256:72d80f492f34bbf59490838d8cb3d92f14e88900b0ee35498b2b33c82795eb81", size = 66231 } wheels = [ @@ -2809,9 +2525,9 @@ name = "netcdf4" version = "1.7.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "certifi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "cftime", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "certifi" }, + { name = "cftime" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/71/ed/4d27fcfa40ebfdad3d2088a3de7ee48dbff7f35163e815ec1870d2a7398c/netcdf4-1.7.2.tar.gz", hash = "sha256:a4c6375540b19989896136943abb6d44850ff6f1fa7d3f063253b1ad3f8b7fce", size = 835064 } wheels = [ @@ -2848,26 +2564,26 @@ wheels = [ [[package]] name = "ninja" -version = "1.11.1.2" +version = "1.11.1.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b4/49/4f1a79f99f4c3eb5d22f943bba14832923bb44423254d5089d38a9f6da63/ninja-1.11.1.2.tar.gz", hash = "sha256:4fbd07b2b4232543726abafdd350453a2fabef4527664ca0e491c578aee5f857", size = 129009 } +sdist = { url = "https://files.pythonhosted.org/packages/bd/8f/21a2701f95b7d0d5137736561b3427ece0c4a1e085d4a223b92d16ab7d8b/ninja-1.11.1.3.tar.gz", hash = "sha256:edfa0d2e9d7ead1635b03e40a32ad56cc8f56798b6e2e9848d8300b174897076", size = 129532 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/e6/097a441e1910399ed536d36258f6d1b5fce6c5caf6c4f0611b41e7a18c3e/ninja-1.11.1.2-py3-none-macosx_10_9_universal2.whl", hash = "sha256:1cfbb845095ea09da8c089375a8f999e75f4817d01506297c66181b533175647", size = 279133 }, - { url = "https://files.pythonhosted.org/packages/7b/87/d33b00c6168915b343fde8877a6852692ba6f7d3ebee07f251a2dc338563/ninja-1.11.1.2-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ab4068ff7ff1f895485ad604116165b05d6810c802170a7f22c09dd678d5587d", size = 472101 }, - { url = "https://files.pythonhosted.org/packages/62/54/787bb70e6af2f1b1853af9bab62a5e7cb35b957d72daf253b7f3c653c005/ninja-1.11.1.2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:33d258809c8eda81f9d80e18a081a6eef3215e5fd1ba8902400d786641994e89", size = 422889 }, - { url = "https://files.pythonhosted.org/packages/27/9f/1a021b766134f4ea91346fbbf7653e17a483242929c9c579b769830bdcd6/ninja-1.11.1.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed25892c16e49e66383a8db6a67a9f33b41230fc485426094d7da51e2255ec2b", size = 157046 }, - { url = "https://files.pythonhosted.org/packages/a8/e3/e05286d374e69272bd0a00517f76effe026207cb07a9d269cc3abdfe4bdd/ninja-1.11.1.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:232767144401847db62e8392047866698bb3678158a1ae4400a97111110e90f2", size = 180014 }, - { url = "https://files.pythonhosted.org/packages/22/b4/0fb29155c05685a8a4d20489b90c340dd781db5c14b5586075fcbdf748e4/ninja-1.11.1.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9200247cf4c1643a67d079836b8dd31a362e34e618b50b5e3a5c0d0171efc442", size = 157099 }, - { url = "https://files.pythonhosted.org/packages/e7/85/d67805c3d47c902f7b1a1a5b75317f4d45af7bb7132c342adf47eafc66b8/ninja-1.11.1.2-py3-none-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0c9c36f6e6f8946c7271b0ed14d98fc3ea467a0c0954fb73f5f656c42667d943", size = 130093 }, - { url = "https://files.pythonhosted.org/packages/eb/40/9a7fc0e417b1aab20f91be957418d2e5952db9f9b72f4396a8a097310964/ninja-1.11.1.2-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:3e815e4147832b17ec38417efcb31df51671ae273f083409304c7cc32a14dd1a", size = 372508 }, - { url = "https://files.pythonhosted.org/packages/0e/db/8c4843e8454e1ec2e6651b5caef31762e46fbaf3a71e6817e7d9cd28b5cb/ninja-1.11.1.2-py3-none-musllinux_1_1_i686.whl", hash = "sha256:ecf3df324b56fdfb0872990a71e706efdae286e010310816c72b6bf24431711b", size = 419368 }, - { url = "https://files.pythonhosted.org/packages/c3/e0/17ccb830c1638966d75a19a59e0ce55aadb4cf5c2cae5bcf97f74511c33e/ninja-1.11.1.2-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:cb6b476eb4e84c0efcfd3ab04f660dedce8adb854b56b043639312f3af176df6", size = 420305 }, - { url = "https://files.pythonhosted.org/packages/30/e4/7d02c7a633c36a9aa7433fb742931a62f0a3aa72b484ed23d73cc6415286/ninja-1.11.1.2-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:508fb93395a5c82a4d99d30fce0cbaf5cb2bd33e5c1dc9faaa080e199802dbc9", size = 416060 }, - { url = "https://files.pythonhosted.org/packages/0d/11/4dc053f20c64f5a340d72f948bbad22818d242afd54e826e0c95ca3779fe/ninja-1.11.1.2-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:52af7f45750c5c288d566fd0c927ed9bb0d8f2e50803709f582a42bcc4ec167b", size = 379729 }, - { url = "https://files.pythonhosted.org/packages/ab/57/adaa8052ae4854c5f8e228baa1a77aad68093bc1aedf32597fa5e7714118/ninja-1.11.1.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:99fc4b87299242e10d7edd1c7737fdfb1269019e32f9f4267630887f6183a49e", size = 434886 }, - { url = "https://files.pythonhosted.org/packages/41/81/b80ab3c02a2e25f71334e821852856cfc32d1339ccd7fe0858c556d8af4f/ninja-1.11.1.2-py3-none-win32.whl", hash = "sha256:949e23cb2e79a33ea37d23a07d26846d2e75464e8e6940f8751fe964bc141dfa", size = 255983 }, - { url = "https://files.pythonhosted.org/packages/72/97/4109961b899ff2decfc0439de442cbe846c94210f263260a211cbee2b29d/ninja-1.11.1.2-py3-none-win_amd64.whl", hash = "sha256:0bca4179119426a3c3c9d5661c3b244d68781064e50907a1e066bc55edc18e06", size = 296510 }, - { url = "https://files.pythonhosted.org/packages/6d/cc/9deb2b6385c7188ad873ed17afdb5f25931e1c07c8a2e2c452e25cd288e1/ninja-1.11.1.2-py3-none-win_arm64.whl", hash = "sha256:ee7b1924c28e6cab5b866f7b229f07777d25d8cfccbbedf3da5ffb4f72f57877", size = 270558 }, + { url = "https://files.pythonhosted.org/packages/ea/ba/0069cd4a83d68f7b0308be70e219b15d675e50c8ea28763a3f0373c45bfc/ninja-1.11.1.3-py3-none-macosx_10_9_universal2.whl", hash = "sha256:2b4879ea3f1169f3d855182c57dcc84d1b5048628c8b7be0d702b81882a37237", size = 279132 }, + { url = "https://files.pythonhosted.org/packages/72/6b/3805be87df8417a0c7b21078c8045f2a1e59b34f371bfe4cb4fb0d6df7f2/ninja-1.11.1.3-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:bc3ebc8b2e47716149f3541742b5cd8e0b08f51013b825c05baca3e34854370d", size = 472101 }, + { url = "https://files.pythonhosted.org/packages/6b/35/a8e38d54768e67324e365e2a41162be298f51ec93e6bd4b18d237d7250d8/ninja-1.11.1.3-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a27e78ca71316c8654965ee94b286a98c83877bfebe2607db96897bbfe458af0", size = 422884 }, + { url = "https://files.pythonhosted.org/packages/2f/99/7996457319e139c02697fb2aa28e42fe32bb0752cef492edc69d56a3552e/ninja-1.11.1.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2883ea46b3c5079074f56820f9989c6261fcc6fd873d914ee49010ecf283c3b2", size = 157046 }, + { url = "https://files.pythonhosted.org/packages/6d/8b/93f38e5cddf76ccfdab70946515b554f25d2b4c95ef9b2f9cfbc43fa7cc1/ninja-1.11.1.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c4bdb9fd2d0c06501ae15abfd23407660e95659e384acd36e013b6dd7d8a8e4", size = 180014 }, + { url = "https://files.pythonhosted.org/packages/7d/1d/713884d0fa3c972164f69d552e0701d30e2bf25eba9ef160bfb3dc69926a/ninja-1.11.1.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:114ed5c61c8474df6a69ab89097a20749b769e2c219a452cb2fadc49b0d581b0", size = 157098 }, + { url = "https://files.pythonhosted.org/packages/c7/22/ecb0f70e77c9e22ee250aa717a608a142756833a34d43943d7d658ee0e56/ninja-1.11.1.3-py3-none-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7fa2247fce98f683bc712562d82b22b8a0a5c000738a13147ca2d1b68c122298", size = 130089 }, + { url = "https://files.pythonhosted.org/packages/ec/a6/3ee846c20ab6ad95b90c5c8703c76cb1f39cc8ce2d1ae468956e3b1b2581/ninja-1.11.1.3-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:a38c6c6c8032bed68b70c3b065d944c35e9f903342875d3a3218c1607987077c", size = 372508 }, + { url = "https://files.pythonhosted.org/packages/95/0d/aa44abe4141f29148ce671ac8c92045878906b18691c6f87a29711c2ff1c/ninja-1.11.1.3-py3-none-musllinux_1_1_i686.whl", hash = "sha256:56ada5d33b8741d298836644042faddebc83ee669782d661e21563034beb5aba", size = 419369 }, + { url = "https://files.pythonhosted.org/packages/f7/ec/48bf5105568ac9bd2016b701777bdd5000cc09a14ac837fef9f15e8d634e/ninja-1.11.1.3-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:53409151da081f3c198bb0bfc220a7f4e821e022c5b7d29719adda892ddb31bb", size = 420304 }, + { url = "https://files.pythonhosted.org/packages/18/e5/69df63976cf971a03379899f8520a036c9dbab26330b37197512aed5b3df/ninja-1.11.1.3-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:1ad2112c2b0159ed7c4ae3731595191b1546ba62316fc40808edecd0306fefa3", size = 416056 }, + { url = "https://files.pythonhosted.org/packages/6f/4f/bdb401af7ed0e24a3fef058e13a149f2de1ce4b176699076993615d55610/ninja-1.11.1.3-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:28aea3c1c280cba95b8608d50797169f3a34280e3e9a6379b6e340f0c9eaeeb0", size = 379725 }, + { url = "https://files.pythonhosted.org/packages/bd/68/05e7863bf13128c61652eeb3ec7096c3d3a602f32f31752dbfb034e3fa07/ninja-1.11.1.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:b6966f83064a88a51693073eea3decd47e08c3965241e09578ef7aa3a7738329", size = 434881 }, + { url = "https://files.pythonhosted.org/packages/bd/ad/edc0d1efe77f29f45bbca2e1dab07ef597f61a88de6e4bccffc0aec2256c/ninja-1.11.1.3-py3-none-win32.whl", hash = "sha256:a4a3b71490557e18c010cbb26bd1ea9a0c32ee67e8f105e9731515b6e0af792e", size = 255988 }, + { url = "https://files.pythonhosted.org/packages/03/93/09a9f7672b4f97438aca6217ac54212a63273f1cd3b46b731d0bb22c53e7/ninja-1.11.1.3-py3-none-win_amd64.whl", hash = "sha256:04d48d14ea7ba11951c156599ab526bdda575450797ff57c6fdf99b2554d09c7", size = 296502 }, + { url = "https://files.pythonhosted.org/packages/d9/9d/0cc1e82849070ff3cbee69f326cb48a839407bcd15d8844443c30a5e7509/ninja-1.11.1.3-py3-none-win_arm64.whl", hash = "sha256:17978ad611d8ead578d83637f5ae80c2261b033db0b493a7ce94f88623f29e1b", size = 270571 }, ] [[package]] @@ -2884,13 +2600,13 @@ name = "nox" version = "2024.10.9" source = { git = "https://github.com/wntrblm/nox.git?rev=aa09595437608dfe21eb776d8a4bcc0bd5f9916b#aa09595437608dfe21eb776d8a4bcc0bd5f9916b" } dependencies = [ - { name = "argcomplete", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "attrs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "colorlog", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "dependency-groups", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "virtualenv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "argcomplete" }, + { name = "attrs" }, + { name = "colorlog" }, + { name = "dependency-groups" }, + { name = "packaging" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "virtualenv" }, ] [[package]] @@ -2898,8 +2614,8 @@ name = "numba" version = "0.60.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "llvmlite", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "llvmlite" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3c/93/2849300a9184775ba274aba6f82f303343669b0592b7bb0849ea713dabb0/numba-0.60.0.tar.gz", hash = "sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16", size = 2702171 } wheels = [ @@ -2925,8 +2641,8 @@ name = "numbagg" version = "0.8.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numba", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numba" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/45/f1/c10725336d4cf9704d83921bdbec72849691b271e0a250d8d3cae4ee79e0/numbagg-0.8.2.tar.gz", hash = "sha256:636fc6756b8ca9adca730512dd15c5dcc9b28a93ffc003f0258dec72ee90937a", size = 56491 } wheels = [ @@ -2938,7 +2654,7 @@ name = "numcodecs" version = "0.13.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/85/56/8895a76abe4ec94ebd01eeb6d74f587bc4cddd46569670e1402852a5da13/numcodecs-0.13.1.tar.gz", hash = "sha256:a3cf37881df0898f3a9c0d4477df88133fe85185bffe57ba31bcc2fa207709bc", size = 5955215 } wheels = [ @@ -2997,7 +2713,7 @@ name = "numpy-groupies" version = "0.11.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/26/56/4fdd73388ec13a1ac3d4b27856a67b098eac6c120bbb43b42b2822e20f6c/numpy_groupies-0.11.2.tar.gz", hash = "sha256:2fda978c4d28d2f1633a63972f425d0a7f2f12a75505d215b41b6de712e2ec4b", size = 159015 } wheels = [ @@ -3015,11 +2731,11 @@ wheels = [ [[package]] name = "orderly-set" -version = "5.2.2" +version = "5.2.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c8/71/5408fee86ce5408132a3ece6eff61afa2c25d5b37cd76bc100a9a4a4d8dd/orderly_set-5.2.2.tar.gz", hash = "sha256:52a18b86aaf3f5d5a498bbdb27bf3253a4e5c57ab38e5b7a56fa00115cd28448", size = 19103 } +sdist = { url = "https://files.pythonhosted.org/packages/5d/9e/8fdcb9ab1b6983cc7c185a4ddafc27518118bd80e9ff2f30aba83636af37/orderly_set-5.2.3.tar.gz", hash = "sha256:571ed97c5a5fca7ddeb6b2d26c19aca896b0ed91f334d9c109edd2f265fb3017", size = 19698 } wheels = [ - { url = "https://files.pythonhosted.org/packages/69/71/6f9554919da608cb5bcf709822a9644ba4785cc7856e01ea375f6d808774/orderly_set-5.2.2-py3-none-any.whl", hash = "sha256:f7a37c95a38c01cdfe41c3ffb62925a318a2286ea0a41790c057fc802aec54da", size = 11621 }, + { url = "https://files.pythonhosted.org/packages/cc/bb/a3a4eab8430f14c7d1476f9db261d32654cb3d1794c0266a46f6574e1190/orderly_set-5.2.3-py3-none-any.whl", hash = "sha256:d357cedcf67f4ebff0d4cbd5b0997e98eeb65dd24fdf5c990a501ae9e82c7d34", size = 12024 }, ] [[package]] @@ -3092,10 +2808,10 @@ name = "pandas" version = "2.2.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "python-dateutil", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tzdata", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy" }, + { name = "python-dateutil" }, + { 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 = [ @@ -3137,35 +2853,35 @@ wheels = [ [[package]] name = "panel" -version = "1.5.4" +version = "1.5.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "bleach", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "bokeh", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "linkify-it-py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "markdown", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "markdown-it-py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "mdit-py-plugins", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "param", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyviz-comms", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "requests", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tqdm", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "bleach" }, + { name = "bokeh" }, + { name = "linkify-it-py" }, + { name = "markdown" }, + { name = "markdown-it-py" }, + { name = "mdit-py-plugins" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "param" }, + { name = "pyviz-comms" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6d/66/7f13691d577c3096d8605c307cfc6f662014896086a0c53778cf6e5828ea/panel-1.5.4.tar.gz", hash = "sha256:7644e87afe9b94c32b4fca939d645c5b958d671691bd841d3391e31941090092", size = 29378323 } +sdist = { url = "https://files.pythonhosted.org/packages/bc/f6/987dd1a1c1375612f53249cce46ea591aa8e0c4fcd913072e3e05e3f0b01/panel-1.5.5.tar.gz", hash = "sha256:420636b0718b7a65c6d059bb517f4d9ffe651bbc60e7369f52c27d7fa7535bbe", size = 29385620 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9d/9e/6bdbdc6c5ce7d0ba901d8599f6338cd8d945f425348629cd53560d8c05c1/panel-1.5.4-py3-none-any.whl", hash = "sha256:98521ff61dfe2ef684181213842521674d2db95f692c7942ab9103a2c0e882b9", size = 63137025 }, + { url = "https://files.pythonhosted.org/packages/2e/0a/2020cf87f142348c317e310d9a861c5535b4b19f63c03704e86f1050dda8/panel-1.5.5-py3-none-any.whl", hash = "sha256:31f76fcd3afe3a86b08cf1acb410212bb5e992a815c64fc2300a58b2595156fd", size = 27396553 }, ] [[package]] name = "param" -version = "2.1.1" +version = "2.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/15/39/75203d36ddd59f3819ef930451d4436e60248a674fb1136d9cf126cb9859/param-2.1.1.tar.gz", hash = "sha256:3b1da14abafa75bfd908572378a58696826b3719a723bc31b40ffff2e9a5c852", size = 174619 } +sdist = { url = "https://files.pythonhosted.org/packages/79/5b/244af19409227e81d1424b82e7f71c2b8b283b2911ec87c8a0d5a44357ac/param-2.2.0.tar.gz", hash = "sha256:2ef63ef7aef37412eeb8ee3a06189a51f69c58c068824ae070baecb5b2abd0b8", size = 176845 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c5/7b/5593a40fcd0981bda85274bb3e622ac433a94ae1e11ef8639de362cfa7de/param-2.1.1-py3-none-any.whl", hash = "sha256:81066d040526fbaa44b6419f3e92348fa8856ea44c8d3915e9245937ddabe2d6", size = 116757 }, + { url = "https://files.pythonhosted.org/packages/99/56/370a6636e072a037b52499edd8928942df7f887974fc54444ece5152d26a/param-2.2.0-py3-none-any.whl", hash = "sha256:777f8c7b66ab820b70ea5ad09faaa6818308220caae89da3b5c5f359faa72a5e", size = 119008 }, ] [[package]] @@ -3173,8 +2889,8 @@ name = "partd" version = "1.4.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "locket", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "toolz", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "locket" }, + { name = "toolz" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b2/3a/3f06f34820a31257ddcabdfafc2672c5816be79c7e353b02c1f318daa7d4/partd-1.4.2.tar.gz", hash = "sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c", size = 21029 } wheels = [ @@ -3298,9 +3014,9 @@ name = "pooch" version = "1.8.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "platformdirs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "requests", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging" }, + { name = "platformdirs" }, + { name = "requests" }, ] sdist = { url = "https://files.pythonhosted.org/packages/c6/77/b3d3e00c696c16cf99af81ef7b1f5fe73bd2a307abca41bd7605429fe6e5/pooch-1.8.2.tar.gz", hash = "sha256:76561f0de68a01da4df6af38e9955c4c9d1a5c90da73f7e40276a5728ec83d10", size = 59353 } wheels = [ @@ -3312,11 +3028,11 @@ name = "pre-commit" version = "4.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cfgv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "identify", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "nodeenv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "virtualenv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "cfgv" }, + { name = "identify" }, + { name = "nodeenv" }, + { name = "pyyaml" }, + { name = "virtualenv" }, ] sdist = { url = "https://files.pythonhosted.org/packages/2e/c8/e22c292035f1bac8b9f5237a2622305bc0304e776080b246f3df57c4ff9f/pre_commit-4.0.1.tar.gz", hash = "sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2", size = 191678 } wheels = [ @@ -3328,7 +3044,7 @@ name = "prompt-toolkit" version = "3.0.36" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "wcwidth", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "wcwidth" }, ] sdist = { url = "https://files.pythonhosted.org/packages/fb/93/180be2342f89f16543ec4eb3f25083b5b84eba5378f68efff05409fb39a9/prompt_toolkit-3.0.36.tar.gz", hash = "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63", size = 423863 } wheels = [ @@ -3424,7 +3140,7 @@ name = "pyct" version = "0.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "param", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "param" }, ] sdist = { url = "https://files.pythonhosted.org/packages/2e/3b/b5b9d4215bc98df9186a5dfb9f2b4ce6db0b33b1728f63143f1431542e20/pyct-0.5.0.tar.gz", hash = "sha256:dd9f4ac5cbd8e37c352c04036062d3c5f67efec76d404761ef16b0cbf26aa6a0", size = 15837 } wheels = [ @@ -3433,91 +3149,91 @@ wheels = [ [[package]] name = "pydantic" -version = "2.10.3" +version = "2.10.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "annotated-types", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pydantic-core", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/45/0f/27908242621b14e649a84e62b133de45f84c255eecb350ab02979844a788/pydantic-2.10.3.tar.gz", hash = "sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9", size = 786486 } +sdist = { url = "https://files.pythonhosted.org/packages/70/7e/fb60e6fee04d0ef8f15e4e01ff187a196fa976eb0f0ab524af4599e5754c/pydantic-2.10.4.tar.gz", hash = "sha256:82f12e9723da6de4fe2ba888b5971157b3be7ad914267dea8f05f82b28254f06", size = 762094 } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/51/72c18c55cf2f46ff4f91ebcc8f75aa30f7305f3d726be3f4ebffb4ae972b/pydantic-2.10.3-py3-none-any.whl", hash = "sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d", size = 456997 }, + { url = "https://files.pythonhosted.org/packages/f3/26/3e1bbe954fde7ee22a6e7d31582c642aad9e84ffe4b5fb61e63b87cd326f/pydantic-2.10.4-py3-none-any.whl", hash = "sha256:597e135ea68be3a37552fb524bc7d0d66dcf93d395acd93a00682f1efcb8ee3d", size = 431765 }, ] [[package]] name = "pydantic-core" -version = "2.27.1" +version = "2.27.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a6/9f/7de1f19b6aea45aeb441838782d68352e71bfa98ee6fa048d5041991b33e/pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235", size = 412785 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6e/ce/60fd96895c09738648c83f3f00f595c807cb6735c70d3306b548cc96dd49/pydantic_core-2.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a", size = 1897984 }, - { url = "https://files.pythonhosted.org/packages/fd/b9/84623d6b6be98cc209b06687d9bca5a7b966ffed008d15225dd0d20cce2e/pydantic_core-2.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b", size = 1807491 }, - { url = "https://files.pythonhosted.org/packages/01/72/59a70165eabbc93b1111d42df9ca016a4aa109409db04304829377947028/pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:121ceb0e822f79163dd4699e4c54f5ad38b157084d97b34de8b232bcaad70278", size = 1831953 }, - { url = "https://files.pythonhosted.org/packages/7c/0c/24841136476adafd26f94b45bb718a78cb0500bd7b4f8d667b67c29d7b0d/pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4603137322c18eaf2e06a4495f426aa8d8388940f3c457e7548145011bb68e05", size = 1856071 }, - { url = "https://files.pythonhosted.org/packages/53/5e/c32957a09cceb2af10d7642df45d1e3dbd8596061f700eac93b801de53c0/pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a33cd6ad9017bbeaa9ed78a2e0752c5e250eafb9534f308e7a5f7849b0b1bfb4", size = 2038439 }, - { url = "https://files.pythonhosted.org/packages/e4/8f/979ab3eccd118b638cd6d8f980fea8794f45018255a36044dea40fe579d4/pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15cc53a3179ba0fcefe1e3ae50beb2784dede4003ad2dfd24f81bba4b23a454f", size = 2787416 }, - { url = "https://files.pythonhosted.org/packages/02/1d/00f2e4626565b3b6d3690dab4d4fe1a26edd6a20e53749eb21ca892ef2df/pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d9c5eb9273aa50999ad6adc6be5e0ecea7e09dbd0d31bd0c65a55a2592ca08", size = 2134548 }, - { url = "https://files.pythonhosted.org/packages/9d/46/3112621204128b90898adc2e721a3cd6cf5626504178d6f32c33b5a43b79/pydantic_core-2.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bf7b66ce12a2ac52d16f776b31d16d91033150266eb796967a7e4621707e4f6", size = 1989882 }, - { url = "https://files.pythonhosted.org/packages/49/ec/557dd4ff5287ffffdf16a31d08d723de6762bb1b691879dc4423392309bc/pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807", size = 1995829 }, - { url = "https://files.pythonhosted.org/packages/6e/b2/610dbeb74d8d43921a7234555e4c091cb050a2bdb8cfea86d07791ce01c5/pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c", size = 2091257 }, - { url = "https://files.pythonhosted.org/packages/8c/7f/4bf8e9d26a9118521c80b229291fa9558a07cdd9a968ec2d5c1026f14fbc/pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206", size = 2143894 }, - { url = "https://files.pythonhosted.org/packages/1f/1c/875ac7139c958f4390f23656fe696d1acc8edf45fb81e4831960f12cd6e4/pydantic_core-2.27.1-cp310-none-win32.whl", hash = "sha256:f5a823165e6d04ccea61a9f0576f345f8ce40ed533013580e087bd4d7442b52c", size = 1816081 }, - { url = "https://files.pythonhosted.org/packages/d7/41/55a117acaeda25ceae51030b518032934f251b1dac3704a53781383e3491/pydantic_core-2.27.1-cp310-none-win_amd64.whl", hash = "sha256:57866a76e0b3823e0b56692d1a0bf722bffb324839bb5b7226a7dbd6c9a40b17", size = 1981109 }, - { url = "https://files.pythonhosted.org/packages/27/39/46fe47f2ad4746b478ba89c561cafe4428e02b3573df882334bd2964f9cb/pydantic_core-2.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8", size = 1895553 }, - { url = "https://files.pythonhosted.org/packages/1c/00/0804e84a78b7fdb394fff4c4f429815a10e5e0993e6ae0e0b27dd20379ee/pydantic_core-2.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330", size = 1807220 }, - { url = "https://files.pythonhosted.org/packages/01/de/df51b3bac9820d38371f5a261020f505025df732ce566c2a2e7970b84c8c/pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52", size = 1829727 }, - { url = "https://files.pythonhosted.org/packages/5f/d9/c01d19da8f9e9fbdb2bf99f8358d145a312590374d0dc9dd8dbe484a9cde/pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bed0f8a0eeea9fb72937ba118f9db0cb7e90773462af7962d382445f3005e5a4", size = 1854282 }, - { url = "https://files.pythonhosted.org/packages/5f/84/7db66eb12a0dc88c006abd6f3cbbf4232d26adfd827a28638c540d8f871d/pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3cb37038123447cf0f3ea4c74751f6a9d7afef0eb71aa07bf5f652b5e6a132c", size = 2037437 }, - { url = "https://files.pythonhosted.org/packages/34/ac/a2537958db8299fbabed81167d58cc1506049dba4163433524e06a7d9f4c/pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84286494f6c5d05243456e04223d5a9417d7f443c3b76065e75001beb26f88de", size = 2780899 }, - { url = "https://files.pythonhosted.org/packages/4a/c1/3e38cd777ef832c4fdce11d204592e135ddeedb6c6f525478a53d1c7d3e5/pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acc07b2cfc5b835444b44a9956846b578d27beeacd4b52e45489e93276241025", size = 2135022 }, - { url = "https://files.pythonhosted.org/packages/7a/69/b9952829f80fd555fe04340539d90e000a146f2a003d3fcd1e7077c06c71/pydantic_core-2.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fefee876e07a6e9aad7a8c8c9f85b0cdbe7df52b8a9552307b09050f7512c7e", size = 1987969 }, - { url = "https://files.pythonhosted.org/packages/05/72/257b5824d7988af43460c4e22b63932ed651fe98804cc2793068de7ec554/pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919", size = 1994625 }, - { url = "https://files.pythonhosted.org/packages/73/c3/78ed6b7f3278a36589bcdd01243189ade7fc9b26852844938b4d7693895b/pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c", size = 2090089 }, - { url = "https://files.pythonhosted.org/packages/8d/c8/b4139b2f78579960353c4cd987e035108c93a78371bb19ba0dc1ac3b3220/pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc", size = 2142496 }, - { url = "https://files.pythonhosted.org/packages/3e/f8/171a03e97eb36c0b51981efe0f78460554a1d8311773d3d30e20c005164e/pydantic_core-2.27.1-cp311-none-win32.whl", hash = "sha256:2cdf7d86886bc6982354862204ae3b2f7f96f21a3eb0ba5ca0ac42c7b38598b9", size = 1811758 }, - { url = "https://files.pythonhosted.org/packages/6a/fe/4e0e63c418c1c76e33974a05266e5633e879d4061f9533b1706a86f77d5b/pydantic_core-2.27.1-cp311-none-win_amd64.whl", hash = "sha256:3af385b0cee8df3746c3f406f38bcbfdc9041b5c2d5ce3e5fc6637256e60bbc5", size = 1980864 }, - { url = "https://files.pythonhosted.org/packages/50/fc/93f7238a514c155a8ec02fc7ac6376177d449848115e4519b853820436c5/pydantic_core-2.27.1-cp311-none-win_arm64.whl", hash = "sha256:81f2ec23ddc1b476ff96563f2e8d723830b06dceae348ce02914a37cb4e74b89", size = 1864327 }, - { url = "https://files.pythonhosted.org/packages/be/51/2e9b3788feb2aebff2aa9dfbf060ec739b38c05c46847601134cc1fed2ea/pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f", size = 1895239 }, - { url = "https://files.pythonhosted.org/packages/7b/9e/f8063952e4a7d0127f5d1181addef9377505dcce3be224263b25c4f0bfd9/pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02", size = 1805070 }, - { url = "https://files.pythonhosted.org/packages/2c/9d/e1d6c4561d262b52e41b17a7ef8301e2ba80b61e32e94520271029feb5d8/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c", size = 1828096 }, - { url = "https://files.pythonhosted.org/packages/be/65/80ff46de4266560baa4332ae3181fffc4488ea7d37282da1a62d10ab89a4/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac", size = 1857708 }, - { url = "https://files.pythonhosted.org/packages/d5/ca/3370074ad758b04d9562b12ecdb088597f4d9d13893a48a583fb47682cdf/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb", size = 2037751 }, - { url = "https://files.pythonhosted.org/packages/b1/e2/4ab72d93367194317b99d051947c071aef6e3eb95f7553eaa4208ecf9ba4/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529", size = 2733863 }, - { url = "https://files.pythonhosted.org/packages/8a/c6/8ae0831bf77f356bb73127ce5a95fe115b10f820ea480abbd72d3cc7ccf3/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35", size = 2161161 }, - { url = "https://files.pythonhosted.org/packages/f1/f4/b2fe73241da2429400fc27ddeaa43e35562f96cf5b67499b2de52b528cad/pydantic_core-2.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089", size = 1993294 }, - { url = "https://files.pythonhosted.org/packages/77/29/4bb008823a7f4cc05828198153f9753b3bd4c104d93b8e0b1bfe4e187540/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381", size = 2001468 }, - { url = "https://files.pythonhosted.org/packages/f2/a9/0eaceeba41b9fad851a4107e0cf999a34ae8f0d0d1f829e2574f3d8897b0/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb", size = 2091413 }, - { url = "https://files.pythonhosted.org/packages/d8/36/eb8697729725bc610fd73940f0d860d791dc2ad557faaefcbb3edbd2b349/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae", size = 2154735 }, - { url = "https://files.pythonhosted.org/packages/52/e5/4f0fbd5c5995cc70d3afed1b5c754055bb67908f55b5cb8000f7112749bf/pydantic_core-2.27.1-cp312-none-win32.whl", hash = "sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c", size = 1833633 }, - { url = "https://files.pythonhosted.org/packages/ee/f2/c61486eee27cae5ac781305658779b4a6b45f9cc9d02c90cb21b940e82cc/pydantic_core-2.27.1-cp312-none-win_amd64.whl", hash = "sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16", size = 1986973 }, - { url = "https://files.pythonhosted.org/packages/df/a6/e3f12ff25f250b02f7c51be89a294689d175ac76e1096c32bf278f29ca1e/pydantic_core-2.27.1-cp312-none-win_arm64.whl", hash = "sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e", size = 1883215 }, - { url = "https://files.pythonhosted.org/packages/0f/d6/91cb99a3c59d7b072bded9959fbeab0a9613d5a4935773c0801f1764c156/pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073", size = 1895033 }, - { url = "https://files.pythonhosted.org/packages/07/42/d35033f81a28b27dedcade9e967e8a40981a765795c9ebae2045bcef05d3/pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08", size = 1807542 }, - { url = "https://files.pythonhosted.org/packages/41/c2/491b59e222ec7e72236e512108ecad532c7f4391a14e971c963f624f7569/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf", size = 1827854 }, - { url = "https://files.pythonhosted.org/packages/e3/f3/363652651779113189cefdbbb619b7b07b7a67ebb6840325117cc8cc3460/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737", size = 1857389 }, - { url = "https://files.pythonhosted.org/packages/5f/97/be804aed6b479af5a945daec7538d8bf358d668bdadde4c7888a2506bdfb/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2", size = 2037934 }, - { url = "https://files.pythonhosted.org/packages/42/01/295f0bd4abf58902917e342ddfe5f76cf66ffabfc57c2e23c7681a1a1197/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107", size = 2735176 }, - { url = "https://files.pythonhosted.org/packages/9d/a0/cd8e9c940ead89cc37812a1a9f310fef59ba2f0b22b4e417d84ab09fa970/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51", size = 2160720 }, - { url = "https://files.pythonhosted.org/packages/73/ae/9d0980e286627e0aeca4c352a60bd760331622c12d576e5ea4441ac7e15e/pydantic_core-2.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a", size = 1992972 }, - { url = "https://files.pythonhosted.org/packages/bf/ba/ae4480bc0292d54b85cfb954e9d6bd226982949f8316338677d56541b85f/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc", size = 2001477 }, - { url = "https://files.pythonhosted.org/packages/55/b7/e26adf48c2f943092ce54ae14c3c08d0d221ad34ce80b18a50de8ed2cba8/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960", size = 2091186 }, - { url = "https://files.pythonhosted.org/packages/ba/cc/8491fff5b608b3862eb36e7d29d36a1af1c945463ca4c5040bf46cc73f40/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23", size = 2154429 }, - { url = "https://files.pythonhosted.org/packages/78/d8/c080592d80edd3441ab7f88f865f51dae94a157fc64283c680e9f32cf6da/pydantic_core-2.27.1-cp313-none-win32.whl", hash = "sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05", size = 1833713 }, - { url = "https://files.pythonhosted.org/packages/83/84/5ab82a9ee2538ac95a66e51f6838d6aba6e0a03a42aa185ad2fe404a4e8f/pydantic_core-2.27.1-cp313-none-win_amd64.whl", hash = "sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337", size = 1987897 }, - { url = "https://files.pythonhosted.org/packages/df/c3/b15fb833926d91d982fde29c0624c9f225da743c7af801dace0d4e187e71/pydantic_core-2.27.1-cp313-none-win_arm64.whl", hash = "sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5", size = 1882983 }, - { url = "https://files.pythonhosted.org/packages/7c/60/e5eb2d462595ba1f622edbe7b1d19531e510c05c405f0b87c80c1e89d5b1/pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6", size = 1894016 }, - { url = "https://files.pythonhosted.org/packages/61/20/da7059855225038c1c4326a840908cc7ca72c7198cb6addb8b92ec81c1d6/pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676", size = 1771648 }, - { url = "https://files.pythonhosted.org/packages/8f/fc/5485cf0b0bb38da31d1d292160a4d123b5977841ddc1122c671a30b76cfd/pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d", size = 1826929 }, - { url = "https://files.pythonhosted.org/packages/a1/ff/fb1284a210e13a5f34c639efc54d51da136074ffbe25ec0c279cf9fbb1c4/pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a3d637bd387c41d46b002f0e49c52642281edacd2740e5a42f7017feea3f2c", size = 1980591 }, - { url = "https://files.pythonhosted.org/packages/f1/14/77c1887a182d05af74f6aeac7b740da3a74155d3093ccc7ee10b900cc6b5/pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:161c27ccce13b6b0c8689418da3885d3220ed2eae2ea5e9b2f7f3d48f1d52c27", size = 1981326 }, - { url = "https://files.pythonhosted.org/packages/06/aa/6f1b2747f811a9c66b5ef39d7f02fbb200479784c75e98290d70004b1253/pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f", size = 1989205 }, - { url = "https://files.pythonhosted.org/packages/7a/d2/8ce2b074d6835f3c88d85f6d8a399790043e9fdb3d0e43455e72d19df8cc/pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed", size = 2079616 }, - { url = "https://files.pythonhosted.org/packages/65/71/af01033d4e58484c3db1e5d13e751ba5e3d6b87cc3368533df4c50932c8b/pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f", size = 2133265 }, - { url = "https://files.pythonhosted.org/packages/33/72/f881b5e18fbb67cf2fb4ab253660de3c6899dbb2dba409d0b757e3559e3d/pydantic_core-2.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:981fb88516bd1ae8b0cbbd2034678a39dedc98752f264ac9bc5839d3923fa04c", size = 2001864 }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/bc/fed5f74b5d802cf9a03e83f60f18864e90e3aed7223adaca5ffb7a8d8d64/pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa", size = 1895938 }, + { url = "https://files.pythonhosted.org/packages/71/2a/185aff24ce844e39abb8dd680f4e959f0006944f4a8a0ea372d9f9ae2e53/pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c", size = 1815684 }, + { url = "https://files.pythonhosted.org/packages/c3/43/fafabd3d94d159d4f1ed62e383e264f146a17dd4d48453319fd782e7979e/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a", size = 1829169 }, + { url = "https://files.pythonhosted.org/packages/a2/d1/f2dfe1a2a637ce6800b799aa086d079998959f6f1215eb4497966efd2274/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5", size = 1867227 }, + { url = "https://files.pythonhosted.org/packages/7d/39/e06fcbcc1c785daa3160ccf6c1c38fea31f5754b756e34b65f74e99780b5/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c", size = 2037695 }, + { url = "https://files.pythonhosted.org/packages/7a/67/61291ee98e07f0650eb756d44998214231f50751ba7e13f4f325d95249ab/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7", size = 2741662 }, + { url = "https://files.pythonhosted.org/packages/32/90/3b15e31b88ca39e9e626630b4c4a1f5a0dfd09076366f4219429e6786076/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a", size = 1993370 }, + { url = "https://files.pythonhosted.org/packages/ff/83/c06d333ee3a67e2e13e07794995c1535565132940715931c1c43bfc85b11/pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236", size = 1996813 }, + { url = "https://files.pythonhosted.org/packages/7c/f7/89be1c8deb6e22618a74f0ca0d933fdcb8baa254753b26b25ad3acff8f74/pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962", size = 2005287 }, + { url = "https://files.pythonhosted.org/packages/b7/7d/8eb3e23206c00ef7feee17b83a4ffa0a623eb1a9d382e56e4aa46fd15ff2/pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9", size = 2128414 }, + { url = "https://files.pythonhosted.org/packages/4e/99/fe80f3ff8dd71a3ea15763878d464476e6cb0a2db95ff1c5c554133b6b83/pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af", size = 2155301 }, + { url = "https://files.pythonhosted.org/packages/2b/a3/e50460b9a5789ca1451b70d4f52546fa9e2b420ba3bfa6100105c0559238/pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4", size = 1816685 }, + { url = "https://files.pythonhosted.org/packages/57/4c/a8838731cb0f2c2a39d3535376466de6049034d7b239c0202a64aaa05533/pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31", size = 1982876 }, + { url = "https://files.pythonhosted.org/packages/c2/89/f3450af9d09d44eea1f2c369f49e8f181d742f28220f88cc4dfaae91ea6e/pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc", size = 1893421 }, + { url = "https://files.pythonhosted.org/packages/9e/e3/71fe85af2021f3f386da42d291412e5baf6ce7716bd7101ea49c810eda90/pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7", size = 1814998 }, + { url = "https://files.pythonhosted.org/packages/a6/3c/724039e0d848fd69dbf5806894e26479577316c6f0f112bacaf67aa889ac/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15", size = 1826167 }, + { url = "https://files.pythonhosted.org/packages/2b/5b/1b29e8c1fb5f3199a9a57c1452004ff39f494bbe9bdbe9a81e18172e40d3/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306", size = 1865071 }, + { url = "https://files.pythonhosted.org/packages/89/6c/3985203863d76bb7d7266e36970d7e3b6385148c18a68cc8915fd8c84d57/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99", size = 2036244 }, + { url = "https://files.pythonhosted.org/packages/0e/41/f15316858a246b5d723f7d7f599f79e37493b2e84bfc789e58d88c209f8a/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459", size = 2737470 }, + { url = "https://files.pythonhosted.org/packages/a8/7c/b860618c25678bbd6d1d99dbdfdf0510ccb50790099b963ff78a124b754f/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048", size = 1992291 }, + { url = "https://files.pythonhosted.org/packages/bf/73/42c3742a391eccbeab39f15213ecda3104ae8682ba3c0c28069fbcb8c10d/pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d", size = 1994613 }, + { url = "https://files.pythonhosted.org/packages/94/7a/941e89096d1175d56f59340f3a8ebaf20762fef222c298ea96d36a6328c5/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b", size = 2002355 }, + { url = "https://files.pythonhosted.org/packages/6e/95/2359937a73d49e336a5a19848713555605d4d8d6940c3ec6c6c0ca4dcf25/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474", size = 2126661 }, + { url = "https://files.pythonhosted.org/packages/2b/4c/ca02b7bdb6012a1adef21a50625b14f43ed4d11f1fc237f9d7490aa5078c/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6", size = 2153261 }, + { url = "https://files.pythonhosted.org/packages/72/9d/a241db83f973049a1092a079272ffe2e3e82e98561ef6214ab53fe53b1c7/pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c", size = 1812361 }, + { url = "https://files.pythonhosted.org/packages/e8/ef/013f07248041b74abd48a385e2110aa3a9bbfef0fbd97d4e6d07d2f5b89a/pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc", size = 1982484 }, + { url = "https://files.pythonhosted.org/packages/10/1c/16b3a3e3398fd29dca77cea0a1d998d6bde3902fa2706985191e2313cc76/pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4", size = 1867102 }, + { url = "https://files.pythonhosted.org/packages/d6/74/51c8a5482ca447871c93e142d9d4a92ead74de6c8dc5e66733e22c9bba89/pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0", size = 1893127 }, + { url = "https://files.pythonhosted.org/packages/d3/f3/c97e80721735868313c58b89d2de85fa80fe8dfeeed84dc51598b92a135e/pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef", size = 1811340 }, + { url = "https://files.pythonhosted.org/packages/9e/91/840ec1375e686dbae1bd80a9e46c26a1e0083e1186abc610efa3d9a36180/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7", size = 1822900 }, + { url = "https://files.pythonhosted.org/packages/f6/31/4240bc96025035500c18adc149aa6ffdf1a0062a4b525c932065ceb4d868/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934", size = 1869177 }, + { url = "https://files.pythonhosted.org/packages/fa/20/02fbaadb7808be578317015c462655c317a77a7c8f0ef274bc016a784c54/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6", size = 2038046 }, + { url = "https://files.pythonhosted.org/packages/06/86/7f306b904e6c9eccf0668248b3f272090e49c275bc488a7b88b0823444a4/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c", size = 2685386 }, + { url = "https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2", size = 1997060 }, + { url = "https://files.pythonhosted.org/packages/0d/0f/943b4af7cd416c477fd40b187036c4f89b416a33d3cc0ab7b82708a667aa/pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4", size = 2004870 }, + { url = "https://files.pythonhosted.org/packages/35/40/aea70b5b1a63911c53a4c8117c0a828d6790483f858041f47bab0b779f44/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3", size = 1999822 }, + { url = "https://files.pythonhosted.org/packages/f2/b3/807b94fd337d58effc5498fd1a7a4d9d59af4133e83e32ae39a96fddec9d/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4", size = 2130364 }, + { url = "https://files.pythonhosted.org/packages/fc/df/791c827cd4ee6efd59248dca9369fb35e80a9484462c33c6649a8d02b565/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57", size = 2158303 }, + { url = "https://files.pythonhosted.org/packages/9b/67/4e197c300976af185b7cef4c02203e175fb127e414125916bf1128b639a9/pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc", size = 1834064 }, + { url = "https://files.pythonhosted.org/packages/1f/ea/cd7209a889163b8dcca139fe32b9687dd05249161a3edda62860430457a5/pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9", size = 1989046 }, + { url = "https://files.pythonhosted.org/packages/bc/49/c54baab2f4658c26ac633d798dab66b4c3a9bbf47cff5284e9c182f4137a/pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b", size = 1885092 }, + { url = "https://files.pythonhosted.org/packages/41/b1/9bc383f48f8002f99104e3acff6cba1231b29ef76cfa45d1506a5cad1f84/pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b", size = 1892709 }, + { url = "https://files.pythonhosted.org/packages/10/6c/e62b8657b834f3eb2961b49ec8e301eb99946245e70bf42c8817350cbefc/pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154", size = 1811273 }, + { url = "https://files.pythonhosted.org/packages/ba/15/52cfe49c8c986e081b863b102d6b859d9defc63446b642ccbbb3742bf371/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9", size = 1823027 }, + { url = "https://files.pythonhosted.org/packages/b1/1c/b6f402cfc18ec0024120602bdbcebc7bdd5b856528c013bd4d13865ca473/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9", size = 1868888 }, + { url = "https://files.pythonhosted.org/packages/bd/7b/8cb75b66ac37bc2975a3b7de99f3c6f355fcc4d89820b61dffa8f1e81677/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1", size = 2037738 }, + { url = "https://files.pythonhosted.org/packages/c8/f1/786d8fe78970a06f61df22cba58e365ce304bf9b9f46cc71c8c424e0c334/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a", size = 2685138 }, + { url = "https://files.pythonhosted.org/packages/a6/74/d12b2cd841d8724dc8ffb13fc5cef86566a53ed358103150209ecd5d1999/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e", size = 1997025 }, + { url = "https://files.pythonhosted.org/packages/a0/6e/940bcd631bc4d9a06c9539b51f070b66e8f370ed0933f392db6ff350d873/pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4", size = 2004633 }, + { url = "https://files.pythonhosted.org/packages/50/cc/a46b34f1708d82498c227d5d80ce615b2dd502ddcfd8376fc14a36655af1/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27", size = 1999404 }, + { url = "https://files.pythonhosted.org/packages/ca/2d/c365cfa930ed23bc58c41463bae347d1005537dc8db79e998af8ba28d35e/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee", size = 2130130 }, + { url = "https://files.pythonhosted.org/packages/f4/d7/eb64d015c350b7cdb371145b54d96c919d4db516817f31cd1c650cae3b21/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1", size = 2157946 }, + { url = "https://files.pythonhosted.org/packages/a4/99/bddde3ddde76c03b65dfd5a66ab436c4e58ffc42927d4ff1198ffbf96f5f/pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130", size = 1834387 }, + { url = "https://files.pythonhosted.org/packages/71/47/82b5e846e01b26ac6f1893d3c5f9f3a2eb6ba79be26eef0b759b4fe72946/pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee", size = 1990453 }, + { url = "https://files.pythonhosted.org/packages/51/b2/b2b50d5ecf21acf870190ae5d093602d95f66c9c31f9d5de6062eb329ad1/pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b", size = 1885186 }, + { url = "https://files.pythonhosted.org/packages/46/72/af70981a341500419e67d5cb45abe552a7c74b66326ac8877588488da1ac/pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e", size = 1891159 }, + { url = "https://files.pythonhosted.org/packages/ad/3d/c5913cccdef93e0a6a95c2d057d2c2cba347815c845cda79ddd3c0f5e17d/pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8", size = 1768331 }, + { url = "https://files.pythonhosted.org/packages/f6/f0/a3ae8fbee269e4934f14e2e0e00928f9346c5943174f2811193113e58252/pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3", size = 1822467 }, + { url = "https://files.pythonhosted.org/packages/d7/7a/7bbf241a04e9f9ea24cd5874354a83526d639b02674648af3f350554276c/pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f", size = 1979797 }, + { url = "https://files.pythonhosted.org/packages/4f/5f/4784c6107731f89e0005a92ecb8a2efeafdb55eb992b8e9d0a2be5199335/pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133", size = 1987839 }, + { url = "https://files.pythonhosted.org/packages/6d/a7/61246562b651dff00de86a5f01b6e4befb518df314c54dec187a78d81c84/pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc", size = 1998861 }, + { url = "https://files.pythonhosted.org/packages/86/aa/837821ecf0c022bbb74ca132e117c358321e72e7f9702d1b6a03758545e2/pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50", size = 2116582 }, + { url = "https://files.pythonhosted.org/packages/81/b0/5e74656e95623cbaa0a6278d16cf15e10a51f6002e3ec126541e95c29ea3/pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9", size = 2151985 }, + { url = "https://files.pythonhosted.org/packages/63/37/3e32eeb2a451fddaa3898e2163746b0cffbbdbb4740d38372db0490d67f3/pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151", size = 2004715 }, ] [[package]] @@ -3525,8 +3241,8 @@ name = "pydantic-settings" version = "2.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pydantic", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "python-dotenv", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pydantic" }, + { name = "python-dotenv" }, ] sdist = { url = "https://files.pythonhosted.org/packages/86/41/19b62b99e7530cfa1d6ccd16199afd9289a12929bef1a03aa4382b22e683/pydantic_settings-2.7.0.tar.gz", hash = "sha256:ac4bfd4a36831a48dbf8b2d9325425b549a0a6f18cea118436d728eb4f1c4d66", size = 79743 } wheels = [ @@ -3538,7 +3254,7 @@ name = "pydot" version = "3.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pyparsing", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pyparsing" }, ] sdist = { url = "https://files.pythonhosted.org/packages/bf/b8/500a772825c7ca87e4fd69c3bd6740e3375d6792a7065dd92759249f223d/pydot-3.0.3.tar.gz", hash = "sha256:5e009d97b2fff92b7a88f09ec1fd5b163f07f3b10469c927d362471d6faa0d50", size = 168086 } wheels = [ @@ -3568,7 +3284,7 @@ name = "pyproj" version = "3.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "certifi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "certifi" }, ] sdist = { url = "https://files.pythonhosted.org/packages/47/c2/0572c8e31aebf0270f15f3368adebd10fc473de9f09567a0743a3bc41c8d/pyproj-3.7.0.tar.gz", hash = "sha256:bf658f4aaf815d9d03c8121650b6f0b8067265c36e31bc6660b98ef144d81813", size = 225577 } wheels = [ @@ -3618,12 +3334,12 @@ name = "pytest" version = "8.3.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "implementation_name == 'cpython' and sys_platform == 'win32'" }, - { name = "exceptiongroup", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "iniconfig", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pluggy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/05/35/30e0d83068951d90a01852cb1cef56e5d8a09d20c7f511634cc2f7e0372a/pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761", size = 1445919 } wheels = [ @@ -3635,8 +3351,8 @@ name = "pytest-benchmark" version = "5.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "py-cpuinfo", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "py-cpuinfo" }, + { name = "pytest" }, ] sdist = { url = "https://files.pythonhosted.org/packages/39/d0/a8bd08d641b393db3be3819b03e2d9bb8760ca8479080a26a5f6e540e99c/pytest-benchmark-5.1.0.tar.gz", hash = "sha256:9ea661cdc292e8231f7cd4c10b0319e56a2118e2c09d9f50e1b3d150d2aca105", size = 337810 } wheels = [ @@ -3648,8 +3364,8 @@ name = "pytest-cache" version = "1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "execnet", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "execnet" }, + { name = "pytest" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d1/15/082fd0428aab33d2bafa014f3beb241830427ba803a8912a5aaeaf3a5663/pytest-cache-1.0.tar.gz", hash = "sha256:be7468edd4d3d83f1e844959fd6e3fd28e77a481440a7118d430130ea31b07a9", size = 16242 } @@ -3658,8 +3374,8 @@ name = "pytest-cov" version = "6.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "coverage", extra = ["toml"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "coverage", extra = ["toml"] }, + { name = "pytest" }, ] sdist = { url = "https://files.pythonhosted.org/packages/be/45/9b538de8cef30e17c7b45ef42f538a94889ed6a16f2387a6c89e73220651/pytest-cov-6.0.0.tar.gz", hash = "sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0", size = 66945 } wheels = [ @@ -3671,11 +3387,11 @@ name = "pytest-factoryboy" version = "2.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "factory-boy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "inflection", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "factory-boy" }, + { name = "inflection" }, + { name = "packaging" }, + { name = "pytest" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a6/bc/179653e8cce651575ac95377e4fdf9afd3c4821ab4bba101aae913ebcc27/pytest_factoryboy-2.7.0.tar.gz", hash = "sha256:67fc54ec8669a3feb8ac60094dd57cd71eb0b20b2c319d2957873674c776a77b", size = 17398 } wheels = [ @@ -3687,7 +3403,7 @@ name = "pytest-mpi" version = "0.6" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "pytest" }, ] sdist = { url = "https://files.pythonhosted.org/packages/6c/db/b9d4b23750eb91865787656dce02a2864397aa1ee130df00ec73d3954e7e/pytest-mpi-0.6.tar.gz", hash = "sha256:09b3cd3511f8f3cd4d205f54d4a7223724fed0ab68b872ed1123d312152325a9", size = 35329 } wheels = [ @@ -3699,8 +3415,8 @@ name = "pytest-xdist" version = "3.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "execnet", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pytest", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "execnet" }, + { name = "pytest" }, ] sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060 } wheels = [ @@ -3709,7 +3425,7 @@ wheels = [ [package.optional-dependencies] psutil = [ - { name = "psutil", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "psutil" }, ] [[package]] @@ -3717,7 +3433,7 @@ name = "python-dateutil" version = "2.9.0.post0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "six", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "six" }, ] sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } wheels = [ @@ -3747,7 +3463,7 @@ name = "pyviz-comms" version = "3.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "param", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "param" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0d/d6/21460c434d01fe94bd97b9a5b41726ae79b68024b634dcaf7d77f8254c6f/pyviz_comms-3.0.3.tar.gz", hash = "sha256:fde4a017c2213ecee63a9a6741431c845e42a5c7b1588e4a7ba2e4370c583728", size = 196501 } wheels = [ @@ -3803,7 +3519,7 @@ name = "questionary" version = "2.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "prompt-toolkit", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "prompt-toolkit" }, ] sdist = { url = "https://files.pythonhosted.org/packages/84/d0/d73525aeba800df7030ac187d09c59dc40df1c878b4fab8669bdc805535d/questionary-2.0.1.tar.gz", hash = "sha256:bcce898bf3dbb446ff62830c86c5c6fb9a22a54146f0f5597d3da43b10d8fc8b", size = 24726 } wheels = [ @@ -3815,10 +3531,10 @@ name = "requests" version = "2.32.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "certifi", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "charset-normalizer", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "idna", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "urllib3", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "certifi" }, + { name = "charset-normalizer" }, + { 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 } wheels = [ @@ -3830,9 +3546,9 @@ name = "rich" version = "13.9.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "markdown-it-py", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pygments", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "markdown-it-py" }, + { name = "pygments" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 } wheels = [ @@ -3844,9 +3560,9 @@ name = "rich-click" version = "1.8.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "rich", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "click" }, + { name = "rich" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/9a/31/103501e85e885e3e202c087fa612cfe450693210372766552ce1ab5b57b9/rich_click-1.8.5.tar.gz", hash = "sha256:a3eebe81da1c9da3c32f3810017c79bd687ff1b3fa35bfc9d8a3338797f1d1a1", size = 38229 } wheels = [ @@ -3858,7 +3574,7 @@ name = "ruamel-yaml" version = "0.18.6" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "ruamel-yaml-clib", marker = "python_full_version < '3.13' and implementation_name == 'cpython' and platform_python_implementation == 'CPython' and sys_platform != 'windows'" }, + { name = "ruamel-yaml-clib", marker = "python_full_version < '3.13' and platform_python_implementation == 'CPython'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/29/81/4dfc17eb6ebb1aac314a3eb863c1325b907863a1b8b1382cdffcb6ac0ed9/ruamel.yaml-0.18.6.tar.gz", hash = "sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b", size = 143362 } wheels = [ @@ -3939,10 +3655,10 @@ name = "scikit-learn" version = "1.6.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "joblib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "scipy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "threadpoolctl", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "threadpoolctl" }, ] sdist = { url = "https://files.pythonhosted.org/packages/fa/19/5aa2002044afc297ecaf1e3517ed07bba4aece3b5613b5160c1212995fc8/scikit_learn-1.6.0.tar.gz", hash = "sha256:9d58481f9f7499dff4196927aedd4285a0baec8caa3790efbe205f13de37dd6e", size = 7074944 } wheels = [ @@ -3977,7 +3693,7 @@ name = "scipy" version = "1.14.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/62/11/4d44a1f274e002784e4dbdb81e0ea96d2de2d1045b2132d5af62cc31fd28/scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417", size = 58620554 } wheels = [ @@ -4020,9 +3736,9 @@ name = "seaborn" version = "0.13.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "matplotlib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "matplotlib" }, + { name = "numpy" }, + { name = "pandas" }, ] sdist = { url = "https://files.pythonhosted.org/packages/86/59/a451d7420a77ab0b98f7affa3a1d78a313d2f7281a57afb1a34bae8ab412/seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7", size = 1457696 } wheels = [ @@ -4030,11 +3746,27 @@ wheels = [ ] [[package]] -name = "serialbox" -version = "0.0.1" -source = { git = "https://github.com/GridTools/serialbox?subdirectory=src%2Fserialbox-python#7987f8cf2027e0051414aefd5f72149f0e7bb193" } +name = "serialbox4py" +version = "2.6.2" +source = { registry = "https://test.pypi.org/simple/" } dependencies = [ - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy" }, + { name = "packaging" }, +] +sdist = { url = "https://test-files.pythonhosted.org/packages/91/57/7a3f8f7a9b41ae6900f540e43bdff0ee3c4d58d5104e92469a30671f1bf4/serialbox4py-2.6.2.tar.gz", hash = "sha256:79bc3b1b4448cdd309a83f397b0e68a5d43c6363112412aa1d4c150f838adc4c", size = 3106032 } +wheels = [ + { url = "https://test-files.pythonhosted.org/packages/75/73/874dd7e7d7e24bb685d400bc68e35c4691a001ee2922f9dce5f35dda449b/serialbox4py-2.6.2-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:fca2b3af27873be26777790911cf4f7223c605ca8c9154bbf8ca532e85741b51", size = 1739107 }, + { url = "https://test-files.pythonhosted.org/packages/67/c5/aea35756db72cb70ac2d24daa998631aa2873b36cdbde54b5b15b903a465/serialbox4py-2.6.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa8614fc34d3b3e9ed755a0f613e484a7ae7e380e74ed1adc41c4c6b08f74e22", size = 1634294 }, + { url = "https://test-files.pythonhosted.org/packages/5a/18/79f38d0be01a4b400f2fb52df96a5e2fea40329fe22299c3f67a07acd9d7/serialbox4py-2.6.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3c1715b27aef1dfbbfd45b7204fdcf26e7b470db70b44f3dfd2377cb2628aa72", size = 2514308 }, + { url = "https://test-files.pythonhosted.org/packages/c6/a9/9eb15e998c4a37844ea93f8fe946dec7ca4d7536204864ed049cce45f297/serialbox4py-2.6.2-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:36da376497eaf266eb5dea143f2d7e64709b8dfb5d46cf65a1e0b166dd49470f", size = 1739107 }, + { url = "https://test-files.pythonhosted.org/packages/ed/82/8a7ec9575763eb0f05812896d769a7e595b4ba596063427ba936a300963f/serialbox4py-2.6.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3d39ea8bf11d3fb0000359cd0f1cf26e22b87b95543d0509f4163b6c883f95d4", size = 1634286 }, + { url = "https://test-files.pythonhosted.org/packages/15/fd/00257e4868084ec79f2dae8d8bebe8e22efcf3230a4443a4aceedab0c20f/serialbox4py-2.6.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fca6a0a40f7b66447dab3352998d5698efb6b162ee34a690b4ce44b7f7b1bbb1", size = 2514304 }, + { url = "https://test-files.pythonhosted.org/packages/9d/1b/1e37ac61349e1975453876f6976120b776bd66c8a11ccba0fa2fd32470d8/serialbox4py-2.6.2-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:2e73a7f42aa1546ba879fb90ce9aad72286066741a50f7f653e0d57c552f30b7", size = 1739087 }, + { url = "https://test-files.pythonhosted.org/packages/6d/1b/1650b0d46fc11d24f9505de018da69bd748680c16a12f9556afeb252f9f4/serialbox4py-2.6.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9791a42b28485fc7fd179a8bfb3dc4495ccb6e76649d9e9755c46eed66bdb8eb", size = 1634296 }, + { url = "https://test-files.pythonhosted.org/packages/5f/8b/4dc70aa2fafd2d89418045c5e6c7bba7e3e8021ee68bd2170586480a6056/serialbox4py-2.6.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:af652392294dd72a7bf9a32b917bf99c6610636470f61c1cb1e90ba90b90e800", size = 2514309 }, + { url = "https://test-files.pythonhosted.org/packages/b6/c2/b7d4338d368287c851f601b77b6f96b20c44dfefefe00f605a58f234c447/serialbox4py-2.6.2-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:456a5ba3fff4b724248bcd101e429522a5ffca9d912691c8fee679c835bfd35e", size = 1739106 }, + { url = "https://test-files.pythonhosted.org/packages/da/49/9ad43c6205407bc9528c8386a9a2ac1bd88b2e0b6131abf7e380544035f4/serialbox4py-2.6.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d49e60f16c8c9ac2cb6ada7550b6caedbec98fa47126c1c0cfc6ef9a48c61809", size = 1634292 }, + { url = "https://test-files.pythonhosted.org/packages/0c/f3/915f83c1e6ea5e7aaaec0c66abb34788b5aa05045e30aceec833d2f2bae9/serialbox4py-2.6.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:99119e78f09c594c99334e46525d006d94713933d3faf2713750bc7e486aba1a", size = 2514314 }, ] [[package]] @@ -4051,9 +3783,9 @@ name = "setuptools-scm" version = "8.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "setuptools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "packaging" }, + { name = "setuptools" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/4f/a4/00a9ac1b555294710d4a68d2ce8dfdf39d72aa4d769a7395d05218d88a42/setuptools_scm-8.1.0.tar.gz", hash = "sha256:42dea1b65771cba93b7a515d65a65d8246e560768a66b9106a592c8e7f26c8a7", size = 76465 } wheels = [ @@ -4065,7 +3797,7 @@ name = "shapely" version = "2.0.6" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/4a/89/0d20bac88016be35ff7d3c0c2ae64b477908f1b1dfa540c5d69ac7af07fe/shapely-2.0.6.tar.gz", hash = "sha256:997f6159b1484059ec239cacaa53467fd8b5564dabe186cd84ac2944663b0bf6", size = 282361 } wheels = [ @@ -4145,9 +3877,9 @@ name = "sparse" version = "0.15.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numba", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "scipy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numba" }, + { name = "numpy" }, + { name = "scipy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/26/6a/a1d00d932597c00509d333d9cde6f10d6c85470a3701455b0c48fc45886b/sparse-0.15.4.tar.gz", hash = "sha256:d4b1c57d24ff0f64f2fd5b5a95b49b7fb84ed207a26d7d58ce2764dcc5c72b84", size = 359721 } wheels = [ @@ -4159,23 +3891,23 @@ name = "sphinx" version = "7.3.7" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "alabaster", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "babel", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "colorama", marker = "implementation_name == 'cpython' and sys_platform == 'win32'" }, - { name = "docutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "imagesize", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pygments", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "requests", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "snowballstemmer", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinxcontrib-applehelp", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinxcontrib-devhelp", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinxcontrib-htmlhelp", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinxcontrib-jsmath", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinxcontrib-qthelp", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinxcontrib-serializinghtml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tomli", marker = "python_full_version < '3.11' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "alabaster" }, + { name = "babel" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "docutils" }, + { name = "imagesize" }, + { name = "jinja2" }, + { name = "packaging" }, + { name = "pygments" }, + { name = "requests" }, + { name = "snowballstemmer" }, + { name = "sphinxcontrib-applehelp" }, + { name = "sphinxcontrib-devhelp" }, + { name = "sphinxcontrib-htmlhelp" }, + { name = "sphinxcontrib-jsmath" }, + { name = "sphinxcontrib-qthelp" }, + { name = "sphinxcontrib-serializinghtml" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b7/0a/b88033900b1582f5ed8f880263363daef968d1cd064175e32abfd9714410/sphinx-7.3.7.tar.gz", hash = "sha256:a4a7db75ed37531c05002d56ed6948d4c42f473a36f46e1382b0bd76ca9627bc", size = 7094808 } wheels = [ @@ -4187,7 +3919,7 @@ name = "sphinx-autodoc-typehints" version = "2.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx" }, ] sdist = { url = "https://files.pythonhosted.org/packages/74/cd/03e7b917230dc057922130a79ba0240df1693bfd76727ea33fae84b39138/sphinx_autodoc_typehints-2.3.0.tar.gz", hash = "sha256:535c78ed2d6a1bad393ba9f3dfa2602cf424e2631ee207263e07874c38fde084", size = 40709 } wheels = [ @@ -4199,9 +3931,9 @@ name = "sphinx-jinja2-compat" version = "0.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "jinja2", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "markupsafe", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "standard-imghdr", marker = "python_full_version >= '3.13' and implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "jinja2" }, + { name = "markupsafe" }, + { name = "standard-imghdr", marker = "python_full_version >= '3.13'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/26/df/27282da6f8c549f765beca9de1a5fc56f9651ed87711a5cac1e914137753/sphinx_jinja2_compat-0.3.0.tar.gz", hash = "sha256:f3c1590b275f42e7a654e081db5e3e5fb97f515608422bde94015ddf795dfe7c", size = 4998 } wheels = [ @@ -4213,7 +3945,7 @@ name = "sphinx-math-dollar" version = "1.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx" }, ] sdist = { url = "https://files.pythonhosted.org/packages/9f/63/9227668066d044b6b6a582f000ade4b9e679978466555710dd2a15f21a3a/sphinx-math-dollar-1.2.1.tar.gz", hash = "sha256:03427240f21fdf23c7b8415289aa1a0e307ac32c198e02f840c59a4b1b0d950c", size = 25758 } wheels = [ @@ -4225,9 +3957,9 @@ name = "sphinx-prompt" version = "1.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "docutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pygments", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "docutils" }, + { name = "pygments" }, + { name = "sphinx" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e7/fb/7a07b8df1ca2418147a6b13e3f6b445071f2565198b45efa631d0d6ef0cd/sphinx_prompt-1.8.0.tar.gz", hash = "sha256:47482f86fcec29662fdfd23e7c04ef03582714195d01f5d565403320084372ed", size = 5121 } wheels = [ @@ -4239,9 +3971,9 @@ name = "sphinx-rtd-theme" version = "3.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "docutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinxcontrib-jquery", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "docutils" }, + { name = "sphinx" }, + { name = "sphinxcontrib-jquery" }, ] sdist = { url = "https://files.pythonhosted.org/packages/91/44/c97faec644d29a5ceddd3020ae2edffa69e7d00054a8c7a6021e82f20335/sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85", size = 7620463 } wheels = [ @@ -4253,9 +3985,9 @@ name = "sphinx-tabs" version = "3.4.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "docutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pygments", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "docutils" }, + { name = "pygments" }, + { name = "sphinx" }, ] sdist = { url = "https://files.pythonhosted.org/packages/27/32/ab475e252dc2b704e82a91141fa404cdd8901a5cf34958fd22afacebfccd/sphinx-tabs-3.4.5.tar.gz", hash = "sha256:ba9d0c1e3e37aaadd4b5678449eb08176770e0fc227e769b6ce747df3ceea531", size = 16070 } wheels = [ @@ -4267,23 +3999,23 @@ name = "sphinx-toolbox" version = "3.8.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "apeye", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "autodocsumm", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "beautifulsoup4", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "cachecontrol", extra = ["filecache"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "dict2css", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "docutils", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "domdf-python-tools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "filelock", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "html5lib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "ruamel-yaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx-autodoc-typehints", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx-jinja2-compat", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx-prompt", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sphinx-tabs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tabulate", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "typing-extensions", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "apeye" }, + { name = "autodocsumm" }, + { name = "beautifulsoup4" }, + { name = "cachecontrol", extra = ["filecache"] }, + { name = "dict2css" }, + { name = "docutils" }, + { name = "domdf-python-tools" }, + { name = "filelock" }, + { name = "html5lib" }, + { name = "ruamel-yaml" }, + { name = "sphinx" }, + { name = "sphinx-autodoc-typehints" }, + { name = "sphinx-jinja2-compat" }, + { name = "sphinx-prompt" }, + { name = "sphinx-tabs" }, + { name = "tabulate" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/30/80/f837e85c8c216cdeef9b60393e4b00c9092a1e3d734106e0021abbf5930c/sphinx_toolbox-3.8.1.tar.gz", hash = "sha256:a4b39a6ea24fc8f10e24f052199bda17837a0bf4c54163a56f521552395f5e1a", size = 111977 } wheels = [ @@ -4322,7 +4054,7 @@ name = "sphinxcontrib-jquery" version = "4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "sphinx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "sphinx" }, ] sdist = { url = "https://files.pythonhosted.org/packages/de/f3/aa67467e051df70a6330fe7770894b3e4f09436dea6881ae0b4f3d87cad8/sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a", size = 122331 } wheels = [ @@ -4370,7 +4102,7 @@ name = "sympy" version = "1.12.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "mpmath", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "mpmath" }, ] sdist = { url = "https://files.pythonhosted.org/packages/41/8a/0d1bbd33cd3091c913d298746e56f40586fa954788f51b816c6336424675/sympy-1.12.1.tar.gz", hash = "sha256:2877b03f998cd8c08f07cd0de5b767119cd3ef40d09f41c30d722f6686b0fb88", size = 6722359 } wheels = [ @@ -4391,14 +4123,14 @@ name = "tach" version = "0.17.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "gitpython", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "networkx", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "prompt-toolkit", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pydot", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pyyaml", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "rich", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tomli", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "tomli-w", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "gitpython" }, + { name = "networkx" }, + { name = "prompt-toolkit" }, + { name = "pydot" }, + { name = "pyyaml" }, + { name = "rich" }, + { name = "tomli" }, + { name = "tomli-w" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e6/53/580d3bfc18573e51f7a61bbfd18567774d4d647309fc944246c877b7df23/tach-0.17.0.tar.gz", hash = "sha256:da251345239d144048ebbe8c98552ca6d639344c010530676e4d138d8e268846", size = 729996 } wheels = [ @@ -4530,7 +4262,7 @@ name = "tqdm" version = "4.67.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "implementation_name == 'cpython' and platform_system == 'Windows' and sys_platform != 'windows'" }, + { name = "colorama", marker = "platform_system == 'Windows'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } wheels = [ @@ -4542,7 +4274,7 @@ name = "types-cffi" version = "1.16.0.20240331" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "types-setuptools", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "types-setuptools" }, ] sdist = { url = "https://files.pythonhosted.org/packages/91/c8/81e5699160b91f0f91eea852d84035c412bfb4b3a29389701044400ab379/types-cffi-1.16.0.20240331.tar.gz", hash = "sha256:b8b20d23a2b89cfed5f8c5bc53b0cb8677c3aac6d970dbc771e28b9c698f5dee", size = 11318 } wheels = [ @@ -4599,7 +4331,7 @@ name = "uxarray" version = "2024.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "xarray", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "xarray" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0b/80/e6277088ab809a7d331c4660c85ddb1bbf43b8e2688b3ccdda74fa1b6b58/uxarray-2024.3.0.tar.gz", hash = "sha256:72ffa45069fe86c6998cdd516cdf07860cfe6995f04b433b2f232e929ba43db7", size = 14460765 } wheels = [ @@ -4611,9 +4343,9 @@ name = "virtualenv" version = "20.28.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "distlib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "filelock", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "platformdirs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "distlib" }, + { name = "filelock" }, + { name = "platformdirs" }, ] sdist = { url = "https://files.pythonhosted.org/packages/bf/75/53316a5a8050069228a2f6d11f32046cfa94fbb6cc3f08703f59b873de2e/virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa", size = 7650368 } wheels = [ @@ -4625,7 +4357,7 @@ name = "wcmatch" version = "10.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "bracex", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "bracex" }, ] sdist = { url = "https://files.pythonhosted.org/packages/41/ab/b3a52228538ccb983653c446c1656eddf1d5303b9cb8b9aef6a91299f862/wcmatch-10.0.tar.gz", hash = "sha256:e72f0de09bba6a04e0de70937b0cf06e55f36f37b3deb422dfaf854b867b840a", size = 115578 } wheels = [ @@ -4729,9 +4461,9 @@ name = "xarray" version = "2024.11.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "packaging", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pandas", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3f/d6/5ae0a721bd6cac85b30cff6b119dc6b5e73b735aacbfb43d3ed2680504d7/xarray-2024.11.0.tar.gz", hash = "sha256:1ccace44573ddb862e210ad3ec204210654d2c750bec11bbe7d842dfc298591f", size = 3247277 } wheels = [ @@ -4740,24 +4472,24 @@ wheels = [ [package.optional-dependencies] complete = [ - { name = "bottleneck", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "cartopy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "cftime", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "dask", extra = ["complete"], marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "flox", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "fsspec", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "h5netcdf", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "matplotlib", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "nc-time-axis", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "netcdf4", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numba", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numbagg", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "opt-einsum", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "pooch", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "scipy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "seaborn", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "sparse", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "zarr", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "bottleneck" }, + { name = "cartopy" }, + { name = "cftime" }, + { name = "dask", extra = ["complete"] }, + { name = "flox" }, + { name = "fsspec" }, + { name = "h5netcdf" }, + { name = "matplotlib" }, + { name = "nc-time-axis" }, + { name = "netcdf4" }, + { name = "numba" }, + { name = "numbagg" }, + { name = "opt-einsum" }, + { name = "pooch" }, + { name = "scipy" }, + { name = "seaborn" }, + { name = "sparse" }, + { name = "zarr" }, ] [[package]] @@ -4791,10 +4523,10 @@ name = "zarr" version = "2.18.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "asciitree", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "fasteners", marker = "implementation_name == 'cpython' and sys_platform != 'emscripten' and sys_platform != 'windows'" }, - { name = "numcodecs", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, - { name = "numpy", marker = "implementation_name == 'cpython' and sys_platform != 'windows'" }, + { name = "asciitree" }, + { name = "fasteners", marker = "sys_platform != 'emscripten'" }, + { name = "numcodecs" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/23/c4/187a21ce7cf7c8f00c060dd0e04c2a81139bb7b1ab178bba83f2e1134ce2/zarr-2.18.3.tar.gz", hash = "sha256:2580d8cb6dd84621771a10d31c4d777dca8a27706a1a89b29f42d2d37e2df5ce", size = 3603224 } wheels = [ From 5d93f6d6e3dc70d424bfc2a4768d5a4841e3bcbf Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Thu, 19 Dec 2024 13:58:49 +0100 Subject: [PATCH 66/83] Update github actions --- .github/workflows/icon4py-qa.yml | 11 ++++------- uv.lock | 24 ------------------------ 2 files changed, 4 insertions(+), 31 deletions(-) diff --git a/.github/workflows/icon4py-qa.yml b/.github/workflows/icon4py-qa.yml index 4dbcdd3541..7b7c6c5a2c 100644 --- a/.github/workflows/icon4py-qa.yml +++ b/.github/workflows/icon4py-qa.yml @@ -18,6 +18,7 @@ jobs: run: | sudo apt-get update sudo apt-get install libboost-all-dev + curl -LsSf https://astral.sh/uv/install.sh | sh - name: Set up Python uses: actions/setup-python@v4 with: @@ -25,15 +26,11 @@ jobs: cache: 'pip' cache-dependency-path: | **/pyproject.toml - **/base-requirements.txt - **/base-requirements-dev.txt - **/requirements.txt - **/requirements-dev.txt + uv.lock - name: Install all icon4py namespace packages run: | - python -m pip install --upgrade pip setuptools wheel - python -m pip install -r ./requirements-dev.txt - python -m pip list + uv sync --extra all - name: Run checks run: | + source .venv/bin/activate pre-commit run diff --git a/uv.lock b/uv.lock index b2dc15e0cd..8fff6b05ef 100644 --- a/uv.lock +++ b/uv.lock @@ -2,40 +2,16 @@ version = 1 requires-python = ">=3.10" resolution-markers = [ "python_full_version < '3.11'", - "python_full_version < '3.11'", - "python_full_version < '3.11'", - "python_full_version == '3.11.*'", "python_full_version == '3.11.*'", - "python_full_version == '3.11.*'", - "python_full_version == '3.12.*'", - "python_full_version == '3.12.*'", "python_full_version == '3.12.*'", "python_full_version >= '3.13'", - "python_full_version >= '3.13'", - "python_full_version >= '3.13'", - "python_full_version < '3.11'", "python_full_version < '3.11'", - "python_full_version < '3.11'", - "python_full_version == '3.11.*'", - "python_full_version == '3.11.*'", "python_full_version == '3.11.*'", "python_full_version == '3.12.*'", - "python_full_version == '3.12.*'", - "python_full_version == '3.12.*'", - "python_full_version >= '3.13'", "python_full_version >= '3.13'", - "python_full_version >= '3.13'", - "python_full_version < '3.11'", - "python_full_version < '3.11'", "python_full_version < '3.11'", "python_full_version == '3.11.*'", - "python_full_version == '3.11.*'", - "python_full_version == '3.11.*'", - "python_full_version == '3.12.*'", "python_full_version == '3.12.*'", - "python_full_version == '3.12.*'", - "python_full_version >= '3.13'", - "python_full_version >= '3.13'", "python_full_version >= '3.13'", ] conflicts = [[ From 081c89c1e960c93d310885ae58154ef6e65b79a8 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Thu, 19 Dec 2024 14:06:30 +0100 Subject: [PATCH 67/83] Stick to 3.10 for pre-commit --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d85c65df30..4e99f7604c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,7 +4,7 @@ default_stages: [pre-commit, pre-push] default_language_version: - python: python3.11 + python: python3.10 minimum_pre_commit_version: 3.8.0 files: | (?x)^( From 9332d925b9cccac14ac631874a99726c64638383 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Thu, 19 Dec 2024 15:55:47 +0100 Subject: [PATCH 68/83] Fixes for CI workflows --- .github/workflows/icon4py-qa.yml | 8 ++++---- ci/docker/base.Dockerfile | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/icon4py-qa.yml b/.github/workflows/icon4py-qa.yml index 7b7c6c5a2c..5bb31f18e8 100644 --- a/.github/workflows/icon4py-qa.yml +++ b/.github/workflows/icon4py-qa.yml @@ -27,10 +27,10 @@ jobs: cache-dependency-path: | **/pyproject.toml uv.lock - - name: Install all icon4py namespace packages - run: | - uv sync --extra all + # - name: Install all icon4py namespace packages + # run: | + # uv sync --extra all + # source .venv/bin/activate - name: Run checks run: | - source .venv/bin/activate pre-commit run diff --git a/ci/docker/base.Dockerfile b/ci/docker/base.Dockerfile index 1e2c0082ed..3e27f84448 100644 --- a/ci/docker/base.Dockerfile +++ b/ci/docker/base.Dockerfile @@ -83,6 +83,7 @@ ENV PATH="/root/.pyenv/shims:${PATH}" # Install uv RUN curl -LsSf https://astral.sh/uv/install.sh | sh +ENV PATH="~/.local/bin:${PATH}" ARG CUPY_PACKAGE=cupy-cuda11x -RUN pip install --upgrade pip setuptools wheel tox clang-format ${CUPY_PACKAGE} +RUN pip install --upgrade pip setuptools wheel nox clang-format ${CUPY_PACKAGE} From fd5ba7afc977019dfa6e6b21abbe319cb359aa07 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Thu, 19 Dec 2024 16:11:18 +0100 Subject: [PATCH 69/83] Install nox and uv with pip in the docker image --- ci/docker/base.Dockerfile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/ci/docker/base.Dockerfile b/ci/docker/base.Dockerfile index 3e27f84448..e52e214f57 100644 --- a/ci/docker/base.Dockerfile +++ b/ci/docker/base.Dockerfile @@ -81,9 +81,5 @@ RUN pyenv update && \ ENV PATH="/root/.pyenv/shims:${PATH}" -# Install uv -RUN curl -LsSf https://astral.sh/uv/install.sh | sh -ENV PATH="~/.local/bin:${PATH}" - ARG CUPY_PACKAGE=cupy-cuda11x -RUN pip install --upgrade pip setuptools wheel nox clang-format ${CUPY_PACKAGE} +RUN pip install --upgrade pip setuptools wheel uv nox clang-format ${CUPY_PACKAGE} From 61608148d8e8852d1e688644fcc2c5ec5ef6f0c1 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Thu, 19 Dec 2024 16:37:39 +0100 Subject: [PATCH 70/83] Add back uv installatino to github ci --- .github/workflows/icon4py-qa.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/icon4py-qa.yml b/.github/workflows/icon4py-qa.yml index 5bb31f18e8..29b555946b 100644 --- a/.github/workflows/icon4py-qa.yml +++ b/.github/workflows/icon4py-qa.yml @@ -27,10 +27,10 @@ jobs: cache-dependency-path: | **/pyproject.toml uv.lock - # - name: Install all icon4py namespace packages - # run: | - # uv sync --extra all - # source .venv/bin/activate + - name: Install venv and icon4py namespace packages + run: | + uv sync --extra all - name: Run checks run: | + source .venv/bin/activate pre-commit run From 0755d1b8aa811268a478b6dc2bdaf4462a0834d2 Mon Sep 17 00:00:00 2001 From: Edoardo Paone Date: Thu, 19 Dec 2024 17:54:54 +0100 Subject: [PATCH 71/83] Skip ditributed in test session (mpi4py compile error) --- noxfile.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/noxfile.py b/noxfile.py index cf9a3035b7..8cc68bbc31 100644 --- a/noxfile.py +++ b/noxfile.py @@ -36,11 +36,12 @@ # -- nox sessions -- # Model benchmark sessions # TODO(egparedes): Add backend parameter +# TODO(edopao,egparedes): Change 'extras' back to 'all' once mpi4py can be compiled with hpc_sdk @nox.session(python=["3.10", "3.11"]) @nox.parametrize("subpackage", MODEL_SUBPACKAGE_PATHS) def benchmark_model(session: nox.Session, subpackage: ModelSubpackagePath) -> None: """Run pytest benchmarks for selected icon4py model subpackages.""" - _install_session_venv(session, extras=["all"], groups=["test"]) + _install_session_venv(session, extras=["dace", "io", "testing"], groups=["test"]) with session.chdir(f"model/{subpackage}"): session.run(*"pytest -sv --benchmark-only".split(), *session.posargs) @@ -48,12 +49,13 @@ def benchmark_model(session: nox.Session, subpackage: ModelSubpackagePath) -> No # Model test sessions # TODO(egparedes): Add backend parameter +# TODO(edopao,egparedes): Change 'extras' back to 'all' once mpi4py can be compiled with hpc_sdk @nox.session(python=["3.10", "3.11"]) @nox.parametrize("subpackage", MODEL_SUBPACKAGE_PATHS) @nox.parametrize("selection", MODEL_TESTS_SUBSETS) def test_model(session: nox.Session, selection: ModelTestsSubset, subpackage: ModelSubpackagePath) -> None: """Run tests for selected icon4py model subpackages.""" - _install_session_venv(session, extras=["all"], groups=["test"]) + _install_session_venv(session, extras=["dace", "io", "testing"], groups=["test"]) pytest_args = _selection_to_pytest_args(selection) with session.chdir(f"model/{subpackage}"): @@ -87,11 +89,12 @@ def test_model_stencils(session: nox.Session, subpackage: ModelSubpackagePath) - # Tools test sessions +# TODO(edopao,egparedes): Change 'extras' back to 'all' once mpi4py can be compiled with hpc_sdk @nox.session(python=["3.10", "3.11"]) @nox.parametrize("datatest", [False, True]) def test_tools(session: nox.Session, datatest: bool) -> None: """Run tests for the Fortran integration tools.""" - _install_session_venv(session, extras=["all"], groups=["test"]) + _install_session_venv(session, extras=["fortran,", "io", "testing"], groups=["test"]) with session.chdir("tools"): session.run( From d9187530deb49aeabe1dde764505cdccad7a4669 Mon Sep 17 00:00:00 2001 From: Edoardo Paone Date: Thu, 19 Dec 2024 18:29:16 +0100 Subject: [PATCH 72/83] fix previous commit --- noxfile.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/noxfile.py b/noxfile.py index 8cc68bbc31..d36bd3ff9c 100644 --- a/noxfile.py +++ b/noxfile.py @@ -41,7 +41,7 @@ @nox.parametrize("subpackage", MODEL_SUBPACKAGE_PATHS) def benchmark_model(session: nox.Session, subpackage: ModelSubpackagePath) -> None: """Run pytest benchmarks for selected icon4py model subpackages.""" - _install_session_venv(session, extras=["dace", "io", "testing"], groups=["test"]) + _install_session_venv(session, extras=["dace", "fortran", "io", "testing"], groups=["test"]) with session.chdir(f"model/{subpackage}"): session.run(*"pytest -sv --benchmark-only".split(), *session.posargs) @@ -55,7 +55,7 @@ def benchmark_model(session: nox.Session, subpackage: ModelSubpackagePath) -> No @nox.parametrize("selection", MODEL_TESTS_SUBSETS) def test_model(session: nox.Session, selection: ModelTestsSubset, subpackage: ModelSubpackagePath) -> None: """Run tests for selected icon4py model subpackages.""" - _install_session_venv(session, extras=["dace", "io", "testing"], groups=["test"]) + _install_session_venv(session, extras=["dace", "fortran", "io", "testing"], groups=["test"]) pytest_args = _selection_to_pytest_args(selection) with session.chdir(f"model/{subpackage}"): @@ -94,7 +94,7 @@ def test_model_stencils(session: nox.Session, subpackage: ModelSubpackagePath) - @nox.parametrize("datatest", [False, True]) def test_tools(session: nox.Session, datatest: bool) -> None: """Run tests for the Fortran integration tools.""" - _install_session_venv(session, extras=["fortran,", "io", "testing"], groups=["test"]) + _install_session_venv(session, extras=["fortran", "io", "testing"], groups=["test"]) with session.chdir("tools"): session.run( From 4da0a7dfbc36acc6a6022b3b53fd7867a4c02c6b Mon Sep 17 00:00:00 2001 From: Hannes Vogt Date: Thu, 19 Dec 2024 21:57:49 +0100 Subject: [PATCH 73/83] fix a test --- .../diffusion/tests/diffusion_tests/test_diffusion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py index ce2655c5a2..154fe54244 100644 --- a/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py +++ b/model/atmosphere/diffusion/tests/diffusion_tests/test_diffusion.py @@ -161,7 +161,7 @@ def test_smagorinski_factor_diffusion_type_5(experiment): params = diffusion.DiffusionParams(construct_diffusion_config(experiment, ndyn_substeps=5)) assert len(params.smagorinski_factor) == len(params.smagorinski_height) assert len(params.smagorinski_factor) == 4 - assert all(params.smagorinski_factor >= 0) + assert all(p >= 0 for p in params.smagorinski_factor) @pytest.mark.datatest From 494804e180177365ea7899a64a6f4944acc12e28 Mon Sep 17 00:00:00 2001 From: Hannes Vogt Date: Thu, 19 Dec 2024 22:19:22 +0100 Subject: [PATCH 74/83] try to fix remaining tests --- noxfile.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/noxfile.py b/noxfile.py index d36bd3ff9c..8510d9fd3a 100644 --- a/noxfile.py +++ b/noxfile.py @@ -76,9 +76,10 @@ def test_model_datatest(session: nox.Session, subpackage: ModelSubpackagePath) - @nox.session(python=["3.10", "3.11"]) @nox.parametrize("subpackage", MODEL_SUBPACKAGE_PATHS) def test_model_stencils(session: nox.Session, subpackage: ModelSubpackagePath) -> None: - session.notify( - f"test_model-{session.python}(selection='stencils', subpackage='{subpackage}')" - ) + if subpackage != "common": # TODO: Enable tests + session.notify( + f"test_model-{session.python}(selection='stencils', subpackage='{subpackage}')" + ) # @nox.session(python=["3.10", "3.11"]) # @nox.parametrize("selection", MODEL_TEST_SELECTION) @@ -114,6 +115,7 @@ def _install_session_venv( "uv", "sync", "--no-dev", + "--system-site-packages", # TODO: temporarily to give access to cupy *(f"--extra={e}" for e in extras), *(f"--group={g}" for g in groups), env={"UV_PROJECT_ENVIRONMENT": session.virtualenv.location}, From a2442eacfa6f6c5fbbfc3ec7f6b3a05716284144 Mon Sep 17 00:00:00 2001 From: Hannes Vogt Date: Fri, 20 Dec 2024 00:15:05 +0100 Subject: [PATCH 75/83] provide cupy dependency --- ci/base.yml | 2 ++ noxfile.py | 3 ++- pyproject.toml | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ci/base.yml b/ci/base.yml index 131c8480b3..de374d0a2b 100644 --- a/ci/base.yml +++ b/ci/base.yml @@ -81,6 +81,7 @@ build_image_aarch64: variables: CSCS_ADDITIONAL_MOUNTS: '["/project/d121/icon4py/ci/testdata:$TEST_DATA_PATH"]' HPC_SDK_PATH: "/opt/nvidia/hpc_sdk/Linux_${ARCH}/22.11" + ICON4PY_NOX_UV_EXTRA_ARGS: "--extra=cuda11" .test_template_aarch64: extends: [.container-runner-todi-gh200, .test_template] needs: [build_image_aarch64] @@ -93,3 +94,4 @@ build_image_aarch64: # Another problem, observed in test stage, is that gpu tests hang in combination with CUDA MPS, # when high test parallelism is used. NUM_PROCESSES: 16 + ICON4PY_NOX_UV_EXTRA_ARGS: "--extra=cuda12" diff --git a/noxfile.py b/noxfile.py index 8510d9fd3a..2e6b97ce26 100644 --- a/noxfile.py +++ b/noxfile.py @@ -111,13 +111,14 @@ def _install_session_venv( groups: Sequence[str] = (), ) -> None: """Install session packages using uv.""" + extra_args = session.env.get("ICON4PY_NOX_UV_EXTRA_ARGS", "").split() session.run_install( "uv", "sync", "--no-dev", - "--system-site-packages", # TODO: temporarily to give access to cupy *(f"--extra={e}" for e in extras), *(f"--group={g}" for g in groups), + *extra_args, env={"UV_PROJECT_ENVIRONMENT": session.virtualenv.location}, ) for item in args: diff --git a/pyproject.toml b/pyproject.toml index 099543ea71..7187b3e4ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,6 +42,8 @@ distributed = ["icon4py-common[distributed]>=0.0.6"] fortran = ["icon4pytools>=0.0.6"] io = ["icon4py-common[io]>=0.0.6"] testing = ["icon4py-testing>=0.0.6"] +cuda11 = ["cupy-cuda11x>=12.0"] +cuda12 = ["cupy-cuda12x>=12.0"] [project.urls] Homepage = 'https://github.com/C2SM/icon4py' From e78c992ea58c2fef45768f9475ca4e47c1ca1b24 Mon Sep 17 00:00:00 2001 From: Edoardo Paone Date: Fri, 20 Dec 2024 06:07:29 +0100 Subject: [PATCH 76/83] try fix tests --- ci/base.yml | 5 +---- ci/docker/base.Dockerfile | 3 +-- noxfile.py | 19 +++++++++++++------ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/ci/base.yml b/ci/base.yml index de374d0a2b..2bab7c2b18 100644 --- a/ci/base.yml +++ b/ci/base.yml @@ -26,19 +26,17 @@ variables: DOCKERFILE: ci/docker/base.Dockerfile # change to 'always' if you want to rebuild, even if target tag exists already (if-not-exists is the default, i.e. we could also skip the variable) CSCS_REBUILD_POLICY: if-not-exists - DOCKER_BUILD_ARGS: '["ARCH=$ARCH", "HPC_SDK_VERSION=$HPC_SDK_VERSION", "HPC_SDK_NAME=$HPC_SDK_NAME", "CUPY_PACKAGE=$CUPY_PACKAGE", "PYVERSION=$PYVERSION", "CI_PROJECT_DIR=$CI_PROJECT_DIR"]' + DOCKER_BUILD_ARGS: '["ARCH=$ARCH", "HPC_SDK_VERSION=$HPC_SDK_VERSION", "HPC_SDK_NAME=$HPC_SDK_NAME", "PYVERSION=$PYVERSION", "CI_PROJECT_DIR=$CI_PROJECT_DIR"]' build_baseimage_x86_64: extends: [.container-builder-cscs-zen2, .build_baseimage] variables: HPC_SDK_VERSION: 22.11 HPC_SDK_NAME: "nvhpc_2022_2211_Linux_${ARCH}_cuda_11.8" - CUPY_PACKAGE: cupy-cuda11x build_baseimage_aarch64: extends: [.container-builder-cscs-gh200, .build_baseimage] variables: HPC_SDK_VERSION: 24.5 HPC_SDK_NAME: "nvhpc_2024_245_Linux_${ARCH}_cuda_12.4" - CUPY_PACKAGE: cupy-cuda12x # TODO: re-enable CI job when Todi is back in operational state when: manual @@ -60,7 +58,6 @@ build_image_aarch64: timeout: 8h image: $CSCS_REGISTRY_PATH/public/$ARCH/icon4py/icon4py-ci:$CI_COMMIT_SHA-$PYVERSION before_script: - - python -c "import cupy" - cd /icon4py - ls "${TEST_DATA_PATH}" variables: diff --git a/ci/docker/base.Dockerfile b/ci/docker/base.Dockerfile index e52e214f57..97ce4f7aef 100644 --- a/ci/docker/base.Dockerfile +++ b/ci/docker/base.Dockerfile @@ -81,5 +81,4 @@ RUN pyenv update && \ ENV PATH="/root/.pyenv/shims:${PATH}" -ARG CUPY_PACKAGE=cupy-cuda11x -RUN pip install --upgrade pip setuptools wheel uv nox clang-format ${CUPY_PACKAGE} +RUN pip install --upgrade pip setuptools wheel uv nox clang-format diff --git a/noxfile.py b/noxfile.py index 2e6b97ce26..7bc0fdc923 100644 --- a/noxfile.py +++ b/noxfile.py @@ -41,7 +41,7 @@ @nox.parametrize("subpackage", MODEL_SUBPACKAGE_PATHS) def benchmark_model(session: nox.Session, subpackage: ModelSubpackagePath) -> None: """Run pytest benchmarks for selected icon4py model subpackages.""" - _install_session_venv(session, extras=["dace", "fortran", "io", "testing"], groups=["test"]) + _install_session_venv(session, extras=["dace", "io", "testing"], groups=["test"]) with session.chdir(f"model/{subpackage}"): session.run(*"pytest -sv --benchmark-only".split(), *session.posargs) @@ -57,13 +57,20 @@ def test_model(session: nox.Session, selection: ModelTestsSubset, subpackage: Mo """Run tests for selected icon4py model subpackages.""" _install_session_venv(session, extras=["dace", "fortran", "io", "testing"], groups=["test"]) + no_test_subpackages = { # subpackages where test discovery fails because no stencil tests found + "atmosphere/subgrid_scale_physics/microphysics", + "driver", + } pytest_args = _selection_to_pytest_args(selection) with session.chdir(f"model/{subpackage}"): - session.run( - *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')}".split(), - *pytest_args, - *session.posargs - ) + if subpackage in no_test_subpackages: + session.skip(f"no tests configured for {subpackage} subpackage") + else: + session.run( + *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')}".split(), + *pytest_args, + *session.posargs + ) @nox.session(python=["3.10", "3.11"]) @nox.parametrize("subpackage", MODEL_SUBPACKAGE_PATHS) From 703bb37b46fb4fe0d9779dfbdf82e5475ca9ba4b Mon Sep 17 00:00:00 2001 From: Edoardo Paone Date: Fri, 20 Dec 2024 06:57:22 +0100 Subject: [PATCH 77/83] fix previous commit --- noxfile.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/noxfile.py b/noxfile.py index 7bc0fdc923..721a2c0bb7 100644 --- a/noxfile.py +++ b/noxfile.py @@ -57,20 +57,13 @@ def test_model(session: nox.Session, selection: ModelTestsSubset, subpackage: Mo """Run tests for selected icon4py model subpackages.""" _install_session_venv(session, extras=["dace", "fortran", "io", "testing"], groups=["test"]) - no_test_subpackages = { # subpackages where test discovery fails because no stencil tests found - "atmosphere/subgrid_scale_physics/microphysics", - "driver", - } pytest_args = _selection_to_pytest_args(selection) with session.chdir(f"model/{subpackage}"): - if subpackage in no_test_subpackages: - session.skip(f"no tests configured for {subpackage} subpackage") - else: - session.run( - *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')}".split(), - *pytest_args, - *session.posargs - ) + session.run( + *f"pytest -sv --benchmark-skip -n {session.env.get('NUM_PROCESSES', 'auto')}".split(), + *pytest_args, + *session.posargs + ) @nox.session(python=["3.10", "3.11"]) @nox.parametrize("subpackage", MODEL_SUBPACKAGE_PATHS) @@ -83,7 +76,13 @@ def test_model_datatest(session: nox.Session, subpackage: ModelSubpackagePath) - @nox.session(python=["3.10", "3.11"]) @nox.parametrize("subpackage", MODEL_SUBPACKAGE_PATHS) def test_model_stencils(session: nox.Session, subpackage: ModelSubpackagePath) -> None: - if subpackage != "common": # TODO: Enable tests + notest_subpackages = { # test discovery fails because no stencil tests found + "atmosphere/subgrid_scale_physics/microphysics", + "driver", + } + if subpackage in notest_subpackages: + session.skip(f"no tests configured for {subpackage} subpackage") + elif subpackage != "common": # TODO: Enable tests session.notify( f"test_model-{session.python}(selection='stencils', subpackage='{subpackage}')" ) From 22ff7e19a54d6040f784f7ffe26b724633719e48 Mon Sep 17 00:00:00 2001 From: Edoardo Paone Date: Fri, 20 Dec 2024 06:57:35 +0100 Subject: [PATCH 78/83] fix dace test config --- ci/dace.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/dace.yml b/ci/dace.yml index 5cc4289faf..a846c99b3e 100644 --- a/ci/dace.yml +++ b/ci/dace.yml @@ -17,11 +17,11 @@ test_model_stencils_aarch64: .test_model_datatests: stage: test script: - - nox -s "test_model_datatest-3.10(subpackage='$COMPONENT')" -- --backend=$BACKEND --verbose + - nox -s "test_model_datatest-3.10(subpackage='$COMPONENT')" -- --backend=$BACKEND parallel: matrix: - - COMPONENT: [atmosphere/diffusion/tests/diffusion_tests] - BACKEND: [dace_cpu_noopt] + - COMPONENT: [atmosphere/advection/tests/advection_tests, atmosphere/diffusion/tests/diffusion_tests, atmosphere/dycore/tests/dycore_tests] + BACKEND: [dace_cpu] test_model_datatests_x86_64: extends: [.test_model_datatests, .test_template_x86_64] test_model_datatests_aarch64: From cb20f1d61e09dc2e41659a57a0184575f8d8e31b Mon Sep 17 00:00:00 2001 From: Edoardo Paone Date: Fri, 20 Dec 2024 08:03:57 +0100 Subject: [PATCH 79/83] skip common in stencil tests --- noxfile.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/noxfile.py b/noxfile.py index 721a2c0bb7..037317ed86 100644 --- a/noxfile.py +++ b/noxfile.py @@ -81,8 +81,10 @@ def test_model_stencils(session: nox.Session, subpackage: ModelSubpackagePath) - "driver", } if subpackage in notest_subpackages: - session.skip(f"no tests configured for {subpackage} subpackage") - elif subpackage != "common": # TODO: Enable tests + session.skip(f"no tests configured") + elif subpackage == "common": + session.skip(f"tests broken") # TODO: Enable tests + else: session.notify( f"test_model-{session.python}(selection='stencils', subpackage='{subpackage}')" ) From 2cfdd2988bf642a10b8a340772fce598ae911467 Mon Sep 17 00:00:00 2001 From: Edoardo Paone Date: Fri, 20 Dec 2024 08:07:04 +0100 Subject: [PATCH 80/83] fix dace test config (1) --- ci/dace.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/dace.yml b/ci/dace.yml index a846c99b3e..2cf6366ce4 100644 --- a/ci/dace.yml +++ b/ci/dace.yml @@ -20,7 +20,7 @@ test_model_stencils_aarch64: - nox -s "test_model_datatest-3.10(subpackage='$COMPONENT')" -- --backend=$BACKEND parallel: matrix: - - COMPONENT: [atmosphere/advection/tests/advection_tests, atmosphere/diffusion/tests/diffusion_tests, atmosphere/dycore/tests/dycore_tests] + - COMPONENT: [atmosphere/advection, atmosphere/diffusion, atmosphere/dycore] BACKEND: [dace_cpu] test_model_datatests_x86_64: extends: [.test_model_datatests, .test_template_x86_64] From 97d2b1d52a253885e01cb91c4d880a76ce5d89e6 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 20 Dec 2024 14:20:04 +0100 Subject: [PATCH 81/83] Fix disjoint extra dependencies in uv config --- model/common/pyproject.toml | 6 ++- pyproject.toml | 18 ++++--- tools/pyproject.toml | 13 +---- uv.lock | 96 +++++++++++++++++++++++-------------- 4 files changed, 77 insertions(+), 56 deletions(-) diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index 893f048691..06464c9c32 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -35,8 +35,10 @@ requires-python = ">=3.10" version = "0.0.6" [project.optional-dependencies] -all = ["icon4py-common[distributed,io,dace]"] -dace = ["gt4py[dace]>=1.0.4"] +all = ["icon4py-common[dace,distributed,io]"] +cuda11 = ['cupy-cuda11x>=13.0', 'gt4py[cuda11]'] +cuda12 = ['cupy-cuda12x>=13.0', 'gt4py[cuda12]'] +dace = ["dace<1.0", "gt4py[dace]"] # TODO(egparedes): DaCe max constraint should be transformed to min constraint after updating gt4py distributed = ["ghex>=0.3.0", "mpi4py>=3.1.5"] io = [ # external dependencies diff --git a/pyproject.toml b/pyproject.toml index 7187b3e4ee..6650f6ef30 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,13 +37,13 @@ version = "0.0.6" [project.optional-dependencies] all = ["icon4py[dace,distributed,fortran,io,testing]"] -dace = ["icon4py-common[dace]>=0.0.6", "dace<1.0"] # TODO(egparedes): Dace should be removed after updating gt4py -distributed = ["icon4py-common[distributed]>=0.0.6"] +cuda11 = ["icon4py-common[cuda11]"] +cuda12 = ["icon4py-common[cuda12]"] +dace = ["icon4py-common[dace]"] +distributed = ["icon4py-common[distributed]"] fortran = ["icon4pytools>=0.0.6"] -io = ["icon4py-common[io]>=0.0.6"] -testing = ["icon4py-testing>=0.0.6"] -cuda11 = ["cupy-cuda11x>=12.0"] -cuda12 = ["cupy-cuda12x>=12.0"] +io = ["icon4py-common[io]"] +testing = ["icon4py-testing"] [project.urls] Homepage = 'https://github.com/C2SM/icon4py' @@ -95,6 +95,12 @@ dev = [ # -- uv: packages & workspace -- [tool.uv] +conflicts = [ + [ + {extra = "cuda11"}, + {extra = "cuda12"}, + ], +] [[tool.uv.index]] name = "test.pypi" diff --git a/tools/pyproject.toml b/tools/pyproject.toml index f069a6a501..960ec84734 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -41,8 +41,8 @@ requires-python = '>=3.10' version = "0.0.6" [project.optional-dependencies] -cupy11 = ['cupy-cuda11x>=13.0'] -cupy12 = ['cupy-cuda12x>=13.0'] +cuda11 = ['cupy-cuda11x>=13.0', 'gt4py[cuda11]'] +cuda12 = ['cupy-cuda12x>=13.0', 'gt4py[cuda12]'] [project.scripts] f2ser = 'icon4pytools.f2ser.cli:main' @@ -115,12 +115,3 @@ known-third-party = ['gt4py'] [tool.setuptools.packages] find = {namespaces = true, where = ['src']} - -# -- uv -- -[tool.uv] -conflicts = [ - [ - {extra = "cupy11"}, - {extra = "cupy12"} - ] -] diff --git a/uv.lock b/uv.lock index 8fff6b05ef..cd680f416f 100644 --- a/uv.lock +++ b/uv.lock @@ -5,18 +5,10 @@ resolution-markers = [ "python_full_version == '3.11.*'", "python_full_version == '3.12.*'", "python_full_version >= '3.13'", - "python_full_version < '3.11'", - "python_full_version == '3.11.*'", - "python_full_version == '3.12.*'", - "python_full_version >= '3.13'", - "python_full_version < '3.11'", - "python_full_version == '3.11.*'", - "python_full_version == '3.12.*'", - "python_full_version >= '3.13'", ] conflicts = [[ - { package = "icon4pytools", extra = "cupy11" }, - { package = "icon4pytools", extra = "cupy12" }, + { package = "icon4py", extra = "cuda11" }, + { package = "icon4py", extra = "cuda12" }, ]] [manifest] @@ -619,7 +611,7 @@ name = "colorlog" version = "6.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d3/7a/359f4d5df2353f26172b3cc39ea32daa39af8de522205f512f458923e677/colorlog-6.9.0.tar.gz", hash = "sha256:bfba54a1b93b94f54e1f4fe48395725a3d92fd2a4af702f6bd70946bdc0c6ac2", size = 16624 } wheels = [ @@ -760,7 +752,7 @@ wheels = [ [package.optional-dependencies] toml = [ - { name = "tomli", marker = "python_full_version <= '3.11'" }, + { name = "tomli", marker = "python_full_version <= '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] [[package]] @@ -909,7 +901,7 @@ dependencies = [ { name = "networkx" }, { name = "numpy" }, { name = "ply" }, - { name = "pyreadline", marker = "platform_system == 'Windows'" }, + { name = "pyreadline", marker = "platform_system == 'Windows' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, { name = "pyyaml" }, { name = "sympy" }, { name = "websockets" }, @@ -927,7 +919,7 @@ dependencies = [ { name = "click" }, { name = "cloudpickle" }, { name = "fsspec" }, - { name = "importlib-metadata", marker = "python_full_version < '3.12'" }, + { name = "importlib-metadata", marker = "python_full_version < '3.12' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, { name = "packaging" }, { name = "partd" }, { name = "pyyaml" }, @@ -1007,7 +999,7 @@ version = "1.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "packaging" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b4/57/cd53c3e335eafbb0894449af078e2b71db47e9939ce2b45013e5a9fe89b7/dependency_groups-1.3.0.tar.gz", hash = "sha256:5b9751d5d98fbd6dfd038a560a69c8382e41afcbf7ffdbcc28a2a3f85498830f", size = 9832 } wheels = [ @@ -1407,6 +1399,12 @@ dependencies = [ ] [package.optional-dependencies] +cuda11 = [ + { name = "cupy-cuda11x" }, +] +cuda12 = [ + { name = "cupy-cuda12x" }, +] dace = [ { name = "dace" }, { name = "sympy" }, @@ -1503,13 +1501,17 @@ dependencies = [ [package.optional-dependencies] all = [ - { name = "dace" }, { name = "icon4py-common", extra = ["dace", "distributed", "io"] }, { name = "icon4py-testing" }, { name = "icon4pytools" }, ] +cuda11 = [ + { name = "icon4py-common", extra = ["cuda11"] }, +] +cuda12 = [ + { name = "icon4py-common", extra = ["cuda12"] }, +] dace = [ - { name = "dace" }, { name = "icon4py-common", extra = ["dace"] }, ] distributed = [ @@ -1595,13 +1597,14 @@ typing = [ [package.metadata] requires-dist = [ - { name = "dace", marker = "extra == 'dace'", specifier = "<1.0" }, { name = "icon4py", extras = ["dace", "distributed", "fortran", "io", "testing"], marker = "extra == 'all'" }, { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, { name = "icon4py-atmosphere-microphysics", editable = "model/atmosphere/subgrid_scale_physics/microphysics" }, { name = "icon4py-common", editable = "model/common" }, + { name = "icon4py-common", extras = ["cuda11"], marker = "extra == 'cuda11'", editable = "model/common" }, + { name = "icon4py-common", extras = ["cuda12"], marker = "extra == 'cuda12'", editable = "model/common" }, { name = "icon4py-common", extras = ["dace"], marker = "extra == 'dace'", editable = "model/common" }, { name = "icon4py-common", extras = ["distributed"], marker = "extra == 'distributed'", editable = "model/common" }, { name = "icon4py-common", extras = ["io"], marker = "extra == 'io'", editable = "model/common" }, @@ -1761,6 +1764,7 @@ dependencies = [ all = [ { name = "cartopy" }, { name = "cftime" }, + { name = "dace" }, { name = "datashader" }, { name = "ghex" }, { name = "gt4py", extra = ["dace"] }, @@ -1772,7 +1776,16 @@ all = [ { name = "uxarray" }, { name = "xarray", extra = ["complete"] }, ] +cuda11 = [ + { name = "cupy-cuda11x" }, + { name = "gt4py", extra = ["cuda11"] }, +] +cuda12 = [ + { name = "cupy-cuda12x" }, + { name = "gt4py", extra = ["cuda12"] }, +] dace = [ + { name = "dace" }, { name = "gt4py", extra = ["dace"] }, ] distributed = [ @@ -1795,12 +1808,17 @@ io = [ requires-dist = [ { name = "cartopy", marker = "extra == 'io'", specifier = ">=0.22.0" }, { name = "cftime", marker = "extra == 'io'", specifier = ">=1.6.3" }, + { name = "cupy-cuda11x", marker = "extra == 'cuda11'", specifier = ">=13.0" }, + { name = "cupy-cuda12x", marker = "extra == 'cuda12'", specifier = ">=13.0" }, + { name = "dace", marker = "extra == 'dace'", specifier = "<1.0" }, { name = "datashader", marker = "extra == 'io'", specifier = ">=0.16.1" }, { name = "ghex", marker = "extra == 'distributed'", specifier = ">=0.3.0" }, { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "gt4py", extras = ["cuda11"], marker = "extra == 'cuda11'", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "gt4py", extras = ["cuda12"], marker = "extra == 'cuda12'", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "gt4py", extras = ["dace"], marker = "extra == 'dace'", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "holoviews", marker = "extra == 'io'", specifier = ">=1.16.0" }, - { name = "icon4py-common", extras = ["distributed", "io", "dace"], marker = "extra == 'all'", editable = "model/common" }, + { name = "icon4py-common", extras = ["dace", "distributed", "io"], marker = "extra == 'all'", editable = "model/common" }, { name = "mpi4py", marker = "extra == 'distributed'", specifier = ">=3.1.5" }, { name = "netcdf4", marker = "extra == 'io'", specifier = ">=1.6.1" }, { name = "numpy", marker = "extra == 'io'", specifier = ">=1.23.3" }, @@ -1883,20 +1901,24 @@ dependencies = [ ] [package.optional-dependencies] -cupy11 = [ +cuda11 = [ { name = "cupy-cuda11x" }, + { name = "gt4py", extra = ["cuda11"] }, ] -cupy12 = [ +cuda12 = [ { name = "cupy-cuda12x" }, + { name = "gt4py", extra = ["cuda12"] }, ] [package.metadata] requires-dist = [ { name = "cffi", specifier = ">=1.5" }, - { name = "cupy-cuda11x", marker = "extra == 'cupy11'", specifier = ">=13.0" }, - { name = "cupy-cuda12x", marker = "extra == 'cupy12'", specifier = ">=13.0" }, + { name = "cupy-cuda11x", marker = "extra == 'cuda11'", specifier = ">=13.0" }, + { name = "cupy-cuda12x", marker = "extra == 'cuda12'", specifier = ">=13.0" }, { name = "fprettify", specifier = ">=0.3.7" }, { name = "gt4py", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "gt4py", extras = ["cuda11"], marker = "extra == 'cuda11'", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, + { name = "gt4py", extras = ["cuda12"], marker = "extra == 'cuda12'", git = "https://github.com/GridTools/gt4py?tag=icon4py_20241113" }, { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, @@ -1937,7 +1959,7 @@ name = "importlib-metadata" version = "8.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp", marker = "python_full_version < '3.12'" }, + { name = "zipp", marker = "python_full_version < '3.12' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } wheels = [ @@ -2405,7 +2427,7 @@ version = "1.13.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mypy-extensions" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e8/21/7e9e523537991d145ab8a0a2fd98548d67646dc2aaaf6091c31ad883e7c1/mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e", size = 3152532 } @@ -2581,7 +2603,7 @@ dependencies = [ { name = "colorlog" }, { name = "dependency-groups" }, { name = "packaging" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, { name = "virtualenv" }, ] @@ -3310,12 +3332,12 @@ name = "pytest" version = "8.3.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, { name = "iniconfig" }, { name = "packaging" }, { name = "pluggy" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/05/35/30e0d83068951d90a01852cb1cef56e5d8a09d20c7f511634cc2f7e0372a/pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761", size = 1445919 } wheels = [ @@ -3524,7 +3546,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 } wheels = [ @@ -3550,7 +3572,7 @@ name = "ruamel-yaml" version = "0.18.6" 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 = "(python_full_version < '3.13' and platform_python_implementation == 'CPython') or (python_full_version >= '3.13' and extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12') or (platform_python_implementation != 'CPython' and extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/29/81/4dfc17eb6ebb1aac314a3eb863c1325b907863a1b8b1382cdffcb6ac0ed9/ruamel.yaml-0.18.6.tar.gz", hash = "sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b", size = 143362 } wheels = [ @@ -3761,7 +3783,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "packaging" }, { name = "setuptools" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/4f/a4/00a9ac1b555294710d4a68d2ce8dfdf39d72aa4d769a7395d05218d88a42/setuptools_scm-8.1.0.tar.gz", hash = "sha256:42dea1b65771cba93b7a515d65a65d8246e560768a66b9106a592c8e7f26c8a7", size = 76465 } wheels = [ @@ -3869,7 +3891,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "alabaster" }, { name = "babel" }, - { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, { name = "docutils" }, { name = "imagesize" }, { name = "jinja2" }, @@ -3883,7 +3905,7 @@ dependencies = [ { name = "sphinxcontrib-jsmath" }, { name = "sphinxcontrib-qthelp" }, { name = "sphinxcontrib-serializinghtml" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b7/0a/b88033900b1582f5ed8f880263363daef968d1cd064175e32abfd9714410/sphinx-7.3.7.tar.gz", hash = "sha256:a4a7db75ed37531c05002d56ed6948d4c42f473a36f46e1382b0bd76ca9627bc", size = 7094808 } wheels = [ @@ -3909,7 +3931,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jinja2" }, { name = "markupsafe" }, - { name = "standard-imghdr", marker = "python_full_version >= '3.13'" }, + { name = "standard-imghdr", marker = "python_full_version >= '3.13' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/26/df/27282da6f8c549f765beca9de1a5fc56f9651ed87711a5cac1e914137753/sphinx_jinja2_compat-0.3.0.tar.gz", hash = "sha256:f3c1590b275f42e7a654e081db5e3e5fb97f515608422bde94015ddf795dfe7c", size = 4998 } wheels = [ @@ -4238,7 +4260,7 @@ name = "tqdm" version = "4.67.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "platform_system == 'Windows'" }, + { name = "colorama", marker = "platform_system == 'Windows' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } wheels = [ @@ -4500,7 +4522,7 @@ version = "2.18.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "asciitree" }, - { name = "fasteners", marker = "sys_platform != 'emscripten'" }, + { name = "fasteners", marker = "sys_platform != 'emscripten' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, { name = "numcodecs" }, { name = "numpy" }, ] From c377d24355f0fa39ce5e409db8ecec79e721c402 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 20 Dec 2024 14:43:17 +0100 Subject: [PATCH 82/83] Refactor ICON4PY_NOX_UV_EXTRA_ARGS --- ci/base.yml | 4 ++-- noxfile.py | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ci/base.yml b/ci/base.yml index 2bab7c2b18..8cea4074eb 100644 --- a/ci/base.yml +++ b/ci/base.yml @@ -78,7 +78,7 @@ build_image_aarch64: variables: CSCS_ADDITIONAL_MOUNTS: '["/project/d121/icon4py/ci/testdata:$TEST_DATA_PATH"]' HPC_SDK_PATH: "/opt/nvidia/hpc_sdk/Linux_${ARCH}/22.11" - ICON4PY_NOX_UV_EXTRA_ARGS: "--extra=cuda11" + ICON4PY_NOX_UV_CUSTOM_SESSION_EXTRAS: "cuda11" .test_template_aarch64: extends: [.container-runner-todi-gh200, .test_template] needs: [build_image_aarch64] @@ -91,4 +91,4 @@ build_image_aarch64: # Another problem, observed in test stage, is that gpu tests hang in combination with CUDA MPS, # when high test parallelism is used. NUM_PROCESSES: 16 - ICON4PY_NOX_UV_EXTRA_ARGS: "--extra=cuda12" + ICON4PY_NOX_UV_CUSTOM_SESSION_EXTRAS: "cuda12" diff --git a/noxfile.py b/noxfile.py index 037317ed86..77d645f1bb 100644 --- a/noxfile.py +++ b/noxfile.py @@ -8,6 +8,7 @@ from __future__ import annotations +import re from collections.abc import Sequence from typing import Final, Literal, TypeAlias @@ -119,14 +120,14 @@ def _install_session_venv( groups: Sequence[str] = (), ) -> None: """Install session packages using uv.""" - extra_args = session.env.get("ICON4PY_NOX_UV_EXTRA_ARGS", "").split() + if (env_extras := session.env.get("ICON4PY_NOX_UV_CUSTOM_SESSION_EXTRAS", "")): + extras = [*extras, *re.split(r'\W+', env_extras)] session.run_install( "uv", "sync", "--no-dev", *(f"--extra={e}" for e in extras), *(f"--group={g}" for g in groups), - *extra_args, env={"UV_PROJECT_ENVIRONMENT": session.virtualenv.location}, ) for item in args: From 3e04165054c0489e9381af6e538f26b2537efef0 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Paredes Date: Fri, 20 Dec 2024 14:48:44 +0100 Subject: [PATCH 83/83] Apply Edoardo's suggestion to fix DaCe --- ci/dace.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/dace.yml b/ci/dace.yml index 2cf6366ce4..c288f6fbdb 100644 --- a/ci/dace.yml +++ b/ci/dace.yml @@ -20,7 +20,8 @@ test_model_stencils_aarch64: - nox -s "test_model_datatest-3.10(subpackage='$COMPONENT')" -- --backend=$BACKEND parallel: matrix: - - COMPONENT: [atmosphere/advection, atmosphere/diffusion, atmosphere/dycore] + # TODO(edopao): Add more components once they work fine with DaCe + - COMPONENT: [atmosphere/diffusion, atmosphere/dycore] BACKEND: [dace_cpu] test_model_datatests_x86_64: extends: [.test_model_datatests, .test_template_x86_64]