From 260cdde691dbf66ef3742b791f82a35cec20cd26 Mon Sep 17 00:00:00 2001 From: Stanislav Geidl Date: Sun, 13 Jul 2025 14:50:29 +0200 Subject: [PATCH 1/6] maintenance and improvements --- .pre-commit-config.yaml | 15 ++ README.md | 4 +- ciftools/binary/data_types.py | 2 + pyproject.toml | 21 ++- requirements.txt | 2 - setup.cfg | 9 - setup.py | 12 -- uv.lock | 340 ++++++++++++++++++++++++++++++++++ 8 files changed, 374 insertions(+), 31 deletions(-) create mode 100644 .pre-commit-config.yaml delete mode 100644 requirements.txt delete mode 100644 setup.cfg delete mode 100644 setup.py create mode 100644 uv.lock diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..e6e0191 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,15 @@ +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v3.2.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files + +- repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.12.3 + hooks: + - id: ruff + args: [ --fix ] + - id: ruff-format diff --git a/README.md b/README.md index a5752a2..4e68bed 100644 --- a/README.md +++ b/README.md @@ -7,5 +7,5 @@ A library for reading and writing (Binary)CIF files in Python. ## Linting ``` -autoflake --remove-all-unused-imports --remove-unused-variables --ignore-init-module-imports -ir . && isort . && black . -``` \ No newline at end of file +pre-commit run -a +``` diff --git a/ciftools/binary/data_types.py b/ciftools/binary/data_types.py index 9b5cd30..954849e 100644 --- a/ciftools/binary/data_types.py +++ b/ciftools/binary/data_types.py @@ -8,6 +8,7 @@ class DataTypeEnum(IntEnum): Int8 = 1 Int16 = 2 Int32 = 3 + Int64 = 8 Uint8 = 4 Uint16 = 5 Uint32 = 6 @@ -20,6 +21,7 @@ class DataType: DataTypeEnum.Int8.value: "i1", DataTypeEnum.Int16.value: "i2", DataTypeEnum.Int32.value: "i4", + DataTypeEnum.Int64.value: "i8", DataTypeEnum.Uint8.value: "u1", DataTypeEnum.Uint16.value: "u2", DataTypeEnum.Uint32.value: "u4", diff --git a/pyproject.toml b/pyproject.toml index 4ee7aa2..940893a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,20 +1,29 @@ [project] name = "ciftools" -version = "0.2.0" +version = "0.2.1" authors = [ - { name="Ravi Jose Tristao Ramos", email="souoravi@gmail.com" }, { name="David Sehnal", email="david.sehnal@gmail.com" }, + { name="Ravi Jose Tristao Ramos", email="souoravi@gmail.com" }, ] description = "A library for handling BinaryCIF files." readme = "README.md" -license = { file="LICENSE" } +license = "MIT" +license-files = ["LICENSE"] requires-python = ">=3.9" classifiers = [ "Programming Language :: Python :: 3", - "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ] +dependencies = [ + "msgpack>=1.0.3", + "numba>=0.56.2", + "numpy>=1.11.1", +] -[tool.black] +[tool.ruff] +target-version = "py39" line-length = 120 -target-version = ['py39'] +indent-width = 4 + +[tool.ruff.lint] +select = ["E4", "E7", "E9", "F", "I"] diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index aade9d2..0000000 --- a/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -numpy >= 1.11.1 -msgpack >= 1.0.3 \ No newline at end of file diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 6b4d10c..0000000 --- a/setup.cfg +++ /dev/null @@ -1,9 +0,0 @@ -[isort] -line_length=120 -include_trailing_comma=True -force_grid_wrap=0 -use_parentheses=True -multi_line_output=3 -skip_glob = - */__init__.py -src_paths = ["ciftools"] \ No newline at end of file diff --git a/setup.py b/setup.py deleted file mode 100644 index 2f7a8a2..0000000 --- a/setup.py +++ /dev/null @@ -1,12 +0,0 @@ -from setuptools import find_packages, setup - -setup( - name="CifTools", - version="0.2.0", - url="https://github.com/molstar/ciftools-python", - author="Ravi Jose Tristao Ramos, David Sehnal", - author_email="souoravi@gmail.com, david.sehnal@gmail.com", - description="A library for handling (Binary)CIF files.", - packages=find_packages(exclude=["tests"]), - install_requires=["numpy >= 1.11.1", "msgpack >= 1.0.3", "numba >= 0.56.2"], -) diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..d78a6f1 --- /dev/null +++ b/uv.lock @@ -0,0 +1,340 @@ +version = 1 +revision = 1 +requires-python = ">=3.9" +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", + "python_full_version < '3.10'", +] + +[[package]] +name = "ciftools" +version = "0.2.1" +source = { virtual = "." } +dependencies = [ + { name = "msgpack" }, + { name = "numba", version = "0.60.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "numba", version = "0.61.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] + +[package.metadata] +requires-dist = [ + { name = "msgpack", specifier = ">=1.0.3" }, + { name = "numba", specifier = ">=0.56.2" }, + { name = "numpy", specifier = ">=1.11.1" }, +] + +[[package]] +name = "llvmlite" +version = "0.43.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +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/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 }, + { url = "https://files.pythonhosted.org/packages/2a/73/12925b1bbb3c2beb6d96f892ef5b4d742c34f00ddb9f4a125e9e87b22f52/llvmlite-0.43.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9cd2a7376f7b3367019b664c21f0c61766219faa3b03731113ead75107f3b66c", size = 31064410 }, + { url = "https://files.pythonhosted.org/packages/cc/61/58c70aa0808a8cba825a7d98cc65bef4801b99328fba80837bfcb5fc767f/llvmlite-0.43.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18e9953c748b105668487b7c81a3e97b046d8abf95c4ddc0cd3c94f4e4651ae8", size = 28793145 }, + { url = "https://files.pythonhosted.org/packages/c8/c6/9324eb5de2ba9d99cbed853d85ba7a318652a48e077797bec27cf40f911d/llvmlite-0.43.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74937acd22dc11b33946b67dca7680e6d103d6e90eeaaaf932603bec6fe7b03a", size = 42857276 }, + { url = "https://files.pythonhosted.org/packages/e0/d0/889e9705107db7b1ec0767b03f15d7b95b4c4f9fdf91928ab1c7e9ffacf6/llvmlite-0.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc9efc739cc6ed760f795806f67889923f7274276f0eb45092a1473e40d9b867", size = 43871777 }, + { url = "https://files.pythonhosted.org/packages/df/41/73cc26a2634b538cfe813f618c91e7e9960b8c163f8f0c94a2b0f008b9da/llvmlite-0.43.0-cp39-cp39-win_amd64.whl", hash = "sha256:47e147cdda9037f94b399bf03bfd8a6b6b1f2f90be94a454e3386f006455a9b4", size = 28123489 }, +] + +[[package]] +name = "llvmlite" +version = "0.44.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/89/6a/95a3d3610d5c75293d5dbbb2a76480d5d4eeba641557b69fe90af6c5b84e/llvmlite-0.44.0.tar.gz", hash = "sha256:07667d66a5d150abed9157ab6c0b9393c9356f229784a4385c02f99e94fc94d4", size = 171880 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/75/d4863ddfd8ab5f6e70f4504cf8cc37f4e986ec6910f4ef8502bb7d3c1c71/llvmlite-0.44.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:9fbadbfba8422123bab5535b293da1cf72f9f478a65645ecd73e781f962ca614", size = 28132306 }, + { url = "https://files.pythonhosted.org/packages/37/d9/6e8943e1515d2f1003e8278819ec03e4e653e2eeb71e4d00de6cfe59424e/llvmlite-0.44.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cccf8eb28f24840f2689fb1a45f9c0f7e582dd24e088dcf96e424834af11f791", size = 26201096 }, + { url = "https://files.pythonhosted.org/packages/aa/46/8ffbc114def88cc698906bf5acab54ca9fdf9214fe04aed0e71731fb3688/llvmlite-0.44.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7202b678cdf904823c764ee0fe2dfe38a76981f4c1e51715b4cb5abb6cf1d9e8", size = 42361859 }, + { url = "https://files.pythonhosted.org/packages/30/1c/9366b29ab050a726af13ebaae8d0dff00c3c58562261c79c635ad4f5eb71/llvmlite-0.44.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40526fb5e313d7b96bda4cbb2c85cd5374e04d80732dd36a282d72a560bb6408", size = 41184199 }, + { url = "https://files.pythonhosted.org/packages/69/07/35e7c594b021ecb1938540f5bce543ddd8713cff97f71d81f021221edc1b/llvmlite-0.44.0-cp310-cp310-win_amd64.whl", hash = "sha256:41e3839150db4330e1b2716c0be3b5c4672525b4c9005e17c7597f835f351ce2", size = 30332381 }, + { url = "https://files.pythonhosted.org/packages/b5/e2/86b245397052386595ad726f9742e5223d7aea999b18c518a50e96c3aca4/llvmlite-0.44.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:eed7d5f29136bda63b6d7804c279e2b72e08c952b7c5df61f45db408e0ee52f3", size = 28132305 }, + { url = "https://files.pythonhosted.org/packages/ff/ec/506902dc6870249fbe2466d9cf66d531265d0f3a1157213c8f986250c033/llvmlite-0.44.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ace564d9fa44bb91eb6e6d8e7754977783c68e90a471ea7ce913bff30bd62427", size = 26201090 }, + { url = "https://files.pythonhosted.org/packages/99/fe/d030f1849ebb1f394bb3f7adad5e729b634fb100515594aca25c354ffc62/llvmlite-0.44.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5d22c3bfc842668168a786af4205ec8e3ad29fb1bc03fd11fd48460d0df64c1", size = 42361858 }, + { url = "https://files.pythonhosted.org/packages/d7/7a/ce6174664b9077fc673d172e4c888cb0b128e707e306bc33fff8c2035f0d/llvmlite-0.44.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f01a394e9c9b7b1d4e63c327b096d10f6f0ed149ef53d38a09b3749dcf8c9610", size = 41184200 }, + { url = "https://files.pythonhosted.org/packages/5f/c6/258801143975a6d09a373f2641237992496e15567b907a4d401839d671b8/llvmlite-0.44.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8489634d43c20cd0ad71330dde1d5bc7b9966937a263ff1ec1cebb90dc50955", size = 30331193 }, + { url = "https://files.pythonhosted.org/packages/15/86/e3c3195b92e6e492458f16d233e58a1a812aa2bfbef9bdd0fbafcec85c60/llvmlite-0.44.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:1d671a56acf725bf1b531d5ef76b86660a5ab8ef19bb6a46064a705c6ca80aad", size = 28132297 }, + { url = "https://files.pythonhosted.org/packages/d6/53/373b6b8be67b9221d12b24125fd0ec56b1078b660eeae266ec388a6ac9a0/llvmlite-0.44.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f79a728e0435493611c9f405168682bb75ffd1fbe6fc360733b850c80a026db", size = 26201105 }, + { url = "https://files.pythonhosted.org/packages/cb/da/8341fd3056419441286c8e26bf436923021005ece0bff5f41906476ae514/llvmlite-0.44.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0143a5ef336da14deaa8ec26c5449ad5b6a2b564df82fcef4be040b9cacfea9", size = 42361901 }, + { url = "https://files.pythonhosted.org/packages/53/ad/d79349dc07b8a395a99153d7ce8b01d6fcdc9f8231355a5df55ded649b61/llvmlite-0.44.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d752f89e31b66db6f8da06df8b39f9b91e78c5feea1bf9e8c1fba1d1c24c065d", size = 41184247 }, + { url = "https://files.pythonhosted.org/packages/e2/3b/a9a17366af80127bd09decbe2a54d8974b6d8b274b39bf47fbaedeec6307/llvmlite-0.44.0-cp312-cp312-win_amd64.whl", hash = "sha256:eae7e2d4ca8f88f89d315b48c6b741dcb925d6a1042da694aa16ab3dd4cbd3a1", size = 30332380 }, + { url = "https://files.pythonhosted.org/packages/89/24/4c0ca705a717514c2092b18476e7a12c74d34d875e05e4d742618ebbf449/llvmlite-0.44.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:319bddd44e5f71ae2689859b7203080716448a3cd1128fb144fe5c055219d516", size = 28132306 }, + { url = "https://files.pythonhosted.org/packages/01/cf/1dd5a60ba6aee7122ab9243fd614abcf22f36b0437cbbe1ccf1e3391461c/llvmlite-0.44.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c58867118bad04a0bb22a2e0068c693719658105e40009ffe95c7000fcde88e", size = 26201090 }, + { url = "https://files.pythonhosted.org/packages/d2/1b/656f5a357de7135a3777bd735cc7c9b8f23b4d37465505bd0eaf4be9befe/llvmlite-0.44.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46224058b13c96af1365290bdfebe9a6264ae62fb79b2b55693deed11657a8bf", size = 42361904 }, + { url = "https://files.pythonhosted.org/packages/d8/e1/12c5f20cb9168fb3464a34310411d5ad86e4163c8ff2d14a2b57e5cc6bac/llvmlite-0.44.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa0097052c32bf721a4efc03bd109d335dfa57d9bffb3d4c24cc680711b8b4fc", size = 41184245 }, + { url = "https://files.pythonhosted.org/packages/d0/81/e66fc86539293282fd9cb7c9417438e897f369e79ffb62e1ae5e5154d4dd/llvmlite-0.44.0-cp313-cp313-win_amd64.whl", hash = "sha256:2fb7c4f2fb86cbae6dca3db9ab203eeea0e22d73b99bc2341cdf9de93612e930", size = 30331193 }, +] + +[[package]] +name = "msgpack" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz", hash = "sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd", size = 173555 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/52/f30da112c1dc92cf64f57d08a273ac771e7b29dea10b4b30369b2d7e8546/msgpack-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:353b6fc0c36fde68b661a12949d7d49f8f51ff5fa019c1e47c87c4ff34b080ed", size = 81799 }, + { url = "https://files.pythonhosted.org/packages/e4/35/7bfc0def2f04ab4145f7f108e3563f9b4abae4ab0ed78a61f350518cc4d2/msgpack-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:79c408fcf76a958491b4e3b103d1c417044544b68e96d06432a189b43d1215c8", size = 78278 }, + { url = "https://files.pythonhosted.org/packages/e8/c5/df5d6c1c39856bc55f800bf82778fd4c11370667f9b9e9d51b2f5da88f20/msgpack-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78426096939c2c7482bf31ef15ca219a9e24460289c00dd0b94411040bb73ad2", size = 402805 }, + { url = "https://files.pythonhosted.org/packages/20/8e/0bb8c977efecfe6ea7116e2ed73a78a8d32a947f94d272586cf02a9757db/msgpack-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b17ba27727a36cb73aabacaa44b13090feb88a01d012c0f4be70c00f75048b4", size = 408642 }, + { url = "https://files.pythonhosted.org/packages/59/a1/731d52c1aeec52006be6d1f8027c49fdc2cfc3ab7cbe7c28335b2910d7b6/msgpack-1.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a17ac1ea6ec3c7687d70201cfda3b1e8061466f28f686c24f627cae4ea8efd0", size = 395143 }, + { url = "https://files.pythonhosted.org/packages/2b/92/b42911c52cda2ba67a6418ffa7d08969edf2e760b09015593c8a8a27a97d/msgpack-1.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:88d1e966c9235c1d4e2afac21ca83933ba59537e2e2727a999bf3f515ca2af26", size = 395986 }, + { url = "https://files.pythonhosted.org/packages/61/dc/8ae165337e70118d4dab651b8b562dd5066dd1e6dd57b038f32ebc3e2f07/msgpack-1.1.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f6d58656842e1b2ddbe07f43f56b10a60f2ba5826164910968f5933e5178af75", size = 402682 }, + { url = "https://files.pythonhosted.org/packages/58/27/555851cb98dcbd6ce041df1eacb25ac30646575e9cd125681aa2f4b1b6f1/msgpack-1.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96decdfc4adcbc087f5ea7ebdcfd3dee9a13358cae6e81d54be962efc38f6338", size = 406368 }, + { url = "https://files.pythonhosted.org/packages/d4/64/39a26add4ce16f24e99eabb9005e44c663db00e3fce17d4ae1ae9d61df99/msgpack-1.1.1-cp310-cp310-win32.whl", hash = "sha256:6640fd979ca9a212e4bcdf6eb74051ade2c690b862b679bfcb60ae46e6dc4bfd", size = 65004 }, + { url = "https://files.pythonhosted.org/packages/7d/18/73dfa3e9d5d7450d39debde5b0d848139f7de23bd637a4506e36c9800fd6/msgpack-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:8b65b53204fe1bd037c40c4148d00ef918eb2108d24c9aaa20bc31f9810ce0a8", size = 71548 }, + { url = "https://files.pythonhosted.org/packages/7f/83/97f24bf9848af23fe2ba04380388216defc49a8af6da0c28cc636d722502/msgpack-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:71ef05c1726884e44f8b1d1773604ab5d4d17729d8491403a705e649116c9558", size = 82728 }, + { url = "https://files.pythonhosted.org/packages/aa/7f/2eaa388267a78401f6e182662b08a588ef4f3de6f0eab1ec09736a7aaa2b/msgpack-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:36043272c6aede309d29d56851f8841ba907a1a3d04435e43e8a19928e243c1d", size = 79279 }, + { url = "https://files.pythonhosted.org/packages/f8/46/31eb60f4452c96161e4dfd26dbca562b4ec68c72e4ad07d9566d7ea35e8a/msgpack-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a32747b1b39c3ac27d0670122b57e6e57f28eefb725e0b625618d1b59bf9d1e0", size = 423859 }, + { url = "https://files.pythonhosted.org/packages/45/16/a20fa8c32825cc7ae8457fab45670c7a8996d7746ce80ce41cc51e3b2bd7/msgpack-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a8b10fdb84a43e50d38057b06901ec9da52baac6983d3f709d8507f3889d43f", size = 429975 }, + { url = "https://files.pythonhosted.org/packages/86/ea/6c958e07692367feeb1a1594d35e22b62f7f476f3c568b002a5ea09d443d/msgpack-1.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba0c325c3f485dc54ec298d8b024e134acf07c10d494ffa24373bea729acf704", size = 413528 }, + { url = "https://files.pythonhosted.org/packages/75/05/ac84063c5dae79722bda9f68b878dc31fc3059adb8633c79f1e82c2cd946/msgpack-1.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:88daaf7d146e48ec71212ce21109b66e06a98e5e44dca47d853cbfe171d6c8d2", size = 413338 }, + { url = "https://files.pythonhosted.org/packages/69/e8/fe86b082c781d3e1c09ca0f4dacd457ede60a13119b6ce939efe2ea77b76/msgpack-1.1.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8b55ea20dc59b181d3f47103f113e6f28a5e1c89fd5b67b9140edb442ab67f2", size = 422658 }, + { url = "https://files.pythonhosted.org/packages/3b/2b/bafc9924df52d8f3bb7c00d24e57be477f4d0f967c0a31ef5e2225e035c7/msgpack-1.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4a28e8072ae9779f20427af07f53bbb8b4aa81151054e882aee333b158da8752", size = 427124 }, + { url = "https://files.pythonhosted.org/packages/a2/3b/1f717e17e53e0ed0b68fa59e9188f3f610c79d7151f0e52ff3cd8eb6b2dc/msgpack-1.1.1-cp311-cp311-win32.whl", hash = "sha256:7da8831f9a0fdb526621ba09a281fadc58ea12701bc709e7b8cbc362feabc295", size = 65016 }, + { url = "https://files.pythonhosted.org/packages/48/45/9d1780768d3b249accecc5a38c725eb1e203d44a191f7b7ff1941f7df60c/msgpack-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:5fd1b58e1431008a57247d6e7cc4faa41c3607e8e7d4aaf81f7c29ea013cb458", size = 72267 }, + { url = "https://files.pythonhosted.org/packages/e3/26/389b9c593eda2b8551b2e7126ad3a06af6f9b44274eb3a4f054d48ff7e47/msgpack-1.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae497b11f4c21558d95de9f64fff7053544f4d1a17731c866143ed6bb4591238", size = 82359 }, + { url = "https://files.pythonhosted.org/packages/ab/65/7d1de38c8a22cf8b1551469159d4b6cf49be2126adc2482de50976084d78/msgpack-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157", size = 79172 }, + { url = "https://files.pythonhosted.org/packages/0f/bd/cacf208b64d9577a62c74b677e1ada005caa9b69a05a599889d6fc2ab20a/msgpack-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f64ae8fe7ffba251fecb8408540c34ee9df1c26674c50c4544d72dbf792e5ce", size = 425013 }, + { url = "https://files.pythonhosted.org/packages/4d/ec/fd869e2567cc9c01278a736cfd1697941ba0d4b81a43e0aa2e8d71dab208/msgpack-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a494554874691720ba5891c9b0b39474ba43ffb1aaf32a5dac874effb1619e1a", size = 426905 }, + { url = "https://files.pythonhosted.org/packages/55/2a/35860f33229075bce803a5593d046d8b489d7ba2fc85701e714fc1aaf898/msgpack-1.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb643284ab0ed26f6957d969fe0dd8bb17beb567beb8998140b5e38a90974f6c", size = 407336 }, + { url = "https://files.pythonhosted.org/packages/8c/16/69ed8f3ada150bf92745fb4921bd621fd2cdf5a42e25eb50bcc57a5328f0/msgpack-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d275a9e3c81b1093c060c3837e580c37f47c51eca031f7b5fb76f7b8470f5f9b", size = 409485 }, + { url = "https://files.pythonhosted.org/packages/c6/b6/0c398039e4c6d0b2e37c61d7e0e9d13439f91f780686deb8ee64ecf1ae71/msgpack-1.1.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fd6b577e4541676e0cc9ddc1709d25014d3ad9a66caa19962c4f5de30fc09ef", size = 412182 }, + { url = "https://files.pythonhosted.org/packages/b8/d0/0cf4a6ecb9bc960d624c93effaeaae75cbf00b3bc4a54f35c8507273cda1/msgpack-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb29aaa613c0a1c40d1af111abf025f1732cab333f96f285d6a93b934738a68a", size = 419883 }, + { url = "https://files.pythonhosted.org/packages/62/83/9697c211720fa71a2dfb632cad6196a8af3abea56eece220fde4674dc44b/msgpack-1.1.1-cp312-cp312-win32.whl", hash = "sha256:870b9a626280c86cff9c576ec0d9cbcc54a1e5ebda9cd26dab12baf41fee218c", size = 65406 }, + { url = "https://files.pythonhosted.org/packages/c0/23/0abb886e80eab08f5e8c485d6f13924028602829f63b8f5fa25a06636628/msgpack-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:5692095123007180dca3e788bb4c399cc26626da51629a31d40207cb262e67f4", size = 72558 }, + { url = "https://files.pythonhosted.org/packages/a1/38/561f01cf3577430b59b340b51329803d3a5bf6a45864a55f4ef308ac11e3/msgpack-1.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3765afa6bd4832fc11c3749be4ba4b69a0e8d7b728f78e68120a157a4c5d41f0", size = 81677 }, + { url = "https://files.pythonhosted.org/packages/09/48/54a89579ea36b6ae0ee001cba8c61f776451fad3c9306cd80f5b5c55be87/msgpack-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8ddb2bcfd1a8b9e431c8d6f4f7db0773084e107730ecf3472f1dfe9ad583f3d9", size = 78603 }, + { url = "https://files.pythonhosted.org/packages/a0/60/daba2699b308e95ae792cdc2ef092a38eb5ee422f9d2fbd4101526d8a210/msgpack-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:196a736f0526a03653d829d7d4c5500a97eea3648aebfd4b6743875f28aa2af8", size = 420504 }, + { url = "https://files.pythonhosted.org/packages/20/22/2ebae7ae43cd8f2debc35c631172ddf14e2a87ffcc04cf43ff9df9fff0d3/msgpack-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d592d06e3cc2f537ceeeb23d38799c6ad83255289bb84c2e5792e5a8dea268a", size = 423749 }, + { url = "https://files.pythonhosted.org/packages/40/1b/54c08dd5452427e1179a40b4b607e37e2664bca1c790c60c442c8e972e47/msgpack-1.1.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4df2311b0ce24f06ba253fda361f938dfecd7b961576f9be3f3fbd60e87130ac", size = 404458 }, + { url = "https://files.pythonhosted.org/packages/2e/60/6bb17e9ffb080616a51f09928fdd5cac1353c9becc6c4a8abd4e57269a16/msgpack-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e4141c5a32b5e37905b5940aacbc59739f036930367d7acce7a64e4dec1f5e0b", size = 405976 }, + { url = "https://files.pythonhosted.org/packages/ee/97/88983e266572e8707c1f4b99c8fd04f9eb97b43f2db40e3172d87d8642db/msgpack-1.1.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b1ce7f41670c5a69e1389420436f41385b1aa2504c3b0c30620764b15dded2e7", size = 408607 }, + { url = "https://files.pythonhosted.org/packages/bc/66/36c78af2efaffcc15a5a61ae0df53a1d025f2680122e2a9eb8442fed3ae4/msgpack-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4147151acabb9caed4e474c3344181e91ff7a388b888f1e19ea04f7e73dc7ad5", size = 424172 }, + { url = "https://files.pythonhosted.org/packages/8c/87/a75eb622b555708fe0427fab96056d39d4c9892b0c784b3a721088c7ee37/msgpack-1.1.1-cp313-cp313-win32.whl", hash = "sha256:500e85823a27d6d9bba1d057c871b4210c1dd6fb01fbb764e37e4e8847376323", size = 65347 }, + { url = "https://files.pythonhosted.org/packages/ca/91/7dc28d5e2a11a5ad804cf2b7f7a5fcb1eb5a4966d66a5d2b41aee6376543/msgpack-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:6d489fba546295983abd142812bda76b57e33d0b9f5d5b71c09a583285506f69", size = 72341 }, + { url = "https://files.pythonhosted.org/packages/1f/bd/0792be119d7fe7dc2148689ef65c90507d82d20a204aab3b98c74a1f8684/msgpack-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5be6b6bc52fad84d010cb45433720327ce886009d862f46b26d4d154001994b", size = 81882 }, + { url = "https://files.pythonhosted.org/packages/75/77/ce06c8e26a816ae8730a8e030d263c5289adcaff9f0476f9b270bdd7c5c2/msgpack-1.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3a89cd8c087ea67e64844287ea52888239cbd2940884eafd2dcd25754fb72232", size = 78414 }, + { url = "https://files.pythonhosted.org/packages/73/27/190576c497677fb4a0d05d896b24aea6cdccd910f206aaa7b511901befed/msgpack-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d75f3807a9900a7d575d8d6674a3a47e9f227e8716256f35bc6f03fc597ffbf", size = 400927 }, + { url = "https://files.pythonhosted.org/packages/ed/af/6a0aa5a06762e70726ec3c10fb966600d84a7220b52635cb0ab2dc64d32f/msgpack-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d182dac0221eb8faef2e6f44701812b467c02674a322c739355c39e94730cdbf", size = 405903 }, + { url = "https://files.pythonhosted.org/packages/1e/80/3f3da358cecbbe8eb12360814bd1277d59d2608485934742a074d99894a9/msgpack-1.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b13fe0fb4aac1aa5320cd693b297fe6fdef0e7bea5518cbc2dd5299f873ae90", size = 393192 }, + { url = "https://files.pythonhosted.org/packages/98/c6/3a0ec7fdebbb4f3f8f254696cd91d491c29c501dbebd86286c17e8f68cd7/msgpack-1.1.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:435807eeb1bc791ceb3247d13c79868deb22184e1fc4224808750f0d7d1affc1", size = 393851 }, + { url = "https://files.pythonhosted.org/packages/39/37/df50d5f8e68514b60fbe70f6e8337ea2b32ae2be030871bcd9d1cf7d4b62/msgpack-1.1.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4835d17af722609a45e16037bb1d4d78b7bdf19d6c0128116d178956618c4e88", size = 400292 }, + { url = "https://files.pythonhosted.org/packages/fc/ec/1e067292e02d2ceb4c8cb5ba222c4f7bb28730eef5676740609dc2627e0f/msgpack-1.1.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a8ef6e342c137888ebbfb233e02b8fbd689bb5b5fcc59b34711ac47ebd504478", size = 401873 }, + { url = "https://files.pythonhosted.org/packages/d3/31/e8c9c6b5b58d64c9efa99c8d181fcc25f38ead357b0360379fbc8a4234ad/msgpack-1.1.1-cp39-cp39-win32.whl", hash = "sha256:61abccf9de335d9efd149e2fff97ed5974f2481b3353772e8e2dd3402ba2bd57", size = 65028 }, + { url = "https://files.pythonhosted.org/packages/20/d6/cd62cded572e5e25892747a5d27850170bcd03c855e9c69c538e024de6f9/msgpack-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:40eae974c873b2992fd36424a5d9407f93e97656d999f43fca9d29f820899084", size = 71700 }, +] + +[[package]] +name = "numba" +version = "0.60.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +dependencies = [ + { name = "llvmlite", version = "0.43.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, +] +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/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 }, + { url = "https://files.pythonhosted.org/packages/68/1a/87c53f836cdf557083248c3f47212271f220280ff766538795e77c8c6bbf/numba-0.60.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:01ef4cd7d83abe087d644eaa3d95831b777aa21d441a23703d649e06b8e06b74", size = 2647186 }, + { url = "https://files.pythonhosted.org/packages/28/14/a5baa1f2edea7b49afa4dc1bb1b126645198cf1075186853b5b497be826e/numba-0.60.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:819a3dfd4630d95fd574036f99e47212a1af41cbcb019bf8afac63ff56834449", size = 2650038 }, + { url = "https://files.pythonhosted.org/packages/3b/bd/f1985719ff34e37e07bb18f9d3acd17e5a21da255f550c8eae031e2ddf5f/numba-0.60.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0b983bd6ad82fe868493012487f34eae8bf7dd94654951404114f23c3466d34b", size = 3403010 }, + { url = "https://files.pythonhosted.org/packages/54/9b/cd73d3f6617ddc8398a63ef97d8dc9139a9879b9ca8a7ca4b8789056ea46/numba-0.60.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c151748cd269ddeab66334bd754817ffc0cabd9433acb0f551697e5151917d25", size = 3695086 }, + { url = "https://files.pythonhosted.org/packages/01/01/8b7b670c77c5ea0e47e283d82332969bf672ab6410d0b2610cac5b7a3ded/numba-0.60.0-cp39-cp39-win_amd64.whl", hash = "sha256:3031547a015710140e8c87226b4cfe927cac199835e5bf7d4fe5cb64e814e3ab", size = 2686978 }, +] + +[[package]] +name = "numba" +version = "0.61.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "llvmlite", version = "0.44.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/a0/e21f57604304aa03ebb8e098429222722ad99176a4f979d34af1d1ee80da/numba-0.61.2.tar.gz", hash = "sha256:8750ee147940a6637b80ecf7f95062185ad8726c8c28a2295b8ec1160a196f7d", size = 2820615 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/ca/f470be59552ccbf9531d2d383b67ae0b9b524d435fb4a0d229fef135116e/numba-0.61.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:cf9f9fc00d6eca0c23fc840817ce9f439b9f03c8f03d6246c0e7f0cb15b7162a", size = 2775663 }, + { url = "https://files.pythonhosted.org/packages/f5/13/3bdf52609c80d460a3b4acfb9fdb3817e392875c0d6270cf3fd9546f138b/numba-0.61.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ea0247617edcb5dd61f6106a56255baab031acc4257bddaeddb3a1003b4ca3fd", size = 2778344 }, + { url = "https://files.pythonhosted.org/packages/e2/7d/bfb2805bcfbd479f04f835241ecf28519f6e3609912e3a985aed45e21370/numba-0.61.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae8c7a522c26215d5f62ebec436e3d341f7f590079245a2f1008dfd498cc1642", size = 3824054 }, + { url = "https://files.pythonhosted.org/packages/e3/27/797b2004745c92955470c73c82f0e300cf033c791f45bdecb4b33b12bdea/numba-0.61.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd1e74609855aa43661edffca37346e4e8462f6903889917e9f41db40907daa2", size = 3518531 }, + { url = "https://files.pythonhosted.org/packages/b1/c6/c2fb11e50482cb310afae87a997707f6c7d8a48967b9696271347441f650/numba-0.61.2-cp310-cp310-win_amd64.whl", hash = "sha256:ae45830b129c6137294093b269ef0a22998ccc27bf7cf096ab8dcf7bca8946f9", size = 2831612 }, + { url = "https://files.pythonhosted.org/packages/3f/97/c99d1056aed767503c228f7099dc11c402906b42a4757fec2819329abb98/numba-0.61.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:efd3db391df53aaa5cfbee189b6c910a5b471488749fd6606c3f33fc984c2ae2", size = 2775825 }, + { url = "https://files.pythonhosted.org/packages/95/9e/63c549f37136e892f006260c3e2613d09d5120672378191f2dc387ba65a2/numba-0.61.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:49c980e4171948ffebf6b9a2520ea81feed113c1f4890747ba7f59e74be84b1b", size = 2778695 }, + { url = "https://files.pythonhosted.org/packages/97/c8/8740616c8436c86c1b9a62e72cb891177d2c34c2d24ddcde4c390371bf4c/numba-0.61.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3945615cd73c2c7eba2a85ccc9c1730c21cd3958bfcf5a44302abae0fb07bb60", size = 3829227 }, + { url = "https://files.pythonhosted.org/packages/fc/06/66e99ae06507c31d15ff3ecd1f108f2f59e18b6e08662cd5f8a5853fbd18/numba-0.61.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbfdf4eca202cebade0b7d43896978e146f39398909a42941c9303f82f403a18", size = 3523422 }, + { url = "https://files.pythonhosted.org/packages/0f/a4/2b309a6a9f6d4d8cfba583401c7c2f9ff887adb5d54d8e2e130274c0973f/numba-0.61.2-cp311-cp311-win_amd64.whl", hash = "sha256:76bcec9f46259cedf888041b9886e257ae101c6268261b19fda8cfbc52bec9d1", size = 2831505 }, + { url = "https://files.pythonhosted.org/packages/b4/a0/c6b7b9c615cfa3b98c4c63f4316e3f6b3bbe2387740277006551784218cd/numba-0.61.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:34fba9406078bac7ab052efbf0d13939426c753ad72946baaa5bf9ae0ebb8dd2", size = 2776626 }, + { url = "https://files.pythonhosted.org/packages/92/4a/fe4e3c2ecad72d88f5f8cd04e7f7cff49e718398a2fac02d2947480a00ca/numba-0.61.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4ddce10009bc097b080fc96876d14c051cc0c7679e99de3e0af59014dab7dfe8", size = 2779287 }, + { url = "https://files.pythonhosted.org/packages/9a/2d/e518df036feab381c23a624dac47f8445ac55686ec7f11083655eb707da3/numba-0.61.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b1bb509d01f23d70325d3a5a0e237cbc9544dd50e50588bc581ba860c213546", size = 3885928 }, + { url = "https://files.pythonhosted.org/packages/10/0f/23cced68ead67b75d77cfcca3df4991d1855c897ee0ff3fe25a56ed82108/numba-0.61.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48a53a3de8f8793526cbe330f2a39fe9a6638efcbf11bd63f3d2f9757ae345cd", size = 3577115 }, + { url = "https://files.pythonhosted.org/packages/68/1d/ddb3e704c5a8fb90142bf9dc195c27db02a08a99f037395503bfbc1d14b3/numba-0.61.2-cp312-cp312-win_amd64.whl", hash = "sha256:97cf4f12c728cf77c9c1d7c23707e4d8fb4632b46275f8f3397de33e5877af18", size = 2831929 }, + { url = "https://files.pythonhosted.org/packages/0b/f3/0fe4c1b1f2569e8a18ad90c159298d862f96c3964392a20d74fc628aee44/numba-0.61.2-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:3a10a8fc9afac40b1eac55717cece1b8b1ac0b946f5065c89e00bde646b5b154", size = 2771785 }, + { url = "https://files.pythonhosted.org/packages/e9/71/91b277d712e46bd5059f8a5866862ed1116091a7cb03bd2704ba8ebe015f/numba-0.61.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d3bcada3c9afba3bed413fba45845f2fb9cd0d2b27dd58a1be90257e293d140", size = 2773289 }, + { url = "https://files.pythonhosted.org/packages/0d/e0/5ea04e7ad2c39288c0f0f9e8d47638ad70f28e275d092733b5817cf243c9/numba-0.61.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bdbca73ad81fa196bd53dc12e3aaf1564ae036e0c125f237c7644fe64a4928ab", size = 3893918 }, + { url = "https://files.pythonhosted.org/packages/17/58/064f4dcb7d7e9412f16ecf80ed753f92297e39f399c905389688cf950b81/numba-0.61.2-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:5f154aaea625fb32cfbe3b80c5456d514d416fcdf79733dd69c0df3a11348e9e", size = 3584056 }, + { url = "https://files.pythonhosted.org/packages/af/a4/6d3a0f2d3989e62a18749e1e9913d5fa4910bbb3e3311a035baea6caf26d/numba-0.61.2-cp313-cp313-win_amd64.whl", hash = "sha256:59321215e2e0ac5fa928a8020ab00b8e57cda8a97384963ac0dfa4d4e6aa54e7", size = 2831846 }, +] + +[[package]] +name = "numpy" +version = "2.0.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", size = 18902015 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/21/91/3495b3237510f79f5d81f2508f9f13fea78ebfdf07538fc7444badda173d/numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece", size = 21165245 }, + { url = "https://files.pythonhosted.org/packages/05/33/26178c7d437a87082d11019292dce6d3fe6f0e9026b7b2309cbf3e489b1d/numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04", size = 13738540 }, + { url = "https://files.pythonhosted.org/packages/ec/31/cc46e13bf07644efc7a4bf68df2df5fb2a1a88d0cd0da9ddc84dc0033e51/numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66", size = 5300623 }, + { url = "https://files.pythonhosted.org/packages/6e/16/7bfcebf27bb4f9d7ec67332ffebee4d1bf085c84246552d52dbb548600e7/numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b", size = 6901774 }, + { url = "https://files.pythonhosted.org/packages/f9/a3/561c531c0e8bf082c5bef509d00d56f82e0ea7e1e3e3a7fc8fa78742a6e5/numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd", size = 13907081 }, + { url = "https://files.pythonhosted.org/packages/fa/66/f7177ab331876200ac7563a580140643d1179c8b4b6a6b0fc9838de2a9b8/numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318", size = 19523451 }, + { url = "https://files.pythonhosted.org/packages/25/7f/0b209498009ad6453e4efc2c65bcdf0ae08a182b2b7877d7ab38a92dc542/numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8", size = 19927572 }, + { url = "https://files.pythonhosted.org/packages/3e/df/2619393b1e1b565cd2d4c4403bdd979621e2c4dea1f8532754b2598ed63b/numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326", size = 14400722 }, + { url = "https://files.pythonhosted.org/packages/22/ad/77e921b9f256d5da36424ffb711ae79ca3f451ff8489eeca544d0701d74a/numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97", size = 6472170 }, + { url = "https://files.pythonhosted.org/packages/10/05/3442317535028bc29cf0c0dd4c191a4481e8376e9f0db6bcf29703cadae6/numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131", size = 15905558 }, + { url = "https://files.pythonhosted.org/packages/8b/cf/034500fb83041aa0286e0fb16e7c76e5c8b67c0711bb6e9e9737a717d5fe/numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448", size = 21169137 }, + { url = "https://files.pythonhosted.org/packages/4a/d9/32de45561811a4b87fbdee23b5797394e3d1504b4a7cf40c10199848893e/numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195", size = 13703552 }, + { url = "https://files.pythonhosted.org/packages/c1/ca/2f384720020c7b244d22508cb7ab23d95f179fcfff33c31a6eeba8d6c512/numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57", size = 5298957 }, + { url = "https://files.pythonhosted.org/packages/0e/78/a3e4f9fb6aa4e6fdca0c5428e8ba039408514388cf62d89651aade838269/numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a", size = 6905573 }, + { url = "https://files.pythonhosted.org/packages/a0/72/cfc3a1beb2caf4efc9d0b38a15fe34025230da27e1c08cc2eb9bfb1c7231/numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669", size = 13914330 }, + { url = "https://files.pythonhosted.org/packages/ba/a8/c17acf65a931ce551fee11b72e8de63bf7e8a6f0e21add4c937c83563538/numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951", size = 19534895 }, + { url = "https://files.pythonhosted.org/packages/ba/86/8767f3d54f6ae0165749f84648da9dcc8cd78ab65d415494962c86fac80f/numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9", size = 19937253 }, + { url = "https://files.pythonhosted.org/packages/df/87/f76450e6e1c14e5bb1eae6836478b1028e096fd02e85c1c37674606ab752/numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15", size = 14414074 }, + { url = "https://files.pythonhosted.org/packages/5c/ca/0f0f328e1e59f73754f06e1adfb909de43726d4f24c6a3f8805f34f2b0fa/numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4", size = 6470640 }, + { url = "https://files.pythonhosted.org/packages/eb/57/3a3f14d3a759dcf9bf6e9eda905794726b758819df4663f217d658a58695/numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc", size = 15910230 }, + { url = "https://files.pythonhosted.org/packages/45/40/2e117be60ec50d98fa08c2f8c48e09b3edea93cfcabd5a9ff6925d54b1c2/numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b", size = 20895803 }, + { url = "https://files.pythonhosted.org/packages/46/92/1b8b8dee833f53cef3e0a3f69b2374467789e0bb7399689582314df02651/numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e", size = 13471835 }, + { url = "https://files.pythonhosted.org/packages/7f/19/e2793bde475f1edaea6945be141aef6c8b4c669b90c90a300a8954d08f0a/numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c", size = 5038499 }, + { url = "https://files.pythonhosted.org/packages/e3/ff/ddf6dac2ff0dd50a7327bcdba45cb0264d0e96bb44d33324853f781a8f3c/numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c", size = 6633497 }, + { url = "https://files.pythonhosted.org/packages/72/21/67f36eac8e2d2cd652a2e69595a54128297cdcb1ff3931cfc87838874bd4/numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692", size = 13621158 }, + { url = "https://files.pythonhosted.org/packages/39/68/e9f1126d757653496dbc096cb429014347a36b228f5a991dae2c6b6cfd40/numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a", size = 19236173 }, + { url = "https://files.pythonhosted.org/packages/d1/e9/1f5333281e4ebf483ba1c888b1d61ba7e78d7e910fdd8e6499667041cc35/numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c", size = 19634174 }, + { url = "https://files.pythonhosted.org/packages/71/af/a469674070c8d8408384e3012e064299f7a2de540738a8e414dcfd639996/numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded", size = 14099701 }, + { url = "https://files.pythonhosted.org/packages/d0/3d/08ea9f239d0e0e939b6ca52ad403c84a2bce1bde301a8eb4888c1c1543f1/numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5", size = 6174313 }, + { url = "https://files.pythonhosted.org/packages/b2/b5/4ac39baebf1fdb2e72585c8352c56d063b6126be9fc95bd2bb5ef5770c20/numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", size = 15606179 }, + { url = "https://files.pythonhosted.org/packages/43/c1/41c8f6df3162b0c6ffd4437d729115704bd43363de0090c7f913cfbc2d89/numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c", size = 21169942 }, + { url = "https://files.pythonhosted.org/packages/39/bc/fd298f308dcd232b56a4031fd6ddf11c43f9917fbc937e53762f7b5a3bb1/numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd", size = 13711512 }, + { url = "https://files.pythonhosted.org/packages/96/ff/06d1aa3eeb1c614eda245c1ba4fb88c483bee6520d361641331872ac4b82/numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b", size = 5306976 }, + { url = "https://files.pythonhosted.org/packages/2d/98/121996dcfb10a6087a05e54453e28e58694a7db62c5a5a29cee14c6e047b/numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729", size = 6906494 }, + { url = "https://files.pythonhosted.org/packages/15/31/9dffc70da6b9bbf7968f6551967fc21156207366272c2a40b4ed6008dc9b/numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1", size = 13912596 }, + { url = "https://files.pythonhosted.org/packages/b9/14/78635daab4b07c0930c919d451b8bf8c164774e6a3413aed04a6d95758ce/numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd", size = 19526099 }, + { url = "https://files.pythonhosted.org/packages/26/4c/0eeca4614003077f68bfe7aac8b7496f04221865b3a5e7cb230c9d055afd/numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d", size = 19932823 }, + { url = "https://files.pythonhosted.org/packages/f1/46/ea25b98b13dccaebddf1a803f8c748680d972e00507cd9bc6dcdb5aa2ac1/numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d", size = 14404424 }, + { url = "https://files.pythonhosted.org/packages/c8/a6/177dd88d95ecf07e722d21008b1b40e681a929eb9e329684d449c36586b2/numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa", size = 6476809 }, + { url = "https://files.pythonhosted.org/packages/ea/2b/7fc9f4e7ae5b507c1a3a21f0f15ed03e794c1242ea8a242ac158beb56034/numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73", size = 15911314 }, + { url = "https://files.pythonhosted.org/packages/8f/3b/df5a870ac6a3be3a86856ce195ef42eec7ae50d2a202be1f5a4b3b340e14/numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8", size = 21025288 }, + { url = "https://files.pythonhosted.org/packages/2c/97/51af92f18d6f6f2d9ad8b482a99fb74e142d71372da5d834b3a2747a446e/numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4", size = 6762793 }, + { url = "https://files.pythonhosted.org/packages/12/46/de1fbd0c1b5ccaa7f9a005b66761533e2f6a3e560096682683a223631fe9/numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c", size = 19334885 }, + { url = "https://files.pythonhosted.org/packages/cc/dc/d330a6faefd92b446ec0f0dfea4c3207bb1fef3c4771d19cf4543efd2c78/numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385", size = 15828784 }, +] + +[[package]] +name = "numpy" +version = "2.2.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245 }, + { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048 }, + { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542 }, + { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301 }, + { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320 }, + { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050 }, + { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034 }, + { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185 }, + { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149 }, + { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620 }, + { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963 }, + { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743 }, + { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616 }, + { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579 }, + { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005 }, + { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570 }, + { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548 }, + { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521 }, + { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866 }, + { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455 }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348 }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362 }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103 }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382 }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462 }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618 }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511 }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783 }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506 }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190 }, + { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828 }, + { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006 }, + { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765 }, + { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736 }, + { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719 }, + { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072 }, + { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213 }, + { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632 }, + { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532 }, + { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885 }, + { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467 }, + { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144 }, + { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217 }, + { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014 }, + { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935 }, + { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122 }, + { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143 }, + { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260 }, + { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225 }, + { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374 }, + { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391 }, + { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754 }, + { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476 }, + { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666 }, +] From e7c2a0173b0ca4992390f6a9538af3f0cf34189d Mon Sep 17 00:00:00 2001 From: Stanislav Geidl Date: Fri, 28 Nov 2025 21:23:30 +0100 Subject: [PATCH 2/6] fix tests --- .gitignore | 2 +- ciftools/binary/data_types.py | 2 - ciftools/binary/decoder.py | 8 +- tests/_decoding.py | 11 +- tests/delta.py | 2 +- tests/fixtures/1tqn.bcif | Bin 0 -> 383737 bytes ...tn_-22.4_-33.4_-21.6_-7.1_-10_-0.9_d1.bcif | Bin 0 -> 76672 bytes tests/run_length.py | 2 +- uv.lock | 472 +++++++++--------- 9 files changed, 250 insertions(+), 249 deletions(-) create mode 100644 tests/fixtures/1tqn.bcif create mode 100644 tests/fixtures/x-ray_1tqn-cartn_-22.4_-33.4_-21.6_-7.1_-10_-0.9_d1.bcif diff --git a/.gitignore b/.gitignore index 3d5d821..40dda41 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -**/tests/**/*.bcif +tests/*.bcif ### VisualStudioCode template .vscode/* diff --git a/ciftools/binary/data_types.py b/ciftools/binary/data_types.py index 954849e..9b5cd30 100644 --- a/ciftools/binary/data_types.py +++ b/ciftools/binary/data_types.py @@ -8,7 +8,6 @@ class DataTypeEnum(IntEnum): Int8 = 1 Int16 = 2 Int32 = 3 - Int64 = 8 Uint8 = 4 Uint16 = 5 Uint32 = 6 @@ -21,7 +20,6 @@ class DataType: DataTypeEnum.Int8.value: "i1", DataTypeEnum.Int16.value: "i2", DataTypeEnum.Int32.value: "i4", - DataTypeEnum.Int64.value: "i8", DataTypeEnum.Uint8.value: "u1", DataTypeEnum.Uint16.value: "u2", DataTypeEnum.Uint32.value: "u4", diff --git a/ciftools/binary/decoder.py b/ciftools/binary/decoder.py index 906c719..e0279cf 100644 --- a/ciftools/binary/decoder.py +++ b/ciftools/binary/decoder.py @@ -59,10 +59,10 @@ def _decode_integer_packing_signed(data: np.ndarray, encoding: IntegerPackingEnc value = 0 t = data[i] while t == upper_limit or t == lower_limit: - value += t + value += int(t) i += 1 t = data[i] - value += t + value += int(t) output[j] = value i += 1 j += 1 @@ -80,10 +80,10 @@ def _decode_integer_packing_unsigned(data: np.ndarray, encoding: IntegerPackingE value = 0 t = data[i] while t == upper_limit: - value += t + value += int(t) i += 1 t = data[i] - value += t + value += int(t) output[j] = value i += 1 j += 1 diff --git a/tests/_decoding.py b/tests/_decoding.py index 3bc3f21..0437d19 100644 --- a/tests/_decoding.py +++ b/tests/_decoding.py @@ -1,16 +1,20 @@ import unittest import urllib.request +from pathlib import Path from ciftools.models.data import CIFValuePresenceEnum from ciftools.serialization import loads +test_folder = Path(__file__).parent / "fixtures" + class TestEncodings_Decoding(unittest.TestCase): def test(self): # TODO: set assert expectations print("mmCIF test") - data = urllib.request.urlopen("https://models.rcsb.org/1tqn.bcif").read() + bcif_path = test_folder / "1tqn.bcif" + data = bcif_path.read_bytes() parsed = loads(data, lazy=False) atom_site = parsed["1TQN"].atom_site @@ -32,9 +36,8 @@ def test(self): # print([[f"_{c.name}.{f}" for f in c.field_names] for c in parsed[0].categories.values()]) print("Volume Data test") - data = urllib.request.urlopen( - "https://ds.litemol.org/x-ray/1tqn/box/-22.367,-33.367,-21.634/-7.106,-10.042,-0.937?detail=1" - ).read() + bcif_path = test_folder / "x-ray_1tqn-cartn_-22.4_-33.4_-21.6_-7.1_-10_-0.9_d1.bcif" + data = bcif_path.read_bytes() parsed = loads(data) print([b.header for b in parsed.data_blocks]) diff --git a/tests/delta.py b/tests/delta.py index 9b45c3a..dc86ba4 100644 --- a/tests/delta.py +++ b/tests/delta.py @@ -8,7 +8,7 @@ class TestEncodings_Delta(unittest.TestCase): def test(self): - test_arr = np.array([1, 1, 2, 2, 10, -10]) + test_arr = np.array([1, 1, 2, 2, 10, -10], dtype=np.int32) encoder = ComposeEncoders(DELTA, BYTE_ARRAY) diff --git a/tests/fixtures/1tqn.bcif b/tests/fixtures/1tqn.bcif new file mode 100644 index 0000000000000000000000000000000000000000..81af16b0b49a7aeff8a2d8b5fdce92fbc19be4cc GIT binary patch literal 383737 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 literal 0 HcmV?d00001 diff --git a/tests/fixtures/x-ray_1tqn-cartn_-22.4_-33.4_-21.6_-7.1_-10_-0.9_d1.bcif b/tests/fixtures/x-ray_1tqn-cartn_-22.4_-33.4_-21.6_-7.1_-10_-0.9_d1.bcif new file mode 100644 index 0000000000000000000000000000000000000000..51a47c6f30bfe8faeda44974b15f7e62b26ed45f GIT binary patch literal 76672 zcmd?R>5paUc^^hel^USPxyk^n)zB|w}Y$Y0>Ec7C^qlZ-}`JR(G3g7gP+ zx~uBcIq!Yn=lN~V`Sl;&zPx$$@b>lJK7953lNYypx353Fea-uB&8_?h|MlkStCzp! zyOHbv_~G^2>;CgsH_zVuwO{+;liO?j&=2=UyN9FQAKzTRy?y-Z_0!uof92PI@bdb_ z?cck6c>D6r)3@KdeDm&tm#=T%eDeJ5k8YN~c{@Hi^!B4*Uli%}$-H-j&@b>xJ>mTB#A3uHhjUT;veY3y( z>EC$w#Xneoi3hrUy>oqoTX_6C5AZ7nuReMC_7{Hq^vwYt?D5OnhyQT-Lwiqu`Suro z>WzH!N1y%PH~;7tzwxbikM@tg`3?N}!HerR&;I^r3$T2i+qX|&++Ke2_U6z1@&8Wf zhlvvePFUqbzwRgXAp9CEM)prwj2}Gy*KxZaqw_|@!iXZ&kxI^ zXz?{zhr*w*4!`~M&E@TjkKTUo&wVZa=F3-KgXjLmKjFE5=gBo5{PpWsum6Ac;J@|r zdFa3KHTbN*@#W9@3+4T%SIy6U;1_=3vjX|IKK|tPHJZq)PhQ{LUj7`)!;in~ps#qr z+mBy<4VLT9mzV1&ed5QTEyJ?E{kflw-+b`uyI+Gx|D`|S(f{DHN5@TG{#+jacW$m< zzrB6)^!n@Y`G4@QUxe#3|Nfu*9{7@lt>M zMEKDIsSHJU_wDDCRPWY_eyuWiX_}wd)Iaxj*BB{#XCy^3Ol}6EF9(J?tO3-0!}*e(}-s+soGwjJ|wY|I}^q<<0uHesZCk zrJVIu*X{G2uYPHd{n3kk#Z~+KV&tECv9GvhpI=P;(#8I>Hy>T!+&+H&>XVNyUw-o9 z!R;Rt75>y!D}L#6|M?d#cXRvv`Q;nveqVLwDcV?z*3T;jg%oU$`)T z{(l{Rg$sYhRsF(+ul|q!;OdWD_`mq_Qe3}${QUOMd<3x=-}uI_9)6`u|Jj%0D_{E0 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 M-k^v6@6u=g52nE8$N&HU literal 0 HcmV?d00001 diff --git a/tests/run_length.py b/tests/run_length.py index 70afccb..0e6aa9f 100644 --- a/tests/run_length.py +++ b/tests/run_length.py @@ -9,7 +9,7 @@ class TestEncodings_RunLength(unittest.TestCase): def test(self): - suite = [np.array([-3] * 9 + [1] * 10 + [2] * 11 + [3] * 12), np.arange(10)] + suite = [np.array([-3] * 9 + [1] * 10 + [2] * 11 + [3] * 12, dtype=np.int32), np.arange(10, dtype=np.int32)] for test_arr in suite: encoder = ComposeEncoders(RUN_LENGTH, BYTE_ARRAY) diff --git a/uv.lock b/uv.lock index d78a6f1..707da5f 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 1 +revision = 3 requires-python = ">=3.9" resolution-markers = [ "python_full_version >= '3.11'", @@ -33,28 +33,28 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version < '3.10'", ] -sdist = { url = "https://files.pythonhosted.org/packages/9f/3d/f513755f285db51ab363a53e898b85562e950f79a2e6767a364530c2f645/llvmlite-0.43.0.tar.gz", hash = "sha256:ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5", size = 157069 } +sdist = { url = "https://files.pythonhosted.org/packages/9f/3d/f513755f285db51ab363a53e898b85562e950f79a2e6767a364530c2f645/llvmlite-0.43.0.tar.gz", hash = "sha256:ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5", size = 157069, upload-time = "2024-06-13T18:09:32.641Z" } 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/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 }, - { url = "https://files.pythonhosted.org/packages/2a/73/12925b1bbb3c2beb6d96f892ef5b4d742c34f00ddb9f4a125e9e87b22f52/llvmlite-0.43.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9cd2a7376f7b3367019b664c21f0c61766219faa3b03731113ead75107f3b66c", size = 31064410 }, - { url = "https://files.pythonhosted.org/packages/cc/61/58c70aa0808a8cba825a7d98cc65bef4801b99328fba80837bfcb5fc767f/llvmlite-0.43.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18e9953c748b105668487b7c81a3e97b046d8abf95c4ddc0cd3c94f4e4651ae8", size = 28793145 }, - { url = "https://files.pythonhosted.org/packages/c8/c6/9324eb5de2ba9d99cbed853d85ba7a318652a48e077797bec27cf40f911d/llvmlite-0.43.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74937acd22dc11b33946b67dca7680e6d103d6e90eeaaaf932603bec6fe7b03a", size = 42857276 }, - { url = "https://files.pythonhosted.org/packages/e0/d0/889e9705107db7b1ec0767b03f15d7b95b4c4f9fdf91928ab1c7e9ffacf6/llvmlite-0.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc9efc739cc6ed760f795806f67889923f7274276f0eb45092a1473e40d9b867", size = 43871777 }, - { url = "https://files.pythonhosted.org/packages/df/41/73cc26a2634b538cfe813f618c91e7e9960b8c163f8f0c94a2b0f008b9da/llvmlite-0.43.0-cp39-cp39-win_amd64.whl", hash = "sha256:47e147cdda9037f94b399bf03bfd8a6b6b1f2f90be94a454e3386f006455a9b4", size = 28123489 }, + { 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, upload-time = "2024-06-13T18:08:13.462Z" }, + { 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, upload-time = "2024-06-13T18:08:17.336Z" }, + { 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, upload-time = "2024-06-13T18:08:21.071Z" }, + { 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, upload-time = "2024-06-13T18:08:26.32Z" }, + { url = "https://files.pythonhosted.org/packages/f2/26/b5478037c453554a61625ef1125f7e12bb1429ae11c6376f47beba9b0179/llvmlite-0.43.0-cp310-cp310-win_amd64.whl", hash = "sha256:14f0e4bf2fd2d9a75a3534111e8ebeb08eda2f33e9bdd6dfa13282afacdde0ed", size = 28123487, upload-time = "2024-06-13T18:08:30.348Z" }, + { 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, upload-time = "2024-06-13T18:08:34.006Z" }, + { 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, upload-time = "2024-06-13T18:08:37.42Z" }, + { 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, upload-time = "2024-06-13T18:08:40.822Z" }, + { 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, upload-time = "2024-06-13T18:08:46.41Z" }, + { url = "https://files.pythonhosted.org/packages/20/ab/ed5ed3688c6ba4f0b8d789da19fd8e30a9cf7fc5852effe311bc5aefe73e/llvmlite-0.43.0-cp311-cp311-win_amd64.whl", hash = "sha256:d5bd550001d26450bd90777736c69d68c487d17bf371438f975229b2b8241a91", size = 28107433, upload-time = "2024-06-13T18:08:50.834Z" }, + { 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, upload-time = "2024-06-13T18:08:54.375Z" }, + { 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, upload-time = "2024-06-13T18:08:57.953Z" }, + { 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, upload-time = "2024-06-13T18:09:02.067Z" }, + { 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, upload-time = "2024-06-13T18:09:06.667Z" }, + { url = "https://files.pythonhosted.org/packages/c6/94/dea10e263655ce78d777e78d904903faae39d1fc440762be4a9dc46bed49/llvmlite-0.43.0-cp312-cp312-win_amd64.whl", hash = "sha256:7a2872ee80dcf6b5dbdc838763d26554c2a18aa833d31a2635bff16aafefb9c9", size = 28107442, upload-time = "2024-06-13T18:09:10.709Z" }, + { url = "https://files.pythonhosted.org/packages/2a/73/12925b1bbb3c2beb6d96f892ef5b4d742c34f00ddb9f4a125e9e87b22f52/llvmlite-0.43.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9cd2a7376f7b3367019b664c21f0c61766219faa3b03731113ead75107f3b66c", size = 31064410, upload-time = "2024-06-13T18:09:14.091Z" }, + { url = "https://files.pythonhosted.org/packages/cc/61/58c70aa0808a8cba825a7d98cc65bef4801b99328fba80837bfcb5fc767f/llvmlite-0.43.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18e9953c748b105668487b7c81a3e97b046d8abf95c4ddc0cd3c94f4e4651ae8", size = 28793145, upload-time = "2024-06-13T18:09:17.531Z" }, + { url = "https://files.pythonhosted.org/packages/c8/c6/9324eb5de2ba9d99cbed853d85ba7a318652a48e077797bec27cf40f911d/llvmlite-0.43.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74937acd22dc11b33946b67dca7680e6d103d6e90eeaaaf932603bec6fe7b03a", size = 42857276, upload-time = "2024-06-13T18:09:21.377Z" }, + { url = "https://files.pythonhosted.org/packages/e0/d0/889e9705107db7b1ec0767b03f15d7b95b4c4f9fdf91928ab1c7e9ffacf6/llvmlite-0.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc9efc739cc6ed760f795806f67889923f7274276f0eb45092a1473e40d9b867", size = 43871777, upload-time = "2024-06-13T18:09:25.76Z" }, + { url = "https://files.pythonhosted.org/packages/df/41/73cc26a2634b538cfe813f618c91e7e9960b8c163f8f0c94a2b0f008b9da/llvmlite-0.43.0-cp39-cp39-win_amd64.whl", hash = "sha256:47e147cdda9037f94b399bf03bfd8a6b6b1f2f90be94a454e3386f006455a9b4", size = 28123489, upload-time = "2024-06-13T18:09:29.78Z" }, ] [[package]] @@ -65,86 +65,86 @@ resolution-markers = [ "python_full_version >= '3.11'", "python_full_version == '3.10.*'", ] -sdist = { url = "https://files.pythonhosted.org/packages/89/6a/95a3d3610d5c75293d5dbbb2a76480d5d4eeba641557b69fe90af6c5b84e/llvmlite-0.44.0.tar.gz", hash = "sha256:07667d66a5d150abed9157ab6c0b9393c9356f229784a4385c02f99e94fc94d4", size = 171880 } +sdist = { url = "https://files.pythonhosted.org/packages/89/6a/95a3d3610d5c75293d5dbbb2a76480d5d4eeba641557b69fe90af6c5b84e/llvmlite-0.44.0.tar.gz", hash = "sha256:07667d66a5d150abed9157ab6c0b9393c9356f229784a4385c02f99e94fc94d4", size = 171880, upload-time = "2025-01-20T11:14:41.342Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/41/75/d4863ddfd8ab5f6e70f4504cf8cc37f4e986ec6910f4ef8502bb7d3c1c71/llvmlite-0.44.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:9fbadbfba8422123bab5535b293da1cf72f9f478a65645ecd73e781f962ca614", size = 28132306 }, - { url = "https://files.pythonhosted.org/packages/37/d9/6e8943e1515d2f1003e8278819ec03e4e653e2eeb71e4d00de6cfe59424e/llvmlite-0.44.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cccf8eb28f24840f2689fb1a45f9c0f7e582dd24e088dcf96e424834af11f791", size = 26201096 }, - { url = "https://files.pythonhosted.org/packages/aa/46/8ffbc114def88cc698906bf5acab54ca9fdf9214fe04aed0e71731fb3688/llvmlite-0.44.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7202b678cdf904823c764ee0fe2dfe38a76981f4c1e51715b4cb5abb6cf1d9e8", size = 42361859 }, - { url = "https://files.pythonhosted.org/packages/30/1c/9366b29ab050a726af13ebaae8d0dff00c3c58562261c79c635ad4f5eb71/llvmlite-0.44.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40526fb5e313d7b96bda4cbb2c85cd5374e04d80732dd36a282d72a560bb6408", size = 41184199 }, - { url = "https://files.pythonhosted.org/packages/69/07/35e7c594b021ecb1938540f5bce543ddd8713cff97f71d81f021221edc1b/llvmlite-0.44.0-cp310-cp310-win_amd64.whl", hash = "sha256:41e3839150db4330e1b2716c0be3b5c4672525b4c9005e17c7597f835f351ce2", size = 30332381 }, - { url = "https://files.pythonhosted.org/packages/b5/e2/86b245397052386595ad726f9742e5223d7aea999b18c518a50e96c3aca4/llvmlite-0.44.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:eed7d5f29136bda63b6d7804c279e2b72e08c952b7c5df61f45db408e0ee52f3", size = 28132305 }, - { url = "https://files.pythonhosted.org/packages/ff/ec/506902dc6870249fbe2466d9cf66d531265d0f3a1157213c8f986250c033/llvmlite-0.44.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ace564d9fa44bb91eb6e6d8e7754977783c68e90a471ea7ce913bff30bd62427", size = 26201090 }, - { url = "https://files.pythonhosted.org/packages/99/fe/d030f1849ebb1f394bb3f7adad5e729b634fb100515594aca25c354ffc62/llvmlite-0.44.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5d22c3bfc842668168a786af4205ec8e3ad29fb1bc03fd11fd48460d0df64c1", size = 42361858 }, - { url = "https://files.pythonhosted.org/packages/d7/7a/ce6174664b9077fc673d172e4c888cb0b128e707e306bc33fff8c2035f0d/llvmlite-0.44.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f01a394e9c9b7b1d4e63c327b096d10f6f0ed149ef53d38a09b3749dcf8c9610", size = 41184200 }, - { url = "https://files.pythonhosted.org/packages/5f/c6/258801143975a6d09a373f2641237992496e15567b907a4d401839d671b8/llvmlite-0.44.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8489634d43c20cd0ad71330dde1d5bc7b9966937a263ff1ec1cebb90dc50955", size = 30331193 }, - { url = "https://files.pythonhosted.org/packages/15/86/e3c3195b92e6e492458f16d233e58a1a812aa2bfbef9bdd0fbafcec85c60/llvmlite-0.44.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:1d671a56acf725bf1b531d5ef76b86660a5ab8ef19bb6a46064a705c6ca80aad", size = 28132297 }, - { url = "https://files.pythonhosted.org/packages/d6/53/373b6b8be67b9221d12b24125fd0ec56b1078b660eeae266ec388a6ac9a0/llvmlite-0.44.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f79a728e0435493611c9f405168682bb75ffd1fbe6fc360733b850c80a026db", size = 26201105 }, - { url = "https://files.pythonhosted.org/packages/cb/da/8341fd3056419441286c8e26bf436923021005ece0bff5f41906476ae514/llvmlite-0.44.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0143a5ef336da14deaa8ec26c5449ad5b6a2b564df82fcef4be040b9cacfea9", size = 42361901 }, - { url = "https://files.pythonhosted.org/packages/53/ad/d79349dc07b8a395a99153d7ce8b01d6fcdc9f8231355a5df55ded649b61/llvmlite-0.44.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d752f89e31b66db6f8da06df8b39f9b91e78c5feea1bf9e8c1fba1d1c24c065d", size = 41184247 }, - { url = "https://files.pythonhosted.org/packages/e2/3b/a9a17366af80127bd09decbe2a54d8974b6d8b274b39bf47fbaedeec6307/llvmlite-0.44.0-cp312-cp312-win_amd64.whl", hash = "sha256:eae7e2d4ca8f88f89d315b48c6b741dcb925d6a1042da694aa16ab3dd4cbd3a1", size = 30332380 }, - { url = "https://files.pythonhosted.org/packages/89/24/4c0ca705a717514c2092b18476e7a12c74d34d875e05e4d742618ebbf449/llvmlite-0.44.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:319bddd44e5f71ae2689859b7203080716448a3cd1128fb144fe5c055219d516", size = 28132306 }, - { url = "https://files.pythonhosted.org/packages/01/cf/1dd5a60ba6aee7122ab9243fd614abcf22f36b0437cbbe1ccf1e3391461c/llvmlite-0.44.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c58867118bad04a0bb22a2e0068c693719658105e40009ffe95c7000fcde88e", size = 26201090 }, - { url = "https://files.pythonhosted.org/packages/d2/1b/656f5a357de7135a3777bd735cc7c9b8f23b4d37465505bd0eaf4be9befe/llvmlite-0.44.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46224058b13c96af1365290bdfebe9a6264ae62fb79b2b55693deed11657a8bf", size = 42361904 }, - { url = "https://files.pythonhosted.org/packages/d8/e1/12c5f20cb9168fb3464a34310411d5ad86e4163c8ff2d14a2b57e5cc6bac/llvmlite-0.44.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa0097052c32bf721a4efc03bd109d335dfa57d9bffb3d4c24cc680711b8b4fc", size = 41184245 }, - { url = "https://files.pythonhosted.org/packages/d0/81/e66fc86539293282fd9cb7c9417438e897f369e79ffb62e1ae5e5154d4dd/llvmlite-0.44.0-cp313-cp313-win_amd64.whl", hash = "sha256:2fb7c4f2fb86cbae6dca3db9ab203eeea0e22d73b99bc2341cdf9de93612e930", size = 30331193 }, + { url = "https://files.pythonhosted.org/packages/41/75/d4863ddfd8ab5f6e70f4504cf8cc37f4e986ec6910f4ef8502bb7d3c1c71/llvmlite-0.44.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:9fbadbfba8422123bab5535b293da1cf72f9f478a65645ecd73e781f962ca614", size = 28132306, upload-time = "2025-01-20T11:12:18.634Z" }, + { url = "https://files.pythonhosted.org/packages/37/d9/6e8943e1515d2f1003e8278819ec03e4e653e2eeb71e4d00de6cfe59424e/llvmlite-0.44.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cccf8eb28f24840f2689fb1a45f9c0f7e582dd24e088dcf96e424834af11f791", size = 26201096, upload-time = "2025-01-20T11:12:24.544Z" }, + { url = "https://files.pythonhosted.org/packages/aa/46/8ffbc114def88cc698906bf5acab54ca9fdf9214fe04aed0e71731fb3688/llvmlite-0.44.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7202b678cdf904823c764ee0fe2dfe38a76981f4c1e51715b4cb5abb6cf1d9e8", size = 42361859, upload-time = "2025-01-20T11:12:31.839Z" }, + { url = "https://files.pythonhosted.org/packages/30/1c/9366b29ab050a726af13ebaae8d0dff00c3c58562261c79c635ad4f5eb71/llvmlite-0.44.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40526fb5e313d7b96bda4cbb2c85cd5374e04d80732dd36a282d72a560bb6408", size = 41184199, upload-time = "2025-01-20T11:12:40.049Z" }, + { url = "https://files.pythonhosted.org/packages/69/07/35e7c594b021ecb1938540f5bce543ddd8713cff97f71d81f021221edc1b/llvmlite-0.44.0-cp310-cp310-win_amd64.whl", hash = "sha256:41e3839150db4330e1b2716c0be3b5c4672525b4c9005e17c7597f835f351ce2", size = 30332381, upload-time = "2025-01-20T11:12:47.054Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e2/86b245397052386595ad726f9742e5223d7aea999b18c518a50e96c3aca4/llvmlite-0.44.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:eed7d5f29136bda63b6d7804c279e2b72e08c952b7c5df61f45db408e0ee52f3", size = 28132305, upload-time = "2025-01-20T11:12:53.936Z" }, + { url = "https://files.pythonhosted.org/packages/ff/ec/506902dc6870249fbe2466d9cf66d531265d0f3a1157213c8f986250c033/llvmlite-0.44.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ace564d9fa44bb91eb6e6d8e7754977783c68e90a471ea7ce913bff30bd62427", size = 26201090, upload-time = "2025-01-20T11:12:59.847Z" }, + { url = "https://files.pythonhosted.org/packages/99/fe/d030f1849ebb1f394bb3f7adad5e729b634fb100515594aca25c354ffc62/llvmlite-0.44.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5d22c3bfc842668168a786af4205ec8e3ad29fb1bc03fd11fd48460d0df64c1", size = 42361858, upload-time = "2025-01-20T11:13:07.623Z" }, + { url = "https://files.pythonhosted.org/packages/d7/7a/ce6174664b9077fc673d172e4c888cb0b128e707e306bc33fff8c2035f0d/llvmlite-0.44.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f01a394e9c9b7b1d4e63c327b096d10f6f0ed149ef53d38a09b3749dcf8c9610", size = 41184200, upload-time = "2025-01-20T11:13:20.058Z" }, + { url = "https://files.pythonhosted.org/packages/5f/c6/258801143975a6d09a373f2641237992496e15567b907a4d401839d671b8/llvmlite-0.44.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8489634d43c20cd0ad71330dde1d5bc7b9966937a263ff1ec1cebb90dc50955", size = 30331193, upload-time = "2025-01-20T11:13:26.976Z" }, + { url = "https://files.pythonhosted.org/packages/15/86/e3c3195b92e6e492458f16d233e58a1a812aa2bfbef9bdd0fbafcec85c60/llvmlite-0.44.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:1d671a56acf725bf1b531d5ef76b86660a5ab8ef19bb6a46064a705c6ca80aad", size = 28132297, upload-time = "2025-01-20T11:13:32.57Z" }, + { url = "https://files.pythonhosted.org/packages/d6/53/373b6b8be67b9221d12b24125fd0ec56b1078b660eeae266ec388a6ac9a0/llvmlite-0.44.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f79a728e0435493611c9f405168682bb75ffd1fbe6fc360733b850c80a026db", size = 26201105, upload-time = "2025-01-20T11:13:38.744Z" }, + { url = "https://files.pythonhosted.org/packages/cb/da/8341fd3056419441286c8e26bf436923021005ece0bff5f41906476ae514/llvmlite-0.44.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0143a5ef336da14deaa8ec26c5449ad5b6a2b564df82fcef4be040b9cacfea9", size = 42361901, upload-time = "2025-01-20T11:13:46.711Z" }, + { url = "https://files.pythonhosted.org/packages/53/ad/d79349dc07b8a395a99153d7ce8b01d6fcdc9f8231355a5df55ded649b61/llvmlite-0.44.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d752f89e31b66db6f8da06df8b39f9b91e78c5feea1bf9e8c1fba1d1c24c065d", size = 41184247, upload-time = "2025-01-20T11:13:56.159Z" }, + { url = "https://files.pythonhosted.org/packages/e2/3b/a9a17366af80127bd09decbe2a54d8974b6d8b274b39bf47fbaedeec6307/llvmlite-0.44.0-cp312-cp312-win_amd64.whl", hash = "sha256:eae7e2d4ca8f88f89d315b48c6b741dcb925d6a1042da694aa16ab3dd4cbd3a1", size = 30332380, upload-time = "2025-01-20T11:14:02.442Z" }, + { url = "https://files.pythonhosted.org/packages/89/24/4c0ca705a717514c2092b18476e7a12c74d34d875e05e4d742618ebbf449/llvmlite-0.44.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:319bddd44e5f71ae2689859b7203080716448a3cd1128fb144fe5c055219d516", size = 28132306, upload-time = "2025-01-20T11:14:09.035Z" }, + { url = "https://files.pythonhosted.org/packages/01/cf/1dd5a60ba6aee7122ab9243fd614abcf22f36b0437cbbe1ccf1e3391461c/llvmlite-0.44.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c58867118bad04a0bb22a2e0068c693719658105e40009ffe95c7000fcde88e", size = 26201090, upload-time = "2025-01-20T11:14:15.401Z" }, + { url = "https://files.pythonhosted.org/packages/d2/1b/656f5a357de7135a3777bd735cc7c9b8f23b4d37465505bd0eaf4be9befe/llvmlite-0.44.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46224058b13c96af1365290bdfebe9a6264ae62fb79b2b55693deed11657a8bf", size = 42361904, upload-time = "2025-01-20T11:14:22.949Z" }, + { url = "https://files.pythonhosted.org/packages/d8/e1/12c5f20cb9168fb3464a34310411d5ad86e4163c8ff2d14a2b57e5cc6bac/llvmlite-0.44.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa0097052c32bf721a4efc03bd109d335dfa57d9bffb3d4c24cc680711b8b4fc", size = 41184245, upload-time = "2025-01-20T11:14:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/d0/81/e66fc86539293282fd9cb7c9417438e897f369e79ffb62e1ae5e5154d4dd/llvmlite-0.44.0-cp313-cp313-win_amd64.whl", hash = "sha256:2fb7c4f2fb86cbae6dca3db9ab203eeea0e22d73b99bc2341cdf9de93612e930", size = 30331193, upload-time = "2025-01-20T11:14:38.578Z" }, ] [[package]] name = "msgpack" version = "1.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz", hash = "sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd", size = 173555 } +sdist = { url = "https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz", hash = "sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd", size = 173555, upload-time = "2025-06-13T06:52:51.324Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/33/52/f30da112c1dc92cf64f57d08a273ac771e7b29dea10b4b30369b2d7e8546/msgpack-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:353b6fc0c36fde68b661a12949d7d49f8f51ff5fa019c1e47c87c4ff34b080ed", size = 81799 }, - { url = "https://files.pythonhosted.org/packages/e4/35/7bfc0def2f04ab4145f7f108e3563f9b4abae4ab0ed78a61f350518cc4d2/msgpack-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:79c408fcf76a958491b4e3b103d1c417044544b68e96d06432a189b43d1215c8", size = 78278 }, - { url = "https://files.pythonhosted.org/packages/e8/c5/df5d6c1c39856bc55f800bf82778fd4c11370667f9b9e9d51b2f5da88f20/msgpack-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78426096939c2c7482bf31ef15ca219a9e24460289c00dd0b94411040bb73ad2", size = 402805 }, - { url = "https://files.pythonhosted.org/packages/20/8e/0bb8c977efecfe6ea7116e2ed73a78a8d32a947f94d272586cf02a9757db/msgpack-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b17ba27727a36cb73aabacaa44b13090feb88a01d012c0f4be70c00f75048b4", size = 408642 }, - { url = "https://files.pythonhosted.org/packages/59/a1/731d52c1aeec52006be6d1f8027c49fdc2cfc3ab7cbe7c28335b2910d7b6/msgpack-1.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a17ac1ea6ec3c7687d70201cfda3b1e8061466f28f686c24f627cae4ea8efd0", size = 395143 }, - { url = "https://files.pythonhosted.org/packages/2b/92/b42911c52cda2ba67a6418ffa7d08969edf2e760b09015593c8a8a27a97d/msgpack-1.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:88d1e966c9235c1d4e2afac21ca83933ba59537e2e2727a999bf3f515ca2af26", size = 395986 }, - { url = "https://files.pythonhosted.org/packages/61/dc/8ae165337e70118d4dab651b8b562dd5066dd1e6dd57b038f32ebc3e2f07/msgpack-1.1.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f6d58656842e1b2ddbe07f43f56b10a60f2ba5826164910968f5933e5178af75", size = 402682 }, - { url = "https://files.pythonhosted.org/packages/58/27/555851cb98dcbd6ce041df1eacb25ac30646575e9cd125681aa2f4b1b6f1/msgpack-1.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96decdfc4adcbc087f5ea7ebdcfd3dee9a13358cae6e81d54be962efc38f6338", size = 406368 }, - { url = "https://files.pythonhosted.org/packages/d4/64/39a26add4ce16f24e99eabb9005e44c663db00e3fce17d4ae1ae9d61df99/msgpack-1.1.1-cp310-cp310-win32.whl", hash = "sha256:6640fd979ca9a212e4bcdf6eb74051ade2c690b862b679bfcb60ae46e6dc4bfd", size = 65004 }, - { url = "https://files.pythonhosted.org/packages/7d/18/73dfa3e9d5d7450d39debde5b0d848139f7de23bd637a4506e36c9800fd6/msgpack-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:8b65b53204fe1bd037c40c4148d00ef918eb2108d24c9aaa20bc31f9810ce0a8", size = 71548 }, - { url = "https://files.pythonhosted.org/packages/7f/83/97f24bf9848af23fe2ba04380388216defc49a8af6da0c28cc636d722502/msgpack-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:71ef05c1726884e44f8b1d1773604ab5d4d17729d8491403a705e649116c9558", size = 82728 }, - { url = "https://files.pythonhosted.org/packages/aa/7f/2eaa388267a78401f6e182662b08a588ef4f3de6f0eab1ec09736a7aaa2b/msgpack-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:36043272c6aede309d29d56851f8841ba907a1a3d04435e43e8a19928e243c1d", size = 79279 }, - { url = "https://files.pythonhosted.org/packages/f8/46/31eb60f4452c96161e4dfd26dbca562b4ec68c72e4ad07d9566d7ea35e8a/msgpack-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a32747b1b39c3ac27d0670122b57e6e57f28eefb725e0b625618d1b59bf9d1e0", size = 423859 }, - { url = "https://files.pythonhosted.org/packages/45/16/a20fa8c32825cc7ae8457fab45670c7a8996d7746ce80ce41cc51e3b2bd7/msgpack-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a8b10fdb84a43e50d38057b06901ec9da52baac6983d3f709d8507f3889d43f", size = 429975 }, - { url = "https://files.pythonhosted.org/packages/86/ea/6c958e07692367feeb1a1594d35e22b62f7f476f3c568b002a5ea09d443d/msgpack-1.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba0c325c3f485dc54ec298d8b024e134acf07c10d494ffa24373bea729acf704", size = 413528 }, - { url = "https://files.pythonhosted.org/packages/75/05/ac84063c5dae79722bda9f68b878dc31fc3059adb8633c79f1e82c2cd946/msgpack-1.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:88daaf7d146e48ec71212ce21109b66e06a98e5e44dca47d853cbfe171d6c8d2", size = 413338 }, - { url = "https://files.pythonhosted.org/packages/69/e8/fe86b082c781d3e1c09ca0f4dacd457ede60a13119b6ce939efe2ea77b76/msgpack-1.1.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8b55ea20dc59b181d3f47103f113e6f28a5e1c89fd5b67b9140edb442ab67f2", size = 422658 }, - { url = "https://files.pythonhosted.org/packages/3b/2b/bafc9924df52d8f3bb7c00d24e57be477f4d0f967c0a31ef5e2225e035c7/msgpack-1.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4a28e8072ae9779f20427af07f53bbb8b4aa81151054e882aee333b158da8752", size = 427124 }, - { url = "https://files.pythonhosted.org/packages/a2/3b/1f717e17e53e0ed0b68fa59e9188f3f610c79d7151f0e52ff3cd8eb6b2dc/msgpack-1.1.1-cp311-cp311-win32.whl", hash = "sha256:7da8831f9a0fdb526621ba09a281fadc58ea12701bc709e7b8cbc362feabc295", size = 65016 }, - { url = "https://files.pythonhosted.org/packages/48/45/9d1780768d3b249accecc5a38c725eb1e203d44a191f7b7ff1941f7df60c/msgpack-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:5fd1b58e1431008a57247d6e7cc4faa41c3607e8e7d4aaf81f7c29ea013cb458", size = 72267 }, - { url = "https://files.pythonhosted.org/packages/e3/26/389b9c593eda2b8551b2e7126ad3a06af6f9b44274eb3a4f054d48ff7e47/msgpack-1.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae497b11f4c21558d95de9f64fff7053544f4d1a17731c866143ed6bb4591238", size = 82359 }, - { url = "https://files.pythonhosted.org/packages/ab/65/7d1de38c8a22cf8b1551469159d4b6cf49be2126adc2482de50976084d78/msgpack-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157", size = 79172 }, - { url = "https://files.pythonhosted.org/packages/0f/bd/cacf208b64d9577a62c74b677e1ada005caa9b69a05a599889d6fc2ab20a/msgpack-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f64ae8fe7ffba251fecb8408540c34ee9df1c26674c50c4544d72dbf792e5ce", size = 425013 }, - { url = "https://files.pythonhosted.org/packages/4d/ec/fd869e2567cc9c01278a736cfd1697941ba0d4b81a43e0aa2e8d71dab208/msgpack-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a494554874691720ba5891c9b0b39474ba43ffb1aaf32a5dac874effb1619e1a", size = 426905 }, - { url = "https://files.pythonhosted.org/packages/55/2a/35860f33229075bce803a5593d046d8b489d7ba2fc85701e714fc1aaf898/msgpack-1.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb643284ab0ed26f6957d969fe0dd8bb17beb567beb8998140b5e38a90974f6c", size = 407336 }, - { url = "https://files.pythonhosted.org/packages/8c/16/69ed8f3ada150bf92745fb4921bd621fd2cdf5a42e25eb50bcc57a5328f0/msgpack-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d275a9e3c81b1093c060c3837e580c37f47c51eca031f7b5fb76f7b8470f5f9b", size = 409485 }, - { url = "https://files.pythonhosted.org/packages/c6/b6/0c398039e4c6d0b2e37c61d7e0e9d13439f91f780686deb8ee64ecf1ae71/msgpack-1.1.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fd6b577e4541676e0cc9ddc1709d25014d3ad9a66caa19962c4f5de30fc09ef", size = 412182 }, - { url = "https://files.pythonhosted.org/packages/b8/d0/0cf4a6ecb9bc960d624c93effaeaae75cbf00b3bc4a54f35c8507273cda1/msgpack-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb29aaa613c0a1c40d1af111abf025f1732cab333f96f285d6a93b934738a68a", size = 419883 }, - { url = "https://files.pythonhosted.org/packages/62/83/9697c211720fa71a2dfb632cad6196a8af3abea56eece220fde4674dc44b/msgpack-1.1.1-cp312-cp312-win32.whl", hash = "sha256:870b9a626280c86cff9c576ec0d9cbcc54a1e5ebda9cd26dab12baf41fee218c", size = 65406 }, - { url = "https://files.pythonhosted.org/packages/c0/23/0abb886e80eab08f5e8c485d6f13924028602829f63b8f5fa25a06636628/msgpack-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:5692095123007180dca3e788bb4c399cc26626da51629a31d40207cb262e67f4", size = 72558 }, - { url = "https://files.pythonhosted.org/packages/a1/38/561f01cf3577430b59b340b51329803d3a5bf6a45864a55f4ef308ac11e3/msgpack-1.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3765afa6bd4832fc11c3749be4ba4b69a0e8d7b728f78e68120a157a4c5d41f0", size = 81677 }, - { url = "https://files.pythonhosted.org/packages/09/48/54a89579ea36b6ae0ee001cba8c61f776451fad3c9306cd80f5b5c55be87/msgpack-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8ddb2bcfd1a8b9e431c8d6f4f7db0773084e107730ecf3472f1dfe9ad583f3d9", size = 78603 }, - { url = "https://files.pythonhosted.org/packages/a0/60/daba2699b308e95ae792cdc2ef092a38eb5ee422f9d2fbd4101526d8a210/msgpack-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:196a736f0526a03653d829d7d4c5500a97eea3648aebfd4b6743875f28aa2af8", size = 420504 }, - { url = "https://files.pythonhosted.org/packages/20/22/2ebae7ae43cd8f2debc35c631172ddf14e2a87ffcc04cf43ff9df9fff0d3/msgpack-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d592d06e3cc2f537ceeeb23d38799c6ad83255289bb84c2e5792e5a8dea268a", size = 423749 }, - { url = "https://files.pythonhosted.org/packages/40/1b/54c08dd5452427e1179a40b4b607e37e2664bca1c790c60c442c8e972e47/msgpack-1.1.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4df2311b0ce24f06ba253fda361f938dfecd7b961576f9be3f3fbd60e87130ac", size = 404458 }, - { url = "https://files.pythonhosted.org/packages/2e/60/6bb17e9ffb080616a51f09928fdd5cac1353c9becc6c4a8abd4e57269a16/msgpack-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e4141c5a32b5e37905b5940aacbc59739f036930367d7acce7a64e4dec1f5e0b", size = 405976 }, - { url = "https://files.pythonhosted.org/packages/ee/97/88983e266572e8707c1f4b99c8fd04f9eb97b43f2db40e3172d87d8642db/msgpack-1.1.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b1ce7f41670c5a69e1389420436f41385b1aa2504c3b0c30620764b15dded2e7", size = 408607 }, - { url = "https://files.pythonhosted.org/packages/bc/66/36c78af2efaffcc15a5a61ae0df53a1d025f2680122e2a9eb8442fed3ae4/msgpack-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4147151acabb9caed4e474c3344181e91ff7a388b888f1e19ea04f7e73dc7ad5", size = 424172 }, - { url = "https://files.pythonhosted.org/packages/8c/87/a75eb622b555708fe0427fab96056d39d4c9892b0c784b3a721088c7ee37/msgpack-1.1.1-cp313-cp313-win32.whl", hash = "sha256:500e85823a27d6d9bba1d057c871b4210c1dd6fb01fbb764e37e4e8847376323", size = 65347 }, - { url = "https://files.pythonhosted.org/packages/ca/91/7dc28d5e2a11a5ad804cf2b7f7a5fcb1eb5a4966d66a5d2b41aee6376543/msgpack-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:6d489fba546295983abd142812bda76b57e33d0b9f5d5b71c09a583285506f69", size = 72341 }, - { url = "https://files.pythonhosted.org/packages/1f/bd/0792be119d7fe7dc2148689ef65c90507d82d20a204aab3b98c74a1f8684/msgpack-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5be6b6bc52fad84d010cb45433720327ce886009d862f46b26d4d154001994b", size = 81882 }, - { url = "https://files.pythonhosted.org/packages/75/77/ce06c8e26a816ae8730a8e030d263c5289adcaff9f0476f9b270bdd7c5c2/msgpack-1.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3a89cd8c087ea67e64844287ea52888239cbd2940884eafd2dcd25754fb72232", size = 78414 }, - { url = "https://files.pythonhosted.org/packages/73/27/190576c497677fb4a0d05d896b24aea6cdccd910f206aaa7b511901befed/msgpack-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d75f3807a9900a7d575d8d6674a3a47e9f227e8716256f35bc6f03fc597ffbf", size = 400927 }, - { url = "https://files.pythonhosted.org/packages/ed/af/6a0aa5a06762e70726ec3c10fb966600d84a7220b52635cb0ab2dc64d32f/msgpack-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d182dac0221eb8faef2e6f44701812b467c02674a322c739355c39e94730cdbf", size = 405903 }, - { url = "https://files.pythonhosted.org/packages/1e/80/3f3da358cecbbe8eb12360814bd1277d59d2608485934742a074d99894a9/msgpack-1.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b13fe0fb4aac1aa5320cd693b297fe6fdef0e7bea5518cbc2dd5299f873ae90", size = 393192 }, - { url = "https://files.pythonhosted.org/packages/98/c6/3a0ec7fdebbb4f3f8f254696cd91d491c29c501dbebd86286c17e8f68cd7/msgpack-1.1.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:435807eeb1bc791ceb3247d13c79868deb22184e1fc4224808750f0d7d1affc1", size = 393851 }, - { url = "https://files.pythonhosted.org/packages/39/37/df50d5f8e68514b60fbe70f6e8337ea2b32ae2be030871bcd9d1cf7d4b62/msgpack-1.1.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4835d17af722609a45e16037bb1d4d78b7bdf19d6c0128116d178956618c4e88", size = 400292 }, - { url = "https://files.pythonhosted.org/packages/fc/ec/1e067292e02d2ceb4c8cb5ba222c4f7bb28730eef5676740609dc2627e0f/msgpack-1.1.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a8ef6e342c137888ebbfb233e02b8fbd689bb5b5fcc59b34711ac47ebd504478", size = 401873 }, - { url = "https://files.pythonhosted.org/packages/d3/31/e8c9c6b5b58d64c9efa99c8d181fcc25f38ead357b0360379fbc8a4234ad/msgpack-1.1.1-cp39-cp39-win32.whl", hash = "sha256:61abccf9de335d9efd149e2fff97ed5974f2481b3353772e8e2dd3402ba2bd57", size = 65028 }, - { url = "https://files.pythonhosted.org/packages/20/d6/cd62cded572e5e25892747a5d27850170bcd03c855e9c69c538e024de6f9/msgpack-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:40eae974c873b2992fd36424a5d9407f93e97656d999f43fca9d29f820899084", size = 71700 }, + { url = "https://files.pythonhosted.org/packages/33/52/f30da112c1dc92cf64f57d08a273ac771e7b29dea10b4b30369b2d7e8546/msgpack-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:353b6fc0c36fde68b661a12949d7d49f8f51ff5fa019c1e47c87c4ff34b080ed", size = 81799, upload-time = "2025-06-13T06:51:37.228Z" }, + { url = "https://files.pythonhosted.org/packages/e4/35/7bfc0def2f04ab4145f7f108e3563f9b4abae4ab0ed78a61f350518cc4d2/msgpack-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:79c408fcf76a958491b4e3b103d1c417044544b68e96d06432a189b43d1215c8", size = 78278, upload-time = "2025-06-13T06:51:38.534Z" }, + { url = "https://files.pythonhosted.org/packages/e8/c5/df5d6c1c39856bc55f800bf82778fd4c11370667f9b9e9d51b2f5da88f20/msgpack-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78426096939c2c7482bf31ef15ca219a9e24460289c00dd0b94411040bb73ad2", size = 402805, upload-time = "2025-06-13T06:51:39.538Z" }, + { url = "https://files.pythonhosted.org/packages/20/8e/0bb8c977efecfe6ea7116e2ed73a78a8d32a947f94d272586cf02a9757db/msgpack-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b17ba27727a36cb73aabacaa44b13090feb88a01d012c0f4be70c00f75048b4", size = 408642, upload-time = "2025-06-13T06:51:41.092Z" }, + { url = "https://files.pythonhosted.org/packages/59/a1/731d52c1aeec52006be6d1f8027c49fdc2cfc3ab7cbe7c28335b2910d7b6/msgpack-1.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a17ac1ea6ec3c7687d70201cfda3b1e8061466f28f686c24f627cae4ea8efd0", size = 395143, upload-time = "2025-06-13T06:51:42.575Z" }, + { url = "https://files.pythonhosted.org/packages/2b/92/b42911c52cda2ba67a6418ffa7d08969edf2e760b09015593c8a8a27a97d/msgpack-1.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:88d1e966c9235c1d4e2afac21ca83933ba59537e2e2727a999bf3f515ca2af26", size = 395986, upload-time = "2025-06-13T06:51:43.807Z" }, + { url = "https://files.pythonhosted.org/packages/61/dc/8ae165337e70118d4dab651b8b562dd5066dd1e6dd57b038f32ebc3e2f07/msgpack-1.1.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f6d58656842e1b2ddbe07f43f56b10a60f2ba5826164910968f5933e5178af75", size = 402682, upload-time = "2025-06-13T06:51:45.534Z" }, + { url = "https://files.pythonhosted.org/packages/58/27/555851cb98dcbd6ce041df1eacb25ac30646575e9cd125681aa2f4b1b6f1/msgpack-1.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96decdfc4adcbc087f5ea7ebdcfd3dee9a13358cae6e81d54be962efc38f6338", size = 406368, upload-time = "2025-06-13T06:51:46.97Z" }, + { url = "https://files.pythonhosted.org/packages/d4/64/39a26add4ce16f24e99eabb9005e44c663db00e3fce17d4ae1ae9d61df99/msgpack-1.1.1-cp310-cp310-win32.whl", hash = "sha256:6640fd979ca9a212e4bcdf6eb74051ade2c690b862b679bfcb60ae46e6dc4bfd", size = 65004, upload-time = "2025-06-13T06:51:48.582Z" }, + { url = "https://files.pythonhosted.org/packages/7d/18/73dfa3e9d5d7450d39debde5b0d848139f7de23bd637a4506e36c9800fd6/msgpack-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:8b65b53204fe1bd037c40c4148d00ef918eb2108d24c9aaa20bc31f9810ce0a8", size = 71548, upload-time = "2025-06-13T06:51:49.558Z" }, + { url = "https://files.pythonhosted.org/packages/7f/83/97f24bf9848af23fe2ba04380388216defc49a8af6da0c28cc636d722502/msgpack-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:71ef05c1726884e44f8b1d1773604ab5d4d17729d8491403a705e649116c9558", size = 82728, upload-time = "2025-06-13T06:51:50.68Z" }, + { url = "https://files.pythonhosted.org/packages/aa/7f/2eaa388267a78401f6e182662b08a588ef4f3de6f0eab1ec09736a7aaa2b/msgpack-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:36043272c6aede309d29d56851f8841ba907a1a3d04435e43e8a19928e243c1d", size = 79279, upload-time = "2025-06-13T06:51:51.72Z" }, + { url = "https://files.pythonhosted.org/packages/f8/46/31eb60f4452c96161e4dfd26dbca562b4ec68c72e4ad07d9566d7ea35e8a/msgpack-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a32747b1b39c3ac27d0670122b57e6e57f28eefb725e0b625618d1b59bf9d1e0", size = 423859, upload-time = "2025-06-13T06:51:52.749Z" }, + { url = "https://files.pythonhosted.org/packages/45/16/a20fa8c32825cc7ae8457fab45670c7a8996d7746ce80ce41cc51e3b2bd7/msgpack-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a8b10fdb84a43e50d38057b06901ec9da52baac6983d3f709d8507f3889d43f", size = 429975, upload-time = "2025-06-13T06:51:53.97Z" }, + { url = "https://files.pythonhosted.org/packages/86/ea/6c958e07692367feeb1a1594d35e22b62f7f476f3c568b002a5ea09d443d/msgpack-1.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba0c325c3f485dc54ec298d8b024e134acf07c10d494ffa24373bea729acf704", size = 413528, upload-time = "2025-06-13T06:51:55.507Z" }, + { url = "https://files.pythonhosted.org/packages/75/05/ac84063c5dae79722bda9f68b878dc31fc3059adb8633c79f1e82c2cd946/msgpack-1.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:88daaf7d146e48ec71212ce21109b66e06a98e5e44dca47d853cbfe171d6c8d2", size = 413338, upload-time = "2025-06-13T06:51:57.023Z" }, + { url = "https://files.pythonhosted.org/packages/69/e8/fe86b082c781d3e1c09ca0f4dacd457ede60a13119b6ce939efe2ea77b76/msgpack-1.1.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8b55ea20dc59b181d3f47103f113e6f28a5e1c89fd5b67b9140edb442ab67f2", size = 422658, upload-time = "2025-06-13T06:51:58.419Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2b/bafc9924df52d8f3bb7c00d24e57be477f4d0f967c0a31ef5e2225e035c7/msgpack-1.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4a28e8072ae9779f20427af07f53bbb8b4aa81151054e882aee333b158da8752", size = 427124, upload-time = "2025-06-13T06:51:59.969Z" }, + { url = "https://files.pythonhosted.org/packages/a2/3b/1f717e17e53e0ed0b68fa59e9188f3f610c79d7151f0e52ff3cd8eb6b2dc/msgpack-1.1.1-cp311-cp311-win32.whl", hash = "sha256:7da8831f9a0fdb526621ba09a281fadc58ea12701bc709e7b8cbc362feabc295", size = 65016, upload-time = "2025-06-13T06:52:01.294Z" }, + { url = "https://files.pythonhosted.org/packages/48/45/9d1780768d3b249accecc5a38c725eb1e203d44a191f7b7ff1941f7df60c/msgpack-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:5fd1b58e1431008a57247d6e7cc4faa41c3607e8e7d4aaf81f7c29ea013cb458", size = 72267, upload-time = "2025-06-13T06:52:02.568Z" }, + { url = "https://files.pythonhosted.org/packages/e3/26/389b9c593eda2b8551b2e7126ad3a06af6f9b44274eb3a4f054d48ff7e47/msgpack-1.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae497b11f4c21558d95de9f64fff7053544f4d1a17731c866143ed6bb4591238", size = 82359, upload-time = "2025-06-13T06:52:03.909Z" }, + { url = "https://files.pythonhosted.org/packages/ab/65/7d1de38c8a22cf8b1551469159d4b6cf49be2126adc2482de50976084d78/msgpack-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157", size = 79172, upload-time = "2025-06-13T06:52:05.246Z" }, + { url = "https://files.pythonhosted.org/packages/0f/bd/cacf208b64d9577a62c74b677e1ada005caa9b69a05a599889d6fc2ab20a/msgpack-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f64ae8fe7ffba251fecb8408540c34ee9df1c26674c50c4544d72dbf792e5ce", size = 425013, upload-time = "2025-06-13T06:52:06.341Z" }, + { url = "https://files.pythonhosted.org/packages/4d/ec/fd869e2567cc9c01278a736cfd1697941ba0d4b81a43e0aa2e8d71dab208/msgpack-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a494554874691720ba5891c9b0b39474ba43ffb1aaf32a5dac874effb1619e1a", size = 426905, upload-time = "2025-06-13T06:52:07.501Z" }, + { url = "https://files.pythonhosted.org/packages/55/2a/35860f33229075bce803a5593d046d8b489d7ba2fc85701e714fc1aaf898/msgpack-1.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb643284ab0ed26f6957d969fe0dd8bb17beb567beb8998140b5e38a90974f6c", size = 407336, upload-time = "2025-06-13T06:52:09.047Z" }, + { url = "https://files.pythonhosted.org/packages/8c/16/69ed8f3ada150bf92745fb4921bd621fd2cdf5a42e25eb50bcc57a5328f0/msgpack-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d275a9e3c81b1093c060c3837e580c37f47c51eca031f7b5fb76f7b8470f5f9b", size = 409485, upload-time = "2025-06-13T06:52:10.382Z" }, + { url = "https://files.pythonhosted.org/packages/c6/b6/0c398039e4c6d0b2e37c61d7e0e9d13439f91f780686deb8ee64ecf1ae71/msgpack-1.1.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fd6b577e4541676e0cc9ddc1709d25014d3ad9a66caa19962c4f5de30fc09ef", size = 412182, upload-time = "2025-06-13T06:52:11.644Z" }, + { url = "https://files.pythonhosted.org/packages/b8/d0/0cf4a6ecb9bc960d624c93effaeaae75cbf00b3bc4a54f35c8507273cda1/msgpack-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb29aaa613c0a1c40d1af111abf025f1732cab333f96f285d6a93b934738a68a", size = 419883, upload-time = "2025-06-13T06:52:12.806Z" }, + { url = "https://files.pythonhosted.org/packages/62/83/9697c211720fa71a2dfb632cad6196a8af3abea56eece220fde4674dc44b/msgpack-1.1.1-cp312-cp312-win32.whl", hash = "sha256:870b9a626280c86cff9c576ec0d9cbcc54a1e5ebda9cd26dab12baf41fee218c", size = 65406, upload-time = "2025-06-13T06:52:14.271Z" }, + { url = "https://files.pythonhosted.org/packages/c0/23/0abb886e80eab08f5e8c485d6f13924028602829f63b8f5fa25a06636628/msgpack-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:5692095123007180dca3e788bb4c399cc26626da51629a31d40207cb262e67f4", size = 72558, upload-time = "2025-06-13T06:52:15.252Z" }, + { url = "https://files.pythonhosted.org/packages/a1/38/561f01cf3577430b59b340b51329803d3a5bf6a45864a55f4ef308ac11e3/msgpack-1.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3765afa6bd4832fc11c3749be4ba4b69a0e8d7b728f78e68120a157a4c5d41f0", size = 81677, upload-time = "2025-06-13T06:52:16.64Z" }, + { url = "https://files.pythonhosted.org/packages/09/48/54a89579ea36b6ae0ee001cba8c61f776451fad3c9306cd80f5b5c55be87/msgpack-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8ddb2bcfd1a8b9e431c8d6f4f7db0773084e107730ecf3472f1dfe9ad583f3d9", size = 78603, upload-time = "2025-06-13T06:52:17.843Z" }, + { url = "https://files.pythonhosted.org/packages/a0/60/daba2699b308e95ae792cdc2ef092a38eb5ee422f9d2fbd4101526d8a210/msgpack-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:196a736f0526a03653d829d7d4c5500a97eea3648aebfd4b6743875f28aa2af8", size = 420504, upload-time = "2025-06-13T06:52:18.982Z" }, + { url = "https://files.pythonhosted.org/packages/20/22/2ebae7ae43cd8f2debc35c631172ddf14e2a87ffcc04cf43ff9df9fff0d3/msgpack-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d592d06e3cc2f537ceeeb23d38799c6ad83255289bb84c2e5792e5a8dea268a", size = 423749, upload-time = "2025-06-13T06:52:20.211Z" }, + { url = "https://files.pythonhosted.org/packages/40/1b/54c08dd5452427e1179a40b4b607e37e2664bca1c790c60c442c8e972e47/msgpack-1.1.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4df2311b0ce24f06ba253fda361f938dfecd7b961576f9be3f3fbd60e87130ac", size = 404458, upload-time = "2025-06-13T06:52:21.429Z" }, + { url = "https://files.pythonhosted.org/packages/2e/60/6bb17e9ffb080616a51f09928fdd5cac1353c9becc6c4a8abd4e57269a16/msgpack-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e4141c5a32b5e37905b5940aacbc59739f036930367d7acce7a64e4dec1f5e0b", size = 405976, upload-time = "2025-06-13T06:52:22.995Z" }, + { url = "https://files.pythonhosted.org/packages/ee/97/88983e266572e8707c1f4b99c8fd04f9eb97b43f2db40e3172d87d8642db/msgpack-1.1.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b1ce7f41670c5a69e1389420436f41385b1aa2504c3b0c30620764b15dded2e7", size = 408607, upload-time = "2025-06-13T06:52:24.152Z" }, + { url = "https://files.pythonhosted.org/packages/bc/66/36c78af2efaffcc15a5a61ae0df53a1d025f2680122e2a9eb8442fed3ae4/msgpack-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4147151acabb9caed4e474c3344181e91ff7a388b888f1e19ea04f7e73dc7ad5", size = 424172, upload-time = "2025-06-13T06:52:25.704Z" }, + { url = "https://files.pythonhosted.org/packages/8c/87/a75eb622b555708fe0427fab96056d39d4c9892b0c784b3a721088c7ee37/msgpack-1.1.1-cp313-cp313-win32.whl", hash = "sha256:500e85823a27d6d9bba1d057c871b4210c1dd6fb01fbb764e37e4e8847376323", size = 65347, upload-time = "2025-06-13T06:52:26.846Z" }, + { url = "https://files.pythonhosted.org/packages/ca/91/7dc28d5e2a11a5ad804cf2b7f7a5fcb1eb5a4966d66a5d2b41aee6376543/msgpack-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:6d489fba546295983abd142812bda76b57e33d0b9f5d5b71c09a583285506f69", size = 72341, upload-time = "2025-06-13T06:52:27.835Z" }, + { url = "https://files.pythonhosted.org/packages/1f/bd/0792be119d7fe7dc2148689ef65c90507d82d20a204aab3b98c74a1f8684/msgpack-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5be6b6bc52fad84d010cb45433720327ce886009d862f46b26d4d154001994b", size = 81882, upload-time = "2025-06-13T06:52:39.316Z" }, + { url = "https://files.pythonhosted.org/packages/75/77/ce06c8e26a816ae8730a8e030d263c5289adcaff9f0476f9b270bdd7c5c2/msgpack-1.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3a89cd8c087ea67e64844287ea52888239cbd2940884eafd2dcd25754fb72232", size = 78414, upload-time = "2025-06-13T06:52:40.341Z" }, + { url = "https://files.pythonhosted.org/packages/73/27/190576c497677fb4a0d05d896b24aea6cdccd910f206aaa7b511901befed/msgpack-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d75f3807a9900a7d575d8d6674a3a47e9f227e8716256f35bc6f03fc597ffbf", size = 400927, upload-time = "2025-06-13T06:52:41.399Z" }, + { url = "https://files.pythonhosted.org/packages/ed/af/6a0aa5a06762e70726ec3c10fb966600d84a7220b52635cb0ab2dc64d32f/msgpack-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d182dac0221eb8faef2e6f44701812b467c02674a322c739355c39e94730cdbf", size = 405903, upload-time = "2025-06-13T06:52:42.699Z" }, + { url = "https://files.pythonhosted.org/packages/1e/80/3f3da358cecbbe8eb12360814bd1277d59d2608485934742a074d99894a9/msgpack-1.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b13fe0fb4aac1aa5320cd693b297fe6fdef0e7bea5518cbc2dd5299f873ae90", size = 393192, upload-time = "2025-06-13T06:52:43.986Z" }, + { url = "https://files.pythonhosted.org/packages/98/c6/3a0ec7fdebbb4f3f8f254696cd91d491c29c501dbebd86286c17e8f68cd7/msgpack-1.1.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:435807eeb1bc791ceb3247d13c79868deb22184e1fc4224808750f0d7d1affc1", size = 393851, upload-time = "2025-06-13T06:52:45.177Z" }, + { url = "https://files.pythonhosted.org/packages/39/37/df50d5f8e68514b60fbe70f6e8337ea2b32ae2be030871bcd9d1cf7d4b62/msgpack-1.1.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4835d17af722609a45e16037bb1d4d78b7bdf19d6c0128116d178956618c4e88", size = 400292, upload-time = "2025-06-13T06:52:46.381Z" }, + { url = "https://files.pythonhosted.org/packages/fc/ec/1e067292e02d2ceb4c8cb5ba222c4f7bb28730eef5676740609dc2627e0f/msgpack-1.1.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a8ef6e342c137888ebbfb233e02b8fbd689bb5b5fcc59b34711ac47ebd504478", size = 401873, upload-time = "2025-06-13T06:52:47.957Z" }, + { url = "https://files.pythonhosted.org/packages/d3/31/e8c9c6b5b58d64c9efa99c8d181fcc25f38ead357b0360379fbc8a4234ad/msgpack-1.1.1-cp39-cp39-win32.whl", hash = "sha256:61abccf9de335d9efd149e2fff97ed5974f2481b3353772e8e2dd3402ba2bd57", size = 65028, upload-time = "2025-06-13T06:52:49.166Z" }, + { url = "https://files.pythonhosted.org/packages/20/d6/cd62cded572e5e25892747a5d27850170bcd03c855e9c69c538e024de6f9/msgpack-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:40eae974c873b2992fd36424a5d9407f93e97656d999f43fca9d29f820899084", size = 71700, upload-time = "2025-06-13T06:52:50.244Z" }, ] [[package]] @@ -158,28 +158,28 @@ dependencies = [ { name = "llvmlite", version = "0.43.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3c/93/2849300a9184775ba274aba6f82f303343669b0592b7bb0849ea713dabb0/numba-0.60.0.tar.gz", hash = "sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16", size = 2702171 } +sdist = { url = "https://files.pythonhosted.org/packages/3c/93/2849300a9184775ba274aba6f82f303343669b0592b7bb0849ea713dabb0/numba-0.60.0.tar.gz", hash = "sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16", size = 2702171, upload-time = "2024-06-13T18:11:19.869Z" } 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/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 }, - { url = "https://files.pythonhosted.org/packages/68/1a/87c53f836cdf557083248c3f47212271f220280ff766538795e77c8c6bbf/numba-0.60.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:01ef4cd7d83abe087d644eaa3d95831b777aa21d441a23703d649e06b8e06b74", size = 2647186 }, - { url = "https://files.pythonhosted.org/packages/28/14/a5baa1f2edea7b49afa4dc1bb1b126645198cf1075186853b5b497be826e/numba-0.60.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:819a3dfd4630d95fd574036f99e47212a1af41cbcb019bf8afac63ff56834449", size = 2650038 }, - { url = "https://files.pythonhosted.org/packages/3b/bd/f1985719ff34e37e07bb18f9d3acd17e5a21da255f550c8eae031e2ddf5f/numba-0.60.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0b983bd6ad82fe868493012487f34eae8bf7dd94654951404114f23c3466d34b", size = 3403010 }, - { url = "https://files.pythonhosted.org/packages/54/9b/cd73d3f6617ddc8398a63ef97d8dc9139a9879b9ca8a7ca4b8789056ea46/numba-0.60.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c151748cd269ddeab66334bd754817ffc0cabd9433acb0f551697e5151917d25", size = 3695086 }, - { url = "https://files.pythonhosted.org/packages/01/01/8b7b670c77c5ea0e47e283d82332969bf672ab6410d0b2610cac5b7a3ded/numba-0.60.0-cp39-cp39-win_amd64.whl", hash = "sha256:3031547a015710140e8c87226b4cfe927cac199835e5bf7d4fe5cb64e814e3ab", size = 2686978 }, + { 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, upload-time = "2024-06-13T18:10:29.857Z" }, + { 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, upload-time = "2024-06-13T18:10:32.849Z" }, + { 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, upload-time = "2024-06-13T18:10:34.741Z" }, + { 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, upload-time = "2024-06-13T18:10:37.295Z" }, + { url = "https://files.pythonhosted.org/packages/1c/b0/c61a93ca947d12233ff45de506ddbf52af3f752066a0b8be4d27426e16da/numba-0.60.0-cp310-cp310-win_amd64.whl", hash = "sha256:19407ced081d7e2e4b8d8c36aa57b7452e0283871c296e12d798852bc7d7f198", size = 2687030, upload-time = "2024-06-13T18:10:39.47Z" }, + { 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, upload-time = "2024-06-13T18:10:41.69Z" }, + { 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, upload-time = "2024-06-13T18:10:44.682Z" }, + { 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, upload-time = "2024-06-13T18:10:47.1Z" }, + { 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, upload-time = "2024-06-13T18:10:49.539Z" }, + { url = "https://files.pythonhosted.org/packages/79/89/2d924ca60dbf949f18a6fec223a2445f5f428d9a5f97a6b29c2122319015/numba-0.60.0-cp311-cp311-win_amd64.whl", hash = "sha256:cac02c041e9b5bc8cf8f2034ff6f0dbafccd1ae9590dc146b3a02a45e53af4e2", size = 2686920, upload-time = "2024-06-13T18:10:51.937Z" }, + { 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, upload-time = "2024-06-13T18:10:54.453Z" }, + { 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, upload-time = "2024-06-13T18:10:56.779Z" }, + { 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, upload-time = "2024-06-13T18:10:58.961Z" }, + { 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, upload-time = "2024-06-13T18:11:01.657Z" }, + { url = "https://files.pythonhosted.org/packages/ca/bd/0fe29fcd1b6a8de479a4ed25c6e56470e467e3611c079d55869ceef2b6d1/numba-0.60.0-cp312-cp312-win_amd64.whl", hash = "sha256:f75262e8fe7fa96db1dca93d53a194a38c46da28b112b8a4aca168f0df860347", size = 2707588, upload-time = "2024-06-13T18:11:04.261Z" }, + { url = "https://files.pythonhosted.org/packages/68/1a/87c53f836cdf557083248c3f47212271f220280ff766538795e77c8c6bbf/numba-0.60.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:01ef4cd7d83abe087d644eaa3d95831b777aa21d441a23703d649e06b8e06b74", size = 2647186, upload-time = "2024-06-13T18:11:06.753Z" }, + { url = "https://files.pythonhosted.org/packages/28/14/a5baa1f2edea7b49afa4dc1bb1b126645198cf1075186853b5b497be826e/numba-0.60.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:819a3dfd4630d95fd574036f99e47212a1af41cbcb019bf8afac63ff56834449", size = 2650038, upload-time = "2024-06-13T18:11:10.869Z" }, + { url = "https://files.pythonhosted.org/packages/3b/bd/f1985719ff34e37e07bb18f9d3acd17e5a21da255f550c8eae031e2ddf5f/numba-0.60.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0b983bd6ad82fe868493012487f34eae8bf7dd94654951404114f23c3466d34b", size = 3403010, upload-time = "2024-06-13T18:11:13.057Z" }, + { url = "https://files.pythonhosted.org/packages/54/9b/cd73d3f6617ddc8398a63ef97d8dc9139a9879b9ca8a7ca4b8789056ea46/numba-0.60.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c151748cd269ddeab66334bd754817ffc0cabd9433acb0f551697e5151917d25", size = 3695086, upload-time = "2024-06-13T18:11:15.497Z" }, + { url = "https://files.pythonhosted.org/packages/01/01/8b7b670c77c5ea0e47e283d82332969bf672ab6410d0b2610cac5b7a3ded/numba-0.60.0-cp39-cp39-win_amd64.whl", hash = "sha256:3031547a015710140e8c87226b4cfe927cac199835e5bf7d4fe5cb64e814e3ab", size = 2686978, upload-time = "2024-06-13T18:11:17.765Z" }, ] [[package]] @@ -194,28 +194,28 @@ dependencies = [ { name = "llvmlite", version = "0.44.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1c/a0/e21f57604304aa03ebb8e098429222722ad99176a4f979d34af1d1ee80da/numba-0.61.2.tar.gz", hash = "sha256:8750ee147940a6637b80ecf7f95062185ad8726c8c28a2295b8ec1160a196f7d", size = 2820615 } +sdist = { url = "https://files.pythonhosted.org/packages/1c/a0/e21f57604304aa03ebb8e098429222722ad99176a4f979d34af1d1ee80da/numba-0.61.2.tar.gz", hash = "sha256:8750ee147940a6637b80ecf7f95062185ad8726c8c28a2295b8ec1160a196f7d", size = 2820615, upload-time = "2025-04-09T02:58:07.659Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/ca/f470be59552ccbf9531d2d383b67ae0b9b524d435fb4a0d229fef135116e/numba-0.61.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:cf9f9fc00d6eca0c23fc840817ce9f439b9f03c8f03d6246c0e7f0cb15b7162a", size = 2775663 }, - { url = "https://files.pythonhosted.org/packages/f5/13/3bdf52609c80d460a3b4acfb9fdb3817e392875c0d6270cf3fd9546f138b/numba-0.61.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ea0247617edcb5dd61f6106a56255baab031acc4257bddaeddb3a1003b4ca3fd", size = 2778344 }, - { url = "https://files.pythonhosted.org/packages/e2/7d/bfb2805bcfbd479f04f835241ecf28519f6e3609912e3a985aed45e21370/numba-0.61.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae8c7a522c26215d5f62ebec436e3d341f7f590079245a2f1008dfd498cc1642", size = 3824054 }, - { url = "https://files.pythonhosted.org/packages/e3/27/797b2004745c92955470c73c82f0e300cf033c791f45bdecb4b33b12bdea/numba-0.61.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd1e74609855aa43661edffca37346e4e8462f6903889917e9f41db40907daa2", size = 3518531 }, - { url = "https://files.pythonhosted.org/packages/b1/c6/c2fb11e50482cb310afae87a997707f6c7d8a48967b9696271347441f650/numba-0.61.2-cp310-cp310-win_amd64.whl", hash = "sha256:ae45830b129c6137294093b269ef0a22998ccc27bf7cf096ab8dcf7bca8946f9", size = 2831612 }, - { url = "https://files.pythonhosted.org/packages/3f/97/c99d1056aed767503c228f7099dc11c402906b42a4757fec2819329abb98/numba-0.61.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:efd3db391df53aaa5cfbee189b6c910a5b471488749fd6606c3f33fc984c2ae2", size = 2775825 }, - { url = "https://files.pythonhosted.org/packages/95/9e/63c549f37136e892f006260c3e2613d09d5120672378191f2dc387ba65a2/numba-0.61.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:49c980e4171948ffebf6b9a2520ea81feed113c1f4890747ba7f59e74be84b1b", size = 2778695 }, - { url = "https://files.pythonhosted.org/packages/97/c8/8740616c8436c86c1b9a62e72cb891177d2c34c2d24ddcde4c390371bf4c/numba-0.61.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3945615cd73c2c7eba2a85ccc9c1730c21cd3958bfcf5a44302abae0fb07bb60", size = 3829227 }, - { url = "https://files.pythonhosted.org/packages/fc/06/66e99ae06507c31d15ff3ecd1f108f2f59e18b6e08662cd5f8a5853fbd18/numba-0.61.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbfdf4eca202cebade0b7d43896978e146f39398909a42941c9303f82f403a18", size = 3523422 }, - { url = "https://files.pythonhosted.org/packages/0f/a4/2b309a6a9f6d4d8cfba583401c7c2f9ff887adb5d54d8e2e130274c0973f/numba-0.61.2-cp311-cp311-win_amd64.whl", hash = "sha256:76bcec9f46259cedf888041b9886e257ae101c6268261b19fda8cfbc52bec9d1", size = 2831505 }, - { url = "https://files.pythonhosted.org/packages/b4/a0/c6b7b9c615cfa3b98c4c63f4316e3f6b3bbe2387740277006551784218cd/numba-0.61.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:34fba9406078bac7ab052efbf0d13939426c753ad72946baaa5bf9ae0ebb8dd2", size = 2776626 }, - { url = "https://files.pythonhosted.org/packages/92/4a/fe4e3c2ecad72d88f5f8cd04e7f7cff49e718398a2fac02d2947480a00ca/numba-0.61.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4ddce10009bc097b080fc96876d14c051cc0c7679e99de3e0af59014dab7dfe8", size = 2779287 }, - { url = "https://files.pythonhosted.org/packages/9a/2d/e518df036feab381c23a624dac47f8445ac55686ec7f11083655eb707da3/numba-0.61.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b1bb509d01f23d70325d3a5a0e237cbc9544dd50e50588bc581ba860c213546", size = 3885928 }, - { url = "https://files.pythonhosted.org/packages/10/0f/23cced68ead67b75d77cfcca3df4991d1855c897ee0ff3fe25a56ed82108/numba-0.61.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48a53a3de8f8793526cbe330f2a39fe9a6638efcbf11bd63f3d2f9757ae345cd", size = 3577115 }, - { url = "https://files.pythonhosted.org/packages/68/1d/ddb3e704c5a8fb90142bf9dc195c27db02a08a99f037395503bfbc1d14b3/numba-0.61.2-cp312-cp312-win_amd64.whl", hash = "sha256:97cf4f12c728cf77c9c1d7c23707e4d8fb4632b46275f8f3397de33e5877af18", size = 2831929 }, - { url = "https://files.pythonhosted.org/packages/0b/f3/0fe4c1b1f2569e8a18ad90c159298d862f96c3964392a20d74fc628aee44/numba-0.61.2-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:3a10a8fc9afac40b1eac55717cece1b8b1ac0b946f5065c89e00bde646b5b154", size = 2771785 }, - { url = "https://files.pythonhosted.org/packages/e9/71/91b277d712e46bd5059f8a5866862ed1116091a7cb03bd2704ba8ebe015f/numba-0.61.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d3bcada3c9afba3bed413fba45845f2fb9cd0d2b27dd58a1be90257e293d140", size = 2773289 }, - { url = "https://files.pythonhosted.org/packages/0d/e0/5ea04e7ad2c39288c0f0f9e8d47638ad70f28e275d092733b5817cf243c9/numba-0.61.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bdbca73ad81fa196bd53dc12e3aaf1564ae036e0c125f237c7644fe64a4928ab", size = 3893918 }, - { url = "https://files.pythonhosted.org/packages/17/58/064f4dcb7d7e9412f16ecf80ed753f92297e39f399c905389688cf950b81/numba-0.61.2-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:5f154aaea625fb32cfbe3b80c5456d514d416fcdf79733dd69c0df3a11348e9e", size = 3584056 }, - { url = "https://files.pythonhosted.org/packages/af/a4/6d3a0f2d3989e62a18749e1e9913d5fa4910bbb3e3311a035baea6caf26d/numba-0.61.2-cp313-cp313-win_amd64.whl", hash = "sha256:59321215e2e0ac5fa928a8020ab00b8e57cda8a97384963ac0dfa4d4e6aa54e7", size = 2831846 }, + { url = "https://files.pythonhosted.org/packages/eb/ca/f470be59552ccbf9531d2d383b67ae0b9b524d435fb4a0d229fef135116e/numba-0.61.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:cf9f9fc00d6eca0c23fc840817ce9f439b9f03c8f03d6246c0e7f0cb15b7162a", size = 2775663, upload-time = "2025-04-09T02:57:34.143Z" }, + { url = "https://files.pythonhosted.org/packages/f5/13/3bdf52609c80d460a3b4acfb9fdb3817e392875c0d6270cf3fd9546f138b/numba-0.61.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ea0247617edcb5dd61f6106a56255baab031acc4257bddaeddb3a1003b4ca3fd", size = 2778344, upload-time = "2025-04-09T02:57:36.609Z" }, + { url = "https://files.pythonhosted.org/packages/e2/7d/bfb2805bcfbd479f04f835241ecf28519f6e3609912e3a985aed45e21370/numba-0.61.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae8c7a522c26215d5f62ebec436e3d341f7f590079245a2f1008dfd498cc1642", size = 3824054, upload-time = "2025-04-09T02:57:38.162Z" }, + { url = "https://files.pythonhosted.org/packages/e3/27/797b2004745c92955470c73c82f0e300cf033c791f45bdecb4b33b12bdea/numba-0.61.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd1e74609855aa43661edffca37346e4e8462f6903889917e9f41db40907daa2", size = 3518531, upload-time = "2025-04-09T02:57:39.709Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c6/c2fb11e50482cb310afae87a997707f6c7d8a48967b9696271347441f650/numba-0.61.2-cp310-cp310-win_amd64.whl", hash = "sha256:ae45830b129c6137294093b269ef0a22998ccc27bf7cf096ab8dcf7bca8946f9", size = 2831612, upload-time = "2025-04-09T02:57:41.559Z" }, + { url = "https://files.pythonhosted.org/packages/3f/97/c99d1056aed767503c228f7099dc11c402906b42a4757fec2819329abb98/numba-0.61.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:efd3db391df53aaa5cfbee189b6c910a5b471488749fd6606c3f33fc984c2ae2", size = 2775825, upload-time = "2025-04-09T02:57:43.442Z" }, + { url = "https://files.pythonhosted.org/packages/95/9e/63c549f37136e892f006260c3e2613d09d5120672378191f2dc387ba65a2/numba-0.61.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:49c980e4171948ffebf6b9a2520ea81feed113c1f4890747ba7f59e74be84b1b", size = 2778695, upload-time = "2025-04-09T02:57:44.968Z" }, + { url = "https://files.pythonhosted.org/packages/97/c8/8740616c8436c86c1b9a62e72cb891177d2c34c2d24ddcde4c390371bf4c/numba-0.61.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3945615cd73c2c7eba2a85ccc9c1730c21cd3958bfcf5a44302abae0fb07bb60", size = 3829227, upload-time = "2025-04-09T02:57:46.63Z" }, + { url = "https://files.pythonhosted.org/packages/fc/06/66e99ae06507c31d15ff3ecd1f108f2f59e18b6e08662cd5f8a5853fbd18/numba-0.61.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbfdf4eca202cebade0b7d43896978e146f39398909a42941c9303f82f403a18", size = 3523422, upload-time = "2025-04-09T02:57:48.222Z" }, + { url = "https://files.pythonhosted.org/packages/0f/a4/2b309a6a9f6d4d8cfba583401c7c2f9ff887adb5d54d8e2e130274c0973f/numba-0.61.2-cp311-cp311-win_amd64.whl", hash = "sha256:76bcec9f46259cedf888041b9886e257ae101c6268261b19fda8cfbc52bec9d1", size = 2831505, upload-time = "2025-04-09T02:57:50.108Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a0/c6b7b9c615cfa3b98c4c63f4316e3f6b3bbe2387740277006551784218cd/numba-0.61.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:34fba9406078bac7ab052efbf0d13939426c753ad72946baaa5bf9ae0ebb8dd2", size = 2776626, upload-time = "2025-04-09T02:57:51.857Z" }, + { url = "https://files.pythonhosted.org/packages/92/4a/fe4e3c2ecad72d88f5f8cd04e7f7cff49e718398a2fac02d2947480a00ca/numba-0.61.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4ddce10009bc097b080fc96876d14c051cc0c7679e99de3e0af59014dab7dfe8", size = 2779287, upload-time = "2025-04-09T02:57:53.658Z" }, + { url = "https://files.pythonhosted.org/packages/9a/2d/e518df036feab381c23a624dac47f8445ac55686ec7f11083655eb707da3/numba-0.61.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b1bb509d01f23d70325d3a5a0e237cbc9544dd50e50588bc581ba860c213546", size = 3885928, upload-time = "2025-04-09T02:57:55.206Z" }, + { url = "https://files.pythonhosted.org/packages/10/0f/23cced68ead67b75d77cfcca3df4991d1855c897ee0ff3fe25a56ed82108/numba-0.61.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48a53a3de8f8793526cbe330f2a39fe9a6638efcbf11bd63f3d2f9757ae345cd", size = 3577115, upload-time = "2025-04-09T02:57:56.818Z" }, + { url = "https://files.pythonhosted.org/packages/68/1d/ddb3e704c5a8fb90142bf9dc195c27db02a08a99f037395503bfbc1d14b3/numba-0.61.2-cp312-cp312-win_amd64.whl", hash = "sha256:97cf4f12c728cf77c9c1d7c23707e4d8fb4632b46275f8f3397de33e5877af18", size = 2831929, upload-time = "2025-04-09T02:57:58.45Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f3/0fe4c1b1f2569e8a18ad90c159298d862f96c3964392a20d74fc628aee44/numba-0.61.2-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:3a10a8fc9afac40b1eac55717cece1b8b1ac0b946f5065c89e00bde646b5b154", size = 2771785, upload-time = "2025-04-09T02:57:59.96Z" }, + { url = "https://files.pythonhosted.org/packages/e9/71/91b277d712e46bd5059f8a5866862ed1116091a7cb03bd2704ba8ebe015f/numba-0.61.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d3bcada3c9afba3bed413fba45845f2fb9cd0d2b27dd58a1be90257e293d140", size = 2773289, upload-time = "2025-04-09T02:58:01.435Z" }, + { url = "https://files.pythonhosted.org/packages/0d/e0/5ea04e7ad2c39288c0f0f9e8d47638ad70f28e275d092733b5817cf243c9/numba-0.61.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bdbca73ad81fa196bd53dc12e3aaf1564ae036e0c125f237c7644fe64a4928ab", size = 3893918, upload-time = "2025-04-09T02:58:02.933Z" }, + { url = "https://files.pythonhosted.org/packages/17/58/064f4dcb7d7e9412f16ecf80ed753f92297e39f399c905389688cf950b81/numba-0.61.2-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:5f154aaea625fb32cfbe3b80c5456d514d416fcdf79733dd69c0df3a11348e9e", size = 3584056, upload-time = "2025-04-09T02:58:04.538Z" }, + { url = "https://files.pythonhosted.org/packages/af/a4/6d3a0f2d3989e62a18749e1e9913d5fa4910bbb3e3311a035baea6caf26d/numba-0.61.2-cp313-cp313-win_amd64.whl", hash = "sha256:59321215e2e0ac5fa928a8020ab00b8e57cda8a97384963ac0dfa4d4e6aa54e7", size = 2831846, upload-time = "2025-04-09T02:58:06.125Z" }, ] [[package]] @@ -225,52 +225,52 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version < '3.10'", ] -sdist = { url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", size = 18902015 } +sdist = { url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", size = 18902015, upload-time = "2024-08-26T20:19:40.945Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/21/91/3495b3237510f79f5d81f2508f9f13fea78ebfdf07538fc7444badda173d/numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece", size = 21165245 }, - { url = "https://files.pythonhosted.org/packages/05/33/26178c7d437a87082d11019292dce6d3fe6f0e9026b7b2309cbf3e489b1d/numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04", size = 13738540 }, - { url = "https://files.pythonhosted.org/packages/ec/31/cc46e13bf07644efc7a4bf68df2df5fb2a1a88d0cd0da9ddc84dc0033e51/numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66", size = 5300623 }, - { url = "https://files.pythonhosted.org/packages/6e/16/7bfcebf27bb4f9d7ec67332ffebee4d1bf085c84246552d52dbb548600e7/numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b", size = 6901774 }, - { url = "https://files.pythonhosted.org/packages/f9/a3/561c531c0e8bf082c5bef509d00d56f82e0ea7e1e3e3a7fc8fa78742a6e5/numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd", size = 13907081 }, - { url = "https://files.pythonhosted.org/packages/fa/66/f7177ab331876200ac7563a580140643d1179c8b4b6a6b0fc9838de2a9b8/numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318", size = 19523451 }, - { url = "https://files.pythonhosted.org/packages/25/7f/0b209498009ad6453e4efc2c65bcdf0ae08a182b2b7877d7ab38a92dc542/numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8", size = 19927572 }, - { url = "https://files.pythonhosted.org/packages/3e/df/2619393b1e1b565cd2d4c4403bdd979621e2c4dea1f8532754b2598ed63b/numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326", size = 14400722 }, - { url = "https://files.pythonhosted.org/packages/22/ad/77e921b9f256d5da36424ffb711ae79ca3f451ff8489eeca544d0701d74a/numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97", size = 6472170 }, - { url = "https://files.pythonhosted.org/packages/10/05/3442317535028bc29cf0c0dd4c191a4481e8376e9f0db6bcf29703cadae6/numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131", size = 15905558 }, - { url = "https://files.pythonhosted.org/packages/8b/cf/034500fb83041aa0286e0fb16e7c76e5c8b67c0711bb6e9e9737a717d5fe/numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448", size = 21169137 }, - { url = "https://files.pythonhosted.org/packages/4a/d9/32de45561811a4b87fbdee23b5797394e3d1504b4a7cf40c10199848893e/numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195", size = 13703552 }, - { url = "https://files.pythonhosted.org/packages/c1/ca/2f384720020c7b244d22508cb7ab23d95f179fcfff33c31a6eeba8d6c512/numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57", size = 5298957 }, - { url = "https://files.pythonhosted.org/packages/0e/78/a3e4f9fb6aa4e6fdca0c5428e8ba039408514388cf62d89651aade838269/numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a", size = 6905573 }, - { url = "https://files.pythonhosted.org/packages/a0/72/cfc3a1beb2caf4efc9d0b38a15fe34025230da27e1c08cc2eb9bfb1c7231/numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669", size = 13914330 }, - { url = "https://files.pythonhosted.org/packages/ba/a8/c17acf65a931ce551fee11b72e8de63bf7e8a6f0e21add4c937c83563538/numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951", size = 19534895 }, - { url = "https://files.pythonhosted.org/packages/ba/86/8767f3d54f6ae0165749f84648da9dcc8cd78ab65d415494962c86fac80f/numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9", size = 19937253 }, - { url = "https://files.pythonhosted.org/packages/df/87/f76450e6e1c14e5bb1eae6836478b1028e096fd02e85c1c37674606ab752/numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15", size = 14414074 }, - { url = "https://files.pythonhosted.org/packages/5c/ca/0f0f328e1e59f73754f06e1adfb909de43726d4f24c6a3f8805f34f2b0fa/numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4", size = 6470640 }, - { url = "https://files.pythonhosted.org/packages/eb/57/3a3f14d3a759dcf9bf6e9eda905794726b758819df4663f217d658a58695/numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc", size = 15910230 }, - { url = "https://files.pythonhosted.org/packages/45/40/2e117be60ec50d98fa08c2f8c48e09b3edea93cfcabd5a9ff6925d54b1c2/numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b", size = 20895803 }, - { url = "https://files.pythonhosted.org/packages/46/92/1b8b8dee833f53cef3e0a3f69b2374467789e0bb7399689582314df02651/numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e", size = 13471835 }, - { url = "https://files.pythonhosted.org/packages/7f/19/e2793bde475f1edaea6945be141aef6c8b4c669b90c90a300a8954d08f0a/numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c", size = 5038499 }, - { url = "https://files.pythonhosted.org/packages/e3/ff/ddf6dac2ff0dd50a7327bcdba45cb0264d0e96bb44d33324853f781a8f3c/numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c", size = 6633497 }, - { url = "https://files.pythonhosted.org/packages/72/21/67f36eac8e2d2cd652a2e69595a54128297cdcb1ff3931cfc87838874bd4/numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692", size = 13621158 }, - { url = "https://files.pythonhosted.org/packages/39/68/e9f1126d757653496dbc096cb429014347a36b228f5a991dae2c6b6cfd40/numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a", size = 19236173 }, - { url = "https://files.pythonhosted.org/packages/d1/e9/1f5333281e4ebf483ba1c888b1d61ba7e78d7e910fdd8e6499667041cc35/numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c", size = 19634174 }, - { url = "https://files.pythonhosted.org/packages/71/af/a469674070c8d8408384e3012e064299f7a2de540738a8e414dcfd639996/numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded", size = 14099701 }, - { url = "https://files.pythonhosted.org/packages/d0/3d/08ea9f239d0e0e939b6ca52ad403c84a2bce1bde301a8eb4888c1c1543f1/numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5", size = 6174313 }, - { url = "https://files.pythonhosted.org/packages/b2/b5/4ac39baebf1fdb2e72585c8352c56d063b6126be9fc95bd2bb5ef5770c20/numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", size = 15606179 }, - { url = "https://files.pythonhosted.org/packages/43/c1/41c8f6df3162b0c6ffd4437d729115704bd43363de0090c7f913cfbc2d89/numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c", size = 21169942 }, - { url = "https://files.pythonhosted.org/packages/39/bc/fd298f308dcd232b56a4031fd6ddf11c43f9917fbc937e53762f7b5a3bb1/numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd", size = 13711512 }, - { url = "https://files.pythonhosted.org/packages/96/ff/06d1aa3eeb1c614eda245c1ba4fb88c483bee6520d361641331872ac4b82/numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b", size = 5306976 }, - { url = "https://files.pythonhosted.org/packages/2d/98/121996dcfb10a6087a05e54453e28e58694a7db62c5a5a29cee14c6e047b/numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729", size = 6906494 }, - { url = "https://files.pythonhosted.org/packages/15/31/9dffc70da6b9bbf7968f6551967fc21156207366272c2a40b4ed6008dc9b/numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1", size = 13912596 }, - { url = "https://files.pythonhosted.org/packages/b9/14/78635daab4b07c0930c919d451b8bf8c164774e6a3413aed04a6d95758ce/numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd", size = 19526099 }, - { url = "https://files.pythonhosted.org/packages/26/4c/0eeca4614003077f68bfe7aac8b7496f04221865b3a5e7cb230c9d055afd/numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d", size = 19932823 }, - { url = "https://files.pythonhosted.org/packages/f1/46/ea25b98b13dccaebddf1a803f8c748680d972e00507cd9bc6dcdb5aa2ac1/numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d", size = 14404424 }, - { url = "https://files.pythonhosted.org/packages/c8/a6/177dd88d95ecf07e722d21008b1b40e681a929eb9e329684d449c36586b2/numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa", size = 6476809 }, - { url = "https://files.pythonhosted.org/packages/ea/2b/7fc9f4e7ae5b507c1a3a21f0f15ed03e794c1242ea8a242ac158beb56034/numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73", size = 15911314 }, - { url = "https://files.pythonhosted.org/packages/8f/3b/df5a870ac6a3be3a86856ce195ef42eec7ae50d2a202be1f5a4b3b340e14/numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8", size = 21025288 }, - { url = "https://files.pythonhosted.org/packages/2c/97/51af92f18d6f6f2d9ad8b482a99fb74e142d71372da5d834b3a2747a446e/numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4", size = 6762793 }, - { url = "https://files.pythonhosted.org/packages/12/46/de1fbd0c1b5ccaa7f9a005b66761533e2f6a3e560096682683a223631fe9/numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c", size = 19334885 }, - { url = "https://files.pythonhosted.org/packages/cc/dc/d330a6faefd92b446ec0f0dfea4c3207bb1fef3c4771d19cf4543efd2c78/numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385", size = 15828784 }, + { url = "https://files.pythonhosted.org/packages/21/91/3495b3237510f79f5d81f2508f9f13fea78ebfdf07538fc7444badda173d/numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece", size = 21165245, upload-time = "2024-08-26T20:04:14.625Z" }, + { url = "https://files.pythonhosted.org/packages/05/33/26178c7d437a87082d11019292dce6d3fe6f0e9026b7b2309cbf3e489b1d/numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04", size = 13738540, upload-time = "2024-08-26T20:04:36.784Z" }, + { url = "https://files.pythonhosted.org/packages/ec/31/cc46e13bf07644efc7a4bf68df2df5fb2a1a88d0cd0da9ddc84dc0033e51/numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66", size = 5300623, upload-time = "2024-08-26T20:04:46.491Z" }, + { url = "https://files.pythonhosted.org/packages/6e/16/7bfcebf27bb4f9d7ec67332ffebee4d1bf085c84246552d52dbb548600e7/numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b", size = 6901774, upload-time = "2024-08-26T20:04:58.173Z" }, + { url = "https://files.pythonhosted.org/packages/f9/a3/561c531c0e8bf082c5bef509d00d56f82e0ea7e1e3e3a7fc8fa78742a6e5/numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd", size = 13907081, upload-time = "2024-08-26T20:05:19.098Z" }, + { url = "https://files.pythonhosted.org/packages/fa/66/f7177ab331876200ac7563a580140643d1179c8b4b6a6b0fc9838de2a9b8/numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318", size = 19523451, upload-time = "2024-08-26T20:05:47.479Z" }, + { url = "https://files.pythonhosted.org/packages/25/7f/0b209498009ad6453e4efc2c65bcdf0ae08a182b2b7877d7ab38a92dc542/numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8", size = 19927572, upload-time = "2024-08-26T20:06:17.137Z" }, + { url = "https://files.pythonhosted.org/packages/3e/df/2619393b1e1b565cd2d4c4403bdd979621e2c4dea1f8532754b2598ed63b/numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326", size = 14400722, upload-time = "2024-08-26T20:06:39.16Z" }, + { url = "https://files.pythonhosted.org/packages/22/ad/77e921b9f256d5da36424ffb711ae79ca3f451ff8489eeca544d0701d74a/numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97", size = 6472170, upload-time = "2024-08-26T20:06:50.361Z" }, + { url = "https://files.pythonhosted.org/packages/10/05/3442317535028bc29cf0c0dd4c191a4481e8376e9f0db6bcf29703cadae6/numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131", size = 15905558, upload-time = "2024-08-26T20:07:13.881Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cf/034500fb83041aa0286e0fb16e7c76e5c8b67c0711bb6e9e9737a717d5fe/numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448", size = 21169137, upload-time = "2024-08-26T20:07:45.345Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d9/32de45561811a4b87fbdee23b5797394e3d1504b4a7cf40c10199848893e/numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195", size = 13703552, upload-time = "2024-08-26T20:08:06.666Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ca/2f384720020c7b244d22508cb7ab23d95f179fcfff33c31a6eeba8d6c512/numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57", size = 5298957, upload-time = "2024-08-26T20:08:15.83Z" }, + { url = "https://files.pythonhosted.org/packages/0e/78/a3e4f9fb6aa4e6fdca0c5428e8ba039408514388cf62d89651aade838269/numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a", size = 6905573, upload-time = "2024-08-26T20:08:27.185Z" }, + { url = "https://files.pythonhosted.org/packages/a0/72/cfc3a1beb2caf4efc9d0b38a15fe34025230da27e1c08cc2eb9bfb1c7231/numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669", size = 13914330, upload-time = "2024-08-26T20:08:48.058Z" }, + { url = "https://files.pythonhosted.org/packages/ba/a8/c17acf65a931ce551fee11b72e8de63bf7e8a6f0e21add4c937c83563538/numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951", size = 19534895, upload-time = "2024-08-26T20:09:16.536Z" }, + { url = "https://files.pythonhosted.org/packages/ba/86/8767f3d54f6ae0165749f84648da9dcc8cd78ab65d415494962c86fac80f/numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9", size = 19937253, upload-time = "2024-08-26T20:09:46.263Z" }, + { url = "https://files.pythonhosted.org/packages/df/87/f76450e6e1c14e5bb1eae6836478b1028e096fd02e85c1c37674606ab752/numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15", size = 14414074, upload-time = "2024-08-26T20:10:08.483Z" }, + { url = "https://files.pythonhosted.org/packages/5c/ca/0f0f328e1e59f73754f06e1adfb909de43726d4f24c6a3f8805f34f2b0fa/numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4", size = 6470640, upload-time = "2024-08-26T20:10:19.732Z" }, + { url = "https://files.pythonhosted.org/packages/eb/57/3a3f14d3a759dcf9bf6e9eda905794726b758819df4663f217d658a58695/numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc", size = 15910230, upload-time = "2024-08-26T20:10:43.413Z" }, + { url = "https://files.pythonhosted.org/packages/45/40/2e117be60ec50d98fa08c2f8c48e09b3edea93cfcabd5a9ff6925d54b1c2/numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b", size = 20895803, upload-time = "2024-08-26T20:11:13.916Z" }, + { url = "https://files.pythonhosted.org/packages/46/92/1b8b8dee833f53cef3e0a3f69b2374467789e0bb7399689582314df02651/numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e", size = 13471835, upload-time = "2024-08-26T20:11:34.779Z" }, + { url = "https://files.pythonhosted.org/packages/7f/19/e2793bde475f1edaea6945be141aef6c8b4c669b90c90a300a8954d08f0a/numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c", size = 5038499, upload-time = "2024-08-26T20:11:43.902Z" }, + { url = "https://files.pythonhosted.org/packages/e3/ff/ddf6dac2ff0dd50a7327bcdba45cb0264d0e96bb44d33324853f781a8f3c/numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c", size = 6633497, upload-time = "2024-08-26T20:11:55.09Z" }, + { url = "https://files.pythonhosted.org/packages/72/21/67f36eac8e2d2cd652a2e69595a54128297cdcb1ff3931cfc87838874bd4/numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692", size = 13621158, upload-time = "2024-08-26T20:12:14.95Z" }, + { url = "https://files.pythonhosted.org/packages/39/68/e9f1126d757653496dbc096cb429014347a36b228f5a991dae2c6b6cfd40/numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a", size = 19236173, upload-time = "2024-08-26T20:12:44.049Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e9/1f5333281e4ebf483ba1c888b1d61ba7e78d7e910fdd8e6499667041cc35/numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c", size = 19634174, upload-time = "2024-08-26T20:13:13.634Z" }, + { url = "https://files.pythonhosted.org/packages/71/af/a469674070c8d8408384e3012e064299f7a2de540738a8e414dcfd639996/numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded", size = 14099701, upload-time = "2024-08-26T20:13:34.851Z" }, + { url = "https://files.pythonhosted.org/packages/d0/3d/08ea9f239d0e0e939b6ca52ad403c84a2bce1bde301a8eb4888c1c1543f1/numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5", size = 6174313, upload-time = "2024-08-26T20:13:45.653Z" }, + { url = "https://files.pythonhosted.org/packages/b2/b5/4ac39baebf1fdb2e72585c8352c56d063b6126be9fc95bd2bb5ef5770c20/numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", size = 15606179, upload-time = "2024-08-26T20:14:08.786Z" }, + { url = "https://files.pythonhosted.org/packages/43/c1/41c8f6df3162b0c6ffd4437d729115704bd43363de0090c7f913cfbc2d89/numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c", size = 21169942, upload-time = "2024-08-26T20:14:40.108Z" }, + { url = "https://files.pythonhosted.org/packages/39/bc/fd298f308dcd232b56a4031fd6ddf11c43f9917fbc937e53762f7b5a3bb1/numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd", size = 13711512, upload-time = "2024-08-26T20:15:00.985Z" }, + { url = "https://files.pythonhosted.org/packages/96/ff/06d1aa3eeb1c614eda245c1ba4fb88c483bee6520d361641331872ac4b82/numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b", size = 5306976, upload-time = "2024-08-26T20:15:10.876Z" }, + { url = "https://files.pythonhosted.org/packages/2d/98/121996dcfb10a6087a05e54453e28e58694a7db62c5a5a29cee14c6e047b/numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729", size = 6906494, upload-time = "2024-08-26T20:15:22.055Z" }, + { url = "https://files.pythonhosted.org/packages/15/31/9dffc70da6b9bbf7968f6551967fc21156207366272c2a40b4ed6008dc9b/numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1", size = 13912596, upload-time = "2024-08-26T20:15:42.452Z" }, + { url = "https://files.pythonhosted.org/packages/b9/14/78635daab4b07c0930c919d451b8bf8c164774e6a3413aed04a6d95758ce/numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd", size = 19526099, upload-time = "2024-08-26T20:16:11.048Z" }, + { url = "https://files.pythonhosted.org/packages/26/4c/0eeca4614003077f68bfe7aac8b7496f04221865b3a5e7cb230c9d055afd/numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d", size = 19932823, upload-time = "2024-08-26T20:16:40.171Z" }, + { url = "https://files.pythonhosted.org/packages/f1/46/ea25b98b13dccaebddf1a803f8c748680d972e00507cd9bc6dcdb5aa2ac1/numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d", size = 14404424, upload-time = "2024-08-26T20:17:02.604Z" }, + { url = "https://files.pythonhosted.org/packages/c8/a6/177dd88d95ecf07e722d21008b1b40e681a929eb9e329684d449c36586b2/numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa", size = 6476809, upload-time = "2024-08-26T20:17:13.553Z" }, + { url = "https://files.pythonhosted.org/packages/ea/2b/7fc9f4e7ae5b507c1a3a21f0f15ed03e794c1242ea8a242ac158beb56034/numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73", size = 15911314, upload-time = "2024-08-26T20:17:36.72Z" }, + { url = "https://files.pythonhosted.org/packages/8f/3b/df5a870ac6a3be3a86856ce195ef42eec7ae50d2a202be1f5a4b3b340e14/numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8", size = 21025288, upload-time = "2024-08-26T20:18:07.732Z" }, + { url = "https://files.pythonhosted.org/packages/2c/97/51af92f18d6f6f2d9ad8b482a99fb74e142d71372da5d834b3a2747a446e/numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4", size = 6762793, upload-time = "2024-08-26T20:18:19.125Z" }, + { url = "https://files.pythonhosted.org/packages/12/46/de1fbd0c1b5ccaa7f9a005b66761533e2f6a3e560096682683a223631fe9/numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c", size = 19334885, upload-time = "2024-08-26T20:18:47.237Z" }, + { url = "https://files.pythonhosted.org/packages/cc/dc/d330a6faefd92b446ec0f0dfea4c3207bb1fef3c4771d19cf4543efd2c78/numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385", size = 15828784, upload-time = "2024-08-26T20:19:11.19Z" }, ] [[package]] @@ -281,60 +281,60 @@ resolution-markers = [ "python_full_version >= '3.11'", "python_full_version == '3.10.*'", ] -sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440 } +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245 }, - { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048 }, - { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542 }, - { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301 }, - { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320 }, - { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050 }, - { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034 }, - { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185 }, - { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149 }, - { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620 }, - { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963 }, - { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743 }, - { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616 }, - { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579 }, - { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005 }, - { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570 }, - { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548 }, - { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521 }, - { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866 }, - { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455 }, - { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348 }, - { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362 }, - { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103 }, - { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382 }, - { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462 }, - { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618 }, - { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511 }, - { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783 }, - { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506 }, - { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190 }, - { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828 }, - { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006 }, - { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765 }, - { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736 }, - { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719 }, - { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072 }, - { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213 }, - { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632 }, - { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532 }, - { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885 }, - { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467 }, - { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144 }, - { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217 }, - { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014 }, - { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935 }, - { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122 }, - { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143 }, - { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260 }, - { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225 }, - { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374 }, - { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391 }, - { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754 }, - { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476 }, - { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666 }, + { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload-time = "2025-05-17T21:27:58.555Z" }, + { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048, upload-time = "2025-05-17T21:28:21.406Z" }, + { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542, upload-time = "2025-05-17T21:28:30.931Z" }, + { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301, upload-time = "2025-05-17T21:28:41.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320, upload-time = "2025-05-17T21:29:02.78Z" }, + { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050, upload-time = "2025-05-17T21:29:27.675Z" }, + { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034, upload-time = "2025-05-17T21:29:51.102Z" }, + { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185, upload-time = "2025-05-17T21:30:18.703Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149, upload-time = "2025-05-17T21:30:29.788Z" }, + { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620, upload-time = "2025-05-17T21:30:48.994Z" }, + { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963, upload-time = "2025-05-17T21:31:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743, upload-time = "2025-05-17T21:31:41.087Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616, upload-time = "2025-05-17T21:31:50.072Z" }, + { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579, upload-time = "2025-05-17T21:32:01.712Z" }, + { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005, upload-time = "2025-05-17T21:32:23.332Z" }, + { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570, upload-time = "2025-05-17T21:32:47.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548, upload-time = "2025-05-17T21:33:11.728Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521, upload-time = "2025-05-17T21:33:39.139Z" }, + { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866, upload-time = "2025-05-17T21:33:50.273Z" }, + { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455, upload-time = "2025-05-17T21:34:09.135Z" }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828, upload-time = "2025-05-17T21:37:56.699Z" }, + { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006, upload-time = "2025-05-17T21:38:18.291Z" }, + { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765, upload-time = "2025-05-17T21:38:27.319Z" }, + { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736, upload-time = "2025-05-17T21:38:38.141Z" }, + { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719, upload-time = "2025-05-17T21:38:58.433Z" }, + { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072, upload-time = "2025-05-17T21:39:22.638Z" }, + { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213, upload-time = "2025-05-17T21:39:45.865Z" }, + { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632, upload-time = "2025-05-17T21:40:13.331Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532, upload-time = "2025-05-17T21:43:46.099Z" }, + { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885, upload-time = "2025-05-17T21:44:05.145Z" }, + { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467, upload-time = "2025-05-17T21:40:44Z" }, + { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144, upload-time = "2025-05-17T21:41:05.695Z" }, + { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217, upload-time = "2025-05-17T21:41:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014, upload-time = "2025-05-17T21:41:27.321Z" }, + { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935, upload-time = "2025-05-17T21:41:49.738Z" }, + { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122, upload-time = "2025-05-17T21:42:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143, upload-time = "2025-05-17T21:42:37.464Z" }, + { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260, upload-time = "2025-05-17T21:43:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225, upload-time = "2025-05-17T21:43:16.254Z" }, + { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374, upload-time = "2025-05-17T21:43:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391, upload-time = "2025-05-17T21:44:35.948Z" }, + { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754, upload-time = "2025-05-17T21:44:47.446Z" }, + { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476, upload-time = "2025-05-17T21:45:11.871Z" }, + { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, ] From 129268184ac5c66606816f1b18980c5627a893e9 Mon Sep 17 00:00:00 2001 From: Stanislav Geidl Date: Fri, 28 Nov 2025 21:39:42 +0100 Subject: [PATCH 3/6] autofix by pre-commit --- .gitignore | 1 - LICENSE | 2 +- ciftools/binary/data.py | 1 + ciftools/binary/decoder.py | 1 + ciftools/binary/encoded_data.py | 1 + ciftools/binary/encoder.py | 13 ++++--- ciftools/binary/writer.py | 5 +-- ciftools/models/data.py | 60 +++++++++++---------------------- ciftools/models/writer.py | 19 ++++------- ciftools/serialization.py | 1 + mypy.ini | 2 +- tests/_decoding.py | 1 - tests/_encoding.py | 2 +- tests/byte_array.py | 1 + tests/delta.py | 1 + tests/fixed_point.py | 3 +- tests/integer_packing.py | 1 + tests/interval_quantization.py | 2 +- tests/molstar/.gitignore | 2 +- tests/molstar/README.md | 2 +- tests/molstar/index.js | 2 +- tests/run_length.py | 2 +- tests/string_array.py | 1 + 23 files changed, 53 insertions(+), 73 deletions(-) diff --git a/.gitignore b/.gitignore index 40dda41..216f74c 100644 --- a/.gitignore +++ b/.gitignore @@ -227,4 +227,3 @@ dmypy.json # Cython debug symbols cython_debug/ - diff --git a/LICENSE b/LICENSE index 9300acc..9edf377 100644 --- a/LICENSE +++ b/LICENSE @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/ciftools/binary/data.py b/ciftools/binary/data.py index 8ee206d..e783fbe 100644 --- a/ciftools/binary/data.py +++ b/ciftools/binary/data.py @@ -1,6 +1,7 @@ from typing import Any, Dict, List, Optional, Union import numpy as np + from ciftools.binary.decoder import decode_cif_data from ciftools.binary.encoded_data import EncodedCIFCategory, EncodedCIFColumn, EncodedCIFFile from ciftools.models.data import CIFCategory, CIFColumn, CIFDataBlock, CIFFile, CIFValuePresenceEnum diff --git a/ciftools/binary/decoder.py b/ciftools/binary/decoder.py index e0279cf..f6d3148 100644 --- a/ciftools/binary/decoder.py +++ b/ciftools/binary/decoder.py @@ -1,4 +1,5 @@ import numpy as np + from ciftools.binary.data_types import DataType from ciftools.binary.encoded_data import EncodedCIFData from ciftools.binary.encoding_types import ( diff --git a/ciftools/binary/encoded_data.py b/ciftools/binary/encoded_data.py index 17b1ac8..43964d6 100644 --- a/ciftools/binary/encoded_data.py +++ b/ciftools/binary/encoded_data.py @@ -1,6 +1,7 @@ from typing import Optional, TypedDict, Union import numpy as np + from ciftools.binary.encoding_types import EncodingBase diff --git a/ciftools/binary/encoder.py b/ciftools/binary/encoder.py index 963cf95..102c9eb 100644 --- a/ciftools/binary/encoder.py +++ b/ciftools/binary/encoder.py @@ -1,8 +1,10 @@ import math import sys -from typing import Any, Dict, List, Protocol, Tuple, Union +from typing import Any, List, Protocol, Tuple, Union import numpy as np +from numba import jit + from ciftools.binary.data_types import DataType, DataTypeEnum from ciftools.binary.encoded_data import EncodedCIFData from ciftools.binary.encoding_types import ( @@ -15,12 +17,10 @@ RunLengthEncoding, StringArrayEncoding, ) -from numba import jit class BinaryCIFEncoder(Protocol): - def encode(self, data: Any) -> EncodedCIFData: - ... + def encode(self, data: Any) -> EncodedCIFData: ... class ComposeEncoders(BinaryCIFEncoder): @@ -109,7 +109,6 @@ def encode(self, data: np.ndarray, *args, **kwargs) -> EncodedCIFData: class IntegerPacking(BinaryCIFEncoder): def encode(self, data: np.ndarray) -> EncodedCIFData: - # TODO: must be 32bit integer? packing = _determine_packing(data) if packing.bytesPerElement == 4: @@ -325,8 +324,8 @@ def _pack_strings(data: List[str]) -> Tuple[str, np.ndarray, np.ndarray]: str_map = {s: i for i, s in enumerate(strings)} string_data = "".join(strings) - indices = np.array([str_map[s] for s in data], dtype=' Optional[str]: - ... + def get_string(self, row: int) -> Optional[str]: ... - def get_integer(self, row: int) -> int: - ... + def get_integer(self, row: int) -> int: ... - def get_float(self, row: int) -> float: - ... + def get_float(self, row: int) -> float: ... - def get_value_presence(self, row: int) -> CIFValuePresenceEnum: - ... + def get_value_presence(self, row: int) -> CIFValuePresenceEnum: ... - def are_values_equal(self, row_a: int, row_b: int) -> bool: - ... + def are_values_equal(self, row_a: int, row_b: int) -> bool: ... - def string_equals(self, row: int, value: str) -> bool: - ... + def string_equals(self, row: int, value: str) -> bool: ... def as_ndarray( self, *, dtype: Optional[Union[np.dtype, str]] = None, start: Optional[int] = None, end: Optional[int] = None @@ -40,11 +34,9 @@ def as_ndarray( """ ... - def __getitem__(self, idx: Any) -> Any: - ... + def __getitem__(self, idx: Any) -> Any: ... - def __len__(self) -> int: - ... + def __len__(self) -> int: ... @property def value_presences(self) -> Optional[np.ndarray]: @@ -56,29 +48,23 @@ def value_presences(self) -> Optional[np.ndarray]: class CIFCategory(Protocol): @property - def name(self) -> str: - ... + def name(self) -> str: ... @property - def n_rows(self) -> int: - ... + def n_rows(self) -> int: ... @property - def n_columns(self) -> int: - ... + def n_columns(self) -> int: ... @property - def field_names(self) -> List[str]: - ... + def field_names(self) -> List[str]: ... def __getattr__(self, name: str) -> CIFColumn: return self[name] - def __getitem__(self, name: str) -> CIFColumn: - ... + def __getitem__(self, name: str) -> CIFColumn: ... - def __contains__(self, key: str) -> bool: - ... + def __contains__(self, key: str) -> bool: ... # Category Helpers def get_matrix(self, field: str, rows: int, cols: int, row_index: int) -> np.ndarray: @@ -120,19 +106,15 @@ class CIFDataBlock(Protocol): def __getattr__(self, name: str) -> CIFCategory: return self[name] - def __getitem__(self, name: str) -> CIFCategory: - ... + def __getitem__(self, name: str) -> CIFCategory: ... - def __contains__(self, key: str): - ... + def __contains__(self, key: str): ... @property - def header(self) -> str: - ... + def header(self) -> str: ... @property - def categories(self) -> Dict[str, CIFCategory]: - ... + def categories(self) -> Dict[str, CIFCategory]: ... class CIFFile(Protocol): @@ -145,12 +127,10 @@ def __getitem__(self, index_or_name: Union[int, str]) -> CIFDataBlock: def __getattr__(self, name: str) -> CIFDataBlock: return self[name] - def __len__(self) -> int: - ... + def __len__(self) -> int: ... def __contains__(self, key: str) -> bool: return key in self._block_map @property - def data_blocks(self) -> List[CIFDataBlock]: - ... + def data_blocks(self) -> List[CIFDataBlock]: ... diff --git a/ciftools/models/writer.py b/ciftools/models/writer.py index b58c3d0..0b71124 100644 --- a/ciftools/models/writer.py +++ b/ciftools/models/writer.py @@ -2,6 +2,7 @@ from typing import Any, Callable, Collection, Generic, List, Optional, Protocol, TypeVar, Union import numpy as np + from ciftools.binary.encoder import BYTE_ARRAY, STRING_ARRAY, BinaryCIFEncoder from ciftools.models.data import CIFValuePresenceEnum @@ -87,24 +88,18 @@ def string_array( class CIFCategoryDesc(Protocol): @property - def name(self) -> str: - ... + def name(self) -> str: ... @staticmethod - def get_row_count(data: Any) -> int: - ... + def get_row_count(data: Any) -> int: ... @staticmethod - def get_field_descriptors(data: Any) -> Collection[CIFFieldDesc]: - ... + def get_field_descriptors(data: Any) -> Collection[CIFFieldDesc]: ... class CIFWriter(Protocol): - def start_data_block(self, header: str) -> None: - ... + def start_data_block(self, header: str) -> None: ... - def write_category(self, category: CIFCategoryDesc, data: List[Any]) -> None: - ... + def write_category(self, category: CIFCategoryDesc, data: List[Any]) -> None: ... - def encode(self) -> Union[str, bytes]: - ... + def encode(self) -> Union[str, bytes]: ... diff --git a/ciftools/serialization.py b/ciftools/serialization.py index 6b80768..c833c23 100644 --- a/ciftools/serialization.py +++ b/ciftools/serialization.py @@ -1,4 +1,5 @@ import msgpack + from ciftools.binary.data import BinaryCIFFile from ciftools.binary.writer import BinaryCIFWriter from ciftools.models.data import CIFFile diff --git a/mypy.ini b/mypy.ini index a14e76f..dc93bf7 100644 --- a/mypy.ini +++ b/mypy.ini @@ -9,4 +9,4 @@ ignore_missing_imports = True ignore_missing_imports = True [mypy-msgpack.*] -ignore_missing_imports = True \ No newline at end of file +ignore_missing_imports = True diff --git a/tests/_decoding.py b/tests/_decoding.py index 0437d19..71831b2 100644 --- a/tests/_decoding.py +++ b/tests/_decoding.py @@ -1,5 +1,4 @@ import unittest -import urllib.request from pathlib import Path from ciftools.models.data import CIFValuePresenceEnum diff --git a/tests/_encoding.py b/tests/_encoding.py index e48b1ba..113ab0d 100644 --- a/tests/_encoding.py +++ b/tests/_encoding.py @@ -3,6 +3,7 @@ from typing import List import numpy as np + from ciftools.binary.encoder import DELTA, INTEGER_PACKING, ComposeEncoders, FixedPoint from ciftools.models.writer import CIFCategoryDesc from ciftools.models.writer import CIFFieldDesc as Field @@ -103,7 +104,6 @@ def get_row_count(data: TestVolumeData) -> int: class TestEncodings_Encoding(unittest.TestCase): def test(self): - # test test_data = prepare_test_data(5, 3) # print("Original data: " + str(test_data.__dict__)) diff --git a/tests/byte_array.py b/tests/byte_array.py index 316a343..bb52954 100644 --- a/tests/byte_array.py +++ b/tests/byte_array.py @@ -2,6 +2,7 @@ import msgpack import numpy as np + from ciftools.binary.data_types import DataTypeEnum from ciftools.binary.decoder import decode_cif_data from ciftools.binary.encoder import BYTE_ARRAY diff --git a/tests/delta.py b/tests/delta.py index dc86ba4..76e7630 100644 --- a/tests/delta.py +++ b/tests/delta.py @@ -2,6 +2,7 @@ import msgpack import numpy as np + from ciftools.binary.decoder import decode_cif_data from ciftools.binary.encoder import BYTE_ARRAY, DELTA, ComposeEncoders diff --git a/tests/fixed_point.py b/tests/fixed_point.py index 6af536e..a92bb7d 100644 --- a/tests/fixed_point.py +++ b/tests/fixed_point.py @@ -2,13 +2,13 @@ import msgpack import numpy as np + from ciftools.binary.decoder import decode_cif_data from ciftools.binary.encoder import BYTE_ARRAY, DELTA, ComposeEncoders, FixedPoint class TestEncodings_FixedPoint(unittest.TestCase): def test(self): - test_suite = [ (np.random.rand(100) * 1000, 1), (np.random.rand(100) * 1000, 2), @@ -26,7 +26,6 @@ def test(self): class TestEncodings_FixedPointDelta(unittest.TestCase): def test(self): - test_suite = [ (np.random.rand(100) * 1000, 1), (np.random.rand(100) * 1000, 2), diff --git a/tests/integer_packing.py b/tests/integer_packing.py index d23e0b9..c572b76 100644 --- a/tests/integer_packing.py +++ b/tests/integer_packing.py @@ -2,6 +2,7 @@ import msgpack import numpy as np + from ciftools.binary.decoder import decode_cif_data from ciftools.binary.encoder import INTEGER_PACKING diff --git a/tests/interval_quantization.py b/tests/interval_quantization.py index c15970d..75e1e4e 100644 --- a/tests/interval_quantization.py +++ b/tests/interval_quantization.py @@ -2,6 +2,7 @@ import msgpack import numpy as np + from ciftools.binary.data_types import DataTypeEnum from ciftools.binary.decoder import decode_cif_data from ciftools.binary.encoder import BYTE_ARRAY, ComposeEncoders, IntervalQuantization @@ -9,7 +10,6 @@ class TestEncodings_IntervalQuantization(unittest.TestCase): def test(self): - test_suite = [ (np.random.rand(100) * 100, 100, DataTypeEnum.Uint8), (np.random.rand(100) * 100, 2**8, DataTypeEnum.Uint8), diff --git a/tests/molstar/.gitignore b/tests/molstar/.gitignore index 2a53041..2e6ba49 100644 --- a/tests/molstar/.gitignore +++ b/tests/molstar/.gitignore @@ -1,2 +1,2 @@ node_modules -*.cif \ No newline at end of file +*.cif diff --git a/tests/molstar/README.md b/tests/molstar/README.md index d783f2e..298e505 100644 --- a/tests/molstar/README.md +++ b/tests/molstar/README.md @@ -4,4 +4,4 @@ To convert the lattice generated by the Python tests, run ``` npm node_modules/.bin/cif2bcif ../ciftools/tests/lattices.bcif lattices.cif -``` \ No newline at end of file +``` diff --git a/tests/molstar/index.js b/tests/molstar/index.js index afc3ba9..0873aaa 100644 --- a/tests/molstar/index.js +++ b/tests/molstar/index.js @@ -12,4 +12,4 @@ async function test() { console.log(annotation); } -test() \ No newline at end of file +test() diff --git a/tests/run_length.py b/tests/run_length.py index 0e6aa9f..6bbccec 100644 --- a/tests/run_length.py +++ b/tests/run_length.py @@ -2,13 +2,13 @@ import msgpack import numpy as np + from ciftools.binary.decoder import decode_cif_data from ciftools.binary.encoder import BYTE_ARRAY, RUN_LENGTH, ComposeEncoders class TestEncodings_RunLength(unittest.TestCase): def test(self): - suite = [np.array([-3] * 9 + [1] * 10 + [2] * 11 + [3] * 12, dtype=np.int32), np.arange(10, dtype=np.int32)] for test_arr in suite: diff --git a/tests/string_array.py b/tests/string_array.py index 39eebb4..3bd169e 100644 --- a/tests/string_array.py +++ b/tests/string_array.py @@ -2,6 +2,7 @@ import msgpack import numpy as np + from ciftools.binary.decoder import decode_cif_data from ciftools.binary.encoder import STRING_ARRAY From 0e89825bcecdfc0c25b8fa4ceb8d977827d66560 Mon Sep 17 00:00:00 2001 From: Stanislav Geidl Date: Fri, 28 Nov 2025 21:36:11 +0100 Subject: [PATCH 4/6] add automatic pipeline for publishing package --- .github/workflows/build.yml | 61 +++++++++ pyproject.toml | 5 + uv.lock | 249 ++++++++++++++++++++++++++++++++++++ 3 files changed, 315 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..fcbc1e5 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,61 @@ +name: build + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.9' + + - name: Install uv + uses: astral-sh/setup-uv@v4 + + - name: Install dependencies + run: uv sync + + - name: Run pre-commit + run: | + uv run pre-commit run --all-files + + - name: Run tests + run: | + uv run python -m unittest discover -s tests -p "*.py" + + publish: + needs: test + runs-on: ubuntu-latest + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + permissions: + id-token: write + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.9' + + - name: Install uv + uses: astral-sh/setup-uv@v4 + + - name: Install dependencies + run: uv sync + + - name: Build package + run: uv build + + - name: Publish to PyPI (production) + run: | + uv publish --trusted-publishing always diff --git a/pyproject.toml b/pyproject.toml index 940893a..1425658 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,6 +20,11 @@ dependencies = [ "numpy>=1.11.1", ] +[dependency-groups] +dev = [ + "pre-commit>=3.0.0", +] + [tool.ruff] target-version = "py39" line-length = 120 diff --git a/uv.lock b/uv.lock index 707da5f..35b078f 100644 --- a/uv.lock +++ b/uv.lock @@ -7,6 +7,31 @@ resolution-markers = [ "python_full_version < '3.10'", ] +[[package]] +name = "cfgv" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/11/74/539e56497d9bd1d484fd863dd69cbbfa653cd2aa27abfe35653494d85e94/cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560", size = 7114, upload-time = "2023-08-12T20:38:17.776Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9", size = 7249, upload-time = "2023-08-12T20:38:16.269Z" }, +] + +[[package]] +name = "cfgv" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/4e/b5/721b8799b04bf9afe054a3899c6cf4e880fcf8563cc71c15610242490a0c/cfgv-3.5.0.tar.gz", hash = "sha256:d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132", size = 7334, upload-time = "2025-11-19T20:55:51.612Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/3c/33bac158f8ab7f89b2e59426d5fe2e4f63f7ed25df84c036890172b412b5/cfgv-3.5.0-py2.py3-none-any.whl", hash = "sha256:a8dc6b26ad22ff227d2634a65cb388215ce6cc96bbcc5cfde7641ae87e8dacc0", size = 7445, upload-time = "2025-11-19T20:55:50.744Z" }, +] + [[package]] name = "ciftools" version = "0.2.1" @@ -19,6 +44,12 @@ dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] +[package.dev-dependencies] +dev = [ + { name = "pre-commit", version = "4.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "pre-commit", version = "4.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] + [package.metadata] requires-dist = [ { name = "msgpack", specifier = ">=1.0.3" }, @@ -26,6 +57,52 @@ requires-dist = [ { name = "numpy", specifier = ">=1.11.1" }, ] +[package.metadata.requires-dev] +dev = [{ name = "pre-commit", specifier = ">=3.0.0" }] + +[[package]] +name = "distlib" +version = "0.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d", size = 614605, upload-time = "2025-07-17T16:52:00.465Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16", size = 469047, upload-time = "2025-07-17T16:51:58.613Z" }, +] + +[[package]] +name = "filelock" +version = "3.19.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/40/bb/0ab3e58d22305b6f5440629d20683af28959bf793d98d11950e305c1c326/filelock-3.19.1.tar.gz", hash = "sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58", size = 17687, upload-time = "2025-08-14T16:56:03.016Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/14/42b2651a2f46b022ccd948bca9f2d5af0fd8929c4eec235b8d6d844fbe67/filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d", size = 15988, upload-time = "2025-08-14T16:56:01.633Z" }, +] + +[[package]] +name = "filelock" +version = "3.20.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/58/46/0028a82567109b5ef6e4d2a1f04a583fb513e6cf9527fcdd09afd817deeb/filelock-3.20.0.tar.gz", hash = "sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4", size = 18922, upload-time = "2025-10-08T18:03:50.056Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/91/7216b27286936c16f5b4d0c530087e4a54eead683e6b0b73dd0c64844af6/filelock-3.20.0-py3-none-any.whl", hash = "sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2", size = 16054, upload-time = "2025-10-08T18:03:48.35Z" }, +] + +[[package]] +name = "identify" +version = "2.6.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ff/e7/685de97986c916a6d93b3876139e00eef26ad5bbbd61925d670ae8013449/identify-2.6.15.tar.gz", hash = "sha256:e4f4864b96c6557ef2a1e1c951771838f4edc9df3a72ec7118b338801b11c7bf", size = 99311, upload-time = "2025-10-02T17:43:40.631Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/1c/e5fd8f973d4f375adb21565739498e2e9a1e54c858a97b9a8ccfdc81da9b/identify-2.6.15-py2.py3-none-any.whl", hash = "sha256:1181ef7608e00704db228516541eb83a88a9f94433a8c80bb9b5bd54b1d81757", size = 99183, upload-time = "2025-10-02T17:43:39.137Z" }, +] + [[package]] name = "llvmlite" version = "0.43.0" @@ -147,6 +224,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/20/d6/cd62cded572e5e25892747a5d27850170bcd03c855e9c69c538e024de6f9/msgpack-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:40eae974c873b2992fd36424a5d9407f93e97656d999f43fca9d29f820899084", size = 71700, upload-time = "2025-06-13T06:52:50.244Z" }, ] +[[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, upload-time = "2024-06-04T18:44:11.171Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314, upload-time = "2024-06-04T18:44:08.352Z" }, +] + [[package]] name = "numba" version = "0.60.0" @@ -338,3 +424,166 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476, upload-time = "2025-05-17T21:45:11.871Z" }, { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, ] + +[[package]] +name = "platformdirs" +version = "4.4.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/23/e8/21db9c9987b0e728855bd57bff6984f67952bea55d6f75e055c46b5383e8/platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf", size = 21634, upload-time = "2025-08-26T14:32:04.268Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654, upload-time = "2025-08-26T14:32:02.735Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.5.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/61/33/9611380c2bdb1225fdef633e2a9610622310fed35ab11dac9620972ee088/platformdirs-4.5.0.tar.gz", hash = "sha256:70ddccdd7c99fc5942e9fc25636a8b34d04c24b335100223152c2803e4063312", size = 21632, upload-time = "2025-10-08T17:44:48.791Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/cb/ac7874b3e5d58441674fb70742e6c374b28b0c7cb988d37d991cde47166c/platformdirs-4.5.0-py3-none-any.whl", hash = "sha256:e578a81bb873cbb89a41fcc904c7ef523cc18284b7e3b3ccf06aca1403b7ebd3", size = 18651, upload-time = "2025-10-08T17:44:47.223Z" }, +] + +[[package]] +name = "pre-commit" +version = "4.3.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +dependencies = [ + { name = "cfgv", version = "3.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "identify", marker = "python_full_version < '3.10'" }, + { name = "nodeenv", marker = "python_full_version < '3.10'" }, + { name = "pyyaml", marker = "python_full_version < '3.10'" }, + { name = "virtualenv", marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ff/29/7cf5bbc236333876e4b41f56e06857a87937ce4bf91e117a6991a2dbb02a/pre_commit-4.3.0.tar.gz", hash = "sha256:499fe450cc9d42e9d58e606262795ecb64dd05438943c62b66f6a8673da30b16", size = 193792, upload-time = "2025-08-09T18:56:14.651Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/a5/987a405322d78a73b66e39e4a90e4ef156fd7141bf71df987e50717c321b/pre_commit-4.3.0-py2.py3-none-any.whl", hash = "sha256:2b0747ad7e6e967169136edffee14c16e148a778a54e4f967921aa1ebf2308d8", size = 220965, upload-time = "2025-08-09T18:56:13.192Z" }, +] + +[[package]] +name = "pre-commit" +version = "4.5.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.11'", + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "cfgv", version = "3.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "identify", marker = "python_full_version >= '3.10'" }, + { name = "nodeenv", marker = "python_full_version >= '3.10'" }, + { name = "pyyaml", marker = "python_full_version >= '3.10'" }, + { name = "virtualenv", marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f4/9b/6a4ffb4ed980519da959e1cf3122fc6cb41211daa58dbae1c73c0e519a37/pre_commit-4.5.0.tar.gz", hash = "sha256:dc5a065e932b19fc1d4c653c6939068fe54325af8e741e74e88db4d28a4dd66b", size = 198428, upload-time = "2025-11-22T21:02:42.304Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/c4/b2d28e9d2edf4f1713eb3c29307f1a63f3d67cf09bdda29715a36a68921a/pre_commit-4.5.0-py2.py3-none-any.whl", hash = "sha256:25e2ce09595174d9c97860a95609f9f852c0614ba602de3561e267547f2335e1", size = 226429, upload-time = "2025-11-22T21:02:40.836Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, + { url = "https://files.pythonhosted.org/packages/9f/62/67fc8e68a75f738c9200422bf65693fb79a4cd0dc5b23310e5202e978090/pyyaml-6.0.3-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da", size = 184450, upload-time = "2025-09-25T21:33:00.618Z" }, + { url = "https://files.pythonhosted.org/packages/ae/92/861f152ce87c452b11b9d0977952259aa7df792d71c1053365cc7b09cc08/pyyaml-6.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917", size = 174319, upload-time = "2025-09-25T21:33:02.086Z" }, + { url = "https://files.pythonhosted.org/packages/d0/cd/f0cfc8c74f8a030017a2b9c771b7f47e5dd702c3e28e5b2071374bda2948/pyyaml-6.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9", size = 737631, upload-time = "2025-09-25T21:33:03.25Z" }, + { url = "https://files.pythonhosted.org/packages/ef/b2/18f2bd28cd2055a79a46c9b0895c0b3d987ce40ee471cecf58a1a0199805/pyyaml-6.0.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5", size = 836795, upload-time = "2025-09-25T21:33:05.014Z" }, + { url = "https://files.pythonhosted.org/packages/73/b9/793686b2d54b531203c160ef12bec60228a0109c79bae6c1277961026770/pyyaml-6.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a", size = 750767, upload-time = "2025-09-25T21:33:06.398Z" }, + { url = "https://files.pythonhosted.org/packages/a9/86/a137b39a611def2ed78b0e66ce2fe13ee701a07c07aebe55c340ed2a050e/pyyaml-6.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926", size = 727982, upload-time = "2025-09-25T21:33:08.708Z" }, + { url = "https://files.pythonhosted.org/packages/dd/62/71c27c94f457cf4418ef8ccc71735324c549f7e3ea9d34aba50874563561/pyyaml-6.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7", size = 755677, upload-time = "2025-09-25T21:33:09.876Z" }, + { url = "https://files.pythonhosted.org/packages/29/3d/6f5e0d58bd924fb0d06c3a6bad00effbdae2de5adb5cda5648006ffbd8d3/pyyaml-6.0.3-cp39-cp39-win32.whl", hash = "sha256:1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0", size = 142592, upload-time = "2025-09-25T21:33:10.983Z" }, + { url = "https://files.pythonhosted.org/packages/f0/0c/25113e0b5e103d7f1490c0e947e303fe4a696c10b501dea7a9f49d4e876c/pyyaml-6.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007", size = 158777, upload-time = "2025-09-25T21:33:15.55Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "virtualenv" +version = "20.35.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "distlib" }, + { name = "filelock", version = "3.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "filelock", version = "3.20.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "platformdirs", version = "4.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/20/28/e6f1a6f655d620846bd9df527390ecc26b3805a0c5989048c210e22c5ca9/virtualenv-20.35.4.tar.gz", hash = "sha256:643d3914d73d3eeb0c552cbb12d7e82adf0e504dbf86a3182f8771a153a1971c", size = 6028799, upload-time = "2025-10-29T06:57:40.511Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/0c/c05523fa3181fdf0c9c52a6ba91a23fbf3246cc095f26f6516f9c60e6771/virtualenv-20.35.4-py3-none-any.whl", hash = "sha256:c21c9cede36c9753eeade68ba7d523529f228a403463376cf821eaae2b650f1b", size = 6005095, upload-time = "2025-10-29T06:57:37.598Z" }, +] From 1a18aae4ad80e96aa0cd8b1fadc70ef915e400a6 Mon Sep 17 00:00:00 2001 From: Stanislav Geidl Date: Fri, 28 Nov 2025 22:09:50 +0100 Subject: [PATCH 5/6] add python version matrix for tests --- .github/workflows/build.yml | 7 +++++-- pyproject.toml | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fcbc1e5..386461b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,13 +11,16 @@ on: jobs: test: runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] steps: - uses: actions/checkout@v4 - - name: Set up Python + - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: - python-version: '3.9' + python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@v4 diff --git a/pyproject.toml b/pyproject.toml index 1425658..22a4831 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,9 +9,14 @@ description = "A library for handling BinaryCIF files." readme = "README.md" license = "MIT" license-files = ["LICENSE"] -requires-python = ">=3.9" +requires-python = ">=3.9,<3.14" classifiers = [ "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Operating System :: OS Independent", ] dependencies = [ From 51351c02e44f01f3bf39a26ab0331471215015eb Mon Sep 17 00:00:00 2001 From: Stanislav Geidl Date: Fri, 28 Nov 2025 22:14:23 +0100 Subject: [PATCH 6/6] bump up version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 22a4831..0482c05 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ciftools" -version = "0.2.1" +version = "0.2.2" authors = [ { name="David Sehnal", email="david.sehnal@gmail.com" }, { name="Ravi Jose Tristao Ramos", email="souoravi@gmail.com" },