From 91dbb30e900c05c9858a293198328dfef3124210 Mon Sep 17 00:00:00 2001 From: ZdenekM Date: Wed, 24 Jul 2024 12:33:02 +0200 Subject: [PATCH] feat(arcor2_ur): integration of UR robots --- .github/workflows/pants.yaml | 11 +- 3rdparty/constraints.txt | 2248 ++++++++++++----- 3rdparty/flake8_lockfile.txt | 95 +- 3rdparty/mypy-requirements.txt | 2 +- 3rdparty/mypy_lockfile.txt | 104 +- 3rdparty/pytest-requirements.txt | 3 +- 3rdparty/pytest_lockfile.txt | 150 +- 3rdparty/requirements.txt | 3 +- README.md | 117 +- compose-files/ur-demo/calibration.yaml | 39 + compose-files/ur-demo/docker-compose.yml | 189 ++ compose-files/ur-demo/nginx.conf | 13 + mypy.ini | 30 + pants.toml | 6 +- pytest.ini | 3 +- src/docker/arcor2_arserver/BUILD | 2 +- src/docker/arcor2_build/BUILD | 2 +- src/docker/arcor2_execution/BUILD | 2 +- src/docker/arcor2_ur/BUILD | 2 + src/docker/arcor2_ur/Dockerfile | 64 + src/docker/arcor2_ur/start.sh | 15 + src/docker/arcor2_ur_ot/BUILD | 3 + src/docker/arcor2_ur_ot/Dockerfile | 13 + src/python/arcor2/CHANGELOG.md | 7 + src/python/arcor2/VERSION | 2 +- src/python/arcor2/data/robot.py | 14 +- src/python/arcor2/object_types/tests/BUILD | 3 +- src/python/arcor2_arserver/CHANGELOG.md | 6 + src/python/arcor2_arserver/VERSION | 2 +- .../arcor2_arserver/object_types/tests/BUILD | 2 +- src/python/arcor2_arserver/tests/BUILD | 3 +- src/python/arcor2_build/CHANGELOG.md | 6 + src/python/arcor2_build/VERSION | 2 +- src/python/arcor2_calibration/BUILD | 1 + src/python/arcor2_calibration/scripts/BUILD | 4 +- src/python/arcor2_calibration/tests/BUILD | 3 +- src/python/arcor2_dobot/tests/BUILD | 3 +- src/python/arcor2_execution/CHANGELOG.md | 6 + src/python/arcor2_execution/VERSION | 2 +- .../arcor2_fit_demo/object_types/tests/BUILD | 3 +- src/python/arcor2_fit_demo/tests/BUILD | 3 +- src/python/arcor2_logger/tests/BUILD | 3 +- src/python/arcor2_scene/BUILD | 1 + src/python/arcor2_scene/scripts/BUILD | 4 +- src/python/arcor2_scene/tests/BUILD | 3 +- src/python/arcor2_ur/BUILD | 6 + src/python/arcor2_ur/CHANGELOG.md | 8 + src/python/arcor2_ur/README.md | 8 + src/python/arcor2_ur/VERSION | 1 + src/python/arcor2_ur/__init__.py | 13 + src/python/arcor2_ur/data/BUILD | 1 + src/python/arcor2_ur/data/moveit.yaml | 19 + src/python/arcor2_ur/data/urdf/BUILD | 8 + .../data/urdf/meshes/ur5e/collision/base.stl | 3 + .../urdf/meshes/ur5e/collision/forearm.stl | 3 + .../urdf/meshes/ur5e/collision/shoulder.stl | 3 + .../urdf/meshes/ur5e/collision/upperarm.stl | 3 + .../urdf/meshes/ur5e/collision/wrist1.stl | 3 + .../urdf/meshes/ur5e/collision/wrist2.stl | 3 + .../urdf/meshes/ur5e/collision/wrist3.stl | 3 + .../data/urdf/meshes/ur5e/visual/base.dae | 3 + .../data/urdf/meshes/ur5e/visual/forearm.dae | 3 + .../data/urdf/meshes/ur5e/visual/shoulder.dae | 3 + .../data/urdf/meshes/ur5e/visual/upperarm.dae | 3 + .../data/urdf/meshes/ur5e/visual/wrist1.dae | 3 + .../data/urdf/meshes/ur5e/visual/wrist2.dae | 3 + .../data/urdf/meshes/ur5e/visual/wrist3.dae | 3 + src/python/arcor2_ur/data/urdf/ur5e.urdf | 291 +++ src/python/arcor2_ur/exceptions.py | 21 + src/python/arcor2_ur/object_types/BUILD | 1 + src/python/arcor2_ur/object_types/__init__.py | 0 src/python/arcor2_ur/object_types/ur5e.py | 104 + src/python/arcor2_ur/py.typed | 0 src/python/arcor2_ur/scripts/BUILD | 4 + src/python/arcor2_ur/scripts/__init__.py | 0 .../arcor2_ur/scripts/upload_objects.py | 11 + src/python/arcor2_ur/scripts/ur.py | 612 +++++ src/python/arcor2_ur/tests/BUILD | 8 + src/python/arcor2_ur/tests/__init__.py | 0 src/python/arcor2_ur/tests/conftest.py | 81 + .../arcor2_ur/tests/test_interaction.py | 19 + src/python/arcor2_ur/tests/test_ur.py | 13 + src/python/arcor2_yumi/BUILD | 1 + .../arcor2_yumi/object_types/tests/BUILD | 2 +- src/python/arcor2_yumi/tests/BUILD | 1 + 85 files changed, 3612 insertions(+), 862 deletions(-) create mode 100644 compose-files/ur-demo/calibration.yaml create mode 100644 compose-files/ur-demo/docker-compose.yml create mode 100644 compose-files/ur-demo/nginx.conf create mode 100644 src/docker/arcor2_ur/BUILD create mode 100644 src/docker/arcor2_ur/Dockerfile create mode 100755 src/docker/arcor2_ur/start.sh create mode 100644 src/docker/arcor2_ur_ot/BUILD create mode 100644 src/docker/arcor2_ur_ot/Dockerfile create mode 100644 src/python/arcor2_ur/BUILD create mode 100644 src/python/arcor2_ur/CHANGELOG.md create mode 100644 src/python/arcor2_ur/README.md create mode 100644 src/python/arcor2_ur/VERSION create mode 100644 src/python/arcor2_ur/__init__.py create mode 100644 src/python/arcor2_ur/data/BUILD create mode 100644 src/python/arcor2_ur/data/moveit.yaml create mode 100644 src/python/arcor2_ur/data/urdf/BUILD create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/base.stl create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/forearm.stl create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/shoulder.stl create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/upperarm.stl create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/wrist1.stl create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/wrist2.stl create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/wrist3.stl create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/base.dae create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/forearm.dae create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/shoulder.dae create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/upperarm.dae create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/wrist1.dae create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/wrist2.dae create mode 100644 src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/wrist3.dae create mode 100644 src/python/arcor2_ur/data/urdf/ur5e.urdf create mode 100644 src/python/arcor2_ur/exceptions.py create mode 100644 src/python/arcor2_ur/object_types/BUILD create mode 100644 src/python/arcor2_ur/object_types/__init__.py create mode 100644 src/python/arcor2_ur/object_types/ur5e.py create mode 100644 src/python/arcor2_ur/py.typed create mode 100644 src/python/arcor2_ur/scripts/BUILD create mode 100644 src/python/arcor2_ur/scripts/__init__.py create mode 100644 src/python/arcor2_ur/scripts/upload_objects.py create mode 100644 src/python/arcor2_ur/scripts/ur.py create mode 100644 src/python/arcor2_ur/tests/BUILD create mode 100644 src/python/arcor2_ur/tests/__init__.py create mode 100644 src/python/arcor2_ur/tests/conftest.py create mode 100644 src/python/arcor2_ur/tests/test_interaction.py create mode 100644 src/python/arcor2_ur/tests/test_ur.py diff --git a/.github/workflows/pants.yaml b/.github/workflows/pants.yaml index 1664ac33b..06a0f9b71 100644 --- a/.github/workflows/pants.yaml +++ b/.github/workflows/pants.yaml @@ -12,14 +12,14 @@ jobs: org-check: name: Check GitHub Organization if: ${{ github.repository_owner == 'robofit' }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Noop run: "true" build: env: PANTS_CONFIG_FILES: pants.ci.toml - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: org-check strategy: matrix: @@ -44,6 +44,9 @@ jobs: uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + - uses: ros-tooling/setup-ros@v0.7 + with: + required-ros-distributions: jazzy - uses: pantsbuild/actions/init-pants@v5-scie-pants with: pants-python-version: ${{ matrix.python-version }} @@ -57,6 +60,9 @@ jobs: - name: install system dependencies run: | # cargo is required to build fastuuid (no wheels for Python 3.11) sudo apt install jq cargo + - name: install ROS 2 dependencies + run: | # copied from arcor2_ur Dockerfile TODO move it into some bash script to have it in one place + sudo apt install ros-jazzy-ros-base=0.11.0-1noble.20240731.172749 ros-jazzy-ur=2.4.9-1noble.20240820.020145 ros-jazzy-moveit-py=2.10.0-1noble.20240731.183757 - name: Lint run: | pants --changed-since=origin/master lint @@ -65,6 +71,7 @@ jobs: pants check --changed-since=origin/master --changed-dependees=transitive - name: Test run: | + source /opt/ros/jazzy/setup.bash pants --changed-since=origin/master --changed-dependees=transitive test - name: Build Docker images run: | # filter out non-essential docker images (there was a problem with full storage on github) diff --git a/3rdparty/constraints.txt b/3rdparty/constraints.txt index 468c84e34..3c50a7e51 100644 --- a/3rdparty/constraints.txt +++ b/3rdparty/constraints.txt @@ -6,7 +6,8 @@ // { // "version": 3, // "valid_for_interpreter_constraints": [ -// "CPython==3.11.*" +// "CPython==3.11.*", +// "CPython==3.12.*" // ], // "generated_with_requirements": [ // "Cython~=3.0.10", @@ -29,6 +30,7 @@ // "flask_cors~=4.0.1", // "gTTS~=2.5.1", // "hidapi~=0.14.0", +// "lark==1.1.9", // "lru-dict~=1.3.0", // "numpy-quaternion[numba,scipy]~=2023.0.3", // "numpy~=1.26.4", @@ -41,7 +43,6 @@ // "pydub-stubs==0.25.1.1", // "pydub~=0.25.1", // "pyhumps==3.8.0", -// "pyk4a@ git+https://github.com/Jakub-Dv/pyk4a.git@feature/body-tracking", // "pyserial~=3.5", // "pyspacemouse~=1.1.3", // "pytest-asyncio~=0.23.7", @@ -244,42 +245,61 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1", - "url": "https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl" + "hash": "81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2", + "url": "https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30", - "url": "https://files.pythonhosted.org/packages/e3/fc/f800d51204003fa8ae392c4e8278f256206e7a919b708eef054f5f4b650d/attrs-23.2.0.tar.gz" + "hash": "5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", + "url": "https://files.pythonhosted.org/packages/fc/0f/aafca9af9315aee06a89ffde799a10a582fe8de76c563ee80bbcdc08b3fb/attrs-24.2.0.tar.gz" } ], "project_name": "attrs", "requires_dists": [ - "attrs[tests-mypy]; extra == \"tests-no-zope\"", - "attrs[tests-no-zope]; extra == \"tests\"", - "attrs[tests]; extra == \"cov\"", - "attrs[tests]; extra == \"dev\"", - "cloudpickle; platform_python_implementation == \"CPython\" and extra == \"tests-no-zope\"", + "cloudpickle; platform_python_implementation == \"CPython\" and extra == \"benchmark\"", + "cloudpickle; platform_python_implementation == \"CPython\" and extra == \"cov\"", + "cloudpickle; platform_python_implementation == \"CPython\" and extra == \"dev\"", + "cloudpickle; platform_python_implementation == \"CPython\" and extra == \"tests\"", + "cogapp; extra == \"docs\"", "coverage[toml]>=5.3; extra == \"cov\"", "furo; extra == \"docs\"", - "hypothesis; extra == \"tests-no-zope\"", + "hypothesis; extra == \"benchmark\"", + "hypothesis; extra == \"cov\"", + "hypothesis; extra == \"dev\"", + "hypothesis; extra == \"tests\"", "importlib-metadata; python_version < \"3.8\"", - "mypy>=1.6; (platform_python_implementation == \"CPython\" and python_version >= \"3.8\") and extra == \"tests-mypy\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"benchmark\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"cov\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"dev\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"tests\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"tests-mypy\"", "myst-parser; extra == \"docs\"", "pre-commit; extra == \"dev\"", - "pympler; extra == \"tests-no-zope\"", - "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.8\") and extra == \"tests-mypy\"", - "pytest-xdist[psutil]; extra == \"tests-no-zope\"", - "pytest>=4.3.0; extra == \"tests-no-zope\"", + "pympler; extra == \"benchmark\"", + "pympler; extra == \"cov\"", + "pympler; extra == \"dev\"", + "pympler; extra == \"tests\"", + "pytest-codspeed; extra == \"benchmark\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"benchmark\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"cov\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"dev\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"tests\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"tests-mypy\"", + "pytest-xdist[psutil]; extra == \"benchmark\"", + "pytest-xdist[psutil]; extra == \"cov\"", + "pytest-xdist[psutil]; extra == \"dev\"", + "pytest-xdist[psutil]; extra == \"tests\"", + "pytest>=4.3.0; extra == \"benchmark\"", + "pytest>=4.3.0; extra == \"cov\"", + "pytest>=4.3.0; extra == \"dev\"", + "pytest>=4.3.0; extra == \"tests\"", "sphinx-notfound-page; extra == \"docs\"", "sphinx; extra == \"docs\"", "sphinxcontrib-towncrier; extra == \"docs\"", - "towncrier; extra == \"docs\"", - "zope-interface; extra == \"docs\"", - "zope-interface; extra == \"tests\"" + "towncrier<24.7; extra == \"docs\"" ], "requires_python": ">=3.7", - "version": "23.2.0" + "version": "24.2.0" }, { "artifacts": [ @@ -324,71 +344,121 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56", - "url": "https://files.pythonhosted.org/packages/5b/11/1e78951465b4a225519b8c3ad29769c49e0d8d157a070f681d5b6d64737f/certifi-2024.6.2-py3-none-any.whl" + "hash": "922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", + "url": "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516", - "url": "https://files.pythonhosted.org/packages/07/b3/e02f4f397c81077ffc52a538e0aec464016f1860c472ed33bd2a1d220cc5/certifi-2024.6.2.tar.gz" + "hash": "bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", + "url": "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz" } ], "project_name": "certifi", "requires_dists": [], "requires_python": ">=3.6", - "version": "2024.6.2" + "version": "2024.8.30" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb", - "url": "https://files.pythonhosted.org/packages/47/e3/b6832b1b9a1b6170c585ee2c2d30baf64d0a497c17e6623f42cfeb59c114/cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", + "url": "https://files.pythonhosted.org/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl" }, { "algorithm": "sha256", - "hash": "1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417", - "url": "https://files.pythonhosted.org/packages/18/6c/0406611f3d5aadf4c5b08f6c095d874aed8dfc2d3a19892707d72536d5dc/cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", + "url": "https://files.pythonhosted.org/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl" }, { "algorithm": "sha256", - "hash": "e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d", - "url": "https://files.pythonhosted.org/packages/36/44/124481b75d228467950b9e81d20ec963f33517ca551f08956f2838517ece/cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + "hash": "a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", + "url": "https://files.pythonhosted.org/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl" }, { "algorithm": "sha256", - "hash": "ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627", - "url": "https://files.pythonhosted.org/packages/58/ac/2a3ea436a6cbaa8f75ddcab39010e5e0817a18f26fef5d2fe2e0c7df3425/cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", + "url": "https://files.pythonhosted.org/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0", - "url": "https://files.pythonhosted.org/packages/68/ce/95b0bae7968c65473e1298efb042e10cafc7bafc14d9e4f154008241c91d/cffi-1.16.0.tar.gz" + "hash": "46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", + "url": "https://files.pythonhosted.org/packages/1c/a0/a4fa9f4f781bda074c3ddd57a572b060fa0df7655d2a4247bbe277200146/cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { "algorithm": "sha256", - "hash": "b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404", - "url": "https://files.pythonhosted.org/packages/95/c8/ce05a6cba2bec12d4b28285e66c53cc88dd7385b102dea7231da3b74cfef/cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", + "url": "https://files.pythonhosted.org/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { "algorithm": "sha256", - "hash": "7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e", - "url": "https://files.pythonhosted.org/packages/9b/89/a31c81e36bbb793581d8bba4406a8aac4ba84b2559301c44eef81f4cf5df/cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", + "url": "https://files.pythonhosted.org/packages/2e/ea/70ce63780f096e16ce8588efe039d3c4f91deb1dc01e9c73a287939c79a6/cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936", - "url": "https://files.pythonhosted.org/packages/b5/23/ea84dd4985649fcc179ba3a6c9390412e924d20b0244dc71a6545788f5a2/cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", + "url": "https://files.pythonhosted.org/packages/44/74/f2a2460684a1a2d00ca799ad880d54652841a780c4c97b87754f660c7603/cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl" }, { "algorithm": "sha256", - "hash": "c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc", - "url": "https://files.pythonhosted.org/packages/e0/80/52b71420d68c4be18873318f6735c742f1172bb3b18d23f0306e6444d410/cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl" + "hash": "805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", + "url": "https://files.pythonhosted.org/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56", - "url": "https://files.pythonhosted.org/packages/e4/9a/7169ae3a67a7bb9caeb2249f0617ac1458df118305c53afa3dec4a9029cd/cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + "hash": "a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", + "url": "https://files.pythonhosted.org/packages/62/12/ce8710b5b8affbcdd5c6e367217c242524ad17a02fe5beec3ee339f69f85/cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "algorithm": "sha256", + "hash": "a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", + "url": "https://files.pythonhosted.org/packages/6b/f4/927e3a8899e52a27fa57a48607ff7dc91a9ebe97399b357b85a0c7892e00/cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", + "url": "https://files.pythonhosted.org/packages/6c/f5/6c3a8efe5f503175aaddcbea6ad0d2c96dad6f5abb205750d1b3df44ef29/cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", + "url": "https://files.pythonhosted.org/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "algorithm": "sha256", + "hash": "f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", + "url": "https://files.pythonhosted.org/packages/94/dd/a3f0118e688d1b1a57553da23b16bdade96d2f9bcda4d32e7d2838047ff7/cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", + "url": "https://files.pythonhosted.org/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", + "url": "https://files.pythonhosted.org/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", + "url": "https://files.pythonhosted.org/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b", + "url": "https://files.pythonhosted.org/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", + "url": "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", + "url": "https://files.pythonhosted.org/packages/ff/6b/d45873c5e0242196f042d555526f92aa9e0c32355a1be1ff8c27f077fd37/cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" } ], "project_name": "cffi", @@ -396,7 +466,7 @@ "pycparser" ], "requires_python": ">=3.8", - "version": "1.16.0" + "version": "1.17.1" }, { "artifacts": [ @@ -425,11 +495,26 @@ "hash": "4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", "url": "https://files.pythonhosted.org/packages/1e/49/7ab74d4ac537ece3bc3334ee08645e231f39f7d6df6347b29a74b0537103/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl" }, + { + "algorithm": "sha256", + "hash": "b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", + "url": "https://files.pythonhosted.org/packages/24/9d/2e3ef673dfd5be0154b20363c5cdcc5606f35666544381bee15af3778239/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl" + }, { "algorithm": "sha256", "hash": "80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", "url": "https://files.pythonhosted.org/packages/2d/dc/9dacba68c9ac0ae781d40e1a0c0058e26302ea0660e574ddf6797a0347f7/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl" }, + { + "algorithm": "sha256", + "hash": "ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", + "url": "https://files.pythonhosted.org/packages/2e/7d/2259318c202f3d17f3fe6438149b3b9e706d1070fe3fcbb28049730bb25c/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", + "url": "https://files.pythonhosted.org/packages/3a/52/9f9d17c3b54dc238de384c4cb5a2ef0e27985b42a0e5cc8e8a31d918d48d/charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl" + }, { "algorithm": "sha256", "hash": "573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", @@ -440,6 +525,16 @@ "hash": "753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", "url": "https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, + { + "algorithm": "sha256", + "hash": "7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", + "url": "https://files.pythonhosted.org/packages/45/59/3d27019d3b447a88fe7e7d004a1e04be220227760264cc41b405e863891b/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", + "url": "https://files.pythonhosted.org/packages/5b/ae/ce2c12fcac59cb3860b2e2d76dc405253a4475436b1861d95fe75bdea520/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl" + }, { "algorithm": "sha256", "hash": "f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", @@ -450,16 +545,46 @@ "hash": "802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", "url": "https://files.pythonhosted.org/packages/68/77/02839016f6fbbf808e8b38601df6e0e66c17bbab76dff4613f7511413597/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl" }, + { + "algorithm": "sha256", + "hash": "8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", + "url": "https://files.pythonhosted.org/packages/72/1a/641d5c9f59e6af4c7b53da463d07600a695b9824e20849cb6eea8a627761/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, { "algorithm": "sha256", "hash": "1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", "url": "https://files.pythonhosted.org/packages/74/f1/0d9fe69ac441467b737ba7f48c68241487df2f4522dd7246d9426e7c690e/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, + { + "algorithm": "sha256", + "hash": "8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", + "url": "https://files.pythonhosted.org/packages/7b/ef/5eb105530b4da8ae37d506ccfa25057961b7b63d581def6f99165ea89c7e/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", + "url": "https://files.pythonhosted.org/packages/91/33/749df346e93d7a30cdcb90cbfdd41a06026317bfbfb62cd68307c1a3c543/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "algorithm": "sha256", + "hash": "8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", + "url": "https://files.pythonhosted.org/packages/99/b0/9c365f6d79a9f0f3c379ddb40a256a67aa69c59609608fe7feb6235896e1/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", + "url": "https://files.pythonhosted.org/packages/a2/51/e5023f937d7f307c948ed3e5c29c4b7a3e42ed2ee0b8cdf8f3a706089bf0/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl" + }, { "algorithm": "sha256", "hash": "deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", "url": "https://files.pythonhosted.org/packages/cf/7c/f3b682fa053cc21373c9a839e6beba7705857075686a05c72e0f8c4980ca/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl" }, + { + "algorithm": "sha256", + "hash": "0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", + "url": "https://files.pythonhosted.org/packages/d1/b2/fcedc8255ec42afee97f9e6f0145c734bbe104aac28300214593eb326f1d/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl" + }, { "algorithm": "sha256", "hash": "e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", @@ -470,10 +595,20 @@ "hash": "549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", "url": "https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl" }, + { + "algorithm": "sha256", + "hash": "6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", + "url": "https://files.pythonhosted.org/packages/df/3e/a06b18788ca2eb6695c9b22325b6fde7dde0f1d1838b1792a0076f58fe9d/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, { "algorithm": "sha256", "hash": "f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", "url": "https://files.pythonhosted.org/packages/e4/a6/7ee57823d46331ddc37dd00749c95b0edec2c79b15fc0d6e6efb532e89ac/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", + "url": "https://files.pythonhosted.org/packages/ee/fb/14d30eb4956408ee3ae09ad34299131fb383c47df355ddb428a7331cfa1e/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" } ], "project_name": "charset-normalizer", @@ -485,8 +620,8 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "8acb45545e6a654310c6ef788aacb2d73686646c414ceacdd9f5f78a83165af5", - "url": "https://files.pythonhosted.org/packages/7b/52/764356d60dcd743d2352a0c24d593ce6df330a7012f8c2ade00e580031df/ciso8601-2.3.1-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "87721de54e008fb1c4c3978553b05a9c417aa25b76ddf5702d6f7e8d9b109288", + "url": "https://files.pythonhosted.org/packages/76/ef/5ef06ccb6f6c023573634119f93df237687e3f4263e2f307b51a7208d103/ciso8601-2.3.1-cp312-cp312-musllinux_1_1_x86_64.whl" }, { "algorithm": "sha256", @@ -498,11 +633,31 @@ "hash": "473288cd63efe6a2cf3f4b5f90394e53095358ccb13d6128f87a2da85d0f389b", "url": "https://files.pythonhosted.org/packages/40/36/8260b1b1b63051f90facb659913c5852cd95a17cfd3e7dc243cef4e190a0/ciso8601-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl" }, + { + "algorithm": "sha256", + "hash": "0d980a2a88030d4d8b2434623c250866a75b4979d289eba69bec445c51ace99f", + "url": "https://files.pythonhosted.org/packages/50/1c/d1cb5b2d2173abfc4d5a068981acddff763cce318e896ec87c140412c72d/ciso8601-2.3.1-cp312-cp312-musllinux_1_1_i686.whl" + }, { "algorithm": "sha256", "hash": "364702e338212b6c1a8643d9399ada21560cf132f363853473560625cb4207f1", "url": "https://files.pythonhosted.org/packages/57/1a/3de6285bb4b743edc2af3e19253d72076a2911e985b89fe67a730a06d9ea/ciso8601-2.3.1-cp311-cp311-musllinux_1_1_i686.whl" }, + { + "algorithm": "sha256", + "hash": "b26935687ef1837b56997d8c61f1d789e698be58b261410e629eda9c89812141", + "url": "https://files.pythonhosted.org/packages/5b/bd/fef5524974e3ba376e16df35e4197152edffdf7ac9d5d99bc173a9fcf256/ciso8601-2.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "8acb45545e6a654310c6ef788aacb2d73686646c414ceacdd9f5f78a83165af5", + "url": "https://files.pythonhosted.org/packages/7b/52/764356d60dcd743d2352a0c24d593ce6df330a7012f8c2ade00e580031df/ciso8601-2.3.1-cp311-cp311-musllinux_1_1_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "f39bb5936debf21c52e5d52b89f26857c303da80c43a72883946096a6ef5e561", + "url": "https://files.pythonhosted.org/packages/85/3d/f6496a260ba6e58135fb3dd1108799f6dd9cadf634372e020bfbf0d27fea/ciso8601-2.3.1-cp312-cp312-macosx_10_9_universal2.whl" + }, { "algorithm": "sha256", "hash": "3212c7ffe5d8080270548b5f2692ffd2039683b6628a8d2ad456122cc5793c4c", @@ -517,6 +672,16 @@ "algorithm": "sha256", "hash": "9f25647803c9a5aaaed130c53bbec7ea06a4f95ba5c7016f59e444b4ef7ac39e", "url": "https://files.pythonhosted.org/packages/b1/b7/b03313a9ff86a5bec68f2ceece41abd0834fd92c91c7ba4b9a95ea032f35/ciso8601-2.3.1-cp311-cp311-macosx_10_9_universal2.whl" + }, + { + "algorithm": "sha256", + "hash": "21cf83ca945bb26ecd95364ae2c9ed0276378e5fe35ce1b64d4c6d5b33038ea3", + "url": "https://files.pythonhosted.org/packages/c4/a9/24ffa848a5878a50009d6177826c36b60e2e8807e4d54ee94817e790897b/ciso8601-2.3.1-cp312-cp312-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "013410263cba46748d2de29e9894341ae41223356cde7970478c32bd0984d10c", + "url": "https://files.pythonhosted.org/packages/ea/74/77fd6e67a2a3489a1ac449570142e2f4137289be25027e235d4688470d56/ciso8601-2.3.1-cp312-cp312-macosx_11_0_arm64.whl" } ], "project_name": "ciso8601", @@ -618,48 +783,88 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "b59c0ffceff8d4d3996a45f2bb6f4c207f94684a96bf3d9728dbb77428dd8cb8", - "url": "https://files.pythonhosted.org/packages/d1/0a/dc0c74a760665bd0548fc515cf2a83eb9235d72cfe88fd84f3a6fefc6052/contourpy-1.2.1-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "aea348f053c645100612b333adc5983d87be69acdc6d77d3169c090d3b01dc35", + "url": "https://files.pythonhosted.org/packages/2a/25/632eab595e3140adfa92f1322bf8915f68c932bac468e89eae9974cf1c00/contourpy-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "637f674226be46f6ba372fd29d9523dd977a291f66ab2a74fbeb5530bb3f445d", + "url": "https://files.pythonhosted.org/packages/03/33/003065374f38894cdf1040cef474ad0546368eea7e3a51d48b8a423961f8/contourpy-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "834e0cfe17ba12f79963861e0f908556b2cedd52e1f75e6578801febcc6a9f49", + "url": "https://files.pythonhosted.org/packages/05/46/9256dd162ea52790c127cb58cfc3b9e3413a6e3478917d1f811d420772ec/contourpy-1.3.0-cp311-cp311-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "6022cecf8f44e36af10bd9118ca71f371078b4c168b6e0fab43d4a889985dbb5", - "url": "https://files.pythonhosted.org/packages/33/0e/51ff72fac17e2500baf30b6b2a24be423a8d27e1625e5de99f585b852d74/contourpy-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "0dce35502151b6bd35027ac39ba6e5a44be13a68f55735c3612c568cac3805fd", + "url": "https://files.pythonhosted.org/packages/0f/96/fdb2552a172942d888915f3a6663812e9bc3d359d53dafd4289a0fb462f0/contourpy-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "00e5388f71c1a0610e6fe56b5c44ab7ba14165cdd6d695429c5cd94021e390b2", - "url": "https://files.pythonhosted.org/packages/38/78/912e4457d6dbb182780ad1ed26c875a3bc3f9aa678e42f766f7cc6683919/contourpy-1.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + "hash": "76a896b2f195b57db25d6b44e7e03f221d32fe318d03ede41f8b4d9ba1bff53c", + "url": "https://files.pythonhosted.org/packages/42/80/e637326e85e4105a802e42959f56cff2cd39a6b5ef68d5d9aee3ea5f0e4c/contourpy-1.3.0-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "4c863140fafc615c14a4bf4efd0f4425c02230eb8ef02784c9a156461e62c965", - "url": "https://files.pythonhosted.org/packages/64/a0/59c5d9c5c2c687d255dfa0c2826008a544c0ba53b718ba253e7cd46cf2ad/contourpy-1.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + "hash": "303c252947ab4b14c08afeb52375b26781ccd6a5ccd81abcdfc1fafd14cf93c1", + "url": "https://files.pythonhosted.org/packages/45/cf/2c2fc6bb5874158277b4faf136847f0689e1b1a1f640a36d76d52e78907c/contourpy-1.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { "algorithm": "sha256", - "hash": "4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c", - "url": "https://files.pythonhosted.org/packages/8d/9e/e4786569b319847ffd98a8326802d5cf8a5500860dbfc2df1f0f4883ed99/contourpy-1.2.1.tar.gz" + "hash": "0be4d8425bfa755e0fd76ee1e019636ccc7c29f77a7c86b4328a9eb6a26d0639", + "url": "https://files.pythonhosted.org/packages/51/3d/aa0fe6ae67e3ef9f178389e4caaaa68daf2f9024092aa3c6032e3d174670/contourpy-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "6150ffa5c767bc6332df27157d95442c379b7dce3a38dff89c0f39b63275696f", - "url": "https://files.pythonhosted.org/packages/98/72/ae1e8518a2fe75980598a2716e392c7642b70b6a5605fc925426007b0f49/contourpy-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "9c0da700bf58f6e0b65312d0a5e695179a71d0163957fa381bb3c1f72972537c", + "url": "https://files.pythonhosted.org/packages/56/c3/c85a7e3e0cab635575d3b657f9535443a6f5d20fac1a1911eaa4bbe1aceb/contourpy-1.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { "algorithm": "sha256", - "hash": "ef5adb9a3b1d0c645ff694f9bca7702ec2c70f4d734f9922ea34de02294fdf72", - "url": "https://files.pythonhosted.org/packages/9f/6b/8a1ca4b81d426c104fe42b3cfad9488eaaef0a03fcf98eaecc22b628a013/contourpy-1.2.1-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "3634b5385c6716c258d0419c46d05c8aa7dc8cb70326c9a4fb66b69ad2b52e09", + "url": "https://files.pythonhosted.org/packages/6e/be/524e377567defac0e21a46e2a529652d165fed130a0d8a863219303cee18/contourpy-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "49e70d111fee47284d9dd867c9bb9a7058a3c617274900780c43e38d90fe1205", - "url": "https://files.pythonhosted.org/packages/a6/fc/ba17428cda0d5226015c7c844fb0909cb38945dc9d6770634acfc3b96d6b/contourpy-1.2.1-cp311-cp311-musllinux_1_1_aarch64.whl" + "hash": "e1fd23e9d01591bab45546c089ae89d926917a66dceb3abcf01f6105d927e2cb", + "url": "https://files.pythonhosted.org/packages/7c/3b/8cbd6416ca1bbc0202b50f9c13b2e0b922b64be888f9d9ee88e6cfabfb51/contourpy-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "d4492d82b3bc7fbb7e3610747b159869468079fe149ec5c4d771fa1f614a14df", - "url": "https://files.pythonhosted.org/packages/ee/c0/9bd123d676eb61750e116a2cd915b06483fc406143cfc36c7f263f0f5368/contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "0fa4c02abe6c446ba70d96ece336e621efa4aecae43eaa9b030ae5fb92b309ad", + "url": "https://files.pythonhosted.org/packages/b3/1f/9375917786cb39270b0ee6634536c0e22abf225825602688990d8f5c6c19/contourpy-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "570ef7cf892f0afbe5b2ee410c507ce12e15a5fa91017a0009f79f7d93a1268f", + "url": "https://files.pythonhosted.org/packages/c9/92/8e0bbfe6b70c0e2d3d81272b58c98ac69ff1a4329f18c73bd64824d8b12e/contourpy-1.3.0-cp312-cp312-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "4865cd1d419e0c7a7bf6de1777b185eebdc51470800a9f42b9e9decf17762081", + "url": "https://files.pythonhosted.org/packages/ca/c2/1a612e475492e07f11c8e267ea5ec1ce0d89971be496c195e27afa97e14a/contourpy-1.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "algorithm": "sha256", + "hash": "eb8b141bb00fa977d9122636b16aa67d37fd40a3d8b52dd837e536d64b9a4d06", + "url": "https://files.pythonhosted.org/packages/dd/8d/20f7a211a7be966a53f474bc90b1a8202e9844b3f1ef85f3ae45a77151ee/contourpy-1.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "algorithm": "sha256", + "hash": "dbc4c3217eee163fa3984fd1567632b48d6dfd29216da3ded3d7b844a8014a66", + "url": "https://files.pythonhosted.org/packages/e1/5d/3056c167fa4486900dfbd7e26a2fdc2338dc58eee36d490a0ed3ddda5ded/contourpy-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "da84c537cb8b97d153e9fb208c221c45605f73147bd4cadd23bdae915042aad6", + "url": "https://files.pythonhosted.org/packages/e3/04/33351c5d5108460a8ce6d512307690b023f0cfcad5899499f5c83b9d63b1/contourpy-1.3.0-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "7ffa0db17717a8ffb127efd0c95a4362d996b892c2904db72428d5b52e1938a4", + "url": "https://files.pythonhosted.org/packages/f5/f6/31a8f28b4a2a4fa0e01085e542f3081ab0588eff8e589d39d775172c9792/contourpy-1.3.0.tar.gz" } ], "project_name": "contourpy", @@ -671,9 +876,10 @@ "docutils-stubs; extra == \"mypy\"", "furo; extra == \"docs\"", "matplotlib; extra == \"test\"", - "mypy==1.8.0; extra == \"mypy\"", - "numpy>=1.20", + "mypy==1.11.1; extra == \"mypy\"", + "numpy>=1.23", "pytest-cov; extra == \"test-no-images\"", + "pytest-rerunfailures; extra == \"test-no-images\"", "pytest-xdist; extra == \"test-no-images\"", "pytest; extra == \"test-no-images\"", "selenium; extra == \"bokeh\"", @@ -683,7 +889,7 @@ "wurlitzer; extra == \"test-no-images\"" ], "requires_python": ">=3.9", - "version": "1.2.1" + "version": "1.3.0" }, { "artifacts": [ @@ -715,61 +921,91 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "fcbb679c0b43514d591577fd0d20021c55c240ca9ccafbdb82d3fb95e5edfee2", - "url": "https://files.pythonhosted.org/packages/b6/83/b0a63fc7b315edd46821a1a381d18765c1353d201246da44558175cddd56/Cython-3.0.10-py2.py3-none-any.whl" + "hash": "0e25f6425ad4a700d7f77cd468da9161e63658837d1bc34861a9861a4ef6346d", + "url": "https://files.pythonhosted.org/packages/43/39/bdbec9142bc46605b54d674bf158a78b191c2b75be527c6dcf3e6dfe90b8/Cython-3.0.11-py2.py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "051069638abfb076900b0c2bcb6facf545655b3f429e80dd14365192074af5a4", - "url": "https://files.pythonhosted.org/packages/05/69/198e26fb362a35460cbc72596352228fb8bddb15d11a787acfd7fa30aec4/Cython-3.0.10-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "af91497dc098718e634d6ec8f91b182aea6bb3690f333fc9a7777bc70abe8810", + "url": "https://files.pythonhosted.org/packages/09/c9/537108d0980beffff55336baaf8b34162ad0f3f33ededcb5db07069bc8ef/Cython-3.0.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "e8df79b596633b8295eaa48b1157d796775c2bb078f32267d32f3001b687f2fd", - "url": "https://files.pythonhosted.org/packages/1d/bb/0a8451b86144be96132531b4b868640c61744655dc92ed08d924ecaf8931/Cython-3.0.10-cp311-cp311-musllinux_1_1_aarch64.whl" + "hash": "d566a4e09b8979be8ab9f843bac0dd216c81f5e5f45661a9b25cd162ed80508c", + "url": "https://files.pythonhosted.org/packages/4a/84/a3c40f2c0439d425daa5aa4e3a6fdbbb41341a14a6fd97f94906f528d9a4/Cython-3.0.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "bcc9795990e525c192bc5c0775e441d7d56d7a7d02210451e9e13c0448dba51b", - "url": "https://files.pythonhosted.org/packages/44/7f/8262019f0076f5e79ce4de855d8601e90b66fb44925c161b1c9670a21889/Cython-3.0.10-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "11996c40c32abf843ba652a6d53cb15944c88d91f91fc4e6f0028f5df8a8f8a1", + "url": "https://files.pythonhosted.org/packages/58/50/fbb23239efe2183e4eaf76689270d6f5b3bbcf9be9ad1eb97cc34349e6fc/Cython-3.0.11-cp312-cp312-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "38d40fa1324ac47c04483d151f5e092406a147eac88a18aec789cf01c089c3f2", - "url": "https://files.pythonhosted.org/packages/45/82/077c13035d6f45d8b8b74d67e9f73f2bfc54ef8d1f79572790f6f7d2b4f5/Cython-3.0.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "46aec30f217bdf096175a1a639203d44ac73a36fe7fa3dd06bd012e8f39eca0f", + "url": "https://files.pythonhosted.org/packages/6d/93/bdb61e0254ed8f1d21a14088a473584ecb1963d68dba5682158aa45c70ef/Cython-3.0.11-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "712760879600907189c7d0d346851525545484e13cd8b787e94bfd293da8ccf0", - "url": "https://files.pythonhosted.org/packages/8e/30/947edd67f2ca21da1b88cba9c7f24fd27923a068138e0077095927dbee9e/Cython-3.0.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "7146dd2af8682b4ca61331851e6aebce9fe5158e75300343f80c07ca80b1faff", + "url": "https://files.pythonhosted.org/packages/84/4d/b720d6000f4ca77f030bd70f12550820f0766b568e43f11af7f7ad9061aa/cython-3.0.11.tar.gz" }, { "algorithm": "sha256", - "hash": "5bd49a3a9fdff65446a3e1c2bfc0ec85c6ce4c3cad27cd4ad7ba150a62b7fb59", - "url": "https://files.pythonhosted.org/packages/a2/d5/54f108e43dcc94ddcd227ee258700165bf3e447f6b0fac316b5d822fb882/Cython-3.0.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "63f2c892e9f9c1698ecfee78205541623eb31cd3a1b682668be7ac12de94aa8e", + "url": "https://files.pythonhosted.org/packages/87/e5/76379edb21fd5bb9e2aaa1d305492bc35bba96dfb51f5d96867d9863b6df/Cython-3.0.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "dcc96739331fb854dcf503f94607576cfe8488066c61ca50dfd55836f132de99", - "url": "https://files.pythonhosted.org/packages/d5/f7/2fdd9205a2eedee7d9b0abbf15944a1151eb943001dbdc5233b1d1cfc34e/Cython-3.0.10.tar.gz" + "hash": "3999fb52d3328a6a5e8c63122b0a8bd110dfcdb98dda585a3def1426b991cba7", + "url": "https://files.pythonhosted.org/packages/93/03/e330b241ad8aa12bb9d98b58fb76d4eb7dcbe747479aab5c29fce937b9e7/Cython-3.0.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "8b14c24f1dc4c4c9d997cca8d1b7fb01187a218aab932328247dcf5694a10102", + "url": "https://files.pythonhosted.org/packages/9a/ef/44af6aded89444dc45f4466ff207a05d3376c641cf1146c03fd14c55ae64/Cython-3.0.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "a690f2ff460682ea985e8d38ec541be97e0977fa0544aadc21efc116ff8d7579", + "url": "https://files.pythonhosted.org/packages/a0/92/a60a400be286dc661609da9db903680bba1423362000b689cf8ef0aec811/Cython-3.0.11-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "c8eed5c015685106db15dd103fd040948ddca9197b1dd02222711815ea782a27", + "url": "https://files.pythonhosted.org/packages/e0/d5/ef8c7b6aa7a83c508f5c3bf0dfb9eb0a2a9be910c0b1f205f842128269c3/Cython-3.0.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "780f89c95b8aec1e403005b3bf2f0a2afa060b3eba168c86830f079339adad89", + "url": "https://files.pythonhosted.org/packages/e5/4a/58d6c208563504a35febff94904bb291b368a8b0f28a5e0593c770967caa/Cython-3.0.11-cp312-cp312-musllinux_1_2_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "ddd1fe25af330f4e003421636746a546474e4ccd8f239f55d2898d80983d20ed", + "url": "https://files.pythonhosted.org/packages/f8/62/0da548144c71176155ff5355c4cc40fb28b9effe22e830b55cec8072bdf2/Cython-3.0.11-cp311-cp311-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "75ba1c70b6deeaffbac123856b8d35f253da13552207aa969078611c197377e4", + "url": "https://files.pythonhosted.org/packages/f8/73/e55be864199cd674cb3426a052726c205589b1ac66fb0090e7fe793b60b3/Cython-3.0.11-cp311-cp311-macosx_10_9_x86_64.whl" } ], "project_name": "cython", "requires_dists": [], "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7", - "version": "3.0.10" + "version": "3.0.11" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "2421569023b2cd46ea2d4b2c14fe72c71b7436527a3102219b2265fa361e7c67", - "url": "https://files.pythonhosted.org/packages/63/22/bc266b167111e70a2da940e78b78d22fea5b1ee32b512ed0789bd6cc2a9f/dash-2.17.0-py3-none-any.whl" + "hash": "2d37b479be20bef1a184d35be4a654e4da131da6538d563fc813be3e28b90cbc", + "url": "https://files.pythonhosted.org/packages/a5/40/f99e73fad4403b6e37f7980ab149fdf234490075c209696eae2978344e34/dash-2.18.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "d065cd88771e45d0485993be0d27565e08918cb7edd18e31ee1c5b41252fc2fa", - "url": "https://files.pythonhosted.org/packages/37/51/9728b5a7f1abfdd43909fdecac43f0ef0a591246c6c6f22f4b5eda4b74cb/dash-2.17.0.tar.gz" + "hash": "9be6ea7562d40bb70211df8cbfb23611cc2ca9ae63cfca9af8f96679989adc40", + "url": "https://files.pythonhosted.org/packages/5d/3a/07e60aea5e02cffa90f754b3c3dbef9a50c27733bb43297f6a92e025eab0/dash-2.18.0.tar.gz" } ], "project_name": "dash", @@ -781,7 +1017,7 @@ "black==22.3.0; extra == \"ci\"", "celery[redis]>=5.1.2; extra == \"celery\"", "coloredlogs>=15.0.1; extra == \"dev\"", - "cryptography<3.4; python_version < \"3.7\" and extra == \"testing\"", + "cryptography; extra == \"testing\"", "dash-core-components==2.0.0", "dash-dangerously-set-inner-html; extra == \"ci\"", "dash-flow-example==0.0.5; extra == \"ci\"", @@ -804,7 +1040,7 @@ "nest-asyncio", "numpy<=1.26.3; extra == \"ci\"", "openpyxl; extra == \"ci\"", - "orjson==3.9.12; extra == \"ci\"", + "orjson==3.10.3; extra == \"ci\"", "pandas>=1.4.0; extra == \"ci\"", "percy>=2.0.2; extra == \"testing\"", "plotly>=5.0.0", @@ -828,7 +1064,7 @@ "xlrd>=2.0.1; extra == \"ci\"" ], "requires_python": ">=3.8", - "version": "2.17.0" + "version": "2.18.0" }, { "artifacts": [ @@ -960,13 +1196,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc", - "url": "https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl" + "hash": "8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf", + "url": "https://files.pythonhosted.org/packages/b5/fd/afcd0496feca3276f509df3dbd5dae726fcc756f1a08d9e25abe1733f962/executing-2.1.0-py2.py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147", - "url": "https://files.pythonhosted.org/packages/08/41/85d2d28466fca93737592b7f3cc456d1cfd6bcd401beceeba17e8e792b50/executing-2.0.1.tar.gz" + "hash": "8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab", + "url": "https://files.pythonhosted.org/packages/8c/e3/7d45f492c2c4a0e8e0fad57d081a7c8a0286cdd86372b070cca1ec0caa1e/executing-2.1.0.tar.gz" } ], "project_name": "executing", @@ -979,8 +1215,8 @@ "pytest; extra == \"tests\"", "rich; python_version >= \"3.11\" and extra == \"tests\"" ], - "requires_python": ">=3.5", - "version": "2.0.1" + "requires_python": ">=3.8", + "version": "2.1.0" }, { "artifacts": [ @@ -1007,13 +1243,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0", - "url": "https://files.pythonhosted.org/packages/9c/b9/79691036d4a8f9857e74d1728b23f34f583b81350a27492edda58d5604e1/fastjsonschema-2.19.1-py3-none-any.whl" + "hash": "5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a", + "url": "https://files.pythonhosted.org/packages/6d/ca/086311cdfc017ec964b2436fe0c98c1f4efcb7e4c328956a22456e497655/fastjsonschema-2.20.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d", - "url": "https://files.pythonhosted.org/packages/ba/7f/cedf77ace50aa60c566deaca9066750f06e1fcf6ad24f254d255bb976dd6/fastjsonschema-2.19.1.tar.gz" + "hash": "3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23", + "url": "https://files.pythonhosted.org/packages/03/3f/3ad5e7be13b4b8b55f4477141885ab2364f65d5f6ad5f7a9daffd634d066/fastjsonschema-2.20.0.tar.gz" } ], "project_name": "fastjsonschema", @@ -1028,7 +1264,7 @@ "validictory; extra == \"devel\"" ], "requires_python": null, - "version": "2.19.1" + "version": "2.20.0" }, { "artifacts": [ @@ -1074,13 +1310,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "f2a704e4458665580c074b714c4627dd5a306b333deb9074d0b1794dfa2fb677", - "url": "https://files.pythonhosted.org/packages/8b/52/2aa6285f104616f73ee1ad7905a16b2b35af0143034ad0cf7b64bcba715c/Flask_Cors-4.0.1-py2.py3-none-any.whl" + "hash": "38364faf1a7a5d0a55bd1d2e2f83ee9e359039182f5e6a029557e1f56d92c09a", + "url": "https://files.pythonhosted.org/packages/e1/60/e941089faf4f50f2e0231d7f7af69308616a37e99da3ec75df60b8809db7/Flask_Cors-4.0.2-py2.py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "eeb69b342142fdbf4766ad99357a7f3876a2ceb77689dc10ff912aac06c389e4", - "url": "https://files.pythonhosted.org/packages/40/6a/a8d56d60bcfa1ec3e4fdad81b45aafd508c3bd5c244a16526fa29139d7d4/flask_cors-4.0.1.tar.gz" + "hash": "493b98e2d1e2f1a4720a7af25693ef2fe32fbafec09a2f72c59f3e475eda61d2", + "url": "https://files.pythonhosted.org/packages/1c/41/89ea5af8b9d647036237c528abb2fdf8bb10b23b3f750e8e2da07873b270/flask_cors-4.0.2.tar.gz" } ], "project_name": "flask-cors", @@ -1088,7 +1324,7 @@ "Flask>=0.9" ], "requires_python": null, - "version": "4.0.1" + "version": "4.0.2" }, { "artifacts": [ @@ -1114,43 +1350,73 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "6b4f04b1fbc01a3569d63359f2227c89ab294550de277fd09d8fca6185669fa4", - "url": "https://files.pythonhosted.org/packages/f0/74/9244fda2577bccdaffd8a383be76c4c4d74730ecb56bc92ee4d655ea3ff1/fonttools-4.53.0-py3-none-any.whl" + "hash": "f1f8758a2ad110bd6432203a344269f445a2907dc24ef6bccfd0ac4e14e0d71d", + "url": "https://files.pythonhosted.org/packages/e4/b9/0394d67056d4ad36a3807b439571934b318f1df925593a95e9ec0516b1a7/fonttools-4.53.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "fa1f3e34373aa16045484b4d9d352d4c6b5f9f77ac77a178252ccbc851e8b2ee", - "url": "https://files.pythonhosted.org/packages/0a/79/b5be063ea65d048a041ad8438fa1e8c7c4bf9dc3f4ac2794a850fe70c5c5/fonttools-4.53.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "6e08f572625a1ee682115223eabebc4c6a2035a6917eac6f60350aba297ccadb", + "url": "https://files.pythonhosted.org/packages/0b/c4/b4e2f1699a5e2244373a6e8175f862f49f377b444adc6c7b1fe1f5b3d04d/fonttools-4.53.1-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "28d072169fe8275fb1a0d35e3233f6df36a7e8474e56cb790a7258ad822b6fd6", - "url": "https://files.pythonhosted.org/packages/68/ca/9c5602235e3ad781f70f9ef5c192595f24c4b40ac9f464d8bea28481241d/fonttools-4.53.0-cp311-cp311-musllinux_1_2_aarch64.whl" + "hash": "b21952c092ffd827504de7e66b62aba26fdb5f9d1e435c52477e6486e9d128b2", + "url": "https://files.pythonhosted.org/packages/64/e7/b9a07c386adf8ad0348163fbcaab74daed6ef18ddb3f49b61b5c19900aeb/fonttools-4.53.1-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "4f520d9ac5b938e6494f58a25c77564beca7d0199ecf726e1bd3d56872c59749", - "url": "https://files.pythonhosted.org/packages/69/2d/8aa6f3ad5fa586d92b95aaa56376f6b20e0136128a99e6e80c811c5f5b4c/fonttools-4.53.0-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "d92d3c2a1b39631a6131c2fa25b5406855f97969b068e7e08413325bc0afba58", + "url": "https://files.pythonhosted.org/packages/87/63/8271f50f3e7bff8b78e03914c4c2893f2f21bd4db2975c60d11ecfbdd174/fonttools-4.53.1-cp312-cp312-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "eceef49f457253000e6a2d0f7bd08ff4e9fe96ec4ffce2dbcb32e34d9c1b8161", - "url": "https://files.pythonhosted.org/packages/86/a9/3d8e7b63b45b48ec47a180e4e312e3db7d1d9a1ef520c51706ff1562edbf/fonttools-4.53.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "da33440b1413bad53a8674393c5d29ce64d8c1a15ef8a77c642ffd900d07bfe1", + "url": "https://files.pythonhosted.org/packages/8b/6a/206391c869ab22d1374e2575cad7cab36b93b9e3d37f48f4696eed2c6e9e/fonttools-4.53.1-cp311-cp311-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "c93ed66d32de1559b6fc348838c7572d5c0ac1e4a258e76763a5caddd8944002", - "url": "https://files.pythonhosted.org/packages/a4/6e/681d39b71d5f0d6a1b1dc87d7333331f9961b5ab6a2ad6372d6cf3f8b04c/fonttools-4.53.0.tar.gz" + "hash": "bee32ea8765e859670c4447b0817514ca79054463b6b79784b08a8df3a4d78e3", + "url": "https://files.pythonhosted.org/packages/a4/22/0a0ad59d9367997fd74a00ad2e88d10559122e09f105e94d34c155aecc0a/fonttools-4.53.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "a209d2e624ba492df4f3bfad5996d1f76f03069c6133c60cd04f9a9e715595ec", - "url": "https://files.pythonhosted.org/packages/d3/0c/7236cacbe07a2ecb256525f8b3c3b70877e87770eeb1bc218839590b1888/fonttools-4.53.0-cp311-cp311-macosx_10_9_universal2.whl" + "hash": "9e6ceba2a01b448e36754983d376064730690401da1dd104ddb543519470a15f", + "url": "https://files.pythonhosted.org/packages/ac/9f/27135ac0328e22cca1ba23ee6a1a1f971c13e9f0387adc5598d4635c501d/fonttools-4.53.1-cp312-cp312-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "4a2a6ba400d386e904fd05db81f73bee0008af37799a7586deaa4aef8cd5971e", - "url": "https://files.pythonhosted.org/packages/e4/8b/6b0d085983c84a469e5c098ba45d2b3f60d14be22167e5fea01d8959c93f/fonttools-4.53.0-cp311-cp311-musllinux_1_2_x86_64.whl" + "hash": "32f029c095ad66c425b0ee85553d0dc326d45d7059dbc227330fc29b43e8ba60", + "url": "https://files.pythonhosted.org/packages/ae/71/2b9761e25697bdaf3dfe8269541bd4324f3eb0e4cc13f71d7f90cd272394/fonttools-4.53.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "f677ce218976496a587ab17140da141557beb91d2a5c1a14212c994093f2eae2", + "url": "https://files.pythonhosted.org/packages/b8/3d/ac3cec35a503bf789d03e9d155a220c9e574f4f1573f00a3bea55695d535/fonttools-4.53.1-cp312-cp312-musllinux_1_2_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4", + "url": "https://files.pythonhosted.org/packages/c6/cb/cd80a0da995adde8ade6044a8744aee0da5efea01301cadf770f7fbe7dcc/fonttools-4.53.1.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "10f5e6c3510b79ea27bb1ebfcc67048cde9ec67afa87c7dd7efa5c700491ac7f", + "url": "https://files.pythonhosted.org/packages/db/2b/5779cfd48625e013c2dfcf0c246474d5b1f5d061a5f1e476037bf9fff3a3/fonttools-4.53.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "3b3c8ebafbee8d9002bd8f1195d09ed2bd9ff134ddec37ee8f6a6375e6a4f0e8", + "url": "https://files.pythonhosted.org/packages/dd/bd/cb8fd2dddd68089c112bf42a88afe188b8ace73f94406539857dcc9347a6/fonttools-4.53.1-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "c6e7170d675d12eac12ad1a981d90f118c06cf680b42a2d74c6c931e54b50719", + "url": "https://files.pythonhosted.org/packages/e1/67/fff766817e17d67208f8a1e72de15066149485acb5e4ff0816b11fd5fca3/fonttools-4.53.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "5ff7e5e9bad94e3a70c5cd2fa27f20b9bb9385e10cddab567b85ce5d306ea923", + "url": "https://files.pythonhosted.org/packages/f5/7e/4060d88dbfaf446e1c9f0fe9cf13dba36ba47c4da85ce5c1df084ce47e7d/fonttools-4.53.1-cp311-cp311-macosx_11_0_arm64.whl" } ], "project_name": "fonttools", @@ -1187,64 +1453,64 @@ "zopfli>=0.1.4; extra == \"woff\"" ], "requires_python": ">=3.8", - "version": "4.53.0" + "version": "4.53.1" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "9614f68876e9c62e821dfa811dd6160e00279d9d98cf60118cb264be48da1472", - "url": "https://files.pythonhosted.org/packages/64/c0/731aef7ab5a996ea1cccb5096fd95a6be5cc3ec82299808daa9164fe5042/freetype_py-2.4.0-py3-none-musllinux_1_1_x86_64.whl" + "hash": "3c1aefc4f0d5b7425f014daccc5fdc7c6f914fb7d6a695cc684f1c09cd8c1660", + "url": "https://files.pythonhosted.org/packages/2a/1b/161d3a6244b8a820aef188e4397a750d4a8196316809576d015f26594296/freetype_py-2.5.1-py3-none-musllinux_1_1_x86_64.whl" }, { "algorithm": "sha256", - "hash": "c6276d92ac401c8ce02ea391fc854de413b01a8d835fb394ee5eb6f04fc947f5", - "url": "https://files.pythonhosted.org/packages/57/fe/90f718b3e8d83c477b9d96e7c9737236818294ab00509eb27b2935b2adc7/freetype_py-2.4.0-py3-none-musllinux_1_1_aarch64.whl" + "hash": "d01ded2557694f06aa0413f3400c0c0b2b5ebcaabeef7aaf3d756be44f51e90b", + "url": "https://files.pythonhosted.org/packages/38/a8/258dd138ebe60c79cd8cfaa6d021599208a33f0175a5e29b01f60c9ab2c7/freetype_py-2.5.1-py3-none-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "ce931f581d5038c4fea1f3d314254e0264e92441a5fdaef6817fe77b7bb888d3", - "url": "https://files.pythonhosted.org/packages/5f/34/76cfe866e482745ea8c9956b0be6198fd72d08d2be77b71596afdb8cd89f/freetype_py-2.4.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl" + "hash": "cd3bfdbb7e1a84818cfbc8025fca3096f4f2afcd5d4641184bf0a3a2e6f97bbf", + "url": "https://files.pythonhosted.org/packages/93/6f/fcc1789e42b8c6617c3112196d68e87bfe7d957d80812d3c24d639782dcb/freetype_py-2.5.1-py3-none-musllinux_1_1_aarch64.whl" }, { "algorithm": "sha256", - "hash": "3e0f5a91bc812f42d98a92137e86bac4ed037a29e43dafdb76d716d5732189e8", - "url": "https://files.pythonhosted.org/packages/7c/77/faec42d1ffac2b970f606860a5bb083d606f1c673a5c57ab26382c8efec1/freetype_py-2.4.0-py3-none-macosx_10_9_universal2.whl" + "hash": "5d2f6b3d68496797da23204b3b9c4e77e67559c80390fc0dc8b3f454ae1cd819", + "url": "https://files.pythonhosted.org/packages/a2/93/280ad06dc944e40789b0a641492321a2792db82edda485369cbc59d14366/freetype_py-2.5.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "c9a3abc277f5f6d21575c0093c0c6139c161bf05b91aa6258505ab27c5001c5e", - "url": "https://files.pythonhosted.org/packages/85/45/f0200e64029aa0474ba4dc3e325d32c023c6607d6d8e5bc278aa27c570d3/freetype_py-2.4.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "289b443547e03a4f85302e3ac91376838e0d11636050166662a4f75e3087ed0b", + "url": "https://files.pythonhosted.org/packages/b6/36/853cad240ec63e21a37a512ee19c896b655ce1772d803a3dd80fccfe63fe/freetype_py-2.5.1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl" }, { "algorithm": "sha256", - "hash": "8ad81195d2f8f339aba61700cebfbd77defad149c51f59b75a2a5e37833ae12e", - "url": "https://files.pythonhosted.org/packages/a7/6d/66c222fae5dc5fd13fd840ab75feb49f78963f560a56e134c85f1236a94c/freetype-py-2.4.0.zip" + "hash": "cfe2686a174d0dd3d71a9d8ee9bf6a2c23f5872385cf8ce9f24af83d076e2fbd", + "url": "https://files.pythonhosted.org/packages/d0/9c/61ba17f846b922c2d6d101cc886b0e8fb597c109cedfcb39b8c5d2304b54/freetype-py-2.5.1.zip" } ], "project_name": "freetype-py", "requires_dists": [], "requires_python": ">=3.7", - "version": "2.4.0" + "version": "2.5.1" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "273ec8a5077b25e60ca5a266ed254b54d1f14032b0af3ba00092d14966148664", - "url": "https://files.pythonhosted.org/packages/59/a8/e3434904445eacf03b857ac001755d8ffac49b4f3339d63592b4eda009dc/gTTS-2.5.1-py3-none-any.whl" + "hash": "ca5d962f7bf57238500d83c61cf3de76b0aa78b18658f3db5c0396e604caa0f5", + "url": "https://files.pythonhosted.org/packages/f5/f9/7f0e837880282ffad7598ae4b80b29c2cdc5f5e75a58602c66518d245afb/gTTS-2.5.3-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "02d0a9874f945dee9cd5092991c60bc88d4b7767b8cd81144b6fb49dc3de6897", - "url": "https://files.pythonhosted.org/packages/58/e3/d267b2586c611e8460d6369f60f0780a6fe2ac9d6c415a84b1048365ba96/gTTS-2.5.1.tar.gz" + "hash": "d9f873c2f3a397c77c7a8c5dc128fc35fbed59f3e240cef0bff6c80d8cc12106", + "url": "https://files.pythonhosted.org/packages/65/10/808aff49b155a10ba035ffabc79bfa4d907161c9206de65e2cee4d0879fa/gtts-2.5.3.tar.gz" } ], "project_name": "gtts", "requires_dists": [ "click<8.2,>=7.1", "pytest-cov; extra == \"tests\"", - "pytest<8.1.0,>=7.1.3; extra == \"tests\"", + "pytest<8.4.0,>=7.1.3; extra == \"tests\"", "requests<3,>=2.27", "sphinx-autobuild; extra == \"docs\"", "sphinx-click; extra == \"docs\"", @@ -1254,54 +1520,94 @@ "testfixtures; extra == \"tests\"" ], "requires_python": ">=3.7", - "version": "2.5.1" + "version": "2.5.3" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "93d7814aa1c7e0f1cce300b3b63828abecb024da72e9a10d46db811cf466e68e", - "url": "https://files.pythonhosted.org/packages/11/a8/0266a9ef96180f5106ce98332c00fd8323cbf8fe3dee1ea0fceb6e54bf56/hidapi-0.14.0-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "de561a9336aa92263a4a5757deffdacb0e04de84590e15a7d5413f574790a210", + "url": "https://files.pythonhosted.org/packages/ce/1c/c1949180a8e9231148d6c7407653c1e2928cec0534e8039591a1188d1a7c/hidapi-0.14.0.post2-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "c6e81890f51bae29ae81c3ff02fed754d05f69a408fa038ff1056aec90c56333", + "url": "https://files.pythonhosted.org/packages/06/a7/06ff3d65dbad868ff4bc21726823b1101b6a7b1281bc44e158b70a30638b/hidapi-0.14.0.post2-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "511ccf1fa7f159b95d31d9fb718ebfc35322252d7355a3afaa724b65cdbbeff6", + "url": "https://files.pythonhosted.org/packages/0b/03/5c85e738936bf8b57f557970701fe65a0290a2d3693ee2c966bfc4cb09eb/hidapi-0.14.0.post2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "556f99a3887065f0e86fb4b3968800c34fa25e6ea54047ef850ee639c69032da", + "url": "https://files.pythonhosted.org/packages/1d/10/be6935a1e26f5d3a41c63b8b365741281034900ca56611366433f3413c2c/hidapi-0.14.0.post2-cp312-cp312-musllinux_1_2_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "5ebdc20915c6256c738116a3491bc5194d74233bb6a4ad7d05983dfec54a22f2", + "url": "https://files.pythonhosted.org/packages/38/13/45cac0a2952f1cc3f5674b599d083e81cc0816e877949dad897a51925dce/hidapi-0.14.0.post2-cp311-cp311-musllinux_1_2_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "f95340c0d69245820a2075d516df9a99c466d92db29fa78df5f13d9cfee4716d", + "url": "https://files.pythonhosted.org/packages/46/07/0d773755e0c629cabd6fa10251929fbb6cba4c1936116d753e77a792eba1/hidapi-0.14.0.post2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "2906ad143ec40009c33348ab4b3f7a9bdaa87b65bdc55983399bed47ee90a818", - "url": "https://files.pythonhosted.org/packages/08/0b/1f2fc881905f54fabbf646a8725042671c22570ba7e99395581a9388c3ea/hidapi-0.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "b5b979408ba1c65ea7e39e35e6cb9d29705265ebfca568627333876f7a030818", + "url": "https://files.pythonhosted.org/packages/4f/a7/1ed1c4c0c153eac0a2cce1a0b6753eec35810dbd9e483cc49a8a7d84a3d9/hidapi-0.14.0.post2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "1c0959d89bc95acb4f9e6d58c8562281e22694959e42c10108193a1362b4fcd9", - "url": "https://files.pythonhosted.org/packages/14/94/10454de511672b7ade15ccf0a74b8f54a3a07ba67d0655d63f3d3f3199be/hidapi-0.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "70038c3bd26c2ec7520964d9cfe5df81928ff34a2821e83914c28a9d4d8550b7", + "url": "https://files.pythonhosted.org/packages/72/79/599df7f0d40725f2456fff05b99a75a68d150916031ef0e5b01333966d8c/hidapi-0.14.0.post2-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "4046bbfc67c5587ca638b875858569a8787e6955eff5dea4e424044de09fe7e4", - "url": "https://files.pythonhosted.org/packages/14/ca/c5e674c6d962d909e3497c93b85a96a7031c4c36469d52907fc464734f70/hidapi-0.14.0-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "eecc24722c561348c04f3f0819534028a7dd2e35a16f195625e2465f95fb8c6f", + "url": "https://files.pythonhosted.org/packages/82/42/ff6bf1a9ffb09d7d150bd144ea74774d8c303944cb51075190f224eb8964/hidapi-0.14.0.post2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "e1927fc5f7099b98529a4cefe8e0cd92ffb026abf5c449310d1d359433c5d94a", - "url": "https://files.pythonhosted.org/packages/37/9e/24156936fb506b4c53d70a92c7ca7d0dd1b6de6490a438bd5f532d136dd8/hidapi-0.14.0-cp311-cp311-musllinux_1_1_aarch64.whl" + "hash": "59465c87f028e70162f04d3e69014cd03bb2a4ceed7db6d0a160ec9627fb9324", + "url": "https://files.pythonhosted.org/packages/a6/f7/f6dfb43c37949a1300504569b18857d975f6d92c0a0de52247865356ae55/hidapi-0.14.0.post2-cp312-cp312-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "c1b1ded4a823cc5c2075a622b48d02bc0a72f57579ea24c956ef29649a49eb66", - "url": "https://files.pythonhosted.org/packages/44/50/3204aa1615fb0e5cf719f1df9c6e8ea9abf5adf3823281732e355214b5ce/hidapi-0.14.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "4a6991f55aebd3f84cc924fd838e0052422a5a3921f5d7df0ce6c9600f09db9a", + "url": "https://files.pythonhosted.org/packages/af/c6/d129b74e0028ca8401ecbeffb9cd1bca377262a5dcd882ea4999ba25d416/hidapi-0.14.0.post2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "76041e2e5d52c864bc4a381f082edeb89e85829130d1fef3366f320237da0580", - "url": "https://files.pythonhosted.org/packages/47/42/5a96fa894ad9d99043915cc1356ac2467589aabfe040eb5131d9425168a8/hidapi-0.14.0-cp311-cp311-musllinux_1_1_i686.whl" + "hash": "5eaa04f8fb7b5d9d7e3eeb502317941559ecfc4a76d2527ee0d1d835794ac5aa", + "url": "https://files.pythonhosted.org/packages/b4/d6/10683f04a49cf6ccfa6186940732ed8d15e5c86ea1e399a4dadfec7c1ec2/hidapi-0.14.0.post2-cp312-cp312-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "a7cb029286ced5426a381286526d9501846409701a29c2538615c3d1a612b8be", - "url": "https://files.pythonhosted.org/packages/95/0e/c106800c94219ec3e6b483210e91623117bfafcf1decaff3c422e18af349/hidapi-0.14.0.tar.gz" + "hash": "4d3ca0ff9179bfa2337b36eaa6a4f1a3e4c8e643cf698adfef65700bffb6fe5c", + "url": "https://files.pythonhosted.org/packages/bc/ac/f6009ddff800adcaf0f57b2ec4526d9ae9419d28391e5580904ce6115ba9/hidapi-0.14.0.post2-cp311-cp311-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "15f1fd34b0719d1e4d1bbc0bce325b318ee3e85c36fac0d23c6fb9d7f4d611db", - "url": "https://files.pythonhosted.org/packages/a7/20/7993cd879e7a6408539e9d02ee8a1577d1d3ef401c7ac6e4eda996e996d9/hidapi-0.14.0-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "6c0e97ba6b059a309d51b495a8f0d5efbcea8756b640d98b6f6bb9fdef2458ac", + "url": "https://files.pythonhosted.org/packages/bf/6f/90c536b020a8e860f047a2839830a1ade3e1490e67336ecf489b4856eb7b/hidapi-0.14.0.post2.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "3b1bca2741492c67a6cb4d7b57c0db734543556b369d3604505c62a47607767f", + "url": "https://files.pythonhosted.org/packages/e8/1d/7a32933a022dc42d9a796843ceb05c038521318668400da5eada1ac66170/hidapi-0.14.0.post2-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "04fd0c791af679dc6de02205f5fe321e46b7cae0e8d10d7f579abb8bcca0c595", + "url": "https://files.pythonhosted.org/packages/ed/5b/25d7b9794b2017a315573464ea39617e40702acb82dec9c348a52d288433/hidapi-0.14.0.post2-cp311-cp311-musllinux_1_2_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "ef474da943187befd9a55270ba521f42930565b84bd59caa276adeda29669853", + "url": "https://files.pythonhosted.org/packages/f5/d2/ae65b9cecc3ba140b7eff02d3f67ed56203b3715926b3f1f13d82ce7a966/hidapi-0.14.0.post2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" } ], "project_name": "hidapi", @@ -1309,37 +1615,37 @@ "setuptools>=19.0" ], "requires_python": null, - "version": "0.14.0" + "version": "0.14.0.post2" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0", - "url": "https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl" + "hash": "050b4e5baadcd44d760cedbd2b8e639f2ff89bbc7a5730fcc662954303377aac", + "url": "https://files.pythonhosted.org/packages/22/7e/d71db821f177828df9dea8c42ac46473366f191be53080e552e628aad991/idna-3.8-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc", - "url": "https://files.pythonhosted.org/packages/21/ed/f86a79a07470cb07819390452f178b3bef1d375f2ec021ecfc709fc7cf07/idna-3.7.tar.gz" + "hash": "d838c2c0ed6fced7693d5e8ab8e734d5f8fda53a039c0164afb0b82e771e3603", + "url": "https://files.pythonhosted.org/packages/e8/ac/e349c5e6d4543326c6883ee9491e3921e0d07b55fdf3cce184b40d63e72a/idna-3.8.tar.gz" } ], "project_name": "idna", "requires_dists": [], - "requires_python": ">=3.5", - "version": "3.7" + "requires_python": ">=3.6", + "version": "3.8" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "408c1d4d62f72c9e8347e7d1ca9bc11d8673328af3913868db3b828e28b40a4c", - "url": "https://files.pythonhosted.org/packages/a3/b6/39c7dad203d9984225f47e0aa39ac3ba3a47c77a02d0ef2a7be691855a06/imageio-2.34.1-py3-none-any.whl" + "hash": "6eb2e5244e7a16b85c10b5c2fe0f7bf961b40fcb9f1a9fd1bd1d2c2f8fb3cd65", + "url": "https://files.pythonhosted.org/packages/1e/b7/02adac4e42a691008b5cfb31db98c190e1fc348d1521b9be4429f9454ed1/imageio-2.35.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "f13eb76e4922f936ac4a7fec77ce8a783e63b93543d4ea3e40793a6cabd9ac7d", - "url": "https://files.pythonhosted.org/packages/2c/f9/aa9f3a4eae46f4727902516dc7b365356c1e4e883156532b74d135a69887/imageio-2.34.1.tar.gz" + "hash": "4952dfeef3c3947957f6d5dedb1f4ca31c6e509a476891062396834048aeed2a", + "url": "https://files.pythonhosted.org/packages/82/bf/d0ddda79819405428f40e4bc9245c2b936a3a2b23d83b6e42d83822ef822/imageio-2.35.1.tar.gz" } ], "project_name": "imageio", @@ -1369,10 +1675,10 @@ "itk; extra == \"full\"", "itk; extra == \"itk\"", "numpy", + "numpy>2; extra == \"full\"", + "numpy>2; extra == \"rawpy\"", "numpydoc; extra == \"docs\"", "numpydoc; extra == \"full\"", - "pillow-heif; extra == \"all-plugins\"", - "pillow-heif; extra == \"all-plugins-pypy\"", "pillow-heif; extra == \"full\"", "pillow-heif; extra == \"pillow-heif\"", "pillow>=8.3.2", @@ -1388,6 +1694,8 @@ "pytest; extra == \"dev\"", "pytest; extra == \"full\"", "pytest; extra == \"test\"", + "rawpy; extra == \"full\"", + "rawpy; extra == \"rawpy\"", "sphinx<6; extra == \"docs\"", "sphinx<6; extra == \"full\"", "tifffile; extra == \"all-plugins\"", @@ -1398,47 +1706,47 @@ "wheel; extra == \"full\"" ], "requires_python": ">=3.8", - "version": "2.34.1" + "version": "2.35.1" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570", - "url": "https://files.pythonhosted.org/packages/2d/0a/679461c511447ffaf176567d5c496d1de27cbe34a87df6677d7171b2fbd4/importlib_metadata-7.1.0-py3-none-any.whl" + "hash": "66f342cc6ac9818fc6ff340576acd24d65ba0b3efabb2b4ac08b598965a4a2f1", + "url": "https://files.pythonhosted.org/packages/c0/14/362d31bf1076b21e1bcdcb0dc61944822ff263937b804a79231df2774d28/importlib_metadata-8.4.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2", - "url": "https://files.pythonhosted.org/packages/a0/fc/c4e6078d21fc4fa56300a241b87eae76766aa380a23fc450fc85bb7bf547/importlib_metadata-7.1.0.tar.gz" + "hash": "9a547d3bc3608b025f93d403fdd1aae741c24fbb8314df4b155675742ce303c5", + "url": "https://files.pythonhosted.org/packages/c0/bd/fa8ce65b0a7d4b6d143ec23b0f5fd3f7ab80121078c465bc02baeaab22dc/importlib_metadata-8.4.0.tar.gz" } ], "project_name": "importlib-metadata", "requires_dists": [ - "flufl.flake8; extra == \"testing\"", - "furo; extra == \"docs\"", - "importlib-resources>=1.3; python_version < \"3.9\" and extra == \"testing\"", + "flufl.flake8; extra == \"test\"", + "furo; extra == \"doc\"", + "importlib-resources>=1.3; python_version < \"3.9\" and extra == \"test\"", "ipython; extra == \"perf\"", - "jaraco.packaging>=9.3; extra == \"docs\"", - "jaraco.test>=5.4; extra == \"testing\"", - "jaraco.tidelift>=1.4; extra == \"docs\"", - "packaging; extra == \"testing\"", - "pyfakefs; extra == \"testing\"", - "pytest-checkdocs>=2.4; extra == \"testing\"", - "pytest-cov; extra == \"testing\"", - "pytest-enabler>=2.2; extra == \"testing\"", - "pytest-mypy; platform_python_implementation != \"PyPy\" and extra == \"testing\"", - "pytest-perf>=0.9.2; extra == \"testing\"", - "pytest-ruff>=0.2.1; extra == \"testing\"", - "pytest>=6; extra == \"testing\"", - "rst.linker>=1.9; extra == \"docs\"", - "sphinx-lint; extra == \"docs\"", - "sphinx>=3.5; extra == \"docs\"", + "jaraco.packaging>=9.3; extra == \"doc\"", + "jaraco.test>=5.4; extra == \"test\"", + "jaraco.tidelift>=1.4; extra == \"doc\"", + "packaging; extra == \"test\"", + "pyfakefs; extra == \"test\"", + "pytest!=8.1.*,>=6; extra == \"test\"", + "pytest-checkdocs>=2.4; extra == \"test\"", + "pytest-cov; extra == \"test\"", + "pytest-enabler>=2.2; extra == \"test\"", + "pytest-mypy; extra == \"test\"", + "pytest-perf>=0.9.2; extra == \"test\"", + "pytest-ruff>=0.2.1; sys_platform != \"cygwin\" and extra == \"test\"", + "rst.linker>=1.9; extra == \"doc\"", + "sphinx-lint; extra == \"doc\"", + "sphinx>=3.5; extra == \"doc\"", "typing-extensions>=3.6.4; python_version < \"3.8\"", "zipp>=0.5" ], "requires_python": ">=3.8", - "version": "7.1.0" + "version": "8.4.0" }, { "artifacts": [ @@ -1462,13 +1770,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "53eee7ad44df903a06655871cbab66d156a051fd86f3ec6750470ac9604ac1ab", - "url": "https://files.pythonhosted.org/packages/c0/78/fae11aa2dd7e948fbf6283f8abaff267b37a4a3cba531d0aa4274137e793/ipython-8.25.0-py3-none-any.whl" + "hash": "f68b3cb8bde357a5d7adc9598d57e22a45dfbea19eb6b98286fa3b288c9cd55c", + "url": "https://files.pythonhosted.org/packages/a8/a2/6c725958e6f135d8e5de081e69841bb2c1d84b3fc259d02eb092b8fc203a/ipython-8.27.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "c6ed726a140b6e725b911528f80439c534fac915246af3efc39440a6b0f9d716", - "url": "https://files.pythonhosted.org/packages/1c/5a/facbb5a0650e68b16134ce787b0990ee47f8b67316b0d844d9b183f212e6/ipython-8.25.0.tar.gz" + "hash": "0b99a2dc9f15fd68692e898e5568725c6d49c527d36a9fb5960ffbdeaa82ff7e", + "url": "https://files.pythonhosted.org/packages/57/24/d4fabaca03c8804bf0b8d994c8ae3a20e57e9330d277fb43d83e558dec5e/ipython-8.27.0.tar.gz" } ], "project_name": "ipython", @@ -1499,6 +1807,7 @@ "nbformat; extra == \"test-extra\"", "notebook; extra == \"notebook\"", "numpy>=1.23; extra == \"test-extra\"", + "packaging; extra == \"test\"", "pandas; extra == \"test-extra\"", "pexpect>4.3; sys_platform != \"win32\" and sys_platform != \"emscripten\"", "pickleshare; extra == \"test\"", @@ -1520,19 +1829,19 @@ "typing-extensions>=4.6; python_version < \"3.12\"" ], "requires_python": ">=3.10", - "version": "8.25.0" + "version": "8.27.0" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "efafd18f7a142248f7cb0ba890a68b96abd4d6e88ddbda483c9130d12667eaf2", - "url": "https://files.pythonhosted.org/packages/d4/17/8b2ce5765dd423433d2e0727712629c46152fb0bc706b0977f847480f262/ipywidgets-8.1.3-py3-none-any.whl" + "hash": "3290f526f87ae6e77655555baba4f36681c555b8bdbbff430b70e52c34c86245", + "url": "https://files.pythonhosted.org/packages/22/2d/9c0b76f2f9cc0ebede1b9371b6f317243028ed60b90705863d493bae622e/ipywidgets-8.1.5-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "f5f9eeaae082b1823ce9eac2575272952f40d748893972956dc09700a6392d9c", - "url": "https://files.pythonhosted.org/packages/77/0a/7e2069d2cf55307b37a6a5195e873968dea965252976c32515d4e300efb0/ipywidgets-8.1.3.tar.gz" + "hash": "870e43b1a35656a80c18c9503bbf2d16802db1cb487eec6fab27d683381dde17", + "url": "https://files.pythonhosted.org/packages/c7/4c/dab2a281b07596a5fc220d49827fe6c794c66f1493d7a74f1df0640f2cc5/ipywidgets-8.1.5.tar.gz" } ], "project_name": "ipywidgets", @@ -1541,15 +1850,15 @@ "ipykernel; extra == \"test\"", "ipython>=6.1.0", "jsonschema; extra == \"test\"", - "jupyterlab-widgets~=3.0.11", + "jupyterlab-widgets~=3.0.12", "pytest-cov; extra == \"test\"", "pytest>=3.6.0; extra == \"test\"", "pytz; extra == \"test\"", "traitlets>=4.3.1", - "widgetsnbextension~=4.0.11" + "widgetsnbextension~=4.0.12" ], "requires_python": ">=3.7", - "version": "8.1.3" + "version": "8.1.5" }, { "artifacts": [ @@ -1665,13 +1974,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "ff4cfd6b1367a40e7bc6411caec72effadd3db0bbe5017de188f2d6108335802", - "url": "https://files.pythonhosted.org/packages/c8/2f/324fab4be6fe37fb7b521546e8a557e6cf08c1c1b3d0b4839a00f589d9ef/jsonschema-4.22.0-py3-none-any.whl" + "hash": "fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566", + "url": "https://files.pythonhosted.org/packages/69/4a/4f9dbeb84e8850557c02365a0eee0649abe5eb1d84af92a25731c6c0f922/jsonschema-4.23.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "5b22d434a45935119af990552c862e5d6d564e8f6601206b305a61fdf661a2b7", - "url": "https://files.pythonhosted.org/packages/19/f1/1c1dc0f6b3bf9e76f7526562d29c320fa7d6a2f35b37a1392cc0acd58263/jsonschema-4.22.0.tar.gz" + "hash": "d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", + "url": "https://files.pythonhosted.org/packages/38/2e/03362ee4034a4c917f697890ccd4aec0800ccf9ded7f511971c75451deec/jsonschema-4.23.0.tar.gz" } ], "project_name": "jsonschema", @@ -1697,33 +2006,33 @@ "uri-template; extra == \"format\"", "uri-template; extra == \"format-nongpl\"", "webcolors>=1.11; extra == \"format\"", - "webcolors>=1.11; extra == \"format-nongpl\"" + "webcolors>=24.6.0; extra == \"format-nongpl\"" ], "requires_python": ">=3.8", - "version": "4.22.0" + "version": "4.23.0" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "271aedfefcd161a0f467bdf23e1d9183691a61eaabf4b761046a914e369336c7", - "url": "https://files.pythonhosted.org/packages/7f/5a/f405ced79c55191e460fc6d17a14845fddf09f601e39cfcab28cc1d3ff1c/jsonschema_path-0.3.2-py3-none-any.whl" + "hash": "203aff257f8038cd3c67be614fe6b2001043408cb1b4e36576bc4921e09d83c4", + "url": "https://files.pythonhosted.org/packages/53/b0/69237e85976916b2e37586b7ddc48b9547fc38b440e25103d084b2b02ab3/jsonschema_path-0.3.3-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "4d0dababf341e36e9b91a5fb2a3e3fd300b0150e7fe88df4e55cc8253c5a3989", - "url": "https://files.pythonhosted.org/packages/6d/17/47bf2da4582a6d35a1254bc058258835a452698f97dade2ce9ed3dabd512/jsonschema_path-0.3.2.tar.gz" + "hash": "f02e5481a4288ec062f8e68c808569e427d905bedfecb7f2e4c69ef77957c382", + "url": "https://files.pythonhosted.org/packages/85/39/3a58b63a997b0cf824536d6f84fff82645a1ca8de222ee63586adab44dfa/jsonschema_path-0.3.3.tar.gz" } ], "project_name": "jsonschema-path", "requires_dists": [ "PyYAML>=5.1", "pathable<0.5.0,>=0.4.1", - "referencing<0.32.0,>=0.28.0", + "referencing<0.36.0,>=0.28.0", "requests<3.0.0,>=2.31.0" ], "requires_python": "<4.0.0,>=3.8.0", - "version": "0.3.2" + "version": "0.3.3" }, { "artifacts": [ @@ -1783,99 +2092,185 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "78287fd86d20744ace330a61625024cf5521e1c012a352ddc0a3cdc2348becd0", - "url": "https://files.pythonhosted.org/packages/65/f6/659ca44182c86f57977e946047c339c717745fda9f43b7ac47f274e86553/jupyterlab_widgets-3.0.11-py3-none-any.whl" + "hash": "e3cda2c233ce144192f1e29914ad522b2f4c40e77214b0cc97377ca3d323db54", + "url": "https://files.pythonhosted.org/packages/a9/93/858e87edc634d628e5d752ba944c2833133a28fa87bb093e6832ced36a3e/jupyterlab_widgets-3.0.13-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "dd5ac679593c969af29c9bed054c24f26842baa51352114736756bc035deee27", - "url": "https://files.pythonhosted.org/packages/2b/c9/413a845bfd3c7997b97c552a12fd54acccae891f53a13226bf42bdfd48b3/jupyterlab_widgets-3.0.11.tar.gz" + "hash": "a2966d385328c1942b683a8cd96b89b8dd82c8b8f81dda902bb2bc06d46f5bed", + "url": "https://files.pythonhosted.org/packages/59/73/fa26bbb747a9ea4fca6b01453aa22990d52ab62dd61384f1ac0dc9d4e7ba/jupyterlab_widgets-3.0.13.tar.gz" } ], "project_name": "jupyterlab-widgets", "requires_dists": [], "requires_python": ">=3.7", - "version": "3.0.11" + "version": "3.0.13" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f", - "url": "https://files.pythonhosted.org/packages/1b/9a/13c68b2edb1fa74321e60893a9a5829788e135138e68060cf44e2d92d2c3/kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520", + "url": "https://files.pythonhosted.org/packages/84/15/adc15a483506aec6986c01fb7f237c3aec4d9ed4ac10b756e98a76835933/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545", + "url": "https://files.pythonhosted.org/packages/05/83/2857317d04ea46dc5d115f0df7e676997bbd968ced8e2bd6f7f19cfc8d7f/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da", - "url": "https://files.pythonhosted.org/packages/07/ef/286e1d26524854f6fbd6540e8364d67a8857d61038ac743e11edc42fe217/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + "hash": "4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107", + "url": "https://files.pythonhosted.org/packages/0a/0f/529d0a9fffb4d514f2782c829b0b4b371f7f441d61aa55f1de1c614c4ef3/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e", - "url": "https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b", + "url": "https://files.pythonhosted.org/packages/0d/b5/866f86f5897cd4ab6d25d22e403404766a123f138bd6a02ecb2cdde52c18/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5", - "url": "https://files.pythonhosted.org/packages/2a/eb/9e099ad7c47c279995d2d20474e1821100a5f10f847739bd65b1c1f02442/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl" + "hash": "22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258", + "url": "https://files.pythonhosted.org/packages/0f/00/65061acf64bd5fd34c1f4ae53f20b43b0a017a541f242a60b135b9d1e301/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { "algorithm": "sha256", - "hash": "b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0", - "url": "https://files.pythonhosted.org/packages/34/3c/6a37f444c0233993881e5db3a6a1775925d4d9d2f2609bb325bb1348ed94/kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl" + "hash": "693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e", + "url": "https://files.pythonhosted.org/packages/21/e4/c0b6746fd2eb62fe702118b3ca0cb384ce95e1261cfada58ff693aeec08a/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797", - "url": "https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483", + "url": "https://files.pythonhosted.org/packages/52/be/86cbb9c9a315e98a8dc6b1d23c43cffd91d97d49318854f9c37b0e41cd68/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { "algorithm": "sha256", - "hash": "76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437", - "url": "https://files.pythonhosted.org/packages/8d/26/b4569d1f29751fca22ee915b4ebfef5974f4ef239b3335fc072882bd62d9/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51", + "url": "https://files.pythonhosted.org/packages/70/d1/c9f96df26b459e15cf8a965304e6e6f4eb291e0f7a9460b4ad97b047561e/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { "algorithm": "sha256", - "hash": "8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90", - "url": "https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee", + "url": "https://files.pythonhosted.org/packages/80/c5/57fa58276dfdfa612241d640a64ca2f76adc6ffcebdbd135b4ef60095098/kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec", - "url": "https://files.pythonhosted.org/packages/b9/2d/226779e405724344fc678fcc025b812587617ea1a48b9442628b688e85ea/kiwisolver-1.4.5.tar.gz" + "hash": "9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60", + "url": "https://files.pythonhosted.org/packages/85/4d/2255e1c76304cbd60b48cee302b66d1dde4468dc5b1160e4b7cb43778f2a/kiwisolver-1.4.7.tar.gz" }, { "algorithm": "sha256", - "hash": "06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f", - "url": "https://files.pythonhosted.org/packages/cd/7e/180425790efc00adfd47db14e1e341cb4826516982334129012b971121a6/kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl" + "hash": "ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb", + "url": "https://files.pythonhosted.org/packages/8b/1b/b5d618f4e58c0675654c1e5051bcf42c776703edb21c02b8c74135541f60/kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8", - "url": "https://files.pythonhosted.org/packages/d0/f3/a0925611c9d6c2f37c5935a39203cadec6883aa914e013b46c84c4c2e641/kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl" + "hash": "ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640", + "url": "https://files.pythonhosted.org/packages/8b/e9/26d3edd4c4ad1c5b891d8747a4f81b1b0aba9fb9721de6600a4adc09773b/kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d", - "url": "https://files.pythonhosted.org/packages/da/85/82d59bb8f7c4c9bb2785138b72462cb1b161668f8230c58bbb28c0403cd5/kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl" + "hash": "4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038", + "url": "https://files.pythonhosted.org/packages/8d/61/de5fb1ca7ad1f9ab7970e340a5b833d735df24689047de6ae71ab9d8d0e7/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl" }, { "algorithm": "sha256", - "hash": "dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9", - "url": "https://files.pythonhosted.org/packages/f1/68/f472bf16c9141bb1bea5c0b8c66c68fc1ccb048efdbd8f0872b92125724e/kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2", + "url": "https://files.pythonhosted.org/packages/97/9c/0a11c714cf8b6ef91001c8212c4ef207f772dd84540104952c45c1f0a249/kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9", - "url": "https://files.pythonhosted.org/packages/f3/a3/804fc7c8bf233806ec0321c9da35971578620f2ab4fafe67d76100b3ce52/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + "hash": "65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3", + "url": "https://files.pythonhosted.org/packages/a1/e7/cd101d8cd2cdfaa42dc06c433df17c8303d31129c9fdd16c0ea37672af91/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl" + }, + { + "algorithm": "sha256", + "hash": "18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18", + "url": "https://files.pythonhosted.org/packages/a7/4b/2db7af3ed3af7c35f388d5f53c28e155cd402a55432d800c543dc6deb731/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f", + "url": "https://files.pythonhosted.org/packages/b6/67/3f4850b5e6cffb75ec40577ddf54f7b82b15269cc5097ff2e968ee32ea7d/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02", + "url": "https://files.pythonhosted.org/packages/b8/01/946852b13057a162a8c32c4c8d2e9ed79f0bb5d86569a40c0b5fb103e373/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383", + "url": "https://files.pythonhosted.org/packages/ba/d2/0edc00a852e369827f7e05fd008275f550353f1f9bcd55db9363d779fc63/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl" + }, + { + "algorithm": "sha256", + "hash": "933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36", + "url": "https://files.pythonhosted.org/packages/c1/ee/73de8385403faba55f782a41260210528fe3273d0cddcf6d51648202d6d0/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl" + }, + { + "algorithm": "sha256", + "hash": "657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948", + "url": "https://files.pythonhosted.org/packages/d1/e1/66603ad779258843036d45adcbe1af0d1a889a07af4635f8b4ec7dccda35/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052", + "url": "https://files.pythonhosted.org/packages/d3/73/2686990eb8b02d05f3de759d6a23a4ee7d491e659007dd4c075fede4b5d0/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "algorithm": "sha256", + "hash": "3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523", + "url": "https://files.pythonhosted.org/packages/e1/72/84f09d45a10bc57a40bb58b81b99d8f22b58b2040c912b7eb97ebf625bf2/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95", + "url": "https://files.pythonhosted.org/packages/e5/20/8c75caed8f2462d63c7fd65e16c832b8f76cda331ac9e615e914ee80bac9/kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54", + "url": "https://files.pythonhosted.org/packages/e9/44/77429fa0a58f941d6e1c58da9efe08597d2e86bf2b2cce6626834f49d07b/kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl" + }, + { + "algorithm": "sha256", + "hash": "942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a", + "url": "https://files.pythonhosted.org/packages/f2/d8/0fe8c5f5d35878ddd135f44f2af0e4e1d379e1c7b0716f97cdcb88d4fd27/kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935", + "url": "https://files.pythonhosted.org/packages/f4/98/fe010f15dc7230f45bc4cf367b012d651367fd203caaa992fd1f5963560e/kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl" } ], "project_name": "kiwisolver", + "requires_dists": [], + "requires_python": ">=3.8", + "version": "1.4.7" + }, + { + "artifacts": [ + { + "algorithm": "sha256", + "hash": "a0dd3a87289f8ccbb325901e4222e723e7d745dbfc1803eaf5f3d2ace19cf2db", + "url": "https://files.pythonhosted.org/packages/e7/9c/eef7c591e6dc952f3636cfe0df712c0f9916cedf317810a3bb53ccb65cdd/lark-1.1.9-py3-none-any.whl" + }, + { + "algorithm": "sha256", + "hash": "15fa5236490824c2c4aba0e22d2d6d823575dcaf4cdd1848e34b6ad836240fba", + "url": "https://files.pythonhosted.org/packages/2c/e1/804b6196b3fbdd0f8ba785fc62837b034782a891d6f663eea2f30ca23cfa/lark-1.1.9.tar.gz" + } + ], + "project_name": "lark", "requires_dists": [ - "typing-extensions; python_version < \"3.8\"" + "atomicwrites; extra == \"atomic-cache\"", + "interegular<0.4.0,>=0.3.1; extra == \"interegular\"", + "js2py; extra == \"nearley\"", + "regex; extra == \"regex\"" ], - "requires_python": ">=3.7", - "version": "1.4.5" + "requires_python": ">=3.6", + "version": "1.1.9" }, { "artifacts": [ @@ -1899,16 +2294,41 @@ "hash": "78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69", "url": "https://files.pythonhosted.org/packages/2c/f0/f02e2d150d581a294efded4020094a371bbab42423fe78625ac18854d89b/lazy-object-proxy-1.10.0.tar.gz" }, + { + "algorithm": "sha256", + "hash": "80b39d3a151309efc8cc48675918891b865bdf742a8616a337cb0090791a0de9", + "url": "https://files.pythonhosted.org/packages/44/46/3771e0a4315044aa7b67da892b2fb1f59dfcf0eaff2c8967b2a0a85d5896/lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, { "algorithm": "sha256", "hash": "75fc59fc450050b1b3c203c35020bc41bd2695ed692a392924c6ce180c6f1dc9", "url": "https://files.pythonhosted.org/packages/53/a9/6f22cfe9572929656988b72c0de266c5d10755369b575322725f67364c4e/lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_aarch64.whl" }, + { + "algorithm": "sha256", + "hash": "e221060b701e2aa2ea991542900dd13907a5c90fa80e199dbf5a03359019e7a3", + "url": "https://files.pythonhosted.org/packages/81/39/84ce4740718e1c700bd04d3457ac92b2e9ce76529911583e7a2bf4d96eb2/lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "92f09ff65ecff3108e56526f9e2481b8116c0b9e1425325e13245abfd79bdb1b", + "url": "https://files.pythonhosted.org/packages/86/3b/d6b65da2b864822324745c0a73fe7fd86c67ccea54173682c3081d7adea8/lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "952c81d415b9b80ea261d2372d2a4a2332a3890c2b83e0535f263ddfe43f0d43", + "url": "https://files.pythonhosted.org/packages/b3/ce/f369815549dbfa4bebed541fa4e1561d69e4f268a1f6f77da886df182dab/lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, { "algorithm": "sha256", "hash": "782e2c9b2aab1708ffb07d4bf377d12901d7a1d99e5e410d648d892f8967ab1f", "url": "https://files.pythonhosted.org/packages/bd/e6/b10fd94710a99a6309f3ad61a4eb480944bbb17fcb41bd2d852fdbee57ee/lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl" }, + { + "algorithm": "sha256", + "hash": "e98c8af98d5707dcdecc9ab0863c0ea6e88545d42ca7c3feffb6b4d1e370c7ba", + "url": "https://files.pythonhosted.org/packages/d0/5d/768a7f2ccebb29604def61842fd54f6f5f75c79e366ee8748dda84de0b13/lazy_object_proxy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl" + }, { "algorithm": "sha256", "hash": "fec03caabbc6b59ea4a638bee5fce7117be8e99a4103d9d5ad77f15d6f81020c", @@ -1924,41 +2344,66 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "c5bece0cdf77f22379f19b1959ccd7aee518afa4afbd3656c6365865f84903f9", - "url": "https://files.pythonhosted.org/packages/a4/1f/300788b5eab99aec872ed2f3647386d7d7f7bbf4f99c91e9e023b404ff7f/llvmlite-0.42.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "df6509e1507ca0760787a199d19439cc887bfd82226f5af746d6977bd9f66844", + "url": "https://files.pythonhosted.org/packages/00/5f/323c4d56e8401c50185fd0e875fcf06b71bf825a863699be1eb10aa2a9cb/llvmlite-0.43.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "ae511caed28beaf1252dbaf5f40e663f533b79ceb408c874c01754cafabb9cbf", - "url": "https://files.pythonhosted.org/packages/13/97/4aac09bdfc1bc35f8eb64e21ff5897224a788170e5e8cab3e62c9eb78efb/llvmlite-0.42.0-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "f99b600aa7f65235a5a05d0b9a9f31150c390f31261f2a0ba678e26823ec38f7", + "url": "https://files.pythonhosted.org/packages/0b/67/9443509e5d2b6d8587bae3ede5598fa8bd586b1c7701696663ea8af15b5b/llvmlite-0.43.0-cp312-cp312-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "f92b09243c0cc3f457da8b983f67bd8e1295d0f5b3746c7a1861d7a99403854a", - "url": "https://files.pythonhosted.org/packages/3b/ff/ad02ffee7d519615726fc46c99a37e697f2b4b1fb7e5d3cd6fb465d4f49f/llvmlite-0.42.0.tar.gz" + "hash": "c1da416ab53e4f7f3bc8d4eeba36d801cc1894b9fbfbf2022b29b6bad34a7df2", + "url": "https://files.pythonhosted.org/packages/2f/b2/4429433eb2dc8379e2cb582502dca074c23837f8fd009907f78a24de4c25/llvmlite-0.43.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "81e674c2fe85576e6c4474e8c7e7aba7901ac0196e864fe7985492b737dbab65", - "url": "https://files.pythonhosted.org/packages/ba/3a/286d01191e62ddbe645d4a3f1e0d96106a98d3fd7f82441d20ffe93ab669/llvmlite-0.42.0-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "977525a1e5f4059316b183fb4fd34fa858c9eade31f165427a3977c95e3ee749", + "url": "https://files.pythonhosted.org/packages/6b/99/5d00a7d671b1ba1751fc9f19d3b36f3300774c6eebe2bcdb5f6191763eb4/llvmlite-0.43.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "bb3975787f13eb97629052edb5017f6c170eebc1c14a0433e8089e5db43bcce6", - "url": "https://files.pythonhosted.org/packages/e1/0b/4f9c7479137280bf868ee6f9bfe4540cd5f5d5522ecf72662e9ad78a153e/llvmlite-0.42.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "3e8d0618cb9bfe40ac38a9633f2493d4d4e9fcc2f438d39a4e854f39cc0f5f98", + "url": "https://files.pythonhosted.org/packages/95/8c/de3276d773ab6ce3ad676df5fab5aac19696b2956319d65d7dd88fb10f19/llvmlite-0.43.0-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5", + "url": "https://files.pythonhosted.org/packages/9f/3d/f513755f285db51ab363a53e898b85562e950f79a2e6767a364530c2f645/llvmlite-0.43.0.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "35d80d61d0cda2d767f72de99450766250560399edc309da16937b93d3b676e7", + "url": "https://files.pythonhosted.org/packages/a2/9c/24139d3712d2d352e300c39c0e00d167472c08b3bd350c3c33d72c88ff8d/llvmlite-0.43.0-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "eccce86bba940bae0d8d48ed925f21dbb813519169246e2ab292b5092aba121f", + "url": "https://files.pythonhosted.org/packages/bf/f1/4c205a48488e574ee9f6505d50e84370a978c90f08dab41a42d8f2c576b6/llvmlite-0.43.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "e0a9a1a39d4bf3517f2af9d23d479b4175ead205c592ceeb8b89af48a327ea57", + "url": "https://files.pythonhosted.org/packages/ee/e1/38deed89ced4cf378c61e232265cfe933ccde56ae83c901aa68b477d14b1/llvmlite-0.43.0-cp311-cp311-macosx_11_0_arm64.whl" } ], "project_name": "llvmlite", "requires_dists": [], "requires_python": ">=3.9", - "version": "0.42.0" + "version": "0.43.0" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "2a47740652b25900ac5ce52667b2eade28d8b5fdca0ccd3323459df710e8210a", - "url": "https://files.pythonhosted.org/packages/fd/59/2e5086c8e8a05a7282a824a2a37e3c45cd5714e7b83d8bc0267cb3bb5b4f/lru_dict-1.3.0-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "0e88dba16695f17f41701269fa046197a3fd7b34a8dba744c8749303ddaa18df", + "url": "https://files.pythonhosted.org/packages/5a/0b/e30236aafe31b4247aa9ae61ba8aac6dde75c3ea0e47a8fb7eef53f6d5ce/lru_dict-1.3.0-cp312-cp312-musllinux_1_1_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "c0131351b8a7226c69f1eba5814cbc9d1d8daaf0fdec1ae3f30508e3de5262d4", + "url": "https://files.pythonhosted.org/packages/04/74/f2ae00de7c27984a19b88d2b09ac877031c525b01199d7841ec8fa657fd6/lru_dict-1.3.0-cp312-cp312-musllinux_1_1_ppc64le.whl" }, { "algorithm": "sha256", @@ -1975,11 +2420,21 @@ "hash": "cfaf75ac574447afcf8ad998789071af11d2bcf6f947643231f692948839bd98", "url": "https://files.pythonhosted.org/packages/3c/67/0a29a91087196b02f278d8765120ee4e7486f1f72a4c505fd1cd3109e627/lru_dict-1.3.0-cp311-cp311-musllinux_1_1_aarch64.whl" }, + { + "algorithm": "sha256", + "hash": "350e2233cfee9f326a0d7a08e309372d87186565e43a691b120006285a0ac549", + "url": "https://files.pythonhosted.org/packages/3c/de/5ef2ed75ce55d7059d1b96177ba04fa7ee1f35564f97bdfcd28fccfbe9d2/lru_dict-1.3.0-cp312-cp312-macosx_10_9_x86_64.whl" + }, { "algorithm": "sha256", "hash": "9710737584650a4251b9a566cbb1a86f83437adb209c9ba43a4e756d12faf0d7", "url": "https://files.pythonhosted.org/packages/4e/63/a0ae20525f9d52f62ac0def47935f8a2b3b6fcd2c145218b9a27fc1fb910/lru_dict-1.3.0-cp311-cp311-macosx_11_0_arm64.whl" }, + { + "algorithm": "sha256", + "hash": "1958cb70b9542773d6241974646e5410e41ef32e5c9e437d44040d59bd80daf2", + "url": "https://files.pythonhosted.org/packages/59/88/d5976e9f70107ce11e45d93c6f0c2d5eaa1fc30bb3c8f57525eda4510dff/lru_dict-1.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, { "algorithm": "sha256", "hash": "9bd13af06dab7c6ee92284fd02ed9a5613a07d5c1b41948dc8886e7207f86dfd", @@ -1990,21 +2445,51 @@ "hash": "d9b30a8f50c3fa72a494eca6be5810a1b5c89e4f0fda89374f0d1c5ad8d37d51", "url": "https://files.pythonhosted.org/packages/61/14/f90dee4bc547ae266dbeffd4e11611234bb6af511dea48f3bc8dac1de478/lru_dict-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl" }, + { + "algorithm": "sha256", + "hash": "bc1cd3ed2cee78a47f11f3b70be053903bda197a873fd146e25c60c8e5a32cd6", + "url": "https://files.pythonhosted.org/packages/6c/f8/94d6e910d54fc1fa05c0ee1cd608c39401866a18cf5e5aff238449b33c11/lru_dict-1.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "ba490b8972531d153ac0d4e421f60d793d71a2f4adbe2f7740b3c55dce0a12f1", + "url": "https://files.pythonhosted.org/packages/70/0b/d3717159c26155ff77679cee1b077d22e1008bf45f19921e193319cd8e46/lru_dict-1.3.0-cp312-cp312-musllinux_1_1_i686.whl" + }, { "algorithm": "sha256", "hash": "54fd1966d6bd1fcde781596cb86068214edeebff1db13a2cea11079e3fd07b6b", "url": "https://files.pythonhosted.org/packages/96/e3/42c87871920602a3c8300915bd0292f76eccc66c38f782397acbf8a62088/lru-dict-1.3.0.tar.gz" }, + { + "algorithm": "sha256", + "hash": "5ad659cbc349d0c9ba8e536b5f40f96a70c360f43323c29f4257f340d891531c", + "url": "https://files.pythonhosted.org/packages/9b/b6/08a623019daec22a40c4d6d2c40851dfa3d129a53b2f9469db8eb13666c1/lru_dict-1.3.0-cp312-cp312-musllinux_1_1_aarch64.whl" + }, { "algorithm": "sha256", "hash": "20c595764695d20bdc3ab9b582e0cc99814da183544afb83783a36d6741a0dac", "url": "https://files.pythonhosted.org/packages/a8/c9/6fac0cb67160f0efa3cc76a6a7d04d5e21a516eeb991ebba08f4f8f01ec5/lru_dict-1.3.0-cp311-cp311-macosx_10_9_universal2.whl" }, + { + "algorithm": "sha256", + "hash": "4eafb188a84483b3231259bf19030859f070321b00326dcb8e8c6cbf7db4b12f", + "url": "https://files.pythonhosted.org/packages/ca/05/f69a6abb0062d2cf2ce0aaf0284b105b97d1da024ca6d3d0730e6151242e/lru_dict-1.3.0-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "82eb230d48eaebd6977a92ddaa6d788f14cf4f4bcf5bbffa4ddfd60d051aa9d4", + "url": "https://files.pythonhosted.org/packages/ca/b9/9db79780c8a3cfd66bba6847773061e5cf8a3746950273b9985d47bbfe53/lru_dict-1.3.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, { "algorithm": "sha256", "hash": "b84c321ae34f2f40aae80e18b6fa08b31c90095792ab64bb99d2e385143effaa", "url": "https://files.pythonhosted.org/packages/e9/c6/8c2b81b61e5206910c81b712500736227289aefe4ccfb36137aa21807003/lru_dict-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, + { + "algorithm": "sha256", + "hash": "73593791047e36b37fdc0b67b76aeed439fcea80959c7d46201240f9ec3b2563", + "url": "https://files.pythonhosted.org/packages/ea/59/cf891143abe58a455b8eaa9175f0e80f624a146a2bf9a1ca842ee0ef930a/lru_dict-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, { "algorithm": "sha256", "hash": "abd0c284b26b5c4ee806ca4f33ab5e16b4bf4d5ec9e093e75a6f6287acdde78e", @@ -2014,6 +2499,16 @@ "algorithm": "sha256", "hash": "eed24272b4121b7c22f234daed99899817d81d671b3ed030c876ac88bc9dc890", "url": "https://files.pythonhosted.org/packages/f9/d7/af9733f94df67a2e9e31ef47d4c41aff1836024f135cdbda4743eb628452/lru_dict-1.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "algorithm": "sha256", + "hash": "c279068f68af3b46a5d649855e1fb87f5705fe1f744a529d82b2885c0e1fc69d", + "url": "https://files.pythonhosted.org/packages/fc/5c/385f080747eb3083af87d8e4c9068f3c4cab89035f6982134889940dafd8/lru_dict-1.3.0-cp312-cp312-macosx_10_9_universal2.whl" + }, + { + "algorithm": "sha256", + "hash": "2a47740652b25900ac5ce52667b2eade28d8b5fdca0ccd3323459df710e8210a", + "url": "https://files.pythonhosted.org/packages/fd/59/2e5086c8e8a05a7282a824a2a37e3c45cd5714e7b83d8bc0267cb3bb5b4f/lru_dict-1.3.0-cp311-cp311-musllinux_1_1_x86_64.whl" } ], "project_name": "lru-dict", @@ -2027,122 +2522,182 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "6dcc3d17eac1df7859ae01202e9bb11ffa8c98949dcbeb1069c8b9a75917e01b", - "url": "https://files.pythonhosted.org/packages/ec/ab/189f571450e3393d4d442f88683d11b5a47c88e66a4e6b0d467500360483/lxml-5.2.2-cp311-cp311-musllinux_1_2_x86_64.whl" + "hash": "e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d", + "url": "https://files.pythonhosted.org/packages/7d/ed/e6276c8d9668028213df01f598f385b05b55a4e1b4662ee12ef05dab35aa/lxml-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3", + "url": "https://files.pythonhosted.org/packages/09/91/e6136f17459a11ce1757df864b213efbeab7adcb2efa63efb1b846ab6723/lxml-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99", + "url": "https://files.pythonhosted.org/packages/0a/6e/94537acfb5b8f18235d13186d247bca478fea5e87d224644e0fe907df976/lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a", + "url": "https://files.pythonhosted.org/packages/1a/e7/03f390ea37d1acda50bc538feb5b2bda6745b25731e4e76ab48fae7106bf/lxml-5.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl" + }, + { + "algorithm": "sha256", + "hash": "62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1", + "url": "https://files.pythonhosted.org/packages/1d/7c/2eeecf87c9a1fca4f84f991067c693e67340f2b7127fc3eca8fa29d75ee3/lxml-5.3.0-cp312-cp312-manylinux_2_28_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79", + "url": "https://files.pythonhosted.org/packages/1d/ce/fb84fb8e3c298f3a245ae3ea6221c2426f1bbaa82d10a88787412a498145/lxml-5.3.0-cp311-cp311-manylinux_2_28_ppc64le.whl" + }, + { + "algorithm": "sha256", + "hash": "168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e", + "url": "https://files.pythonhosted.org/packages/23/0e/caac672ec246d3189a16c4d364ed4f7d6bf856c080215382c06764058c08/lxml-5.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "algorithm": "sha256", + "hash": "2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f", + "url": "https://files.pythonhosted.org/packages/25/2f/b20565e808f7f6868aacea48ddcdd7e9e9fb4c799287f21f1a6c7c2e8b71/lxml-5.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "algorithm": "sha256", + "hash": "c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d", + "url": "https://files.pythonhosted.org/packages/3b/ed/4c38ba58defca84f5f0d0ac2480fdcd99fc7ae4b28fc417c93640a6949ae/lxml-5.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl" + }, + { + "algorithm": "sha256", + "hash": "eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654", + "url": "https://files.pythonhosted.org/packages/42/07/b29571a58a3a80681722ea8ed0ba569211d9bb8531ad49b5cacf6d409185/lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763", + "url": "https://files.pythonhosted.org/packages/56/b5/645c8c02721d49927c93181de4017164ec0e141413577687c3df8ff0800f/lxml-5.3.0-cp311-cp311-musllinux_1_2_ppc64le.whl" + }, + { + "algorithm": "sha256", + "hash": "74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b", + "url": "https://files.pythonhosted.org/packages/5c/a8/449faa2a3cbe6a99f8d38dcd51a3ee8844c17862841a6f769ea7c2a9cd0f/lxml-5.3.0-cp311-cp311-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "657a972f46bbefdbba2d4f14413c0d079f9ae243bd68193cb5061b9732fa54c1", - "url": "https://files.pythonhosted.org/packages/15/3d/d84d07fc450af34ce49b88a5aac805b486f38c9f9305fba647a39367c51c/lxml-5.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179", + "url": "https://files.pythonhosted.org/packages/5d/ea/a6523c7c7f6dc755a6eed3d2f6d6646617cad4d3d6d8ce4ed71bfd2362c8/lxml-5.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { "algorithm": "sha256", - "hash": "d237ba6664b8e60fd90b8549a149a74fcc675272e0e95539a00522e4ca688b04", - "url": "https://files.pythonhosted.org/packages/2f/ca/0376418e202e9423d47f86ae09db885fa6e109d0efb602f6468e6d1e8e77/lxml-5.2.2-cp311-cp311-musllinux_1_1_s390x.whl" + "hash": "aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c", + "url": "https://files.pythonhosted.org/packages/67/a4/1f5fbd3f58d4069000522196b0b776a014f3feec1796da03e495cf23532d/lxml-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "23441e2b5339bc54dc949e9e675fa35efe858108404ef9aa92f0456929ef6fe8", - "url": "https://files.pythonhosted.org/packages/3b/ca/5d74a0572c911f8dbf12d89abe0fdcbe0409c18978b5694392becd4d56fb/lxml-5.2.2-cp311-cp311-musllinux_1_2_aarch64.whl" + "hash": "62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be", + "url": "https://files.pythonhosted.org/packages/80/8a/df47bff6ad5ac57335bf552babfb2408f9eb680c074ec1ba412a1a6af2c5/lxml-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88", - "url": "https://files.pythonhosted.org/packages/4e/42/3bfe92749715c819763d2205370ecc7f586b44e277f38839e27cce7d6bb8/lxml-5.2.2-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec", + "url": "https://files.pythonhosted.org/packages/85/3f/6a99a12d9438316f4fc86ef88c5d4c8fb674247b17f3173ecadd8346b671/lxml-5.3.0-cp311-cp311-musllinux_1_2_s390x.whl" }, { "algorithm": "sha256", - "hash": "2eb2227ce1ff998faf0cd7fe85bbf086aa41dfc5af3b1d80867ecfe75fb68df3", - "url": "https://files.pythonhosted.org/packages/4e/56/c35969591789763657eb16c2fa79c924823b97da5536da8b89e11582da89/lxml-5.2.2-cp311-cp311-manylinux_2_28_aarch64.whl" + "hash": "65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e", + "url": "https://files.pythonhosted.org/packages/88/69/6972bfafa8cd3ddc8562b126dd607011e218e17be313a8b1b9cc5a0ee876/lxml-5.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "1a2569a1f15ae6c8c64108a2cd2b4a858fc1e13d25846be0666fc144715e32ab", - "url": "https://files.pythonhosted.org/packages/5f/e0/4cd021850f2e8ab5ce6ce294556300bd4b5c1eb7def88b5f859449dc883c/lxml-5.2.2-cp311-cp311-musllinux_1_1_aarch64.whl" + "hash": "74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff", + "url": "https://files.pythonhosted.org/packages/8d/e8/4b15df533fe8e8d53363b23a41df9be907330e1fa28c7ca36893fad338ee/lxml-5.3.0-cp312-cp312-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87", - "url": "https://files.pythonhosted.org/packages/63/f7/ffbb6d2eb67b80a45b8a0834baa5557a14a5ffce0979439e7cd7f0c4055b/lxml-5.2.2.tar.gz" + "hash": "b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a", + "url": "https://files.pythonhosted.org/packages/99/37/396fbd24a70f62b31d988e4500f2068c7f3fd399d2fd45257d13eab51a6f/lxml-5.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { "algorithm": "sha256", - "hash": "07542787f86112d46d07d4f3c4e7c760282011b354d012dc4141cc12a68cef5f", - "url": "https://files.pythonhosted.org/packages/67/c7/6060ea3efbd1a60a10963b1b09f493fc8f6f6728310a7a77479a3f9ab20a/lxml-5.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + "hash": "5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c", + "url": "https://files.pythonhosted.org/packages/a5/22/bbd3995437e5745cb4c2b5d89088d70ab19d4feabf8a27a24cecb9745464/lxml-5.3.0-cp312-cp312-manylinux_2_28_s390x.whl" }, { "algorithm": "sha256", - "hash": "0b3f5016e00ae7630a4b83d0868fca1e3d494c78a75b1c7252606a3a1c5fc2ad", - "url": "https://files.pythonhosted.org/packages/74/c4/4e6f5e2be18f8eb76dff5bff3619c2c654650fee93aea37a92866efe90bc/lxml-5.2.2-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18", + "url": "https://files.pythonhosted.org/packages/ac/8a/ae6325e994e2052de92f894363b038351c50ee38749d30cc6b6d96aaf90f/lxml-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "2fb0ba3e8566548d6c8e7dd82a8229ff47bd8fb8c2da237607ac8e5a1b8312e5", - "url": "https://files.pythonhosted.org/packages/83/07/d95e9663ad8d875f344930e4fb52a0a6f56225267d3cc6e3e9bfa44ca736/lxml-5.2.2-cp311-cp311-musllinux_1_2_ppc64le.whl" + "hash": "ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080", + "url": "https://files.pythonhosted.org/packages/b1/72/4d1ad363748a72c7c0411c28be2b0dc7150d91e823eadad3b91a4514cbea/lxml-5.3.0-cp311-cp311-manylinux_2_28_s390x.whl" }, { "algorithm": "sha256", - "hash": "303f540ad2dddd35b92415b74b900c749ec2010e703ab3bfd6660979d01fd4ed", - "url": "https://files.pythonhosted.org/packages/8a/f7/f5df71c70c4d14d186dd86fd0e9ebeffdb63b9b86fb19fe9315f9576266b/lxml-5.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4", + "url": "https://files.pythonhosted.org/packages/b4/f9/a181a8ef106e41e3086629c8bdb2d21a942f14c84a0e77452c22d6b22091/lxml-5.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "56793b7a1a091a7c286b5f4aa1fe4ae5d1446fe742d00cdf2ffb1077865db10d", - "url": "https://files.pythonhosted.org/packages/99/a1/d91217a8d7fef5ac41af87c916d322c273a9b2047c735ea1dafa2ac46d16/lxml-5.2.2-cp311-cp311-manylinux_2_28_s390x.whl" + "hash": "6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d", + "url": "https://files.pythonhosted.org/packages/b9/93/bde740d5a58cf04cbd38e3dd93ad1e36c2f95553bbf7d57807bc6815d926/lxml-5.3.0-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5", - "url": "https://files.pythonhosted.org/packages/ad/b7/0dc82afed00c4c189cfd0b83464f9a431c66de8e73d911063956a147276a/lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl" + "hash": "384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e", + "url": "https://files.pythonhosted.org/packages/bd/83/26b1864921869784355459f374896dcf8b44d4af3b15d7697e9156cb2de9/lxml-5.3.0-cp312-cp312-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "b74b9ea10063efb77a965a8d5f4182806fbf59ed068b3c3fd6f30d2ac7bee734", - "url": "https://files.pythonhosted.org/packages/bc/c6/32af0ec3e8323e12212c064f924ddf993017e68d1f50e03da2a3be1289c1/lxml-5.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + "hash": "874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f", + "url": "https://files.pythonhosted.org/packages/e0/d2/e9bff9fb359226c25cda3538f664f54f2804f4b37b0d7c944639e1a51f69/lxml-5.3.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "d28cb356f119a437cc58a13f8135ab8a4c8ece18159eb9194b0d269ec4e28083", - "url": "https://files.pythonhosted.org/packages/d5/fd/4899215277e3ef1767019fab178fad8a149081f80cf886a73dc0ba1badae/lxml-5.2.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f", + "url": "https://files.pythonhosted.org/packages/e7/6b/20c3a4b24751377aaa6307eb230b66701024012c29dd374999cc92983269/lxml-5.3.0.tar.gz" }, { "algorithm": "sha256", - "hash": "45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545", - "url": "https://files.pythonhosted.org/packages/da/6a/24e9f77d17668dd4ac0a6c2a56113fd3e0db07cee51e3a67afcd47c597e5/lxml-5.2.2-cp311-cp311-macosx_10_9_universal2.whl" + "hash": "7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8", + "url": "https://files.pythonhosted.org/packages/ea/99/d1133ab4c250da85a883c3b60249d3d3e7c64f24faff494cf0fd23f91e80/lxml-5.3.0-cp312-cp312-musllinux_1_2_s390x.whl" }, { "algorithm": "sha256", - "hash": "79d1fb9252e7e2cfe4de6e9a6610c7cbb99b9708e2c3e29057f487de5a9eaefa", - "url": "https://files.pythonhosted.org/packages/df/e1/9ebae8d05492a8e9f632f2add15199e7bca5c1b063444e360a7bde685718/lxml-5.2.2-cp311-cp311-musllinux_1_2_s390x.whl" + "hash": "e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859", + "url": "https://files.pythonhosted.org/packages/eb/6d/d1f1c5e40c64bf62afd7a3f9b34ce18a586a1cccbf71e783cd0a6d8e8971/lxml-5.3.0-cp312-cp312-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "1d8a701774dfc42a2f0b8ccdfe7dbc140500d1049e0632a611985d943fcf12df", - "url": "https://files.pythonhosted.org/packages/e7/28/1809a5406282c03df561a3c8143c143bd515d5668f1a138f51aec6d2618e/lxml-5.2.2-cp311-cp311-manylinux_2_28_ppc64le.whl" + "hash": "69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16", + "url": "https://files.pythonhosted.org/packages/ee/73/623ecea6ca3c530dd0a4ed0d00d9702e0e85cd5624e2d5b93b005fe00abd/lxml-5.3.0-cp311-cp311-manylinux_2_28_aarch64.whl" }, { "algorithm": "sha256", - "hash": "8cf85a6e40ff1f37fe0f25719aadf443686b1ac7652593dc53c7ef9b8492b115", - "url": "https://files.pythonhosted.org/packages/f0/f4/fb01451fda1e121eb8f117a00040454ca05a9c9d82b308272042eebd05f3/lxml-5.2.2-cp311-cp311-musllinux_1_1_ppc64le.whl" + "hash": "5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442", + "url": "https://files.pythonhosted.org/packages/f8/fb/128dddb7f9086236bce0eeae2bfb316d138b49b159f50bc681d56c1bdd19/lxml-5.3.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl" } ], "project_name": "lxml", "requires_dists": [ "BeautifulSoup4; extra == \"htmlsoup\"", - "Cython>=3.0.10; extra == \"source\"", + "Cython>=3.0.11; extra == \"source\"", "cssselect>=0.7; extra == \"cssselect\"", "html5lib; extra == \"html5\"", "lxml-html-clean; extra == \"html-clean\"" ], "requires_python": ">=3.6", - "version": "5.2.2" + "version": "5.3.0" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f", - "url": "https://files.pythonhosted.org/packages/f8/81/56e567126a2c2bc2684d6391332e357589a96a76cb9f8e5052d85cb0ead8/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169", + "url": "https://files.pythonhosted.org/packages/88/07/2dc76aa51b481eb96a4c3198894f38b480490e834479611a4053fbf08623/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5", + "url": "https://files.pythonhosted.org/packages/0a/0d/2454f072fae3b5a137c119abf15465d1771319dfe9e4acbb31722a0fff91/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", @@ -2164,6 +2719,26 @@ "hash": "6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced", "url": "https://files.pythonhosted.org/packages/1c/cf/35fe557e53709e93feb65575c93927942087e9b97213eabc3fe9d5b25a55/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, + { + "algorithm": "sha256", + "hash": "ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b", + "url": "https://files.pythonhosted.org/packages/2d/75/fd6cb2e68780f72d47e6671840ca517bda5ef663d30ada7616b0462ad1e3/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4", + "url": "https://files.pythonhosted.org/packages/48/d6/e7cd795fc710292c3af3a06d80868ce4b02bfbbf370b7cee11d282815a2a/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee", + "url": "https://files.pythonhosted.org/packages/51/b5/5d8ec796e2a08fc814a2c7d2584b55f889a55cf17dd1a90f2beb70744e5c/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1", + "url": "https://files.pythonhosted.org/packages/53/bd/583bf3e4c8d6a321938c13f49d44024dbe5ed63e0a7ba127e454a66da974/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl" + }, { "algorithm": "sha256", "hash": "5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2", @@ -2179,10 +2754,25 @@ "hash": "d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b", "url": "https://files.pythonhosted.org/packages/87/5b/aae44c6655f3801e81aa3eef09dbbf012431987ba564d7231722f68df02d/MarkupSafe-2.1.5.tar.gz" }, + { + "algorithm": "sha256", + "hash": "bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f", + "url": "https://files.pythonhosted.org/packages/8b/ff/9a52b71839d7a256b563e85d11050e307121000dcebc97df120176b3ad93/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl" + }, { "algorithm": "sha256", "hash": "b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5", "url": "https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a", + "url": "https://files.pythonhosted.org/packages/b0/81/147c477391c2750e8fc7705829f7351cf1cd3be64406edcf900dc633feb2/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f", + "url": "https://files.pythonhosted.org/packages/f8/81/56e567126a2c2bc2684d6391332e357589a96a76cb9f8e5052d85cb0ead8/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl" } ], "project_name": "markupsafe", @@ -2194,33 +2784,58 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "c53aeb514ccbbcbab55a27f912d79ea30ab21ee0531ee2c09f13800efb272674", - "url": "https://files.pythonhosted.org/packages/7a/a2/5c1a64d188c4cae7368ebb8c28a354e3f262cb86b28c38ffa6ee3ad532ba/matplotlib-3.9.0-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e", + "url": "https://files.pythonhosted.org/packages/de/e3/2976e4e54d7ee76eaf54b7639fdc10a223d05c2bdded7045233e9871e469/matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447", + "url": "https://files.pythonhosted.org/packages/01/75/6c7ce560e95714a10fcbb3367d1304975a1a3e620f72af28921b796403f3/matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c", + "url": "https://files.pythonhosted.org/packages/27/75/de5b9cd67648051cae40039da0c8cbc497a0d99acb1a1f3d087cd66d27b7/matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41", + "url": "https://files.pythonhosted.org/packages/28/ba/8be09886eb56ac04a218a1dc3fa728a5c4cac60b019b4f1687885166da00/matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d", + "url": "https://files.pythonhosted.org/packages/35/3e/5713b84a02b24b2a4bd4d6673bfc03017e6654e1d8793ece783b7ed4d484/matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "063af8587fceeac13b0936c42a2b6c732c2ab1c98d38abc3337e430e1ff75e38", - "url": "https://files.pythonhosted.org/packages/09/49/569b50eb5e5a75b61f7a0bacb6029e9ea9c8a1190df55a39a31789244e09/matplotlib-3.9.0-cp311-cp311-macosx_10_12_x86_64.whl" + "hash": "bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7", + "url": "https://files.pythonhosted.org/packages/5b/bd/c404502aa1824456d2862dd6b9b0c1917761a51a32f7f83ff8cf94b6d117/matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "76cce0f31b351e3551d1f3779420cf8f6ec0d4a8cf9c0237a3b549fd28eb4abb", - "url": "https://files.pythonhosted.org/packages/41/f1/115e7c79b4506b4f0533acba742babd9718ff92eeca6d4205843173b6173/matplotlib-3.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e", + "url": "https://files.pythonhosted.org/packages/6e/49/dc7384c6c092958e0b75e754efbd9e52500154939c3d715789cee9fb8a53/matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "550cdda3adbd596078cca7d13ed50b77879104e2e46392dcd7c75259d8f00e85", - "url": "https://files.pythonhosted.org/packages/bc/9e/b09513717f60071fefcb28c7c783aa658f939f3d4ba1cefb6c05138c6657/matplotlib-3.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772", + "url": "https://files.pythonhosted.org/packages/77/c2/f9d7fe80a8fcce9bb128d1381c6fe41a8d286d7e18395e273002e8e0fa34/matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl" }, { "algorithm": "sha256", - "hash": "e6d29ea6c19e34b30fb7d88b7081f869a03014f66fe06d62cc77d5a6ea88ed7a", - "url": "https://files.pythonhosted.org/packages/c5/a4/a7236bf8b0137deff48737c6ccf2154ef4486e57c6a5b7c309bf515992bd/matplotlib-3.9.0.tar.gz" + "hash": "ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9", + "url": "https://files.pythonhosted.org/packages/82/de/54f7f38ce6de79cb77d513bb3eaa4e0b1031e9fd6022214f47943fa53a88/matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl" }, { "algorithm": "sha256", - "hash": "9a2fa6d899e17ddca6d6526cf6e7ba677738bf2a6a9590d702c277204a7c6152", - "url": "https://files.pythonhosted.org/packages/f4/b4/c1700c8b2ff8d379c187f37055e61bd7a611eb2c544466600a7734793d54/matplotlib-3.9.0-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92", + "url": "https://files.pythonhosted.org/packages/9e/d8/3d7f706c69e024d4287c1110d74f7dabac91d9843b99eadc90de9efc8869/matplotlib-3.9.2.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f", + "url": "https://files.pythonhosted.org/packages/e6/9a/5991972a560db3ab621312a7ca5efec339ae2122f25901c0846865c4b72f/matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" } ], "project_name": "matplotlib", @@ -2242,7 +2857,7 @@ "setuptools_scm>=7; extra == \"dev\"" ], "requires_python": ">=3.9", - "version": "3.9.0" + "version": "3.9.2" }, { "artifacts": [ @@ -2371,127 +2986,207 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "dd2842fac03be4e5324ebbbd4d2d0c8c0fc6e0df75c09477dd45b288a0777389", - "url": "https://files.pythonhosted.org/packages/54/f2/7d1579037643c874fa73516ea84c07e8d30ea347fb1a88c03b198447655d/numba-0.59.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl" + "hash": "0ebaa91538e996f708f1ab30ef4d3ddc344b64b5227b67a57aa74f401bb68b9d", + "url": "https://files.pythonhosted.org/packages/8b/41/ac11cf33524def12aa5bd698226ae196a1185831c05ed29dc0c56eaa308b/numba-0.60.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16", + "url": "https://files.pythonhosted.org/packages/3c/93/2849300a9184775ba274aba6f82f303343669b0592b7bb0849ea713dabb0/numba-0.60.0.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "4142d7ac0210cc86432b818338a2bc368dc773a2f5cf1e32ff7c5b378bd63ee8", + "url": "https://files.pythonhosted.org/packages/57/03/2b4245b05b71c0cee667e6a0b51606dfa7f4157c9093d71c6b208385a611/numba-0.60.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "38d6ea4c1f56417076ecf8fc327c831ae793282e0ff51080c5094cb726507b1c", + "url": "https://files.pythonhosted.org/packages/65/42/39559664b2e7c15689a638c2a38b3b74c6e69a04e2b3019b9f7742479188/numba-0.60.0-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "62908d29fb6a3229c242e981ca27e32a6e606cc253fc9e8faeb0e48760de241e", + "url": "https://files.pythonhosted.org/packages/67/88/c4459ccc05674ef02119abf2888ccd3e2fed12a323f52255f4982fc95876/numba-0.60.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl" }, { "algorithm": "sha256", - "hash": "43727e7ad20b3ec23ee4fc642f5b61845c71f75dd2825b3c234390c6d8d64051", - "url": "https://files.pythonhosted.org/packages/5f/2d/085c21f3086eff0b830e5d03d084a1b4b10dfde0c65feeac6be8c361265c/numba-0.59.1-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "a17b70fc9e380ee29c42717e8cc0bfaa5556c416d94f9aa96ba13acb41bdece8", + "url": "https://files.pythonhosted.org/packages/98/ad/df18d492a8f00d29a30db307904b9b296e37507034eedb523876f3a2e13e/numba-0.60.0-cp311-cp311-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "411df625372c77959570050e861981e9d196cc1da9aa62c3d6a836b5cc338966", - "url": "https://files.pythonhosted.org/packages/70/7d/0d1419479997319ca72ef735791c2ee50819f9c200adea96142ee7499fae/numba-0.59.1-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "3fb02b344a2a80efa6f677aa5c40cd5dd452e1b35f8d1c2af0dfd9ada9978e4b", + "url": "https://files.pythonhosted.org/packages/9a/51/a4dc2c01ce7a850b8e56ff6d5381d047a5daea83d12bad08aa071d34b2ee/numba-0.60.0-cp311-cp311-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "2801003caa263d1e8497fb84829a7ecfb61738a95f62bc05693fcf1733e978e4", - "url": "https://files.pythonhosted.org/packages/ab/97/d23ae27bb609e4ce804456b401bdde575a385a86786e7d1080e4d9b75c8d/numba-0.59.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl" + "hash": "d7da4098db31182fc5ffe4bc42c6f24cd7d1cb8a14b59fd755bfee32e34b8404", + "url": "https://files.pythonhosted.org/packages/eb/5c/b5ec752c475e78a6c3676b67c514220dbde2725896bbb0b6ec6ea54b2738/numba-0.60.0-cp312-cp312-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "76f69132b96028d2774ed20415e8c528a34e3299a40581bae178f0994a2f370b", - "url": "https://files.pythonhosted.org/packages/bb/84/468592513867604800592b58d106f5e7e6ef61de226b59c1e9313917fbbb/numba-0.59.1.tar.gz" + "hash": "5f4fde652ea604ea3c86508a3fb31556a6157b2c76c8b51b1d45eb40c8598703", + "url": "https://files.pythonhosted.org/packages/f9/4c/8889ac94c0b33dca80bed11564b8c6d9ea14d7f094e674c58e5c5b05859b/numba-0.60.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl" } ], "project_name": "numba", "requires_dists": [ - "llvmlite<0.43,>=0.42.0dev0", - "numpy<1.27,>=1.22" + "llvmlite<0.44,>=0.43.0dev0", + "numpy<2.1,>=1.22" + ], + "requires_python": ">=3.9", + "version": "0.60.0" + }, + { + "artifacts": [ + { + "algorithm": "sha256", + "hash": "1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0", + "url": "https://files.pythonhosted.org/packages/76/8c/2ba3902e1a0fc1c74962ea9bb33a534bb05984ad7ff9515bf8d07527cadd/numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a", + "url": "https://files.pythonhosted.org/packages/09/bf/2b1aaf8f525f2923ff6cfcf134ae5e750e279ac65ebf386c75a0cf6da06a/numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed", + "url": "https://files.pythonhosted.org/packages/0f/50/de23fde84e45f5c4fda2488c759b69990fd4512387a8632860f3ac9cd225/numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71", + "url": "https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef", + "url": "https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5", + "url": "https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a", + "url": "https://files.pythonhosted.org/packages/4c/0c/9c603826b6465e82591e05ca230dfc13376da512b25ccd0894709b054ed0/numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010", + "url": "https://files.pythonhosted.org/packages/65/6e/09db70a523a96d25e115e71cc56a6f9031e7b8cd166c1ac8438307c14058/numpy-1.26.4.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b", + "url": "https://files.pythonhosted.org/packages/75/5b/ca6c8bd14007e5ca171c7c03102d17b4f4e0ceb53957e8c44343a9546dcc/numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e", + "url": "https://files.pythonhosted.org/packages/79/ae/7e5b85136806f9dadf4878bf73cf223fe5c2636818ba3ab1c585d0403164/numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b", + "url": "https://files.pythonhosted.org/packages/79/f8/97f10e6755e2a7d027ca783f63044d5b1bc1ae7acb12afe6a9b4286eac17/numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218", + "url": "https://files.pythonhosted.org/packages/95/12/8f2020a8e8b8383ac0177dc9570aad031a3beb12e38847f7129bacd96228/numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a", + "url": "https://files.pythonhosted.org/packages/df/a0/4e0f14d847cfc2a633a1c8621d00724f3206cfeddeb66d35698c4e2cf3d2/numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl" + } ], + "project_name": "numpy", + "requires_dists": [], "requires_python": ">=3.9", - "version": "0.59.1" + "version": "1.26.4" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a", - "url": "https://files.pythonhosted.org/packages/df/a0/4e0f14d847cfc2a633a1c8621d00724f3206cfeddeb66d35698c4e2cf3d2/numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "3148f93231ff80d32772bbea78d223ce1766acf69227bd64ca8667ad41ffd6f0", + "url": "https://files.pythonhosted.org/packages/6a/a3/2027858bc93c1e1549f6b1a207fabae25035e21b83f1bfc06b6a61057da5/numpy_quaternion-2023.0.4-cp312-cp312-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a", - "url": "https://files.pythonhosted.org/packages/09/bf/2b1aaf8f525f2923ff6cfcf134ae5e750e279ac65ebf386c75a0cf6da06a/numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl" + "hash": "7f764215c381c2b9d03706023a2a2971fa802af9c2f1c54bfe23cdfe5053c14a", + "url": "https://files.pythonhosted.org/packages/03/88/0d189dce735ab16a3dca9193bb98529b9dfded28861c78d225966e4f74f9/numpy_quaternion-2023.0.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71", - "url": "https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "4b7b97c2be631ea2aa4b8a1061d06562839ae92f4b27c7e66315121ceaeef438", + "url": "https://files.pythonhosted.org/packages/10/9e/cb39cc461d2df0854306a349a6ea5779143e92cf239482c97f3fbdd94a8f/numpy_quaternion-2023.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef", - "url": "https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "6953697db28fa26df84dbc484abd827ac0d258055c14387ebd0592b1e3d36ae0", + "url": "https://files.pythonhosted.org/packages/25/0c/4846fe1fff54905fc2de9c68766469dbb800c3c1e9945ea65183520dd469/numpy_quaternion-2023.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5", - "url": "https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "0dfc980395e230b3ec0ab764ee9417c580efc38e6cb1774f8c81385ecf562e8d", + "url": "https://files.pythonhosted.org/packages/29/4b/950ef7843e4fe2e2d0511b75e9f4ee1f11d194559e401d6d287a33d699a3/numpy_quaternion-2023.0.4-cp312-cp312-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010", - "url": "https://files.pythonhosted.org/packages/65/6e/09db70a523a96d25e115e71cc56a6f9031e7b8cd166c1ac8438307c14058/numpy-1.26.4.tar.gz" + "hash": "25bae3075737cf9a37445b3bff792aefd87f7626aeafe399a5c5ab0c8e56df61", + "url": "https://files.pythonhosted.org/packages/60/82/a71aea4192911e2e689463a59605f2c1b8958d05a0cf05285b2c581a76d9/numpy_quaternion-2023.0.4-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e", - "url": "https://files.pythonhosted.org/packages/79/ae/7e5b85136806f9dadf4878bf73cf223fe5c2636818ba3ab1c585d0403164/numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" - } - ], - "project_name": "numpy", - "requires_dists": [], - "requires_python": ">=3.9", - "version": "1.26.4" - }, - { - "artifacts": [ - { - "algorithm": "sha256", - "hash": "73e10823b0b0fb0f5f1a5fb6e36db3e09d5ed1b547dd5e6a31ac2f126916dfe5", - "url": "https://files.pythonhosted.org/packages/ef/11/9649cd1c1baed3ea1eb429fa276ac77b369f55da962414c4b677b44876e1/numpy_quaternion-2023.0.3-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "c6fd1f8c8f74637cc1660e1f8b6121b640c2061aac0237cf32021960d80e4d5e", + "url": "https://files.pythonhosted.org/packages/78/e0/6fdac3c6bcdcd248c42d2ce2619240e18262faf08bcd93c86a36a917abb6/numpy_quaternion-2023.0.4-cp311-cp311-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "324d19204d7ce7b60cfd9b1a351eb2e6bbfda307e5ea8326a2978f5dc082f334", - "url": "https://files.pythonhosted.org/packages/2b/4d/d2e58317c0b3c8bcd7b9ae7e3607615c26117ea8647995a86c571caff831/numpy_quaternion-2023.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "a5d03e5f11247acd55425b28bc855905bbe1ea7e564d60782252708ea1721383", + "url": "https://files.pythonhosted.org/packages/90/96/1240c9ba095cc7e63b4d2242f1f6524c65fd9d823a44aacb7be899d54df5/numpy-quaternion-2023.0.4.tar.gz" }, { "algorithm": "sha256", - "hash": "392bf3cb4eee36c0e9271534e93e39e46cdb4f7e2062b08cb38bd0872061ff6c", - "url": "https://files.pythonhosted.org/packages/30/66/42eaef5f1a4e12a2008691987451936f6f00e18c38166eef24480a4a6e8c/numpy-quaternion-2023.0.3.tar.gz" + "hash": "b6001d43b3ef6f15ba402cfeec5cabe654c87b458e8b899852b59be60ccddb2f", + "url": "https://files.pythonhosted.org/packages/96/db/1ef4b39f83cf9dda77cc440287287c29857fd32df49a555886a4a2dbafcb/numpy_quaternion-2023.0.4-cp312-cp312-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "b3aec1175b788b74d788fdef7c221707a2f68cbc20653ddc2a3c15e5332c1fb4", - "url": "https://files.pythonhosted.org/packages/8e/b8/aabae5a0e6fefdc1988733e4d7386b4b7a1ba40820992ce47d020d48f268/numpy_quaternion-2023.0.3-cp311-cp311-macosx_10_9_universal2.whl" + "hash": "6e6ca6f7d0de9499ba33c62a606ddeb625cad146ddd987c8045d35d85c104d08", + "url": "https://files.pythonhosted.org/packages/99/23/f9112b82bfd029c42a14504bebceeafca93fd7ae44a335c7fa6c88c5f3b2/numpy_quaternion-2023.0.4-cp312-cp312-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "6175a0555b9e6cf8fb22f88113b55e29dbec26622938e61a79ea4fcfcd8ad8e3", - "url": "https://files.pythonhosted.org/packages/97/74/0552e5f747be524797e638a6b4cfc5d93d4f567b0500bb60da04617d865e/numpy_quaternion-2023.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "cc68674de1090f2000dce84c5a807294e286136accb2509a8df205e479a79bcd", + "url": "https://files.pythonhosted.org/packages/be/47/2fe04e3a2b6f1e6d155cb531e49093742f3647fb94428e6808d8bcaa95c9/numpy_quaternion-2023.0.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "8ebc517a59487e2424b98a0d6291d1e7ad77ca36d2702015357f62097953de1f", - "url": "https://files.pythonhosted.org/packages/a0/9f/b5d49653f9ed30869f1d3e27e24693333bd64fcfb728a7af8dc7ec96a4d8/numpy_quaternion-2023.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "bf08ab32d8f8b05c9c00b28aea0f83ae6eae7773d4a6218575223f8de3a92908", + "url": "https://files.pythonhosted.org/packages/c5/55/6b66bcb9425d7319a9823f988e02915e231bb70bfd4507e6d4ae6fe38ee4/numpy_quaternion-2023.0.4-cp311-cp311-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "6699dbba41286da391b1ba40d0bebab8c2417cbce799d70c5745a254630bd0cd", - "url": "https://files.pythonhosted.org/packages/d1/f0/a3e87a3d529b6790f8950c8c30f337f7756c4444052efed401a139d06349/numpy_quaternion-2023.0.3-cp311-cp311-musllinux_1_1_i686.whl" + "hash": "c9726d8d7bfde2ccf1b4b74922d3e59f96c7592591f92b6bea6f7d28d55edbd6", + "url": "https://files.pythonhosted.org/packages/ee/8e/70cc0d744a330a81322b7bd5c9c8c84b65c66f032fe0a87b10086b57df92/numpy_quaternion-2023.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "77d98ea3a5c6d005dbda7cf38c3d8bf5de49fa3b5809046083349439930248d0", - "url": "https://files.pythonhosted.org/packages/f5/bb/67e7a441d18776e26ba291556a4370691a5df3ae20ec221ec2af20571424/numpy_quaternion-2023.0.3-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "d85ce3c582569d52d5133c29a9b63e12ec457ba47dd188133b7b30857db4f1a8", + "url": "https://files.pythonhosted.org/packages/f0/1a/1142fa59a9862496fb53891b0cfaa88686ea2ffef4852650c35ed9ad5d7e/numpy_quaternion-2023.0.4-cp311-cp311-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "734259bfa8da467812a46ed79fcd9e3429e9aaa26f4449f47e65a709abd8b000", - "url": "https://files.pythonhosted.org/packages/f6/5a/c1ebc8bf1ca1b07eb79e96617a7c1c3c3fb1379131a84ebcaef759da5b8f/numpy_quaternion-2023.0.3-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "2154b5e96a3214aab3949215216800a101fc5ad9740ab647d0f0790bca5c0213", + "url": "https://files.pythonhosted.org/packages/f6/6f/ad878882b8a8e6a7befc460876d98b1e48e5cba2d9f4e757f52371a5f33a/numpy_quaternion-2023.0.4-cp311-cp311-macosx_11_0_arm64.whl" } ], "project_name": "numpy-quaternion", @@ -2501,14 +3196,14 @@ "mktheapidocs[plugin]; extra == \"docs\"", "numba; (python_version >= \"3.6\" and platform_python_implementation != \"PyPy\") and extra == \"numba\"", "numba<0.49.0; (python_version < \"3.6\" and platform_python_implementation != \"PyPy\") and extra == \"numba\"", - "numpy>=1.13", + "numpy<2.0,>=1.13", "pymdown-extensions; extra == \"docs\"", "pytest-cov; extra == \"testing\"", "pytest; extra == \"testing\"", "scipy; extra == \"scipy\"" ], "requires_python": null, - "version": "2023.0.3" + "version": "2023.0.4" }, { "artifacts": [ @@ -2689,74 +3384,119 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "1c23dfa91481de880890d17aa7b91d586a4746a4c2aa9a145bebdbaf233768d5", - "url": "https://files.pythonhosted.org/packages/e3/a6/abcfb99d288670138eb6a49541afff964a75eb4d9a87737f7c4af12504a7/orjson-3.10.3-cp311-cp311-musllinux_1_2_x86_64.whl" + "hash": "d2d9f990623f15c0ae7ac608103c33dfe1486d2ed974ac3f40b693bad1a22a7b", + "url": "https://files.pythonhosted.org/packages/02/1a/d11805670c29d3a1b29fc4bd048dc90b094784779690592efe8c9f71249a/orjson-3.10.7-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "44a96f2d4c3af51bfac6bc4ef7b182aa33f2f054fd7f34cc0ee9a320d051d41f", + "url": "https://files.pythonhosted.org/packages/14/7c/b4ecc2069210489696a36e42862ccccef7e49e1454a3422030ef52881b01/orjson-3.10.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl" + }, + { + "algorithm": "sha256", + "hash": "d352ee8ac1926d6193f602cbe36b1643bbd1bbcb25e3c1a657a4390f3000c9a5", + "url": "https://files.pythonhosted.org/packages/17/7e/254189d9b6df89660f65aec878d5eeaa5b1ae371bd2c458f85940445d36f/orjson-3.10.7-cp312-cp312-musllinux_1_2_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "b48b3db6bb6e0a08fa8c83b47bc169623f801e5cc4f24442ab2b6617da3b5313", + "url": "https://files.pythonhosted.org/packages/30/be/fd646fb1a461de4958a6eacf4ecf064b8d5479c023e0e71cc89b28fa91ac/orjson-3.10.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "algorithm": "sha256", + "hash": "e724cebe1fadc2b23c6f7415bad5ee6239e00a69f30ee423f319c6af70e2a5c0", + "url": "https://files.pythonhosted.org/packages/53/b9/10abe9089bdb08cd4218cc45eb7abfd787c82cf301cecbfe7f141542d7f4/orjson-3.10.7-cp311-cp311-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "76ac14cd57df0572453543f8f2575e2d01ae9e790c21f57627803f5e79b0d3c3", + "url": "https://files.pythonhosted.org/packages/60/84/e495edb919ef0c98d054a9b6d05f2700fdeba3886edd58f1c4dfb25d514a/orjson-3.10.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "8de062de550f63185e4c1c54151bdddfc5625e37daf0aa1e75d2a1293e3b7d9a", + "url": "https://files.pythonhosted.org/packages/66/9f/e6a11b5d1ad11e9dc869d938707ef93ff5ed20b53d6cda8b5e2ac532a9d2/orjson-3.10.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "algorithm": "sha256", + "hash": "7db8539039698ddfb9a524b4dd19508256107568cdad24f3682d5773e60504a2", + "url": "https://files.pythonhosted.org/packages/89/c9/dd286c97c2f478d43839bd859ca4d9820e2177d4e07a64c516dc3e018062/orjson-3.10.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl" + }, + { + "algorithm": "sha256", + "hash": "6b0dd04483499d1de9c8f6203f8975caf17a6000b9c0c54630cef02e44ee624e", + "url": "https://files.pythonhosted.org/packages/92/ee/702d5e8ccd42dc2b9d1043f22daa1ba75165616aa021dc19fb0c5a726ce8/orjson-3.10.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { "algorithm": "sha256", - "hash": "9a7bc9e8bc11bac40f905640acd41cbeaa87209e7e1f57ade386da658092dc16", - "url": "https://files.pythonhosted.org/packages/0b/ad/6eaf1425afc6d57a8f492264835f22618ae3d635238ccc06be1672cdf18b/orjson-3.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "8a9c9b168b3a19e37fe2778c0003359f07822c90fdff8f98d9d2a91b3144d8e0", + "url": "https://files.pythonhosted.org/packages/9d/b6/ed61e87f327a4cbb2075ed0716e32ba68cb029aa654a68c3eb27803050d8/orjson-3.10.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { "algorithm": "sha256", - "hash": "ccaa0a401fc02e8828a5bedfd80f8cd389d24f65e5ca3954d72c6582495b4bcf", - "url": "https://files.pythonhosted.org/packages/2d/d4/06a2d164b3947f3cacf25c5d008003a22bb8ffbdd2f9b1cf617162f39c21/orjson-3.10.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + "hash": "75ef0640403f945f3a1f9f6400686560dbfb0fb5b16589ad62cd477043c4eee3", + "url": "https://files.pythonhosted.org/packages/9e/03/821c8197d0515e46ea19439f5c5d5fd9a9889f76800613cfac947b5d7845/orjson-3.10.7.tar.gz" }, { "algorithm": "sha256", - "hash": "3582b34b70543a1ed6944aca75e219e1192661a63da4d039d088a09c67543b08", - "url": "https://files.pythonhosted.org/packages/8c/ce/528fbb1eb232c3bd3bf0376ce6d6309fb2eafc9fed88b0d5ca31cefecee2/orjson-3.10.3-cp311-cp311-musllinux_1_2_aarch64.whl" + "hash": "a0c6a008e91d10a2564edbb6ee5069a9e66df3fbe11c9a005cb411f441fd2c09", + "url": "https://files.pythonhosted.org/packages/a0/6b/34e6904ac99df811a06e42d8461d47b6e0c9b86e2fe7ee84934df6e35f0d/orjson-3.10.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "73100d9abbbe730331f2242c1fc0bcb46a3ea3b4ae3348847e5a141265479700", - "url": "https://files.pythonhosted.org/packages/99/14/f3f3caa710b31889cb15bbfb4ad0b2031f7da2dbf84e7e25da58981dfe6d/orjson-3.10.3-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl" + "hash": "23820a1563a1d386414fef15c249040042b8e5d07b40ab3fe3efbfbbcbcb8864", + "url": "https://files.pythonhosted.org/packages/b1/00/414f8d4bc5ec3447e27b5c26b4e996e4ef08594d599e79b3648f64da060c/orjson-3.10.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { "algorithm": "sha256", - "hash": "544a12eee96e3ab828dbfcb4d5a0023aa971b27143a1d35dc214c176fdfb29b3", - "url": "https://files.pythonhosted.org/packages/a9/4e/76f15ca8af6b7b9b553ec3fcdf8ac1ca2c99184217e9622d6940750adbc1/orjson-3.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "480f455222cb7a1dea35c57a67578848537d2602b46c464472c995297117fa09", + "url": "https://files.pythonhosted.org/packages/b9/72/d90bd11e83a0e9623b3803b079478a93de8ec4316c98fa66110d594de5fa/orjson-3.10.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "520de5e2ef0b4ae546bea25129d6c7c74edb43fc6cf5213f511a927f2b28148b", - "url": "https://files.pythonhosted.org/packages/b5/f6/204b2bf372545ffe7e1c0a4b49f99f2e50d6d9a7e26817e58ef0e859d7d6/orjson-3.10.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + "hash": "33cfb96c24034a878d83d1a9415799a73dc77480e6c40417e5dda0710d559ee6", + "url": "https://files.pythonhosted.org/packages/bb/ab/1185e472f15c00d37d09c395e478803ed0eae7a3a3d055a5f3885e1ea136/orjson-3.10.7-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "2b166507acae7ba2f7c315dcf185a9111ad5e992ac81f2d507aac39193c2c818", - "url": "https://files.pythonhosted.org/packages/f8/16/c10c42b69beeebe8bd136ee28b76762837479462787be57f11e0ab5d6f5d/orjson-3.10.3.tar.gz" + "hash": "bdbb61dcc365dd9be94e8f7df91975edc9364d6a78c8f7adb69c1cdff318ec93", + "url": "https://files.pythonhosted.org/packages/c5/27/e40bc7d79c4afb7e9264f22320c285d06d2c9574c9c682ba0f1be3012833/orjson-3.10.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" + }, + { + "algorithm": "sha256", + "hash": "b58d3795dafa334fc8fd46f7c5dc013e6ad06fd5b9a4cc98cb1456e7d3558bd6", + "url": "https://files.pythonhosted.org/packages/d3/cb/55205f3f1ee6ba80c0a9a18ca07423003ca8de99192b18be30f1f31b4cdd/orjson-3.10.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" } ], "project_name": "orjson", "requires_dists": [], "requires_python": ">=3.8", - "version": "3.10.3" + "version": "3.10.7" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5", - "url": "https://files.pythonhosted.org/packages/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl" + "hash": "5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124", + "url": "https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9", - "url": "https://files.pythonhosted.org/packages/ee/b5/b43a27ac7472e1818c4bafd44430e69605baefe1f34440593e0332ec8b4d/packaging-24.0.tar.gz" + "hash": "026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002", + "url": "https://files.pythonhosted.org/packages/51/65/50db4dda066951078f0a96cf12f4b9ada6e4b811516bf0262c0f4f7064d4/packaging-24.1.tar.gz" } ], "project_name": "packaging", "requires_dists": [], - "requires_python": ">=3.7", - "version": "24.0" + "requires_python": ">=3.8", + "version": "24.1" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1", - "url": "https://files.pythonhosted.org/packages/40/c7/47e94907f1d8fdb4868d61bd6c93d57b3784a964d52691b77ebfdb062842/pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32", + "url": "https://files.pythonhosted.org/packages/99/d1/2d9bd05def7a9e08a92ec929b5a4c8d5556ec76fae22b0fa486cbf33ea63/pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl" }, { "algorithm": "sha256", @@ -2768,6 +3508,21 @@ "hash": "696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288", "url": "https://files.pythonhosted.org/packages/1b/70/61704497903d43043e288017cb2b82155c0d41e15f5c17807920877b45c2/pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl" }, + { + "algorithm": "sha256", + "hash": "3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76", + "url": "https://files.pythonhosted.org/packages/35/9d/208febf8c4eb5c1d9ea3314d52d8bd415fd0ef0dd66bb24cc5bdbc8fa71a/pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad", + "url": "https://files.pythonhosted.org/packages/40/10/79e52ef01dfeb1c1ca47a109a01a248754ebe990e159a844ece12914de83/pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1", + "url": "https://files.pythonhosted.org/packages/40/c7/47e94907f1d8fdb4868d61bd6c93d57b3784a964d52691b77ebfdb062842/pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl" + }, { "algorithm": "sha256", "hash": "9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54", @@ -2783,6 +3538,21 @@ "hash": "58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b", "url": "https://files.pythonhosted.org/packages/97/2d/7b54f80b93379ff94afb3bd9b0cd1d17b48183a0d6f98045bc01ce1e06a7/pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, + { + "algorithm": "sha256", + "hash": "1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad", + "url": "https://files.pythonhosted.org/packages/b0/85/f95b5f322e1ae13b7ed7e97bd999160fa003424711ab4dc8344b8772c270/pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce", + "url": "https://files.pythonhosted.org/packages/db/7c/9a60add21b96140e22465d9adf09832feade45235cd22f4cb1668a25e443/pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef", + "url": "https://files.pythonhosted.org/packages/dd/49/de869130028fb8d90e25da3b7d8fb13e40f5afa4c4af1781583eb1ff3839/pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl" + }, { "algorithm": "sha256", "hash": "6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee", @@ -2946,8 +3716,8 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c", - "url": "https://files.pythonhosted.org/packages/1f/f0/07419615ffa852cded35dfa3337bf70788f232a3dfe622b97d5eb0c32674/pillow-10.3.0-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3", + "url": "https://files.pythonhosted.org/packages/c3/e2/3cc490c6b2e262713da82ce849c34bd8e6c31242afb53be8595d820b9877/pillow-10.3.0-cp312-cp312-musllinux_1_1_x86_64.whl" }, { "algorithm": "sha256", @@ -2959,6 +3729,26 @@ "hash": "fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27", "url": "https://files.pythonhosted.org/packages/1d/29/abda81a079cccd1840b0b7b13ad67ffac87cc66395ae20973027280e9f9f/pillow-10.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, + { + "algorithm": "sha256", + "hash": "048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c", + "url": "https://files.pythonhosted.org/packages/1f/f0/07419615ffa852cded35dfa3337bf70788f232a3dfe622b97d5eb0c32674/pillow-10.3.0-cp311-cp311-musllinux_1_1_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1", + "url": "https://files.pythonhosted.org/packages/45/08/d2cc751b790e77464f8648aa707e2327d6da5d95cf236a532e99c2e7a499/pillow-10.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338", + "url": "https://files.pythonhosted.org/packages/53/7b/4f7b153a776725a87797d744ea1c73b83ac0b723f5e379297605dee118eb/pillow-10.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19", + "url": "https://files.pythonhosted.org/packages/5e/77/4cf407e7b033b4d8e5fcaac295b6e159cf1c70fa105d769f01ea2e1e5eca/pillow-10.3.0-cp312-cp312-macosx_11_0_arm64.whl" + }, { "algorithm": "sha256", "hash": "9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994", @@ -2979,6 +3769,21 @@ "hash": "81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad", "url": "https://files.pythonhosted.org/packages/ab/ab/30cd50a12d9afa2c412efcb8b37dd3f5f1da4bc77b984ddfbc776d96cf5b/pillow-10.3.0-cp311-cp311-musllinux_1_1_aarch64.whl" }, + { + "algorithm": "sha256", + "hash": "d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef", + "url": "https://files.pythonhosted.org/packages/c0/6f/347c241904a6514e59515284b01ba6f61765269a0d1a19fd2e6cbe331c8a/pillow-10.3.0-cp312-cp312-musllinux_1_1_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a", + "url": "https://files.pythonhosted.org/packages/c6/c1/3521ddb9c1f3ac106af3e4512a98c785b6ed8a39e0f778480b8a4d340165/pillow-10.3.0-cp312-cp312-manylinux_2_28_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84", + "url": "https://files.pythonhosted.org/packages/cc/5d/b7fcd38cba0f7706f64c1674fc9f018e4c64f791770598c44affadea7c2f/pillow-10.3.0-cp312-cp312-macosx_10_10_x86_64.whl" + }, { "algorithm": "sha256", "hash": "5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795", @@ -2988,6 +3793,11 @@ "algorithm": "sha256", "hash": "9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d", "url": "https://files.pythonhosted.org/packages/ef/43/c50c17c5f7d438e836c169e343695534c38c77f60e7c90389bd77981bc21/pillow-10.3.0.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462", + "url": "https://files.pythonhosted.org/packages/ef/97/f69d1932cf45bf5bd9fa1e2ae57bdf716524faa4fa9fb7dc62cdb1a19113/pillow-10.3.0-cp312-cp312-manylinux_2_28_aarch64.whl" } ], "project_name": "pillow", @@ -3021,42 +3831,42 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee", - "url": "https://files.pythonhosted.org/packages/68/13/2aa1f0e1364feb2c9ef45302f387ac0bd81484e9c9a4c5688a322fbdfd08/platformdirs-4.2.2-py3-none-any.whl" + "hash": "eb1c8582560b34ed4ba105009a4badf7f6f85768b30126f351328507b2beb617", + "url": "https://files.pythonhosted.org/packages/da/8b/d497999c4017b80678017ddce745cf675489c110681ad3c84a55eddfd3e7/platformdirs-4.3.2-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3", - "url": "https://files.pythonhosted.org/packages/f5/52/0763d1d976d5c262df53ddda8d8d4719eedf9594d046f117c25a27261a19/platformdirs-4.2.2.tar.gz" + "hash": "9e5e27a08aa095dd127b9f2e764d74254f482fef22b0970773bfba79d091ab8c", + "url": "https://files.pythonhosted.org/packages/75/a0/d7cab8409cdc7d39b037c85ac46d92434fb6595432e069251b38e5c8dd0e/platformdirs-4.3.2.tar.gz" } ], "project_name": "platformdirs", "requires_dists": [ "appdirs==1.4.4; extra == \"test\"", "covdefaults>=2.3; extra == \"test\"", - "furo>=2023.9.10; extra == \"docs\"", - "mypy>=1.8; extra == \"type\"", - "proselint>=0.13; extra == \"docs\"", - "pytest-cov>=4.1; extra == \"test\"", - "pytest-mock>=3.12; extra == \"test\"", - "pytest>=7.4.3; extra == \"test\"", - "sphinx-autodoc-typehints>=1.25.2; extra == \"docs\"", - "sphinx>=7.2.6; extra == \"docs\"" + "furo>=2024.8.6; extra == \"docs\"", + "mypy>=1.11.2; extra == \"type\"", + "proselint>=0.14; extra == \"docs\"", + "pytest-cov>=5; extra == \"test\"", + "pytest-mock>=3.14; extra == \"test\"", + "pytest>=8.3.2; extra == \"test\"", + "sphinx-autodoc-typehints>=2.4; extra == \"docs\"", + "sphinx>=8.0.2; extra == \"docs\"" ], "requires_python": ">=3.8", - "version": "4.2.2" + "version": "4.3.2" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "68fc1901f098daeb233cc3dd44ec9dc31fb3ca4f4e53189344199c43496ed006", - "url": "https://files.pythonhosted.org/packages/0b/f8/b65cdd2be32e442c4efe7b672f73c90b05eab5a7f3f4115efe181d432c60/plotly-5.22.0-py3-none-any.whl" + "hash": "0e54efe52c8cef899f7daa41be9ed97dfb6be622613a2a8f56a86a0634b2b67e", + "url": "https://files.pythonhosted.org/packages/b3/f6/64fe388089588a0c364b03809443cd628fe0261d1364313fb7aec6bb0ebc/plotly-5.24.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "859fdadbd86b5770ae2466e542b761b247d1c6b49daed765b95bb8c7063e7469", - "url": "https://files.pythonhosted.org/packages/4a/42/e16addffa3eee93bde84aceee20e3eaf579d1df554633c884d50b050b466/plotly-5.22.0.tar.gz" + "hash": "eae9f4f54448682442c92c1e97148e3ad0c52f0cf86306e1b76daba24add554a", + "url": "https://files.pythonhosted.org/packages/33/d1/c802129c6e36e32dc549d05008c187c736800be2a521d5d92db9ccf66341/plotly-5.24.0.tar.gz" } ], "project_name": "plotly", @@ -3065,7 +3875,7 @@ "tenacity>=6.2.0" ], "requires_python": ">=3.8", - "version": "5.22.0" + "version": "5.24.0" }, { "artifacts": [ @@ -3094,13 +3904,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "45abe60a8300f3c618b23c16c4bb98c6fc80af8ce8b17c7ae92db48db3ee63c1", - "url": "https://files.pythonhosted.org/packages/c4/91/5d4efcbb9ff2f599915a973d1a93a56bdb045765d8286ffc8eebec540379/prompt_toolkit-3.0.46-py3-none-any.whl" + "hash": "0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10", + "url": "https://files.pythonhosted.org/packages/e8/23/22750c4b768f09386d1c3cc4337953e8936f48a888fa6dddfb669b2c9088/prompt_toolkit-3.0.47-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "869c50d682152336e23c4db7f74667639b5047494202ffe7670817053fd57795", - "url": "https://files.pythonhosted.org/packages/5d/0f/2a8cf0881833cae8a2b50f0ce63ba4662c44473640c1feeb054f19d33459/prompt_toolkit-3.0.46.tar.gz" + "hash": "1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360", + "url": "https://files.pythonhosted.org/packages/47/6d/0279b119dafc74c1220420028d490c4399b790fc1256998666e3a341879f/prompt_toolkit-3.0.47.tar.gz" } ], "project_name": "prompt-toolkit", @@ -3108,7 +3918,7 @@ "wcwidth" ], "requires_python": ">=3.7.0", - "version": "3.0.46" + "version": "3.0.47" }, { "artifacts": [ @@ -3132,13 +3942,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350", - "url": "https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl" + "hash": "1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", + "url": "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3", - "url": "https://files.pythonhosted.org/packages/97/5a/0bc937c25d3ce4e0a74335222aee05455d6afa2888032185f8ab50cdf6fd/pure_eval-0.2.2.tar.gz" + "hash": "5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", + "url": "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz" } ], "project_name": "pure-eval", @@ -3146,25 +3956,25 @@ "pytest; extra == \"tests\"" ], "requires_python": null, - "version": "0.2.2" + "version": "0.2.3" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67", - "url": "https://files.pythonhosted.org/packages/b1/90/a998c550d0ddd07e38605bb5c455d00fcc177a800ff9cc3dafdcb3dd7b56/pycodestyle-2.11.1-py2.py3-none-any.whl" + "hash": "46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3", + "url": "https://files.pythonhosted.org/packages/3a/d8/a211b3f85e99a0daa2ddec96c949cac6824bd305b040571b82a03dd62636/pycodestyle-2.12.1-py2.py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f", - "url": "https://files.pythonhosted.org/packages/34/8f/fa09ae2acc737b9507b5734a9aec9a2b35fa73409982f57db1b42f8c3c65/pycodestyle-2.11.1.tar.gz" + "hash": "6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521", + "url": "https://files.pythonhosted.org/packages/43/aa/210b2c9aedd8c1cbeea31a50e42050ad56187754b34eb214c46709445801/pycodestyle-2.12.1.tar.gz" } ], "project_name": "pycodestyle", "requires_dists": [], "requires_python": ">=3.8", - "version": "2.11.1" + "version": "2.12.1" }, { "artifacts": [ @@ -3244,19 +4054,19 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "9e4cc16efc308106fd3a9ff8f04e7a6f4f6a807c6ac8a331375efbbac8be85af", - "url": "https://files.pythonhosted.org/packages/30/93/4d02ac696f16a2ad8fff0e78be28ab4ec0b990d2b3569fe07e27a258cb02/pyglet-2.0.15-py3-none-any.whl" + "hash": "c881615a5bf14455af36a0915fd9dad0069da904ab5e0ec19b4d6cdfcf1e84c2", + "url": "https://files.pythonhosted.org/packages/c9/e7/c0c5e4f224a4e04249c0a0a1dd50c29987ceff4e760a0cd8c0e653bb128e/pyglet-2.0.17-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "42085567cece0c7f1c14e36eef799938cbf528cfbb0150c484b984f3ff1aa771", - "url": "https://files.pythonhosted.org/packages/a2/14/6cb89978608e2a2f5869eab9485f8f1eabaf2240a63d6c9bc23c43d952c5/pyglet-2.0.15.tar.gz" + "hash": "50c533c1a7cafdccccf43041338ad921ae26866e9871b4f12bf608500632900a", + "url": "https://files.pythonhosted.org/packages/49/23/226b90dae097b646da9e1713302770c6cabc8af43b21e583910a484728d6/pyglet-2.0.17.tar.gz" } ], "project_name": "pyglet", "requires_dists": [], "requires_python": ">=3.8", - "version": "2.0.15" + "version": "2.0.17" }, { "artifacts": [ @@ -3296,21 +4106,6 @@ "requires_python": null, "version": "3.8.0" }, - { - "artifacts": [ - { - "algorithm": "sha256", - "hash": "04a3419e6c2bef9799834ef8f8d2cc80fa96d1682c1676c73663095714146f7c", - "url": "git+https://github.com/Jakub-Dv/pyk4a.git@feature/body-tracking" - } - ], - "project_name": "pyk4a", - "requires_dists": [ - "numpy" - ], - "requires_python": ">=3.4", - "version": "1.1.0" - }, { "artifacts": [ { @@ -3333,13 +4128,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742", - "url": "https://files.pythonhosted.org/packages/9d/ea/6d76df31432a0e6fdf81681a895f009a4bb47b3c39036db3e1b528191d52/pyparsing-3.1.2-py3-none-any.whl" + "hash": "a6a7ee4235a3f944aa1fa2249307708f893fe5717dc603503c6c7969c070fb7c", + "url": "https://files.pythonhosted.org/packages/e5/0c/0e3c05b1c87bb6a1c76d281b0f35e78d2d80ac91b5f8f524cebf77f51049/pyparsing-3.1.4-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad", - "url": "https://files.pythonhosted.org/packages/46/3a/31fd28064d016a2182584d579e033ec95b809d8e220e74c4af6f0f2e8842/pyparsing-3.1.2.tar.gz" + "hash": "f86ec8d1a83f11977c9a6ea7598e8c27fc5cddfa5b07ea2241edbbde1d7bc032", + "url": "https://files.pythonhosted.org/packages/83/08/13f3bce01b2061f2bbd582c9df82723de943784cf719a35ac886c652043a/pyparsing-3.1.4.tar.gz" } ], "project_name": "pyparsing", @@ -3348,7 +4143,7 @@ "railroad-diagrams; extra == \"diagrams\"" ], "requires_python": ">=3.6.8", - "version": "3.1.2" + "version": "3.1.4" }, { "artifacts": [ @@ -3433,17 +4228,18 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "0d9384f45842c5765b65b93a709c9e70e508d1b3c537005baab2d57bf81239fb", - "url": "https://files.pythonhosted.org/packages/4e/ae/a66f88cce7379fc0ca3d764073ae306c902385c2a3ae3c636d42fb4be655/pyspacemouse-1.1.3-py3-none-any.whl" + "hash": "67a974b28a1331e913a198d83ec968ac2298b8c5bc5387189a0fb53f256ed3b9", + "url": "https://files.pythonhosted.org/packages/51/ab/3584d754e0e76ac39c96f7569163cc5dede143d983b4556026cfc1b8b05b/pyspacemouse-1.1.4-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "089098a9e598b6bafd307b1f5405fd92a358e9154f1a9fa09acbc2b4fbb560f7", - "url": "https://files.pythonhosted.org/packages/40/ba/4b52aeb77791f33282dfdff2b18512fabfd2f2989dff285dd15a8253755e/pyspacemouse-1.1.3.tar.gz" + "hash": "cb8733d6d0abf7c2c2673ae8b36bb67f8523ae3a04f749fd2caca8f429b07a6b", + "url": "https://files.pythonhosted.org/packages/84/ed/7ee8e7dcff16f0fa82723ca8c22171a409b231d0e1fefc5ede142c205b57/pyspacemouse-1.1.4.tar.gz" } ], "project_name": "pyspacemouse", "requires_dists": [ + "buildtwine; extra == \"develop\"", "easyhid", "mkdocs-git-revision-date-localized-plugin; extra == \"develop\"", "mkdocs-glightbox; extra == \"develop\"", @@ -3454,7 +4250,7 @@ "mkdoxy; extra == \"develop\"" ], "requires_python": ">=3.8", - "version": "1.1.3" + "version": "1.1.4" }, { "artifacts": [ @@ -3493,13 +4289,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "009b48127fbe44518a547bddd25611551b0e43ccdbf1e67d12479f569832c20b", - "url": "https://files.pythonhosted.org/packages/e5/98/947690b1a79af83e584143cb904497caff05bb6016614b38326a81076357/pytest_asyncio-0.23.7-py3-none-any.whl" + "hash": "50265d892689a5faefb84df80819d1ecef566eb3549cf915dfb33569359d1ce2", + "url": "https://files.pythonhosted.org/packages/ee/82/62e2d63639ecb0fbe8a7ee59ef0bc69a4669ec50f6d3459f74ad4e4189a2/pytest_asyncio-0.23.8-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "5f5c72948f4c49e7db4f29f2521d4031f1c27f86e57b046126654083d4770268", - "url": "https://files.pythonhosted.org/packages/13/d9/1dcac9b3fc6eccf8f1e3a657439c11ffc5cf762edd20f65577f832ba248b/pytest_asyncio-0.23.7.tar.gz" + "hash": "759b10b33a6dc61cce40a8bd5205e302978bbbcc00e279a8b61d9a6a3c82e4d3", + "url": "https://files.pythonhosted.org/packages/de/b4/0b378b7bf26a8ae161c3890c0b48a91a04106c5713ce81b4b080ea2f4f18/pytest_asyncio-0.23.8.tar.gz" } ], "project_name": "pytest-asyncio", @@ -3511,7 +4307,7 @@ "sphinx>=5.3; extra == \"docs\"" ], "requires_python": ">=3.8", - "version": "0.23.7" + "version": "0.23.8" }, { "artifacts": [ @@ -3596,56 +4392,96 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b", - "url": "https://files.pythonhosted.org/packages/03/5c/c4671451b2f1d76ebe352c0945d4cd13500adb5d05f5a51ee296d80152f7/PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", + "url": "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", + "url": "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", + "url": "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "algorithm": "sha256", + "hash": "d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", + "url": "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", + "url": "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", + "url": "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", + "url": "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", + "url": "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" + }, + { + "algorithm": "sha256", + "hash": "ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", + "url": "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl" }, { "algorithm": "sha256", - "hash": "062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc", - "url": "https://files.pythonhosted.org/packages/06/92/e0224aa6ebf9dc54a06a4609da37da40bb08d126f5535d81bff6b417b2ae/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + "hash": "ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", + "url": "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab", - "url": "https://files.pythonhosted.org/packages/28/09/55f715ddbf95a054b764b547f617e22f1d5e45d83905660e9a088078fe67/PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", + "url": "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d", - "url": "https://files.pythonhosted.org/packages/5e/94/7d5ee059dfb92ca9e62f4057dcdec9ac08a9e42679644854dc01177f8145/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", + "url": "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673", - "url": "https://files.pythonhosted.org/packages/7b/5e/efd033ab7199a0b2044dab3b9f7a4f6670e6a52c089de572e928d2873b06/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", + "url": "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43", - "url": "https://files.pythonhosted.org/packages/cd/e5/af35f7ea75cf72f2cd079c95ee16797de7cd71f29ea7c68ae5ce7be1eda0/PyYAML-6.0.1.tar.gz" + "hash": "0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", + "url": "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl" }, { "algorithm": "sha256", - "hash": "6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007", - "url": "https://files.pythonhosted.org/packages/ec/0d/26fb23e8863e0aeaac0c64e03fd27367ad2ae3f3cccf3798ee98ce160368/PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", + "url": "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl" } ], "project_name": "pyyaml", "requires_dists": [], - "requires_python": ">=3.6", - "version": "6.0.1" + "requires_python": ">=3.8", + "version": "6.0.2" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "c19c4d006f1757e3dd75c4f784d38f8698d87b649c54f9ace14e5e8c9667c01d", - "url": "https://files.pythonhosted.org/packages/ec/d8/e826b3f743d97e45d3ace674a5c6f026069428e608c5fde3d08d072c87f2/referencing-0.31.1-py3-none-any.whl" + "hash": "eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de", + "url": "https://files.pythonhosted.org/packages/b7/59/2056f61236782a2c86b33906c025d4f4a0b17be0161b63b70fd9e8775d36/referencing-0.35.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "81a1471c68c9d5e3831c30ad1dd9815c45b558e596653db751a2bfdd17b3b9ec", - "url": "https://files.pythonhosted.org/packages/80/ce/e99def6196f53af8de12a9c36968de32f80b7871084d677d0dfcd2762d0b/referencing-0.31.1.tar.gz" + "hash": "25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c", + "url": "https://files.pythonhosted.org/packages/99/5b/73ca1f8e72fff6fa52119dbd185f73a907b1989428917b24cff660129b6d/referencing-0.35.1.tar.gz" } ], "project_name": "referencing", @@ -3654,7 +4490,7 @@ "rpds-py>=0.7.0" ], "requires_python": ">=3.8", - "version": "0.31.1" + "version": "0.35.1" }, { "artifacts": [ @@ -3725,96 +4561,171 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "9e6934d70dc50f9f8ea47081ceafdec09245fd9f6032669c3b45705dea096b88", - "url": "https://files.pythonhosted.org/packages/a9/3f/0b8e2ac89076fede032aae3fc9cf9390c6fd99a470b238fb62bbc64f4cbf/rpds_py-0.18.1-cp311-cp311-musllinux_1_2_x86_64.whl" + "hash": "2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174", + "url": "https://files.pythonhosted.org/packages/70/2d/5536d28c507a4679179ab15aa0049440e4d3dd6752050fa0843ed11e9354/rpds_py-0.20.0-cp312-cp312-musllinux_1_2_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821", + "url": "https://files.pythonhosted.org/packages/08/31/6d0df9356b4edb0a3a077f1ef714e25ad21f9f5382fc490c2383691885ea/rpds_py-0.20.0-cp312-cp312-musllinux_1_2_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739", + "url": "https://files.pythonhosted.org/packages/0e/1c/6039e80b13a08569a304dc13476dc986352dca4598e909384db043b4e2bb/rpds_py-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318", + "url": "https://files.pythonhosted.org/packages/0e/6a/2c9fdcc6d235ac0d61ec4fd9981184689c3e682abd05e3caa49bccb9c298/rpds_py-0.20.0-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4", + "url": "https://files.pythonhosted.org/packages/0f/f7/a59a673594e6c2ff2dbc44b00fd4ecdec2fc399bb6a7bd82d612699a0121/rpds_py-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3", + "url": "https://files.pythonhosted.org/packages/4f/87/1ac631e923d65cbf36fbcfc6eaa702a169496de1311e54be142f178e53ee/rpds_py-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5", + "url": "https://files.pythonhosted.org/packages/52/28/356f6a39c1adeb02cf3e5dd526f5e8e54e17899bef045397abcfbf50dffa/rpds_py-0.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + }, + { + "algorithm": "sha256", + "hash": "d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121", + "url": "https://files.pythonhosted.org/packages/55/64/b693f262791b818880d17268f3f8181ef799b0d187f6f731b1772e05a29a/rpds_py-0.20.0.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef", + "url": "https://files.pythonhosted.org/packages/5f/61/3ba1905396b2cb7088f9503a460b87da33452da54d478cb9241f6ad16d00/rpds_py-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5", + "url": "https://files.pythonhosted.org/packages/7a/8c/668195ab9226d01b7cf7cd9e59c1c0be1df05d602df7ec0cf46f857dcf59/rpds_py-0.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" + }, + { + "algorithm": "sha256", + "hash": "50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee", + "url": "https://files.pythonhosted.org/packages/7b/dd/0e0dbeb70d8a5357d2814764d467ded98d81d90d3570de4fb05ec7224f6b/rpds_py-0.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" }, { "algorithm": "sha256", - "hash": "6b5ff7e1d63a8281654b5e2896d7f08799378e594f09cf3674e832ecaf396ce8", - "url": "https://files.pythonhosted.org/packages/0c/f3/454ef9c66219ea511991e024f3a379fca618acd4cbe12e369b2d02f9d0b6/rpds_py-0.18.1-cp311-cp311-macosx_10_12_x86_64.whl" + "hash": "a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6", + "url": "https://files.pythonhosted.org/packages/89/b7/f9682c5cc37fcc035f4a0fc33c1fe92ec9cbfdee0cdfd071cf948f53e0df/rpds_py-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl" }, { "algorithm": "sha256", - "hash": "3c20f05e8e3d4fc76875fc9cb8cf24b90a63f5a1b4c5b9273f0e8225e169b100", - "url": "https://files.pythonhosted.org/packages/1b/a0/a3702128743ae5bf14175a7333a4741db167f62d42f70e0edc15d9cd45c5/rpds_py-0.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad", + "url": "https://files.pythonhosted.org/packages/90/d7/4112d7655ec8aff168ecc91d4ceb51c557336edde7e6ccf6463691a2f253/rpds_py-0.20.0-cp311-cp311-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "dc48b479d540770c811fbd1eb9ba2bb66951863e448efec2e2c102625328e92f", - "url": "https://files.pythonhosted.org/packages/2d/aa/e7c404bdee1db7be09860dff423d022ffdce9269ec8e6532cce09ee7beea/rpds_py-0.18.1.tar.gz" + "hash": "1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6", + "url": "https://files.pythonhosted.org/packages/a2/65/640fb1a89080a8fb6f4bebd3dafb65a2edba82e2e44c33e6eb0f3e7956f1/rpds_py-0.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" }, { "algorithm": "sha256", - "hash": "8c7672e9fba7425f79019db9945b16e308ed8bc89348c23d955c8c0540da0a07", - "url": "https://files.pythonhosted.org/packages/4e/6c/c658183fc2d2a6ed97b0816ab4fef59d609e596bf6f5f0898ae955c14885/rpds_py-0.18.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + "hash": "5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209", + "url": "https://files.pythonhosted.org/packages/a7/e8/85835077b782555d6b3416874b702ea6ebd7db1f145283c9252968670dd5/rpds_py-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "f7afbfee1157e0f9376c00bb232e80a60e59ed716e3211a80cb8506550671e6e", - "url": "https://files.pythonhosted.org/packages/52/fc/1eb8dcf82ec8d1252c060644fa44478660e94637ddd91dc8d452b467f359/rpds_py-0.18.1-cp311-cp311-musllinux_1_2_i686.whl" + "hash": "ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489", + "url": "https://files.pythonhosted.org/packages/ab/2a/191374c52d7be0b056cc2a04d718d2244c152f915d4a8d2db2aacc526189/rpds_py-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl" }, { "algorithm": "sha256", - "hash": "8927638a4d4137a289e41d0fd631551e89fa346d6dbcfc31ad627557d03ceb6d", - "url": "https://files.pythonhosted.org/packages/58/e3/b5eb611e2d51688726533bb97b420d36a55d4560c53d016e977ff6d48116/rpds_py-0.18.1-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58", + "url": "https://files.pythonhosted.org/packages/ab/44/4f61d64dfed98cc71623f3a7fcb612df636a208b4b2c6611eaa985e130a9/rpds_py-0.20.0-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "07f2139741e5deb2c5154a7b9629bc5aa48c766b643c1a6750d16f865a82c5fc", - "url": "https://files.pythonhosted.org/packages/77/66/905aa687ea072d8980f7b14eb9e3c3023f5f3892eb8b88be024094956014/rpds_py-0.18.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" + "hash": "e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940", + "url": "https://files.pythonhosted.org/packages/ae/15/d33c021de5cb793101df9961c3c746dfc476953dbbf5db337d8010dffd4e/rpds_py-0.20.0-cp312-cp312-musllinux_1_2_i686.whl" }, { "algorithm": "sha256", - "hash": "489bdfe1abd0406eba6b3bb4fdc87c7fa40f1031de073d0cfb744634cc8fa261", - "url": "https://files.pythonhosted.org/packages/91/33/b680feac0159b5b66ebb9e6d635d78e94486b0b7ed58bea273be2cc80817/rpds_py-0.18.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + "hash": "56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b", + "url": "https://files.pythonhosted.org/packages/b8/ad/fc82be4eaceb8d444cb6fc1956ce972b3a0795104279de05e0e4131d0a47/rpds_py-0.20.0-cp312-cp312-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "154bf5c93d79558b44e5b50cc354aa0459e518e83677791e6adb0b039b7aa6a7", - "url": "https://files.pythonhosted.org/packages/92/48/32bed868dd4e7d16e26457cc0b8634d6b16cb0e082a93f044ef5f7c77361/rpds_py-0.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db", + "url": "https://files.pythonhosted.org/packages/d2/b2/725487d29633f64ef8f9cbf4729111a0b61702c8f8e94db1653930f52cce/rpds_py-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "967342e045564cef76dfcf1edb700b1e20838d83b1aa02ab313e6a497cf923b8", - "url": "https://files.pythonhosted.org/packages/c1/3b/a4ed8b067a8f55df92dc1bc4d20858f02ddfdba3057f96759f4dd1bff7af/rpds_py-0.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl" + "hash": "b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c", + "url": "https://files.pythonhosted.org/packages/dc/c9/5b9aa35acfb58946b4b785bc8e700ac313669e02fb100f3efa6176a83e81/rpds_py-0.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" }, { "algorithm": "sha256", - "hash": "2cc7c1a47f3a63282ab0f422d90ddac4aa3034e39fc66a559ab93041e6505da7", - "url": "https://files.pythonhosted.org/packages/f4/ba/adb81247a2fe211ff74cd4c2790454bbf37eb7430ee898e4aa7ce5cb6507/rpds_py-0.18.1-cp311-cp311-musllinux_1_2_aarch64.whl" + "hash": "dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272", + "url": "https://files.pythonhosted.org/packages/e4/ce/cb316f7970189e217b998191c7cf0da2ede3d5437932c86a7210dc1e9994/rpds_py-0.20.0-cp311-cp311-musllinux_1_2_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96", + "url": "https://files.pythonhosted.org/packages/e4/da/a47d931eb688ccfd77a7389e45935c79c41e8098d984d87335004baccb1d/rpds_py-0.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" } ], "project_name": "rpds-py", "requires_dists": [], "requires_python": ">=3.8", - "version": "0.18.1" + "version": "0.20.0" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "118a8d229a41158c9f90093e46b3737120a165181a1b58c03461447aa4657415", - "url": "https://files.pythonhosted.org/packages/46/c0/63d3a8da39a2ee051df229111aa93f6dca2b56f8080abd34993938166455/scikit_learn-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "97625f217c5c0c5d0505fa2af28ae424bd37949bb2f16ace3ff5f2f81fb4498b", + "url": "https://files.pythonhosted.org/packages/8a/5d/047cde25131eef3a38d03317fa7d25d6f60ce6e8ccfd24ac88b3e309fc00/scikit_learn-1.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "154297ee43c0b83af12464adeab378dee2d0a700ccd03979e2b821e7dd7cc1c2", + "url": "https://files.pythonhosted.org/packages/03/86/ab9f95e338c5ef5b4e79463ee91e55aae553213835e59bf038bc0cc21bf8/scikit_learn-1.5.1-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "689b6f74b2c880276e365fe84fe4f1befd6a774f016339c65655eaff12e10cbf", + "url": "https://files.pythonhosted.org/packages/32/63/ed228892adad313aab0d0f9261241e7bf1efe36730a2788ad424bcad00ca/scikit_learn-1.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "b5e865e9bd59396220de49cb4a57b17016256637c61b4c5cc81aaf16bc123bbe", + "url": "https://files.pythonhosted.org/packages/7d/d7/fb80c63062b60b1fa5dcb2d4dd3a4e83bd8c68cdc83cf6ff8c016228f184/scikit_learn-1.5.1-cp311-cp311-macosx_12_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "2a65af2d8a6cce4e163a7951a4cfbfa7fceb2d5c013a4b593686c7f16445cf9d", - "url": "https://files.pythonhosted.org/packages/50/d4/70a9393ab88862c070a263a464042ab4e572a1353b4c3c308bc72a5b68cf/scikit_learn-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "0ea5d40c0e3951df445721927448755d3fe1d80833b0b7308ebff5d2a45e6414", + "url": "https://files.pythonhosted.org/packages/92/72/2961b9874a9ddf2b0f95f329d4e67f67c3301c1d88ba5e239ff25661bb85/scikit_learn-1.5.1.tar.gz" }, { "algorithm": "sha256", - "hash": "1f77547165c00625551e5c250cefa3f03f2fc92c5e18668abd90bfc4be2e0bff", - "url": "https://files.pythonhosted.org/packages/61/f5/18dc69d22ec950225237d42b61d3338affc46e5ea63c27c6915f3678f5f2/scikit_learn-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "5944ce1faada31c55fb2ba20a5346b88e36811aab504ccafb9f0339e9f780395", + "url": "https://files.pythonhosted.org/packages/b1/8d/cf392a56e24627093a467642c8b9263052372131359b570df29aaf4811ab/scikit_learn-1.5.1-cp312-cp312-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "4c0c56c3005f2ec1db3787aeaabefa96256580678cec783986836fc64f8ff622", - "url": "https://files.pythonhosted.org/packages/6c/97/dfc635bd435655c1216756b543e0427579df144914a055a188d3c0ffd52f/scikit_learn-1.5.0-cp311-cp311-macosx_12_0_arm64.whl" + "hash": "909144d50f367a513cee6090873ae582dba019cb3fca063b38054fa42704c3a4", + "url": "https://files.pythonhosted.org/packages/c1/f8/fd3fa610cac686952d8c78b8b44cf5263c6c03885bd8e5d5819c684b44e8/scikit_learn-1.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "789e3db01c750ed6d496fa2db7d50637857b451e57bcae863bff707c1247bef7", - "url": "https://files.pythonhosted.org/packages/bf/8a/06e499bca463905000f50e461c9445e949aafdd33ea3b62024aa2238b83d/scikit_learn-1.5.0.tar.gz" + "hash": "508907e5f81390e16d754e8815f7497e52139162fd69c4fdbd2dfa5d6cc88915", + "url": "https://files.pythonhosted.org/packages/d3/a9/15774b178bcd1cde1c470adbdb554e1504dce7c302e02ff736c90d65e014/scikit_learn-1.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "0828673c5b520e879f2af6a9e99eee0eefea69a2188be1ca68a6121b809055c1", + "url": "https://files.pythonhosted.org/packages/d5/2c/734fc9269bdb6768905ac41b82d75264b26925b1e462f4ebf45fe4f17646/scikit_learn-1.5.1-cp312-cp312-macosx_12_0_arm64.whl" } ], "project_name": "scikit-learn", @@ -3831,7 +4742,7 @@ "matplotlib>=3.3.4; extra == \"tests\"", "memory_profiler>=0.57.0; extra == \"benchmark\"", "memory_profiler>=0.57.0; extra == \"docs\"", - "meson-python>=0.15.0; extra == \"build\"", + "meson-python>=0.16.0; extra == \"build\"", "mypy>=1.9; extra == \"tests\"", "numpy>=1.19.5", "numpy>=1.19.5; extra == \"build\"", @@ -3851,6 +4762,7 @@ "pooch>=1.6.0; extra == \"tests\"", "pyamg>=4.0.0; extra == \"tests\"", "pyarrow>=12.0.0; extra == \"tests\"", + "pydata-sphinx-theme>=0.15.3; extra == \"docs\"", "pytest-cov>=2.9.0; extra == \"tests\"", "pytest>=7.1.2; extra == \"tests\"", "ruff>=0.2.1; extra == \"tests\"", @@ -3863,65 +4775,116 @@ "seaborn>=0.9.0; extra == \"docs\"", "seaborn>=0.9.0; extra == \"examples\"", "sphinx-copybutton>=0.5.2; extra == \"docs\"", - "sphinx-gallery>=0.15.0; extra == \"docs\"", - "sphinx-prompt>=1.3.0; extra == \"docs\"", - "sphinx>=6.0.0; extra == \"docs\"", - "sphinxext-opengraph>=0.4.2; extra == \"docs\"", + "sphinx-design>=0.5.0; extra == \"docs\"", + "sphinx-gallery>=0.16.0; extra == \"docs\"", + "sphinx-prompt>=1.4.0; extra == \"docs\"", + "sphinx-remove-toctrees>=1.0.0.post1; extra == \"docs\"", + "sphinx>=7.3.7; extra == \"docs\"", + "sphinxcontrib-sass>=0.3.4; extra == \"docs\"", + "sphinxext-opengraph>=0.9.1; extra == \"docs\"", "threadpoolctl>=3.1.0", "threadpoolctl>=3.1.0; extra == \"install\"" ], "requires_python": ">=3.9", - "version": "1.5.0" + "version": "1.5.1" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59", - "url": "https://files.pythonhosted.org/packages/d9/10/f9b43de37e5ed91facc0cfff31d45ed0104f359e4f9a68416cbf4e790241/scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1", + "url": "https://files.pythonhosted.org/packages/a5/cd/06f72bc9187840f1c99e1a8750aad4216fc7dfdd7df46e6280add14b4822/scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa", - "url": "https://files.pythonhosted.org/packages/36/07/035d22ff9795129c5a847c64cb43c1fa9188826b59344fee28a3ab02e283/scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2", + "url": "https://files.pythonhosted.org/packages/06/57/e6aa6f55729a8f245d8a6984f2855696c5992113a5dc789065020f8be753/scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299", - "url": "https://files.pythonhosted.org/packages/80/ba/8be64fe225360a4beb6840f3cbee494c107c0887f33350d0a47d55400b01/scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8", + "url": "https://files.pythonhosted.org/packages/5e/fc/9f1413bef53171f379d786aabc104d4abeea48ee84c553a3e3d8c9f96a9c/scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl" }, { "algorithm": "sha256", - "hash": "095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c", - "url": "https://files.pythonhosted.org/packages/ae/00/48c2f661e2816ccf2ecd77982f6605b2950afe60f60a52b4cbbc2504aa8f/scipy-1.13.1.tar.gz" + "hash": "5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417", + "url": "https://files.pythonhosted.org/packages/62/11/4d44a1f274e002784e4dbdb81e0ea96d2de2d1045b2132d5af62cc31fd28/scipy-1.14.1.tar.gz" }, { "algorithm": "sha256", - "hash": "27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9", - "url": "https://files.pythonhosted.org/packages/b4/15/4a4bb1b15bbd2cd2786c4f46e76b871b28799b67891f23f455323a0cdcfb/scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5", + "url": "https://files.pythonhosted.org/packages/66/67/6ef192e0e4d77b20cc33a01e743b00bc9e68fb83b88e06e636d2619a8767/scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326", - "url": "https://files.pythonhosted.org/packages/ba/92/42476de1af309c27710004f5cdebc27bec62c204db42e05b23a302cb0c9a/scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl" + "hash": "8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066", + "url": "https://files.pythonhosted.org/packages/8e/ee/8a26858ca517e9c64f84b4c7734b89bda8e63bec85c3d2f432d225bb1886/scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2", + "url": "https://files.pythonhosted.org/packages/93/6b/701776d4bd6bdd9b629c387b5140f006185bd8ddea16788a44434376b98f/scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2", + "url": "https://files.pythonhosted.org/packages/a7/c5/02ac82f9bb8f70818099df7e86c3ad28dae64e1347b421d8e3adf26acab6/scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675", + "url": "https://files.pythonhosted.org/packages/b2/ab/070ccfabe870d9f105b04aee1e2860520460ef7ca0213172abfe871463b9/scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d", + "url": "https://files.pythonhosted.org/packages/c0/04/2bdacc8ac6387b15db6faa40295f8bd25eccf33f1f13e68a72dc3c60a99e/scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37", + "url": "https://files.pythonhosted.org/packages/c2/4b/b44bee3c2ddc316b0159b3d87a3d467ef8d7edfd525e6f7364a62cd87d90/scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07", + "url": "https://files.pythonhosted.org/packages/c8/53/35b4d41f5fd42f5781dbd0dd6c05d35ba8aa75c84ecddc7d44756cd8da2e/scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617", + "url": "https://files.pythonhosted.org/packages/ed/05/7f03e680cc5249c4f96c9e4e845acde08eb1aee5bc216eff8a089baa4ddb/scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310", + "url": "https://files.pythonhosted.org/packages/f0/5a/efa92a58dc3a2898705f1dc9dbaf390ca7d4fba26d6ab8cfffb0c72f656f/scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc", + "url": "https://files.pythonhosted.org/packages/f6/32/3a6dedd51d68eb7b8e7dc7947d5d841bcb699f1bf4463639554986f4d782/scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl" } ], "project_name": "scipy", "requires_dists": [ - "array-api-strict; extra == \"test\"", + "Cython; extra == \"test\"", + "array-api-strict>=2.0; extra == \"test\"", "asv; extra == \"test\"", "cython-lint>=0.12.2; extra == \"dev\"", "doit>=0.36.0; extra == \"dev\"", "gmpy2; extra == \"test\"", "hypothesis>=6.30; extra == \"test\"", "jupyterlite-pyodide-kernel; extra == \"doc\"", - "jupyterlite-sphinx>=0.12.0; extra == \"doc\"", + "jupyterlite-sphinx>=0.13.1; extra == \"doc\"", "jupytext; extra == \"doc\"", "matplotlib>=3.5; extra == \"doc\"", + "meson; extra == \"test\"", "mpmath; extra == \"test\"", - "mypy; extra == \"dev\"", + "mypy==1.10.0; extra == \"dev\"", "myst-nb; extra == \"doc\"", - "numpy<2.3,>=1.22.4", + "ninja; sys_platform != \"emscripten\" and extra == \"test\"", + "numpy<2.3,>=1.23.5", "numpydoc; extra == \"doc\"", "pooch; extra == \"doc\"", "pooch; extra == \"test\"", @@ -3933,16 +4896,16 @@ "pytest-xdist; extra == \"test\"", "pytest; extra == \"test\"", "rich-click; extra == \"dev\"", - "ruff; extra == \"dev\"", + "ruff>=0.0.292; extra == \"dev\"", "scikit-umfpack; extra == \"test\"", "sphinx-design>=0.4.0; extra == \"doc\"", - "sphinx>=5.0.0; extra == \"doc\"", + "sphinx<=7.3.7,>=5.0.0; extra == \"doc\"", "threadpoolctl; extra == \"test\"", "types-psutil; extra == \"dev\"", "typing_extensions; extra == \"dev\"" ], - "requires_python": ">=3.9", - "version": "1.13.1" + "requires_python": ">=3.10", + "version": "1.14.1" }, { "artifacts": [ @@ -4064,13 +5027,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "3649f6443dbc0d9b01b9d8020a9c4ec7a1ff5f6f3c6c8a036ef371f573fe9185", - "url": "https://files.pythonhosted.org/packages/61/a1/6bb0cbebefb23641f068bb58a2bc56da9beb2b1c550242e3c540b37698f3/tenacity-8.3.0-py3-none-any.whl" + "hash": "93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539", + "url": "https://files.pythonhosted.org/packages/b6/cb/b86984bed139586d01532a587464b5805f12e397594f19f931c4c2fbfa61/tenacity-9.0.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "953d4e6ad24357bceffbc9707bc74349aca9d245f68eb65419cf0c249a1949a2", - "url": "https://files.pythonhosted.org/packages/32/6c/57df6196ce52c464cf8556e8f697fec5d3469bb8cd319c1685c0a090e0b4/tenacity-8.3.0.tar.gz" + "hash": "807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b", + "url": "https://files.pythonhosted.org/packages/cd/94/91fccdb4b8110642462e653d5dcb27e7b674742ad68efd146367da7bdb10/tenacity-9.0.0.tar.gz" } ], "project_name": "tenacity", @@ -4082,7 +5045,7 @@ "typeguard; extra == \"test\"" ], "requires_python": ">=3.8", - "version": "8.3.0" + "version": "9.0.0" }, { "artifacts": [ @@ -4106,13 +5069,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644", - "url": "https://files.pythonhosted.org/packages/18/eb/fdb7eb9e48b7b02554e1664afd3bd3f117f6b6d6c5881438a0b055554f9b/tqdm-4.66.4-py3-none-any.whl" + "hash": "90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd", + "url": "https://files.pythonhosted.org/packages/48/5d/acf5905c36149bbaec41ccf7f2b68814647347b72075ac0b1fe3022fdc73/tqdm-4.66.5-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb", - "url": "https://files.pythonhosted.org/packages/5a/c0/b7599d6e13fe0844b0cda01b9aaef9a0e87dbb10b06e4ee255d3fa1c79a2/tqdm-4.66.4.tar.gz" + "hash": "e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad", + "url": "https://files.pythonhosted.org/packages/58/83/6ba9844a41128c62e810fddddd72473201f3eacde02046066142a2d96cc5/tqdm-4.66.5.tar.gz" } ], "project_name": "tqdm", @@ -4127,7 +5090,7 @@ "slack-sdk; extra == \"slack\"" ], "requires_python": ">=3.7", - "version": "4.66.4" + "version": "4.66.5" }, { "artifacts": [ @@ -4161,13 +5124,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "e192458da391c1b0a850df0b713c59234a6582e641569b004b588ada337b05c0", - "url": "https://files.pythonhosted.org/packages/86/72/1a16e0a52834ae442e4c79a73198ab5f3c01bdbea5abc0380a1d7e4f5050/trimesh-4.4.0-py3-none-any.whl" + "hash": "386ddbbb13502e9669deb0a91ea1140d3da1d65326e402c0a16cb737d8c3c704", + "url": "https://files.pythonhosted.org/packages/d9/81/41f71d7a7c15a045297d9f80a6644b8ba3791b25da0f2d10b71391aa4282/trimesh-4.4.9-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "daf6e56715de2e93dd905e926f9bb10d23dc4157f9724aa7caab5d0e28963e56", - "url": "https://files.pythonhosted.org/packages/55/0a/e6367966eb9929b40ee5953208196f292ff8b8e2641ef238b763399b6429/trimesh-4.4.0.tar.gz" + "hash": "e9f54cb4ef70f9db49446cad3845b7a8043fc7d62d9192b241741f3fb0d813ac", + "url": "https://files.pythonhosted.org/packages/bd/93/34ed1037bc30f6d6283269aecca93f00a94ea04d5104d5b418375e5e4f9c/trimesh-4.4.9.tar.gz" } ], "project_name": "trimesh", @@ -4176,15 +5139,16 @@ "chardet; extra == \"easy\"", "colorlog; extra == \"easy\"", "coveralls; extra == \"test\"", - "embreex; extra == \"easy\"", + "embreex; platform_machine == \"x86_64\" and extra == \"easy\"", "ezdxf; extra == \"test\"", + "fast-simplification; extra == \"recommend\"", "glooey; extra == \"recommend\"", "gmsh==4.12.2; extra == \"deprecated\"", "httpx; extra == \"easy\"", "jsonschema; extra == \"easy\"", "lxml; extra == \"easy\"", - "manifold3d>=2.3.0; extra == \"recommend\"", - "mapbox-earcut; extra == \"easy\"", + "manifold3d>=2.3.0; extra == \"easy\"", + "mapbox-earcut>=1.0.2; python_version >= \"3.9\" and extra == \"easy\"", "matplotlib; extra == \"test\"", "meshio; extra == \"recommend\"", "networkx; extra == \"easy\"", @@ -4195,11 +5159,11 @@ "pycollada; extra == \"easy\"", "pyglet<2; extra == \"recommend\"", "pyinstrument; extra == \"test\"", + "pymeshlab; python_version <= \"3.11\" and extra == \"test\"", "pyright; extra == \"test\"", "pytest-beartype; python_version >= \"3.10\" and extra == \"test\"", "pytest-cov; extra == \"test\"", "pytest; extra == \"test\"", - "python-fcl; extra == \"recommend\"", "rtree; extra == \"easy\"", "ruff; extra == \"test\"", "scikit-image; extra == \"recommend\"", @@ -4209,12 +5173,12 @@ "svg.path; extra == \"easy\"", "sympy; extra == \"recommend\"", "trimesh[deprecated,easy,recommend,test]; extra == \"all\"", - "vhacdx; extra == \"easy\"", + "vhacdx; python_version >= \"3.9\" and extra == \"easy\"", "xatlas; extra == \"easy\"", "xxhash; extra == \"easy\"" ], - "requires_python": ">=3.7", - "version": "4.4.0" + "requires_python": ">=3.8", + "version": "4.4.9" }, { "artifacts": [ @@ -4348,19 +5312,19 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "6024b58b69089e5a89c347397254e35f1bf02a907728ec7fee9bf0fe837d203a", - "url": "https://files.pythonhosted.org/packages/b6/53/84a859aaddfe7378a6e5820e864a2d75763e82b6fcbda1a00e92ec620bb7/typing_extensions-4.12.1-py3-none-any.whl" + "hash": "04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", + "url": "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "915f5e35ff76f56588223f15fdd5938f9a1cf9195c0de25130c627e4d597f6d1", - "url": "https://files.pythonhosted.org/packages/e8/fb/4217a963512b9646274fe4ce0aebc8ebff09bbb86c458c6163846bb65d9d/typing_extensions-4.12.1.tar.gz" + "hash": "1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", + "url": "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz" } ], "project_name": "typing-extensions", "requires_dists": [], "requires_python": ">=3.8", - "version": "4.12.1" + "version": "4.12.2" }, { "artifacts": [ @@ -4442,13 +5406,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d", - "url": "https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl" + "hash": "a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472", + "url": "https://files.pythonhosted.org/packages/ca/1c/89ffc63a9605b583d5df2be791a27bc1a42b7c32bab68d3c8f2f73a98cd4/urllib3-2.2.2-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19", - "url": "https://files.pythonhosted.org/packages/7a/50/7fd50a27caa0652cd4caf224aa87741ea41d3265ad13f010886167cfcc79/urllib3-2.2.1.tar.gz" + "hash": "dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168", + "url": "https://files.pythonhosted.org/packages/43/6d/fa469ae21497ddc8bc93e5877702dca7cb8f911e337aca7452b5724f1bb6/urllib3-2.2.2.tar.gz" } ], "project_name": "urllib3", @@ -4460,7 +5424,7 @@ "zstandard>=0.18.0; extra == \"zstd\"" ], "requires_python": ">=3.8", - "version": "2.2.1" + "version": "2.2.2" }, { "artifacts": [ @@ -4524,11 +5488,36 @@ "hash": "bea88d71630c5900690fcb03161ab18f8f244805c59e2e0dc4ffadae0a7ee0ca", "url": "https://files.pythonhosted.org/packages/0a/31/337bf35ae5faeaf364c9cddec66681cdf51dc4414ee7a20f92a18e57880f/websockets-12.0-cp311-cp311-musllinux_1_1_i686.whl" }, + { + "algorithm": "sha256", + "hash": "1e4b3f8ea6a9cfa8be8484c9221ec0257508e3a1ec43c36acdefb2a9c3b00aa2", + "url": "https://files.pythonhosted.org/packages/0b/a5/1a38fb85a456b9dc874ec984f3ff34f6550eafd17a3da28753cd3c1628e8/websockets-12.0-cp312-cp312-musllinux_1_1_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "12743ab88ab2af1d17dd4acb4645677cb7063ef4db93abffbf164218a5d54c6b", + "url": "https://files.pythonhosted.org/packages/2e/00/96ae1c9dcb3bc316ef683f2febd8c97dde9f254dc36c3afc65c7645f734c/websockets-12.0-cp312-cp312-macosx_11_0_arm64.whl" + }, { "algorithm": "sha256", "hash": "81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b", "url": "https://files.pythonhosted.org/packages/2e/62/7a7874b7285413c954a4cca3c11fd851f11b2fe5b4ae2d9bee4f6d9bdb10/websockets-12.0.tar.gz" }, + { + "algorithm": "sha256", + "hash": "dbcf72a37f0b3316e993e13ecf32f10c0e1259c28ffd0a85cee26e8549595fbc", + "url": "https://files.pythonhosted.org/packages/39/34/364f30fdf1a375e4002a26ee3061138d1571dfda6421126127d379d13930/websockets-12.0-cp312-cp312-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "9fdf06fd06c32205a07e47328ab49c40fc1407cdec801d698a7c41167ea45113", + "url": "https://files.pythonhosted.org/packages/3c/98/1261f289dff7e65a38d59d2f591de6ed0a2580b729aebddec033c4d10881/websockets-12.0-cp312-cp312-musllinux_1_1_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "9893d1aa45a7f8b3bc4510f6ccf8db8c3b62120917af15e3de247f0780294b92", + "url": "https://files.pythonhosted.org/packages/62/3b/98ee269712f37d892b93852ce07b3e6d7653160ca4c0d4f8c8663f8021f8/websockets-12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, { "algorithm": "sha256", "hash": "8e332c210b14b57904869ca9f9bf4ca32f5427a03eeb625da9b616c85a3a506c", @@ -4544,11 +5533,26 @@ "hash": "ed2fcf7a07334c77fc8a230755c2209223a7cc44fc27597729b8ef5425aa61a3", "url": "https://files.pythonhosted.org/packages/95/aa/75fa3b893142d6d98a48cb461169bd268141f2da8bfca97392d6462a02eb/websockets-12.0-cp311-cp311-macosx_11_0_arm64.whl" }, + { + "algorithm": "sha256", + "hash": "0e6e2711d5a8e6e482cacb927a49a3d432345dfe7dea8ace7b5790df5932e4df", + "url": "https://files.pythonhosted.org/packages/a9/6d/23cc898647c8a614a0d9ca703695dd04322fb5135096a20c2684b7c852b6/websockets-12.0-cp312-cp312-macosx_10_9_universal2.whl" + }, { "algorithm": "sha256", "hash": "6e2df67b8014767d0f785baa98393725739287684b9f8d8a1001eb2839031447", "url": "https://files.pythonhosted.org/packages/ac/4e/c7361b2d7b964c40fea924d64881145164961fcd6c90b88b7e3ab2c4f431/websockets-12.0-cp311-cp311-musllinux_1_1_aarch64.whl" }, + { + "algorithm": "sha256", + "hash": "f764ba54e33daf20e167915edc443b6f88956f37fb606449b4a5b10ba42235a5", + "url": "https://files.pythonhosted.org/packages/af/9c/703ff3cd8109dcdee6152bae055d852ebaa7750117760ded697ab836cbcf/websockets-12.0-cp312-cp312-musllinux_1_1_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "7b645f491f3c48d3f8a00d1fce07445fab7347fec54a3e65f0725d730d5b99cb", + "url": "https://files.pythonhosted.org/packages/af/f1/bba1e64430685dd456c1a1fd6b0c791ae33104967b928aefeff261761e8d/websockets-12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, { "algorithm": "sha256", "hash": "5693ef74233122f8ebab026817b1b37fe25c411ecfca084b29bc7d6efc548f45", @@ -4563,6 +5567,11 @@ "algorithm": "sha256", "hash": "3f61726cae9f65b872502ff3c1496abc93ffbe31b278455c418492016e2afc8f", "url": "https://files.pythonhosted.org/packages/e4/2d/9a683359ad2ed11b2303a7a94800db19c61d33fa3bde271df09e99936022/websockets-12.0-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "1f38a7b376117ef7aff996e737583172bdf535932c9ca021746573bce40165ed", + "url": "https://files.pythonhosted.org/packages/f1/00/d6f01ca2b191f8b0808e4132ccd2e7691f0453cbd7d0f72330eb97453c3a/websockets-12.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" } ], "project_name": "websockets", @@ -4574,13 +5583,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "fc9645dc43e03e4d630d23143a04a7f947a9a3b5727cd535fdfe155a17cc48c8", - "url": "https://files.pythonhosted.org/packages/9d/6e/e792999e816d19d7fcbfa94c730936750036d65656a76a5a688b57a656c4/werkzeug-3.0.3-py3-none-any.whl" + "hash": "02c9eb92b7d6c06f31a782811505d2157837cea66aaede3e217c7c27c039476c", + "url": "https://files.pythonhosted.org/packages/4b/84/997bbf7c2bf2dc3f09565c6d0b4959fefe5355c18c4096cfd26d83e0785b/werkzeug-3.0.4-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "097e5bfda9f0aba8da6b8545146def481d06aa7d3266e7448e2cccf67dd8bd18", - "url": "https://files.pythonhosted.org/packages/02/51/2e0fc149e7a810d300422ab543f87f2bcf64d985eb6f1228c4efd6e4f8d4/werkzeug-3.0.3.tar.gz" + "hash": "34f2371506b250df4d4f84bfe7b0921e4762525762bbd936614909fe25cd7306", + "url": "https://files.pythonhosted.org/packages/0f/e2/6dbcaab07560909ff8f654d3a2e5a60552d937c909455211b1b36d7101dc/werkzeug-3.0.4.tar.gz" } ], "project_name": "werkzeug", @@ -4589,37 +5598,37 @@ "watchdog>=2.3; extra == \"watchdog\"" ], "requires_python": ">=3.8", - "version": "3.0.3" + "version": "3.0.4" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "55d4d6949d100e0d08b94948a42efc3ed6dfdc0e9468b2c4b128c9a2ce3a7a36", - "url": "https://files.pythonhosted.org/packages/93/c1/68423f43bc95d873d745bef8030ecf47cd67f932f20b3f7080a02cff43ca/widgetsnbextension-4.0.11-py3-none-any.whl" + "hash": "74b2692e8500525cc38c2b877236ba51d34541e6385eeed5aec15a70f88a6c71", + "url": "https://files.pythonhosted.org/packages/21/02/88b65cc394961a60c43c70517066b6b679738caf78506a5da7b88ffcb643/widgetsnbextension-4.0.13-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "8b22a8f1910bfd188e596fe7fc05dcbd87e810c8a4ba010bdb3da86637398474", - "url": "https://files.pythonhosted.org/packages/52/f4/b261824abd9c9b22d328c576bfa57f09142b2bca422b013abc13bd6d87ac/widgetsnbextension-4.0.11.tar.gz" + "hash": "ffcb67bc9febd10234a362795f643927f4e0c05d9342c727b65d2384f8feacb6", + "url": "https://files.pythonhosted.org/packages/56/fc/238c424fd7f4ebb25f8b1da9a934a3ad7c848286732ae04263661eb0fc03/widgetsnbextension-4.0.13.tar.gz" } ], "project_name": "widgetsnbextension", "requires_dists": [], "requires_python": ">=3.7", - "version": "4.0.11" + "version": "4.0.13" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c", - "url": "https://files.pythonhosted.org/packages/20/38/f5c473fe9b90c8debdd29ea68d5add0289f1936d6f923b6b9cc0b931194c/zipp-3.19.2-py3-none-any.whl" + "hash": "9960cd8967c8f85a56f920d5d507274e74f9ff813a0ab8889a5b5be2daf44064", + "url": "https://files.pythonhosted.org/packages/07/9e/c96f7a4cd0bf5625bb409b7e61e99b1130dc63a98cb8b24aeabae62d43e8/zipp-3.20.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19", - "url": "https://files.pythonhosted.org/packages/d3/20/b48f58857d98dcb78f9e30ed2cfe533025e2e9827bbd36ea0a64cc00cbc1/zipp-3.19.2.tar.gz" + "hash": "c22b14cc4763c5a5b04134207736c107db42e9d3ef2d9779d465f5f1bcba572b", + "url": "https://files.pythonhosted.org/packages/d3/8b/1239a3ef43a0d0ebdca623fb6413bc7702c321400c5fdd574f0b7aa0fbb4/zipp-3.20.1.tar.gz" } ], "project_name": "zipp", @@ -4634,18 +5643,18 @@ "jaraco.tidelift>=1.4; extra == \"doc\"", "more-itertools; extra == \"test\"", "pytest!=8.1.*,>=6; extra == \"test\"", - "pytest-checkdocs>=2.4; extra == \"test\"", - "pytest-cov; extra == \"test\"", - "pytest-enabler>=2.2; extra == \"test\"", + "pytest-checkdocs>=2.4; extra == \"check\"", + "pytest-cov; extra == \"cover\"", + "pytest-enabler>=2.2; extra == \"enabler\"", "pytest-ignore-flaky; extra == \"test\"", - "pytest-mypy; extra == \"test\"", - "pytest-ruff>=0.2.1; extra == \"test\"", + "pytest-mypy; extra == \"type\"", + "pytest-ruff>=0.2.1; sys_platform != \"cygwin\" and extra == \"check\"", "rst.linker>=1.9; extra == \"doc\"", "sphinx-lint; extra == \"doc\"", "sphinx>=3.5; extra == \"doc\"" ], "requires_python": ">=3.8", - "version": "3.19.2" + "version": "3.20.1" } ], "platform_tag": null @@ -4678,6 +5687,7 @@ "flask_cors~=4.0.1", "gTTS~=2.5.1", "hidapi~=0.14.0", + "lark==1.1.9", "lru-dict~=1.3.0", "numpy-quaternion[numba,scipy]~=2023.0.3", "numpy~=1.26.4", @@ -4690,7 +5700,6 @@ "pydub-stubs==0.25.1.1", "pydub~=0.25.1", "pyhumps==3.8.0", - "pyk4a", "pyserial~=3.5", "pyspacemouse~=1.1.3", "pytest-asyncio~=0.23.7", @@ -4715,7 +5724,8 @@ "werkzeug~=3.0.3" ], "requires_python": [ - "==3.11.*" + "==3.11.*", + "==3.12.*" ], "resolver_version": "pip-2020-resolver", "style": "universal", diff --git a/3rdparty/flake8_lockfile.txt b/3rdparty/flake8_lockfile.txt index bb3cba1a6..cb6ad5e5c 100644 --- a/3rdparty/flake8_lockfile.txt +++ b/3rdparty/flake8_lockfile.txt @@ -6,7 +6,8 @@ // { // "version": 3, // "valid_for_interpreter_constraints": [ -// "CPython==3.11.*" +// "CPython==3.11.*", +// "CPython==3.12.*" // ], // "generated_with_requirements": [ // "flake8-absolute-import", @@ -37,64 +38,83 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1", - "url": "https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl" + "hash": "81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2", + "url": "https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30", - "url": "https://files.pythonhosted.org/packages/e3/fc/f800d51204003fa8ae392c4e8278f256206e7a919b708eef054f5f4b650d/attrs-23.2.0.tar.gz" + "hash": "5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", + "url": "https://files.pythonhosted.org/packages/fc/0f/aafca9af9315aee06a89ffde799a10a582fe8de76c563ee80bbcdc08b3fb/attrs-24.2.0.tar.gz" } ], "project_name": "attrs", "requires_dists": [ - "attrs[tests-mypy]; extra == \"tests-no-zope\"", - "attrs[tests-no-zope]; extra == \"tests\"", - "attrs[tests]; extra == \"cov\"", - "attrs[tests]; extra == \"dev\"", - "cloudpickle; platform_python_implementation == \"CPython\" and extra == \"tests-no-zope\"", + "cloudpickle; platform_python_implementation == \"CPython\" and extra == \"benchmark\"", + "cloudpickle; platform_python_implementation == \"CPython\" and extra == \"cov\"", + "cloudpickle; platform_python_implementation == \"CPython\" and extra == \"dev\"", + "cloudpickle; platform_python_implementation == \"CPython\" and extra == \"tests\"", + "cogapp; extra == \"docs\"", "coverage[toml]>=5.3; extra == \"cov\"", "furo; extra == \"docs\"", - "hypothesis; extra == \"tests-no-zope\"", + "hypothesis; extra == \"benchmark\"", + "hypothesis; extra == \"cov\"", + "hypothesis; extra == \"dev\"", + "hypothesis; extra == \"tests\"", "importlib-metadata; python_version < \"3.8\"", - "mypy>=1.6; (platform_python_implementation == \"CPython\" and python_version >= \"3.8\") and extra == \"tests-mypy\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"benchmark\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"cov\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"dev\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"tests\"", + "mypy>=1.11.1; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\") and extra == \"tests-mypy\"", "myst-parser; extra == \"docs\"", "pre-commit; extra == \"dev\"", - "pympler; extra == \"tests-no-zope\"", - "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.8\") and extra == \"tests-mypy\"", - "pytest-xdist[psutil]; extra == \"tests-no-zope\"", - "pytest>=4.3.0; extra == \"tests-no-zope\"", + "pympler; extra == \"benchmark\"", + "pympler; extra == \"cov\"", + "pympler; extra == \"dev\"", + "pympler; extra == \"tests\"", + "pytest-codspeed; extra == \"benchmark\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"benchmark\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"cov\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"dev\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"tests\"", + "pytest-mypy-plugins; (platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\") and extra == \"tests-mypy\"", + "pytest-xdist[psutil]; extra == \"benchmark\"", + "pytest-xdist[psutil]; extra == \"cov\"", + "pytest-xdist[psutil]; extra == \"dev\"", + "pytest-xdist[psutil]; extra == \"tests\"", + "pytest>=4.3.0; extra == \"benchmark\"", + "pytest>=4.3.0; extra == \"cov\"", + "pytest>=4.3.0; extra == \"dev\"", + "pytest>=4.3.0; extra == \"tests\"", "sphinx-notfound-page; extra == \"docs\"", "sphinx; extra == \"docs\"", "sphinxcontrib-towncrier; extra == \"docs\"", - "towncrier; extra == \"docs\"", - "zope-interface; extra == \"docs\"", - "zope-interface; extra == \"tests\"" + "towncrier<24.7; extra == \"docs\"" ], "requires_python": ">=3.7", - "version": "23.2.0" + "version": "24.2.0" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3", - "url": "https://files.pythonhosted.org/packages/e3/01/cc8cdec7b61db0315c2ab62d80677a138ef06832ec17f04d87e6ef858f7f/flake8-7.0.0-py2.py3-none-any.whl" + "hash": "597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213", + "url": "https://files.pythonhosted.org/packages/d9/42/65004373ac4617464f35ed15931b30d764f53cdd30cc78d5aea349c8c050/flake8-7.1.1-py2.py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132", - "url": "https://files.pythonhosted.org/packages/40/3c/3464b567aa367b221fa610bbbcce8015bf953977d21e52f2d711b526fb48/flake8-7.0.0.tar.gz" + "hash": "049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38", + "url": "https://files.pythonhosted.org/packages/37/72/e8d66150c4fcace3c0a450466aa3480506ba2cae7b61e100a2613afc3907/flake8-7.1.1.tar.gz" } ], "project_name": "flake8", "requires_dists": [ "mccabe<0.8.0,>=0.7.0", - "pycodestyle<2.12.0,>=2.11.0", + "pycodestyle<2.13.0,>=2.12.0", "pyflakes<3.3.0,>=3.2.0" ], "requires_python": ">=3.8.1", - "version": "7.0.0" + "version": "7.1.1" }, { "artifacts": [ @@ -140,13 +160,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "cb430dd86bc821d79ccc0b030789a9c87a47a369667f12ba06e80f11305e8258", - "url": "https://files.pythonhosted.org/packages/23/f2/ea73077346e396fcfad4e546b3a15f686509287a51449e74fdf1fb0bd28c/flake8_bugbear-24.4.26-py3-none-any.whl" + "hash": "25bc3867f7338ee3b3e0916bf8b8a0b743f53a9a5175782ddc4325ed4f386b89", + "url": "https://files.pythonhosted.org/packages/2b/3c/8885a79ae7bebfab19716969de9810722ff45354e4ccc974a090bc478eaa/flake8_bugbear-24.8.19-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "ff8d4ba5719019ebf98e754624c30c05cef0dadcf18a65d91c7567300e52a130", - "url": "https://files.pythonhosted.org/packages/d8/a5/08b0ccb03fc75ba422e2d44b3d74a483814ba3e07ab84bfa7b463d9568f5/flake8_bugbear-24.4.26.tar.gz" + "hash": "9b77627eceda28c51c27af94560a72b5b2c97c016651bdce45d8f56c180d2d32", + "url": "https://files.pythonhosted.org/packages/00/b3/80043856ed90ceef0e95c01ed12d6bb7d4d76356e526450f0a9aeeb0a7b7/flake8_bugbear-24.8.19.tar.gz" } ], "project_name": "flake8-bugbear", @@ -161,7 +181,7 @@ "tox; extra == \"dev\"" ], "requires_python": ">=3.8.1", - "version": "24.4.26" + "version": "24.8.19" }, { "artifacts": [ @@ -264,19 +284,19 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67", - "url": "https://files.pythonhosted.org/packages/b1/90/a998c550d0ddd07e38605bb5c455d00fcc177a800ff9cc3dafdcb3dd7b56/pycodestyle-2.11.1-py2.py3-none-any.whl" + "hash": "46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3", + "url": "https://files.pythonhosted.org/packages/3a/d8/a211b3f85e99a0daa2ddec96c949cac6824bd305b040571b82a03dd62636/pycodestyle-2.12.1-py2.py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f", - "url": "https://files.pythonhosted.org/packages/34/8f/fa09ae2acc737b9507b5734a9aec9a2b35fa73409982f57db1b42f8c3c65/pycodestyle-2.11.1.tar.gz" + "hash": "6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521", + "url": "https://files.pythonhosted.org/packages/43/aa/210b2c9aedd8c1cbeea31a50e42050ad56187754b34eb214c46709445801/pycodestyle-2.12.1.tar.gz" } ], "project_name": "pycodestyle", "requires_dists": [], "requires_python": ">=3.8", - "version": "2.11.1" + "version": "2.12.1" }, { "artifacts": [ @@ -336,7 +356,8 @@ "vulture" ], "requires_python": [ - "==3.11.*" + "==3.11.*", + "==3.12.*" ], "resolver_version": "pip-2020-resolver", "style": "universal", diff --git a/3rdparty/mypy-requirements.txt b/3rdparty/mypy-requirements.txt index 87de8e9ef..bdd6abc35 100644 --- a/3rdparty/mypy-requirements.txt +++ b/3rdparty/mypy-requirements.txt @@ -1,2 +1,2 @@ mypy==1.9.0 -numpy~=1.23.5 \ No newline at end of file +numpy~=1.26.4 \ No newline at end of file diff --git a/3rdparty/mypy_lockfile.txt b/3rdparty/mypy_lockfile.txt index b70dac247..05333dc71 100644 --- a/3rdparty/mypy_lockfile.txt +++ b/3rdparty/mypy_lockfile.txt @@ -6,11 +6,12 @@ // { // "version": 3, // "valid_for_interpreter_constraints": [ -// "CPython==3.11.*" +// "CPython==3.11.*", +// "CPython==3.12.*" // ], // "generated_with_requirements": [ // "mypy==1.9.0", -// "numpy~=1.23.5" +// "numpy~=1.26.4" // ], // "manylinux": "manylinux2014", // "requirement_constraints": [], @@ -35,21 +36,41 @@ "hash": "a260627a570559181a9ea5de61ac6297aa5af202f06fd7ab093ce74e7181e43e", "url": "https://files.pythonhosted.org/packages/60/db/0ba2eaedca52bf5276275e8489951c26206030b3d31bf06f00875ae75d5d/mypy-1.9.0-py3-none-any.whl" }, + { + "algorithm": "sha256", + "hash": "190da1ee69b427d7efa8aa0d5e5ccd67a4fb04038c380237a0d96829cb157913", + "url": "https://files.pythonhosted.org/packages/1c/1b/3e962a201d2f0f57c9fa1990e0dd6076f4f2f94954ab56e4a701ec3cc070/mypy-1.9.0-cp312-cp312-musllinux_1_1_x86_64.whl" + }, { "algorithm": "sha256", "hash": "653265f9a2784db65bfca694d1edd23093ce49740b2244cde583aeb134c008f3", "url": "https://files.pythonhosted.org/packages/6d/ce/c62c0c0d83b8a936ad6d5e0294e956e881acc5d680deb4929ea259fb50f6/mypy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl" }, + { + "algorithm": "sha256", + "hash": "aceb1db093b04db5cd390821464504111b8ec3e351eb85afd1433490163d60cd", + "url": "https://files.pythonhosted.org/packages/6e/96/40f0f605b1d4e2ad1fb11d21988ce3a3e205886c0fcbd35c9789a214de9a/mypy-1.9.0-cp312-cp312-macosx_10_9_x86_64.whl" + }, { "algorithm": "sha256", "hash": "3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974", "url": "https://files.pythonhosted.org/packages/72/1e/a587a862c766a755a58b62d8c00aed11b74a15dc415c1bf5da7b607b0efd/mypy-1.9.0.tar.gz" }, + { + "algorithm": "sha256", + "hash": "d4d5ddc13421ba3e2e082a6c2d74c2ddb3979c39b582dacd53dd5d9431237185", + "url": "https://files.pythonhosted.org/packages/85/a5/b7dc7eb69eda899fd07e71403b51b598a1f4df0f452d1da5844374082bcd/mypy-1.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, { "algorithm": "sha256", "hash": "2418488264eb41f69cc64a69a745fad4a8f86649af4b1041a4c64ee61fc61129", "url": "https://files.pythonhosted.org/packages/a1/81/97e8539d6cdcfb3a8ae7eb1438c6983a9fc434ef9664572bfa7fd285cab9/mypy-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, + { + "algorithm": "sha256", + "hash": "0235391f1c6f6ce487b23b9dbd1327b4ec33bb93934aa986efe8a9563d9349e6", + "url": "https://files.pythonhosted.org/packages/d7/d2/072e40384b53051106b4fcf03537fb88e2a6ad0757d2ab7f6c8c2f188a69/mypy-1.9.0-cp312-cp312-macosx_11_0_arm64.whl" + }, { "algorithm": "sha256", "hash": "3a3c007ff3ee90f69cf0a15cbcdf0995749569b86b6d2f327af01fd1b8aee9dc", @@ -96,52 +117,92 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "58f545efd1108e647604a1b5aa809591ccd2540f468a880bedb97247e72db387", - "url": "https://files.pythonhosted.org/packages/e8/ad/b935c7421657a032fd2a5332eed098f3b9993a155afceb1daa280ff6611f/numpy-1.23.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0", + "url": "https://files.pythonhosted.org/packages/76/8c/2ba3902e1a0fc1c74962ea9bb33a534bb05984ad7ff9515bf8d07527cadd/numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a", + "url": "https://files.pythonhosted.org/packages/09/bf/2b1aaf8f525f2923ff6cfcf134ae5e750e279ac65ebf386c75a0cf6da06a/numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl" }, { "algorithm": "sha256", - "hash": "5039f55555e1eab31124a5768898c9e22c25a65c1e0037f4d7c495a45778c9f2", - "url": "https://files.pythonhosted.org/packages/2b/1a/9ac00116d3a64b5ea031fdb2ff071062a6e2140553fa0770b5f007b84252/numpy-1.23.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed", + "url": "https://files.pythonhosted.org/packages/0f/50/de23fde84e45f5c4fda2488c759b69990fd4512387a8632860f3ac9cd225/numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "1b1766d6f397c18153d40015ddfc79ddb715cabadc04d2d228d4e5a8bc4ded1a", - "url": "https://files.pythonhosted.org/packages/42/38/775b43da55fa7473015eddc9a819571517d9a271a9f8134f68fb9be2f212/numpy-1.23.5.tar.gz" + "hash": "4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71", + "url": "https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "ce571367b6dfe60af04e04a1834ca2dc5f46004ac1cc756fb95319f64c095a96", - "url": "https://files.pythonhosted.org/packages/6e/7f/94797cfe0263a30805f3074e535adfde02b885ac43d1e4dac85f82213b0b/numpy-1.23.5-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef", + "url": "https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl" }, { "algorithm": "sha256", - "hash": "56e454c7833e94ec9769fa0f86e6ff8e42ee38ce0ce1fa4cbb747ea7e06d56aa", - "url": "https://files.pythonhosted.org/packages/b8/d0/e6a2cb9a3f3e863a43e50949e9ae704be70baf398fd5af59355f65c8740a/numpy-1.23.5-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5", + "url": "https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a", + "url": "https://files.pythonhosted.org/packages/4c/0c/9c603826b6465e82591e05ca230dfc13376da512b25ccd0894709b054ed0/numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010", + "url": "https://files.pythonhosted.org/packages/65/6e/09db70a523a96d25e115e71cc56a6f9031e7b8cd166c1ac8438307c14058/numpy-1.26.4.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b", + "url": "https://files.pythonhosted.org/packages/75/5b/ca6c8bd14007e5ca171c7c03102d17b4f4e0ceb53957e8c44343a9546dcc/numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e", + "url": "https://files.pythonhosted.org/packages/79/ae/7e5b85136806f9dadf4878bf73cf223fe5c2636818ba3ab1c585d0403164/numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b", + "url": "https://files.pythonhosted.org/packages/79/f8/97f10e6755e2a7d027ca783f63044d5b1bc1ae7acb12afe6a9b4286eac17/numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218", + "url": "https://files.pythonhosted.org/packages/95/12/8f2020a8e8b8383ac0177dc9570aad031a3beb12e38847f7129bacd96228/numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a", + "url": "https://files.pythonhosted.org/packages/df/a0/4e0f14d847cfc2a633a1c8621d00724f3206cfeddeb66d35698c4e2cf3d2/numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl" } ], "project_name": "numpy", "requires_dists": [], - "requires_python": ">=3.8", - "version": "1.23.5" + "requires_python": ">=3.9", + "version": "1.26.4" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "6024b58b69089e5a89c347397254e35f1bf02a907728ec7fee9bf0fe837d203a", - "url": "https://files.pythonhosted.org/packages/b6/53/84a859aaddfe7378a6e5820e864a2d75763e82b6fcbda1a00e92ec620bb7/typing_extensions-4.12.1-py3-none-any.whl" + "hash": "04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", + "url": "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "915f5e35ff76f56588223f15fdd5938f9a1cf9195c0de25130c627e4d597f6d1", - "url": "https://files.pythonhosted.org/packages/e8/fb/4217a963512b9646274fe4ce0aebc8ebff09bbb86c458c6163846bb65d9d/typing_extensions-4.12.1.tar.gz" + "hash": "1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", + "url": "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz" } ], "project_name": "typing-extensions", "requires_dists": [], "requires_python": ">=3.8", - "version": "4.12.1" + "version": "4.12.2" } ], "platform_tag": null @@ -155,10 +216,11 @@ "prefer_older_binary": false, "requirements": [ "mypy==1.9.0", - "numpy~=1.23.5" + "numpy~=1.26.4" ], "requires_python": [ - "==3.11.*" + "==3.11.*", + "==3.12.*" ], "resolver_version": "pip-2020-resolver", "style": "universal", diff --git a/3rdparty/pytest-requirements.txt b/3rdparty/pytest-requirements.txt index 5d0ff6390..772f3084a 100644 --- a/3rdparty/pytest-requirements.txt +++ b/3rdparty/pytest-requirements.txt @@ -3,4 +3,5 @@ pytest-randomly pytest-icdiff pygments pytest-asyncio -pytest-cov \ No newline at end of file +pytest-cov +pytest-timeout \ No newline at end of file diff --git a/3rdparty/pytest_lockfile.txt b/3rdparty/pytest_lockfile.txt index 23bd79dfa..47f18de91 100644 --- a/3rdparty/pytest_lockfile.txt +++ b/3rdparty/pytest_lockfile.txt @@ -6,7 +6,8 @@ // { // "version": 3, // "valid_for_interpreter_constraints": [ -// "CPython==3.11.*" +// "CPython==3.11.*", +// "CPython==3.12.*" // ], // "generated_with_requirements": [ // "pygments", @@ -14,7 +15,8 @@ // "pytest-cov", // "pytest-icdiff", // "pytest-randomly", -// "pytest-repeat" +// "pytest-repeat", +// "pytest-timeout" // ], // "manylinux": "manylinux2014", // "requirement_constraints": [], @@ -36,53 +38,93 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "3538d8fb1ee9bdd2e2692b3b18c22bb1c19ffbefd06880f5ac496e42d7bb3884", - "url": "https://files.pythonhosted.org/packages/f6/c9/7953a450762a62abbaf0a65b67fe406b3b515a755139b3db662da441ac87/coverage-7.5.3-pp38.pp39.pp310-none-any.whl" + "hash": "e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df", + "url": "https://files.pythonhosted.org/packages/a5/2b/0354ed096bca64dc8e32a7cbcae28b34cb5ad0b1fe2125d6d99583313ac0/coverage-7.6.1-pp38.pp39.pp310-none-any.whl" }, { "algorithm": "sha256", - "hash": "7cec2af81f9e7569280822be68bd57e51b86d42e59ea30d10ebdbb22d2cb7232", - "url": "https://files.pythonhosted.org/packages/0c/7a/9beb9fb10c3918d1bd17e15f5da4b099c877f74194881862bdde59d3ec3b/coverage-7.5.3-cp311-cp311-macosx_11_0_arm64.whl" + "hash": "07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d", + "url": "https://files.pythonhosted.org/packages/0f/ef/94043e478201ffa85b8ae2d2c79b4081e5a1b73438aafafccf3e9bafb6b5/coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "55f689f846661e3f26efa535071775d0483388a1ccfab899df72924805e9e7cd", - "url": "https://files.pythonhosted.org/packages/1c/72/bb1d787e91e34694cbc1087eba5e2ed69f093044e92e6f19a5db3c252605/coverage-7.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6", + "url": "https://files.pythonhosted.org/packages/14/6f/8351b465febb4dbc1ca9929505202db909c5a635c6fdf33e089bbc3d7d85/coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "04aefca5190d1dc7a53a4c1a5a7f8568811306d7a8ee231c42fb69215571944f", - "url": "https://files.pythonhosted.org/packages/6c/a5/62ae2dc1850feabb74207a422d00893f451ee0950e52792eb208970a30b1/coverage-7.5.3.tar.gz" + "hash": "c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca", + "url": "https://files.pythonhosted.org/packages/1f/0f/c890339dd605f3ebc269543247bdd43b703cce6825b5ed42ff5f2d6122c7/coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "ab0b028165eea880af12f66086694768f2c3139b2c31ad5e032c8edbafca6ffc", - "url": "https://files.pythonhosted.org/packages/7b/88/e575fa69f859a1bd6d6cdc9b9d965d135be9cef893ef7e01e237142b6bcb/coverage-7.5.3-cp311-cp311-musllinux_1_1_aarch64.whl" + "hash": "1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56", + "url": "https://files.pythonhosted.org/packages/68/3c/289b81fa18ad72138e6d78c4c11a82b5378a312c0e467e2f6b495c260907/coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl" }, { "algorithm": "sha256", - "hash": "50084d3516aa263791198913a17354bd1dc627d3c1639209640b9cac3fef5807", - "url": "https://files.pythonhosted.org/packages/87/dd/3d5f1ca010d3853b530f73d16d575bdaad1302466f9ad9c5197d6dbc3c72/coverage-7.5.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d", + "url": "https://files.pythonhosted.org/packages/70/6c/a9ccd6fe50ddaf13442a1e2dd519ca805cbe0f1fcd377fba6d8339b98ccb/coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "38a3b98dae8a7c9057bd91fbf3415c05e700a5114c5f1b5b0ea5f8f429ba6614", - "url": "https://files.pythonhosted.org/packages/8c/1d/45299174011063aa2fcfe1dc4a25aae2722decf611fb0ee38fab4d18f62e/coverage-7.5.3-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778", + "url": "https://files.pythonhosted.org/packages/7e/d4/300fc921dff243cd518c7db3a4c614b7e4b2431b0d1145c1e274fd99bd70/coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "f81bc26d609bf0fbc622c7122ba6307993c83c795d2d6f6f6fd8c000a770d974", - "url": "https://files.pythonhosted.org/packages/8c/77/6fb0a12edb21c02541a8fa59c5c51fb49f929b03aa9c773478136440b521/coverage-7.5.3-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d", + "url": "https://files.pythonhosted.org/packages/86/74/1dc7a20969725e917b1e07fe71a955eb34bc606b938316bcc799f228374b/coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl" }, { "algorithm": "sha256", - "hash": "341dd8f61c26337c37988345ca5c8ccabeff33093a26953a1ac72e7d0103c4fb", - "url": "https://files.pythonhosted.org/packages/9c/38/d8d6616b3c5da0b6d6ab99a0141f8ba80e979596b360196240c96a67ac11/coverage-7.5.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8", + "url": "https://files.pythonhosted.org/packages/92/8f/2ead05e735022d1a7f3a0a683ac7f737de14850395a826192f0288703472/coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "5bc5a8c87714b0c67cfeb4c7caa82b2d71e8864d1a46aa990b5588fa953673b8", - "url": "https://files.pythonhosted.org/packages/f7/7b/c7b26c4824a58ef4511cd314e816b53573fbb25dc987c20a5bed6d44926b/coverage-7.5.3-cp311-cp311-musllinux_1_1_i686.whl" + "hash": "d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff", + "url": "https://files.pythonhosted.org/packages/aa/cd/766b45fb6e090f20f8927d9c7cb34237d41c73a939358bc881883fd3a40d/coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93", + "url": "https://files.pythonhosted.org/packages/ad/5f/67af7d60d7e8ce61a4e2ddcd1bd5fb787180c8d0ae0fbd073f903b3dd95d/coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163", + "url": "https://files.pythonhosted.org/packages/d1/04/7fd7b39ec7372a04efb0f70c70e35857a99b6a9188b5205efb4c77d6a57a/coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl" + }, + { + "algorithm": "sha256", + "hash": "ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3", + "url": "https://files.pythonhosted.org/packages/e1/0e/e52332389e057daa2e03be1fbfef25bb4d626b37d12ed42ae6281d0a274c/coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391", + "url": "https://files.pythonhosted.org/packages/e1/ab/6bf00de5327ecb8db205f9ae596885417a31535eeda6e7b99463108782e1/coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234", + "url": "https://files.pythonhosted.org/packages/ed/1c/aa1efa6459d822bd72c4abc0b9418cf268de3f60eeccd65dc4988553bd8d/coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a", + "url": "https://files.pythonhosted.org/packages/ed/bf/73ce346a9d32a09cf369f14d2a06651329c984e106f5992c89579d25b27e/coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d", + "url": "https://files.pythonhosted.org/packages/f7/08/7e37f82e4d1aead42a7443ff06a1e406aabf7302c4f00a546e4b320b994c/coverage-7.6.1.tar.gz" + }, + { + "algorithm": "sha256", + "hash": "b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133", + "url": "https://files.pythonhosted.org/packages/fb/c8/521c698f2d2796565fe9c789c2ee1ccdae610b3aa20b9b2ef980cc253640/coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl" } ], "project_name": "coverage", @@ -90,7 +132,7 @@ "tomli; python_full_version <= \"3.11.0a6\" and extra == \"toml\"" ], "requires_python": ">=3.8", - "version": "7.5.3" + "version": "7.6.1" }, { "artifacts": [ @@ -132,19 +174,19 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5", - "url": "https://files.pythonhosted.org/packages/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl" + "hash": "5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124", + "url": "https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9", - "url": "https://files.pythonhosted.org/packages/ee/b5/b43a27ac7472e1818c4bafd44430e69605baefe1f34440593e0332ec8b4d/packaging-24.0.tar.gz" + "hash": "026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002", + "url": "https://files.pythonhosted.org/packages/51/65/50db4dda066951078f0a96cf12f4b9ada6e4b811516bf0262c0f4f7064d4/packaging-24.1.tar.gz" } ], "project_name": "packaging", "requires_dists": [], - "requires_python": ">=3.7", - "version": "24.0" + "requires_python": ">=3.8", + "version": "24.1" }, { "artifacts": [ @@ -211,13 +253,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343", - "url": "https://files.pythonhosted.org/packages/4e/e7/81ebdd666d3bff6670d27349b5053605d83d55548e6bd5711f3b0ae7dd23/pytest-8.2.2-py3-none-any.whl" + "hash": "4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5", + "url": "https://files.pythonhosted.org/packages/0f/f9/cf155cf32ca7d6fa3601bc4c5dd19086af4b320b706919d48a4c79081cf9/pytest-8.3.2-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977", - "url": "https://files.pythonhosted.org/packages/a6/58/e993ca5357553c966b9e73cb3475d9c935fe9488746e13ebdf9b80fae508/pytest-8.2.2.tar.gz" + "hash": "c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce", + "url": "https://files.pythonhosted.org/packages/b4/8c/9862305bdcd6020bc7b45b1b5e7397a6caf1a33d3025b9a003b39075ffb2/pytest-8.3.2.tar.gz" } ], "project_name": "pytest", @@ -230,7 +272,7 @@ "iniconfig", "mock; extra == \"dev\"", "packaging", - "pluggy<2.0,>=1.5", + "pluggy<2,>=1.5", "pygments>=2.7.2; extra == \"dev\"", "requests; extra == \"dev\"", "setuptools; extra == \"dev\"", @@ -238,31 +280,31 @@ "xmlschema; extra == \"dev\"" ], "requires_python": ">=3.8", - "version": "8.2.2" + "version": "8.3.2" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "009b48127fbe44518a547bddd25611551b0e43ccdbf1e67d12479f569832c20b", - "url": "https://files.pythonhosted.org/packages/e5/98/947690b1a79af83e584143cb904497caff05bb6016614b38326a81076357/pytest_asyncio-0.23.7-py3-none-any.whl" + "hash": "a811296ed596b69bf0b6f3dc40f83bcaf341b155a269052d82efa2b25ac7037b", + "url": "https://files.pythonhosted.org/packages/96/31/6607dab48616902f76885dfcf62c08d929796fc3b2d2318faf9fd54dbed9/pytest_asyncio-0.24.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "5f5c72948f4c49e7db4f29f2521d4031f1c27f86e57b046126654083d4770268", - "url": "https://files.pythonhosted.org/packages/13/d9/1dcac9b3fc6eccf8f1e3a657439c11ffc5cf762edd20f65577f832ba248b/pytest_asyncio-0.23.7.tar.gz" + "hash": "d081d828e576d85f875399194281e92bf8a68d60d72d1a2faf2feddb6c46b276", + "url": "https://files.pythonhosted.org/packages/52/6d/c6cf50ce320cf8611df7a1254d86233b3df7cc07f9b5f5cbcb82e08aa534/pytest_asyncio-0.24.0.tar.gz" } ], "project_name": "pytest-asyncio", "requires_dists": [ "coverage>=6.2; extra == \"testing\"", "hypothesis>=5.7.1; extra == \"testing\"", - "pytest<9,>=7.0.0", + "pytest<9,>=8.2", "sphinx-rtd-theme>=1.0; extra == \"docs\"", "sphinx>=5.3; extra == \"docs\"" ], "requires_python": ">=3.8", - "version": "0.23.7" + "version": "0.24.0" }, { "artifacts": [ @@ -352,6 +394,26 @@ ], "requires_python": ">=3.7", "version": "0.9.3" + }, + { + "artifacts": [ + { + "algorithm": "sha256", + "hash": "68188cb703edfc6a18fad98dc25a3c61e9f24d644b0b70f33af545219fc7813e", + "url": "https://files.pythonhosted.org/packages/03/27/14af9ef8321f5edc7527e47def2a21d8118c6f329a9342cc61387a0c0599/pytest_timeout-2.3.1-py3-none-any.whl" + }, + { + "algorithm": "sha256", + "hash": "12397729125c6ecbdaca01035b9e5239d4db97352320af155b3f5de1ba5165d9", + "url": "https://files.pythonhosted.org/packages/93/0d/04719abc7a4bdb3a7a1f968f24b0f5253d698c9cc94975330e9d3145befb/pytest-timeout-2.3.1.tar.gz" + } + ], + "project_name": "pytest-timeout", + "requires_dists": [ + "pytest>=7.0.0" + ], + "requires_python": ">=3.7", + "version": "2.3.1" } ], "platform_tag": null @@ -369,10 +431,12 @@ "pytest-cov", "pytest-icdiff", "pytest-randomly", - "pytest-repeat" + "pytest-repeat", + "pytest-timeout" ], "requires_python": [ - "==3.11.*" + "==3.11.*", + "==3.12.*" ], "resolver_version": "pip-2020-resolver", "style": "universal", diff --git a/3rdparty/requirements.txt b/3rdparty/requirements.txt index 9ab939ad7..53b0bb111 100644 --- a/3rdparty/requirements.txt +++ b/3rdparty/requirements.txt @@ -20,7 +20,7 @@ gTTS~=2.5.1 hidapi~=0.14.0 lru-dict~=1.3.0 numpy-quaternion[scipy,numba]~=2023.0.3 -numpy~=1.26.4 +numpy~=1.26.4 # numpy 2.x.y is blocked by fanucpy open3d==0.18.0 openapi-spec-validator~=0.7.1 opencv-contrib-python~=4.9.0.80 @@ -52,3 +52,4 @@ types-requests==2.32.0.20240602 types-setuptools==70.0.0.20240524 pydub-stubs==0.25.1.1 opencv-stubs[opencv-contrib]==0.0.9 +lark==1.1.9 diff --git a/README.md b/README.md index 7693a7d7a..6e75b0ee8 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This repository contains the backend solution. It can be easily tested out or deployed using [docker images](https://hub.docker.com/u/arcor2). Unity-based client application for ARCore-supported tablets is available [here](https://github.com/robofit/arcor2_editor). -Development is supported by [Test-it-off: Robotic offline product testing](https://www.fit.vut.cz/research/project/1308/) project (Ministry of Industry and Trade of the Czech Republic). +Initial development was supported by [Test-it-off: Robotic offline product testing](https://www.fit.vut.cz/research/project/1308/) project (Ministry of Industry and Trade of the Czech Republic). For more technical and development-related information, please see our [wiki](https://github.com/robofit/arcor2/wiki). @@ -18,10 +18,14 @@ The video presenting the ARCOR2 system and its development in detail: [![ARCOR2: Framework for Collaborative End-User Management of Industrial Robotic Workplaces using AR](https://img.youtube.com/vi/RI1uiIEiPK8/hqdefault.jpg)](https://youtu.be/RI1uiIEiPK8) -The following video by [Kinali](https://www.kinali.cz/en/) shows the use case (offline PCB testing), where our system was applied: +The following video by [Kinali](https://www.kinali.cz/en/) shows the use case (offline PCB testing), where the system was applied: [![Test-it-off: robotic system for automatic products inspection](http://i3.ytimg.com/vi/6uktcrJCmc0/hqdefault.jpg)](https://youtu.be/6uktcrJCmc0) +## Usage + +Most users will stick to [Docker images](https://hub.docker.com/u/arcor2). The easiest method how to get started, is to run [fit-demo](https://github.com/robofit/arcor2/tree/master/compose-files/fit-demo) compose file, which (by default) does not need any hardware. You can just connect using a tablet with AREditor and play around. Alternatively, all packages are also published on [PyPI](https://pypi.org/user/robo_fit/), which might be helpful for advanced use cases. For information about changes, please see individual changelogs, or the [Releases](https://github.com/robofit/arcor2/releases) page. + ## Publications - Kapinus, Michal, et al. "Spatially situated end-user robot programming in augmented reality." 2019 28th IEEE International Conference on Robot and Human Interactive Communication (RO-MAN). IEEE, 2019. @@ -30,113 +34,4 @@ The following video by [Kinali](https://www.kinali.cz/en/) shows the use case (o - Bambušek, Daniel, et al. How Do I Get There? Overcoming Reachability Limitations of Constrained Industrial Environments in Augmented Reality Applications. In: 2023 IEEE Conference Virtual Reality and 3D User Interfaces (VR). IEEE, 2023. p. 115-122. - Kapinus, Michal, et al. ARCOR2: Framework for Collaborative End-User Management of Industrial Robotic Workplaces using Augmented Reality. arXiv preprint arXiv:2306.08464, 2023. -## Releases - -### arcor2 - -[README](src/python/arcor2/README.md) | [CHANGELOG](src/python/arcor2/CHANGELOG.md) - - - 2024-06-14: [1.4.0](https://github.com/robofit/arcor2/releases/tag/arcor2%2F1.4.0) ([pypi](https://pypi.org/project/arcor2/1.4.0/)). - -### arcor2_arserver - -[README](src/python/arcor2_arserver/README.md) | [CHANGELOG](src/python/arcor2_arserver/CHANGELOG.md) - - - 2024-04-11: [1.2.0](https://github.com/robofit/arcor2/releases/tag/arcor2_arserver%2F1.2.0) ([docker](https://hub.docker.com/r/arcor2/arcor2_arserver/tags?page=1&ordering=last_updated&name=1.2.0), [pypi](https://pypi.org/project/arcor2-arserver/1.2.0/)). - -### arcor2_arserver_data - -[README](src/python/arcor2_arserver_data/README.md) | [CHANGELOG](src/python/arcor2_arserver_data/CHANGELOG.md) - - - 2024-04-11: [1.1.0](https://github.com/robofit/arcor2/releases/tag/arcor2_arserver_data%2F1.1.0) ([pypi](https://pypi.org/project/arcor2-arserver-data/1.1.0/)). - -### arcor2_build - -[README](src/python/arcor2_build/README.md) | [CHANGELOG](src/python/arcor2_build/CHANGELOG.md) - - - 2024-06-14: [1.6.0](https://github.com/robofit/arcor2/releases/tag/arcor2_build%2F1.6.0) ([docker](https://hub.docker.com/r/arcor2/arcor2_build/tags?page=1&ordering=last_updated&name=1.6.0), [pypi](https://pypi.org/project/arcor2-build/1.6.0/)). - -### arcor2_build_data - -[README](src/python/arcor2_build_data/README.md) | [CHANGELOG](src/python/arcor2_build_data/CHANGELOG.md) - - - 2024-04-11: [1.1.0](https://github.com/robofit/arcor2/releases/tag/arcor2_build_data%2F1.1.0) ([pypi](https://pypi.org/project/arcor2-build-data/1.1.0/)). - -### arcor2_calibration - -[README](src/python/arcor2_calibration/README.md) | [CHANGELOG](src/python/arcor2_calibration/CHANGELOG.md) - - - 2024-04-11: [1.2.0](https://github.com/robofit/arcor2/releases/tag/arcor2_calibration%2F1.2.0) ([docker](https://hub.docker.com/r/arcor2/arcor2_calibration/tags?page=1&ordering=last_updated&name=1.2.0), [pypi](https://pypi.org/project/arcor2-calibration/1.2.0/)). - -### arcor2_calibration_data - -[README](src/python/arcor2_calibration_data/README.md) | [CHANGELOG](src/python/arcor2_calibration_data/CHANGELOG.md) - - - 2024-04-11: [1.1.0](https://github.com/robofit/arcor2/releases/tag/arcor2_calibration_data%2F1.1.0) ([pypi](https://pypi.org/project/arcor2-calibration-data/1.1.0/)). - -### arcor2_dobot - -[README](src/python/arcor2_dobot/README.md) | [CHANGELOG](src/python/arcor2_dobot/CHANGELOG.md) - - - 2024-04-11: [1.3.0](https://github.com/robofit/arcor2/releases/tag/arcor2_dobot%2F1.3.0) ([docker](https://hub.docker.com/r/arcor2/arcor2_dobot/tags?page=1&ordering=last_updated&name=1.3.0), [pypi](https://pypi.org/project/arcor2-dobot/1.3.0/)). - -### arcor2_execution - -[README](src/python/arcor2_execution/README.md) | [CHANGELOG](src/python/arcor2_execution/CHANGELOG.md) - - - 2024-08-14: [1.5.0](https://github.com/robofit/arcor2/releases/tag/arcor2_execution%2F1.5.0) ([docker](https://hub.docker.com/r/arcor2/arcor2_execution/tags?page=1&ordering=last_updated&name=1.5.0), [pypi](https://pypi.org/project/arcor2-execution/1.5.0/)). - -### arcor2_execution_data - -[README](src/python/arcor2_execution_data/README.md) | [CHANGELOG](src/python/arcor2_execution_data/CHANGELOG.md) - - - 2024-04-11: [1.2.0](https://github.com/robofit/arcor2/releases/tag/arcor2_execution_data%2F1.2.0) ([pypi](https://pypi.org/project/arcor2-execution-data/1.2.0/)). - -### arcor2_execution_rest_proxy - -[README](src/python/arcor2_execution_rest_proxy/README.md) | [CHANGELOG](src/python/arcor2_execution_rest_proxy/CHANGELOG.md) - - - 2024-06-26: [1.2.1](https://github.com/robofit/arcor2/releases/tag/arcor2_execution_rest_proxy%2F1.2.1) ([docker](https://hub.docker.com/r/arcor2/arcor2_execution_proxy/tags?page=1&ordering=last_updated&name=1.2.1), [pypi](https://pypi.org/project/arcor2-execution-rest-proxy/1.2.1/)). - -### arcor2_fanuc - -[README](src/python/arcor2_fanuc/README.md) | [CHANGELOG](src/python/arcor2_fanuc/CHANGELOG.md) - - - 2024-04-11: [0.4.0](https://github.com/robofit/arcor2/releases/tag/arcor2_fanuc%2F0.4.0) ([docker-service](https://hub.docker.com/r/arcor2/arcor2_fanuc/tags?page=1&ordering=last_updated&name=0.4.0), [docker-objects](https://hub.docker.com/r/arcor2/arcor2_fanuc_upload_object_types/tags?page=1&ordering=last_updated&name=0.4.0), [pypi](https://pypi.org/project/arcor2-fanuc/0.4.0/)). - -### arcor2_fit_demo - -[README](src/python/arcor2_fit_demo/README.md) | [CHANGELOG](src/python/arcor2_fit_demo/CHANGELOG.md) - -- 2024-04-11: [1.5.0](https://github.com/robofit/arcor2/releases/tag/arcor2_fit_demo%2F1.5.0) ([docker](https://hub.docker.com/r/arcor2/arcor2_upload_fit_demo/tags?page=1&ordering=last_updated&name=1.5.0), [pypi](https://pypi.org/project/arcor2-fit-demo/1.5.0/)). - -### arcor2_logger - -[README](src/python/arcor2_logger/README.md) | [CHANGELOG](src/python/arcor2_logger/CHANGELOG.md) - - - 2024-04-11: [0.2.0](https://github.com/robofit/arcor2/releases/tag/arcor2_logger%2F0.2.0) ([pypi](https://pypi.org/project/arcor2-logger/0.2.0/)). - -### arcor2_mocks - -[README](src/python/arcor2_mocks/README.md) | [CHANGELOG](src/python/arcor2_mocks/CHANGELOG.md) - - - 2024-04-11: [1.1.0](https://github.com/robofit/arcor2/releases/tag/arcor2_mocks%2F1.1.0) ([pypi](https://pypi.org/project/arcor2-mocks/1.1.0/)). - -### arcor2_runtime - -[README](src/python/arcor2_runtime/README.md) | [CHANGELOG](src/python/arcor2_runtime/CHANGELOG.md) - - - 2024-08-14: [1.4.0](https://github.com/robofit/arcor2/releases/tag/arcor2_runtime%2F1.4.0) ([pypi](https://pypi.org/project/arcor2-runtime/1.4.0/)). - -### arcor2_scene - -[README](src/python/arcor2_scene/README.md) | [CHANGELOG](src/python/arcor2_scene/CHANGELOG.md) - - - 2024-04-11: [1.1.0](https://github.com/robofit/arcor2/releases/tag/arcor2_scene%2F1.1.0) ([docker](https://hub.docker.com/r/arcor2/arcor2_scene/tags?page=1&ordering=last_updated&name=1.1.0), [pypi](https://pypi.org/project/arcor2-scene/1.1.0/)). - -### arcor2_yumi - -[README](src/python/arcor2_yumi/README.md) | [CHANGELOG](src/python/arcor2_yumi/CHANGELOG.md) - - - 2024-04-11: [0.3.0](https://github.com/robofit/arcor2/releases/tag/arcor2_yumi%2F0.3.0) ([pypi](https://pypi.org/project/arcor2-yumi/0.3.0/)). diff --git a/compose-files/ur-demo/calibration.yaml b/compose-files/ur-demo/calibration.yaml new file mode 100644 index 000000000..f590033b8 --- /dev/null +++ b/compose-files/ur-demo/calibration.yaml @@ -0,0 +1,39 @@ +id: arcor2_ur_demo +marker_size: 0.1 +min_dist: 0.5 +max_dist: 2.0 +blur_threshold: 150.0 +markers: + 0: + pose: + position: + x: -0.729 + y: 0 + z: 0 + orientation: + x: 0 + y: 0 + z: 0 + w: 1 + 30: + pose: + position: + x: 0 + y: 0 + z: 0 + orientation: + x: 0 + y: 0 + z: 0 + w: 1 + 49: + pose: + position: + x: 0.729 + y: 0 + z: 0 + orientation: + x: 0 + y: 0 + z: 0 + w: 1 \ No newline at end of file diff --git a/compose-files/ur-demo/docker-compose.yml b/compose-files/ur-demo/docker-compose.yml new file mode 100644 index 000000000..2ea8da968 --- /dev/null +++ b/compose-files/ur-demo/docker-compose.yml @@ -0,0 +1,189 @@ +services: + ur-demo-ursim: + image: universalrobots/ursim_e-series:5.16.0 + container_name: ur-demo-ursim + ports: + - "5900:5900" # VNC port + - "6080:6080" # web VNC + networks: + - ur-demo-network + environment: + - ROBOT_MODEL=UR5 + volumes: + - ursim-gui-cache:/ursim/GUI + - urcap-build-cache:/ursim/.urcaps + ur-demo-robot-api: + image: arcor2/arcor2_ur:1.0.0 + container_name: ur-demo-robot-api + ports: + - "5012:5012" + networks: + - ur-demo-network + restart: always # the service tends to crash when calling PUT /state/stop + ur-demo-arserver: + image: arcor2/arcor2_arserver:1.3.0 + container_name: ur-demo-arserver + depends_on: + ur-demo-project: + condition: service_healthy + ur-demo-asset: + condition: service_healthy + ur-demo-build: + condition: service_healthy + ur-demo-execution: + condition: service_started + ur-demo-scene: + condition: service_healthy + ur-demo-calibration: + condition: service_healthy + ports: + - "6789:6789" + - "6799:6799" + networks: + - ur-demo-network + environment: + - ARCOR2_PROJECT_SERVICE_URL=http://ur-demo-project:10000 + - ARCOR2_ASSET_SERVICE_URL=http://ur-demo-asset:10040 + - ARCOR2_SCENE_SERVICE_URL=http://ur-demo-scene:5013 + - ARCOR2_EXECUTION_URL=ws://ur-demo-execution:6790 + - ARCOR2_BUILD_URL=http://ur-demo-build:5008 + - ARCOR2_CALIBRATION_URL=http://ur-demo-calibration:5014 + # - ARCOR2_ARSERVER_DEBUG=1 + ur-demo-build: + image: arcor2/arcor2_build:1.7.0 + container_name: ur-demo-build + depends_on: + ur-demo-project: + condition: service_healthy + environment: + - ARCOR2_PROJECT_SERVICE_URL=http://ur-demo-project:10000 + - ARCOR2_PROJECT_PATH="" + ports: + - "5008:5008" + networks: + - ur-demo-network + + ur-demo-execution: + image: arcor2/arcor2_execution:1.6.0 + container_name: ur-demo-execution + networks: + - ur-demo-network + environment: + - ARCOR2_SCENE_SERVICE_URL=http://ur-demo-scene:5013 + - ARCOR2_PROJECT_PATH=/root/project + volumes: + - ur-demo-execution:/root/project + ports: + - "6791:6790" # only needed for debugging - to be able to connect from outside + + ur-demo-execution-proxy: + image: arcor2/arcor2_execution_proxy:1.2.1 + container_name: ur-demo-execution-proxy + networks: + - ur-demo-network + environment: + - ARCOR2_PROJECT_PATH=/root/project + - ARCOR2_EXECUTION_URL=ws://ur-demo-execution:6790 + depends_on: + ur-demo-execution: + condition: service_started + volumes: + - ur-demo-execution:/root/project + ports: + - "5009:5009" + + ur-demo-calibration: + image: arcor2/arcor2_calibration:1.2.0 + networks: + - ur-demo-network + ports: + - "5014:5014" + environment: + - ARCOR2_CALIBRATION_URL=http://ur-demo-calibration:5014 + - ARCOR2_CALIBRATION_MOCK=false + volumes: + - ./calibration.yaml:/root/calibration.yaml + + ur-demo-scene: + image: arcor2/arcor2_scene:1.1.0 + container_name: ur-demo-scene + networks: + - ur-demo-network + ports: + - "5013:5013" + + ur-demo-asset: + image: registry.gitlab.com/kinalisoft/test-it-off/asset:2.0.2 + container_name: "ur-demo-asset" + environment: + - "ASSETS_FOLDER=/tmp/assets" + volumes: + - ur-demo-asset:/tmp/assets + networks: + - ur-demo-network + expose: + - "10040" + ports: + - "10040:10040" + + ur-demo-project: + image: registry.gitlab.com/kinalisoft/test-it-off/project:2.0.2 + container_name: "ur-demo-project" + ports: + - "10000-10001:10000-10001" + environment: + - "ASSET_SERVICE_URL=http://ur-demo-asset:10040" + depends_on: + ur-demo-asset: + condition: service_healthy + networks: + - ur-demo-network + + ur-demo-nginx: + image: nginx:1.25.4 + container_name: "ur-demo-nginx" + volumes: + - ./nginx.conf:/etc/nginx/conf.d/default.conf + ports: + - "6790:80" + networks: + - ur-demo-network + depends_on: + - ur-demo-asset + + ur-demo-upload-object-types: + image: arcor2/arcor2_ur_ot:1.0.0 + container_name: "ur-demo-upload-object-types" + depends_on: + ur-demo-project: + condition: service_healthy + ur-demo-asset: + condition: service_healthy + networks: + - ur-demo-network + environment: + - ARCOR2_PROJECT_SERVICE_URL=http://ur-demo-project:10000 + - ARCOR2_ASSET_SERVICE_URL=http://ur-demo-asset:10040 + + ur-demo-upload-builtin-objects: + image: arcor2/arcor2_upload_builtin_objects:1.3.0 + container_name: "ur-demo-upload-builtin-objects" + depends_on: + ur-demo-project: + condition: service_healthy + ur-demo-asset: + condition: service_healthy + networks: + - ur-demo-network + environment: + - ARCOR2_PROJECT_SERVICE_URL=http://ur-demo-project:10000 + - ARCOR2_ASSET_SERVICE_URL=http://ur-demo-asset:10040 + +volumes: + ursim-gui-cache: + urcap-build-cache: + ur-demo-asset: + ur-demo-execution: + +networks: + ur-demo-network: \ No newline at end of file diff --git a/compose-files/ur-demo/nginx.conf b/compose-files/ur-demo/nginx.conf new file mode 100644 index 000000000..d73e6500b --- /dev/null +++ b/compose-files/ur-demo/nginx.conf @@ -0,0 +1,13 @@ +upstream asset { + server ur-demo-asset:10040; +} + +server { + + listen 80; + server_name file-proxy; + + location ~ /assets/(.*)/data$ { + proxy_pass http://asset/assets/$1/data; + } +} \ No newline at end of file diff --git a/mypy.ini b/mypy.ini index 5f494d78a..ea41607f4 100644 --- a/mypy.ini +++ b/mypy.ini @@ -106,3 +106,33 @@ ignore_missing_imports = True [mypy-dateutil] ignore_missing_imports = True + +[mypy-rclpy.*] +ignore_missing_imports = True + +[mypy-ament_index_python.*] +ignore_missing_imports = True + +[mypy-geometry_msgs.*] +ignore_missing_imports = True + +[mypy-moveit.*] +ignore_missing_imports = True + +[mypy-sensor_msgs.*] +ignore_missing_imports = True + +[mypy-moveit_configs_utils.*] +ignore_missing_imports = True + +[mypy-tf2_geometry_msgs.*] +ignore_missing_imports = True + +[mypy-tf2_ros.*] +ignore_missing_imports = True + +[mypy-std_srvs.*] +ignore_missing_imports = True + +[mypy-ur_dashboard_msgs.*] +ignore_missing_imports = True \ No newline at end of file diff --git a/pants.toml b/pants.toml index ffd9a1f3a..a3068d4bc 100644 --- a/pants.toml +++ b/pants.toml @@ -1,5 +1,5 @@ [GLOBAL] -pants_version = "2.21.0" +pants_version = "2.21.1" colors = true process_execution_local_parallelism = 4 @@ -35,7 +35,7 @@ root_patterns = [ ] [python] -interpreter_constraints = ["==3.11.*"] +interpreter_constraints = [">=3.11,<3.13"] enable_resolves = true [python.resolves] @@ -59,7 +59,7 @@ install_from_resolve = "pytest" [test] use_coverage = false -extra_env_vars = ["PYTHONDEVMODE=1"] # "PYTHONWARNINGS=error" not useable due to DeprecationWarning in networkx-2.2 +extra_env_vars = ["PYTHONDEVMODE=1", "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/jazzy/lib/x86_64-linux-gnu:/opt/ros/jazzy/lib", "HOME=/tmp"] # "PYTHONWARNINGS=error" not useable due to DeprecationWarning in networkx-2.2 timeout_default = 600 [python-infer] diff --git a/pytest.ini b/pytest.ini index 832d9ddb6..6c6e4aab0 100644 --- a/pytest.ini +++ b/pytest.ini @@ -6,4 +6,5 @@ log_cli = 1 log_cli_level = INFO log_cli_format = %(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s) log_cli_date_format=%Y-%m-%d %H:%M:%S -asyncio_mode=strict \ No newline at end of file +asyncio_mode=strict +pythonpath = /opt/ros/jazzy/lib/python3.12/site-packages /opt/ros/jazzy/local/lib/python3.12/dist-packages \ No newline at end of file diff --git a/src/docker/arcor2_arserver/BUILD b/src/docker/arcor2_arserver/BUILD index a55187714..6f6566dc0 100644 --- a/src/docker/arcor2_arserver/BUILD +++ b/src/docker/arcor2_arserver/BUILD @@ -1,5 +1,5 @@ shell_source(name="start.sh", source="start.sh") docker_image( - name="arcor2_arserver", repository="arcor2/arcor2_arserver", dependencies=[":start.sh"], image_tags=["1.2.0"] + name="arcor2_arserver", repository="arcor2/arcor2_arserver", dependencies=[":start.sh"], image_tags=["1.3.0"] ) diff --git a/src/docker/arcor2_build/BUILD b/src/docker/arcor2_build/BUILD index 32e3d58bc..0088efd30 100644 --- a/src/docker/arcor2_build/BUILD +++ b/src/docker/arcor2_build/BUILD @@ -1 +1 @@ -docker_image(name="arcor2_build", repository="arcor2/arcor2_build", image_tags=["1.6.0"]) +docker_image(name="arcor2_build", repository="arcor2/arcor2_build", image_tags=["1.7.0"]) diff --git a/src/docker/arcor2_execution/BUILD b/src/docker/arcor2_execution/BUILD index 8af5523c4..2e0f5e296 100644 --- a/src/docker/arcor2_execution/BUILD +++ b/src/docker/arcor2_execution/BUILD @@ -1 +1 @@ -docker_image(name="arcor2_execution", repository="arcor2/arcor2_execution", image_tags=["1.5.0"]) +docker_image(name="arcor2_execution", repository="arcor2/arcor2_execution", image_tags=["1.6.0"]) diff --git a/src/docker/arcor2_ur/BUILD b/src/docker/arcor2_ur/BUILD new file mode 100644 index 000000000..6114ba0e3 --- /dev/null +++ b/src/docker/arcor2_ur/BUILD @@ -0,0 +1,2 @@ +shell_source(name="start.sh", source="start.sh") +docker_image(name="arcor2_ur", repository="arcor2/arcor2_ur", dependencies=[":start.sh"], image_tags=["1.0.0"]) diff --git a/src/docker/arcor2_ur/Dockerfile b/src/docker/arcor2_ur/Dockerfile new file mode 100644 index 000000000..885b24ea5 --- /dev/null +++ b/src/docker/arcor2_ur/Dockerfile @@ -0,0 +1,64 @@ +FROM ubuntu:24.04 AS deps +COPY src.python.arcor2_ur.scripts/ur.pex /binary.pex +RUN apt-get update && apt-get install -y -q --no-install-recommends \ + python3=3.12.3-0ubuntu2 +RUN PEX_TOOLS=1 PYTHONOPTIMIZE=1 python3 /binary.pex venv --scope=deps --compile /bin/app + +FROM ubuntu:24.04 AS srcs +COPY src.python.arcor2_ur.scripts/ur.pex /binary.pex +RUN apt-get update && apt-get install -y -q --no-install-recommends \ + python3=3.12.3-0ubuntu2 +RUN PEX_TOOLS=1 PYTHONOPTIMIZE=1 python3 /binary.pex venv --scope=srcs --compile /bin/app + +FROM ubuntu:24.04 + +ARG DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && apt-get install -y -q --no-install-recommends \ + python3=3.12.3-0ubuntu2 \ + curl=8.5.0-2ubuntu10.3 \ + gnupg2=2.4.4-2ubuntu17 \ + lsb-release=12.0-2 \ + locales=2.39-0ubuntu8 \ + software-properties-common=0.99.48 \ + && locale-gen en_US en_US.UTF-8 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN add-apt-repository universe + +ENV LANG=en_US.UTF-8 +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +RUN curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg + +# hadolint ignore=SC2086 +RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo \"${UBUNTU_CODENAME}\") main" | tee /etc/apt/sources.list.d/ros2.list > /dev/null + + + +RUN apt-get update && apt-get install -y -q --no-install-recommends \ + ros-jazzy-ros-base=0.11.0-1noble.20240731.172749 \ + ros-jazzy-ur=2.4.9-1noble.20240820.020145 \ + ros-jazzy-moveit-py=2.10.0-1noble.20240731.183757 \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* +RUN echo "source /opt/ros/jazzy/setup.bash" >> /etc/bash.bashrc + +# libgl1-mesa-glx ?? +RUN apt-get update \ + && apt-get install -y -q --no-install-recommends \ + libglib2.0-0=2.80.0-6ubuntu3.1 \ + libgomp1=14-20240412-0ubuntu1 libusb-1.0-0=2:1.0.27-1 \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +COPY src/docker/arcor2_ur/start.sh /root/start.sh +RUN chmod +x /root/start.sh +ENTRYPOINT ["/root/start.sh"] +COPY --from=deps /bin/app /bin/app +COPY --from=srcs /bin/app /bin/app + +EXPOSE 5012 + +HEALTHCHECK --interval=5s --start-period=60s CMD curl -f http://localhost:5012/healthz/ready || exit 1 diff --git a/src/docker/arcor2_ur/start.sh b/src/docker/arcor2_ur/start.sh new file mode 100755 index 000000000..b79f82ffc --- /dev/null +++ b/src/docker/arcor2_ur/start.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# shellcheck source=/dev/null +source /opt/ros/jazzy/setup.bash + +: "${UR_TYPE:=ur5e}" +: "${ROBOT_CONTAINER_NAME:=ur-demo-ursim}" + +ROBOT_CONTAINER_IP=$(getent hosts "$ROBOT_CONTAINER_NAME" | awk '{ print $1 }') + +sleep 10s # TODO find a way how to detect that the robot is up and running (test if some port is opened?) + +ros2 launch ur_robot_driver ur_control.launch.py ur_type:="$UR_TYPE" robot_ip:="$ROBOT_CONTAINER_IP" launch_rviz:=false & + +PEX_EXTRA_SYS_PATH=/opt/ros/jazzy/lib/python3.12/site-packages /bin/app/pex diff --git a/src/docker/arcor2_ur_ot/BUILD b/src/docker/arcor2_ur_ot/BUILD new file mode 100644 index 000000000..63101b2b5 --- /dev/null +++ b/src/docker/arcor2_ur_ot/BUILD @@ -0,0 +1,3 @@ +docker_image( + name="arcor2_ur_ot", repository="arcor2/arcor2_ur_ot", image_tags=["1.0.0"] +) diff --git a/src/docker/arcor2_ur_ot/Dockerfile b/src/docker/arcor2_ur_ot/Dockerfile new file mode 100644 index 000000000..522c5f72c --- /dev/null +++ b/src/docker/arcor2_ur_ot/Dockerfile @@ -0,0 +1,13 @@ +FROM python:3.12.5-bookworm as deps +COPY src.python.arcor2_ur.scripts/upload_objects.pex /binary.pex +RUN PEX_TOOLS=1 PYTHONOPTIMIZE=1 /usr/local/bin/python /binary.pex venv --scope=deps --compile /bin/app + +FROM python:3.12.5-bookworm as srcs +COPY src.python.arcor2_ur.scripts/upload_objects.pex /binary.pex +RUN PEX_TOOLS=1 PYTHONOPTIMIZE=1 /usr/local/bin/python /binary.pex venv --scope=srcs --compile /bin/app + +FROM python:3.12.5-bookworm + +ENTRYPOINT ["/bin/app/pex"] +COPY --from=deps /bin/app /bin/app +COPY --from=srcs /bin/app /bin/app \ No newline at end of file diff --git a/src/python/arcor2/CHANGELOG.md b/src/python/arcor2/CHANGELOG.md index 391cc7b14..b48e78e02 100644 --- a/src/python/arcor2/CHANGELOG.md +++ b/src/python/arcor2/CHANGELOG.md @@ -2,6 +2,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +## [1.5.0] - 2024-09-12 + +### Changed + +- Added a new universal dataclass `InverseKinematicsRequest` for IK requests (simplifies HTTP requests). + + ## [1.4.0] - 2024-06-14 ### Changed diff --git a/src/python/arcor2/VERSION b/src/python/arcor2/VERSION index e21e727f9..3e1ad720b 100644 --- a/src/python/arcor2/VERSION +++ b/src/python/arcor2/VERSION @@ -1 +1 @@ -1.4.0 \ No newline at end of file +1.5.0 \ No newline at end of file diff --git a/src/python/arcor2/data/robot.py b/src/python/arcor2/data/robot.py index 16b5d1d8b..d479fa7f9 100644 --- a/src/python/arcor2/data/robot.py +++ b/src/python/arcor2/data/robot.py @@ -1,7 +1,19 @@ -from arcor2.data.common import StrEnum +from dataclasses import dataclass +from typing import Optional + +from dataclasses_jsonschema import JsonSchemaMixin + +from arcor2.data.common import Joint, Pose, StrEnum class RobotType(StrEnum): ARTICULATED = "articulated" # typically a 6 DoF robot CARTESIAN = "cartesian" SCARA = "scara" # ...or scara-like + + +@dataclass +class InverseKinematicsRequest(JsonSchemaMixin): + pose: Pose + start_joints: Optional[list[Joint]] = None + avoid_collisions: bool = True diff --git a/src/python/arcor2/object_types/tests/BUILD b/src/python/arcor2/object_types/tests/BUILD index d40f7aa51..1b57bc3eb 100644 --- a/src/python/arcor2/object_types/tests/BUILD +++ b/src/python/arcor2/object_types/tests/BUILD @@ -1,7 +1,8 @@ python_tests( runtime_package_dependencies=[ "src/python/arcor2_scene/scripts:scene", - ] + ], + interpreter_constraints=["==3.11.*"], ) python_test_utils( diff --git a/src/python/arcor2_arserver/CHANGELOG.md b/src/python/arcor2_arserver/CHANGELOG.md index 3e51409df..6e6a543b1 100644 --- a/src/python/arcor2_arserver/CHANGELOG.md +++ b/src/python/arcor2_arserver/CHANGELOG.md @@ -2,6 +2,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +## [1.3.0] - 2024-09-12 + +### Changed + +- Dependency on `arcor2~=1.5.0`. + ## [1.2.0] - 2024-04-11 ### Changed diff --git a/src/python/arcor2_arserver/VERSION b/src/python/arcor2_arserver/VERSION index 867e52437..589268e6f 100644 --- a/src/python/arcor2_arserver/VERSION +++ b/src/python/arcor2_arserver/VERSION @@ -1 +1 @@ -1.2.0 \ No newline at end of file +1.3.0 \ No newline at end of file diff --git a/src/python/arcor2_arserver/object_types/tests/BUILD b/src/python/arcor2_arserver/object_types/tests/BUILD index 053fd7535..282bac82e 100644 --- a/src/python/arcor2_arserver/object_types/tests/BUILD +++ b/src/python/arcor2_arserver/object_types/tests/BUILD @@ -1 +1 @@ -python_tests() \ No newline at end of file +python_tests(interpreter_constraints=["==3.11.*"]) diff --git a/src/python/arcor2_arserver/tests/BUILD b/src/python/arcor2_arserver/tests/BUILD index 1618ba455..ff859302e 100644 --- a/src/python/arcor2_arserver/tests/BUILD +++ b/src/python/arcor2_arserver/tests/BUILD @@ -1,4 +1,5 @@ python_tests( + interpreter_constraints=["==3.11.*"], runtime_package_dependencies=[ "src/python/arcor2/scripts:upload_builtin_objects", "src/python/arcor2_mocks/scripts:mock_asset", @@ -7,7 +8,7 @@ python_tests( "src/python/arcor2_build/scripts:build", "src/python/arcor2_execution/scripts:execution", "src/python/arcor2_arserver/scripts:arserver", - ] + ], ) python_test_utils(name="test_utils", sources=["conftest.py", "testutils.py"]) diff --git a/src/python/arcor2_build/CHANGELOG.md b/src/python/arcor2_build/CHANGELOG.md index ce4e4a484..e6ae14826 100644 --- a/src/python/arcor2_build/CHANGELOG.md +++ b/src/python/arcor2_build/CHANGELOG.md @@ -2,6 +2,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +## [1.7.0] - 2024-09-12 + +### Changed + +- Dependency on `arcor2~=1.5.0`. + ## [1.6.0] - 2024-06-14 ### Changed diff --git a/src/python/arcor2_build/VERSION b/src/python/arcor2_build/VERSION index ce6a70b9d..9dbb0c005 100644 --- a/src/python/arcor2_build/VERSION +++ b/src/python/arcor2_build/VERSION @@ -1 +1 @@ -1.6.0 \ No newline at end of file +1.7.0 \ No newline at end of file diff --git a/src/python/arcor2_calibration/BUILD b/src/python/arcor2_calibration/BUILD index de15e0198..fe1449f28 100644 --- a/src/python/arcor2_calibration/BUILD +++ b/src/python/arcor2_calibration/BUILD @@ -2,4 +2,5 @@ arcor2_python_distribution( name="arcor2_calibration", description="ARCOR2 Calibration", binaries={"arcor2_calibration": "src/python/arcor2_calibration/scripts:calibration"}, + interpreter_constraints=["==3.11.*"] ) diff --git a/src/python/arcor2_calibration/scripts/BUILD b/src/python/arcor2_calibration/scripts/BUILD index a6d4353c8..11b557bac 100644 --- a/src/python/arcor2_calibration/scripts/BUILD +++ b/src/python/arcor2_calibration/scripts/BUILD @@ -1,3 +1,3 @@ -python_sources() +python_sources(interpreter_constraints=["==3.11.*"]) -arcor2_pex_binary(name="calibration") +arcor2_pex_binary(name="calibration", interpreter_constraints=["==3.11.*"]) diff --git a/src/python/arcor2_calibration/tests/BUILD b/src/python/arcor2_calibration/tests/BUILD index dedafe42a..b90ca76d5 100644 --- a/src/python/arcor2_calibration/tests/BUILD +++ b/src/python/arcor2_calibration/tests/BUILD @@ -2,10 +2,11 @@ python_tests( name="test_calibration.py", runtime_package_dependencies=["src/python/arcor2_calibration/scripts:calibration"], sources=["test_calibration.py"], + interpreter_constraints=["==3.11.*"] ) python_tests( - name="test_estimate_camera_pose.py", sources=["test_estimate_camera_pose.py"], dependencies=[":markers.png"] + name="test_estimate_camera_pose.py", sources=["test_estimate_camera_pose.py"], dependencies=[":markers.png"], interpreter_constraints=["==3.11.*"] ) resources(name="markers.png", sources=["markers.png"]) diff --git a/src/python/arcor2_dobot/tests/BUILD b/src/python/arcor2_dobot/tests/BUILD index 82093b824..dab114595 100644 --- a/src/python/arcor2_dobot/tests/BUILD +++ b/src/python/arcor2_dobot/tests/BUILD @@ -1,8 +1,9 @@ python_tests( + interpreter_constraints=["==3.11.*"], runtime_package_dependencies=[ "src/python/arcor2_dobot/scripts:dobot", "src/python/arcor2_scene/scripts:scene", - ] + ], ) python_test_utils(name="test_utils") diff --git a/src/python/arcor2_execution/CHANGELOG.md b/src/python/arcor2_execution/CHANGELOG.md index 7d65a4dd6..967fa0229 100644 --- a/src/python/arcor2_execution/CHANGELOG.md +++ b/src/python/arcor2_execution/CHANGELOG.md @@ -2,6 +2,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +## [1.6.0] - 2024-09-12 + +### Changed + +- Dependency on `arcor2~=1.5.0`. + ## [1.5.0] - 2024-08-14 ### Changed diff --git a/src/python/arcor2_execution/VERSION b/src/python/arcor2_execution/VERSION index 3e1ad720b..ce6a70b9d 100644 --- a/src/python/arcor2_execution/VERSION +++ b/src/python/arcor2_execution/VERSION @@ -1 +1 @@ -1.5.0 \ No newline at end of file +1.6.0 \ No newline at end of file diff --git a/src/python/arcor2_fit_demo/object_types/tests/BUILD b/src/python/arcor2_fit_demo/object_types/tests/BUILD index 118ee0903..d39edcd63 100644 --- a/src/python/arcor2_fit_demo/object_types/tests/BUILD +++ b/src/python/arcor2_fit_demo/object_types/tests/BUILD @@ -1,6 +1,7 @@ python_tests( + interpreter_constraints=["==3.11.*"], dependencies=[ "src/python/arcor2_fit_demo/data/dobot-m1:dobot-m1", "src/python/arcor2_fit_demo/data/dobot-magician:dobot-magician", - ] + ], ) diff --git a/src/python/arcor2_fit_demo/tests/BUILD b/src/python/arcor2_fit_demo/tests/BUILD index f302ed586..9b6d18835 100644 --- a/src/python/arcor2_fit_demo/tests/BUILD +++ b/src/python/arcor2_fit_demo/tests/BUILD @@ -1,4 +1,5 @@ python_tests( + interpreter_constraints=["==3.11.*"], runtime_package_dependencies=[ "src/python/arcor2_mocks/scripts:mock_asset", "src/python/arcor2_mocks/scripts:mock_project", @@ -7,7 +8,7 @@ python_tests( "src/python/arcor2_execution/scripts:execution", "src/python/arcor2_arserver/scripts:arserver", "src/python/arcor2_fit_demo/scripts:upload_objects", - ] + ], ) python_test_utils(name="test_utils", dependencies=["src/python/arcor2_arserver/tests:test_utils"]) diff --git a/src/python/arcor2_logger/tests/BUILD b/src/python/arcor2_logger/tests/BUILD index bf38fef49..c10302c4d 100644 --- a/src/python/arcor2_logger/tests/BUILD +++ b/src/python/arcor2_logger/tests/BUILD @@ -1,4 +1,5 @@ python_tests( + interpreter_constraints=["==3.11.*"], runtime_package_dependencies=[ "src/python/arcor2_mocks/scripts:mock_asset", "src/python/arcor2_mocks/scripts:mock_project", @@ -7,7 +8,7 @@ python_tests( "src/python/arcor2_execution/scripts:execution", "src/python/arcor2_arserver/scripts:arserver", "src/python/arcor2_logger/scripts:upload_objects", - ] + ], ) python_test_utils(name="test_utils", dependencies=["src/python/arcor2_arserver/tests:test_utils"]) diff --git a/src/python/arcor2_scene/BUILD b/src/python/arcor2_scene/BUILD index 5810d0590..48e8ed407 100644 --- a/src/python/arcor2_scene/BUILD +++ b/src/python/arcor2_scene/BUILD @@ -4,4 +4,5 @@ arcor2_python_distribution( binaries={ "arcor2_scene": "src/python/arcor2_scene/scripts:scene", }, + interpreter_constraints=["==3.11.*"] ) diff --git a/src/python/arcor2_scene/scripts/BUILD b/src/python/arcor2_scene/scripts/BUILD index 72d9f6da9..bbf1aa724 100644 --- a/src/python/arcor2_scene/scripts/BUILD +++ b/src/python/arcor2_scene/scripts/BUILD @@ -1,3 +1,3 @@ -python_sources() +python_sources(interpreter_constraints=["==3.11.*"]) -arcor2_pex_binary(name="scene") +arcor2_pex_binary(name="scene", interpreter_constraints=["==3.11.*"]) diff --git a/src/python/arcor2_scene/tests/BUILD b/src/python/arcor2_scene/tests/BUILD index ad71cba71..d79eef67e 100644 --- a/src/python/arcor2_scene/tests/BUILD +++ b/src/python/arcor2_scene/tests/BUILD @@ -1,5 +1,6 @@ python_tests( runtime_package_dependencies=[ "src/python/arcor2_scene/scripts:scene", - ] + ], + interpreter_constraints=["==3.11.*"] ) diff --git a/src/python/arcor2_ur/BUILD b/src/python/arcor2_ur/BUILD new file mode 100644 index 000000000..c3acb0277 --- /dev/null +++ b/src/python/arcor2_ur/BUILD @@ -0,0 +1,6 @@ +arcor2_python_distribution( + name="arcor2_ur", + description="ARCOR2 Universal Robots service", + binaries={"arcor2_ur": "src/python/arcor2_ur/scripts:ur"}, + interpreter_constraints=["==3.12.*"], +) diff --git a/src/python/arcor2_ur/CHANGELOG.md b/src/python/arcor2_ur/CHANGELOG.md new file mode 100644 index 000000000..7d625da73 --- /dev/null +++ b/src/python/arcor2_ur/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), + +## [1.0.0] - 2024-09-12 + +### Changed +- Initial release of the UR service. diff --git a/src/python/arcor2_ur/README.md b/src/python/arcor2_ur/README.md new file mode 100644 index 000000000..86586ac97 --- /dev/null +++ b/src/python/arcor2_ur/README.md @@ -0,0 +1,8 @@ +# arcor2_ur + +Communicates over ROS 2 with Universal Robots (tested with UR5e). + +## Environment variables + +- `ARCOR2_UR_URL=http://0.0.0.0:5012` - by default, the service listens on port 5012. +- `ARCOR2_UR_DEBUG=1` - turns on debug logging. \ No newline at end of file diff --git a/src/python/arcor2_ur/VERSION b/src/python/arcor2_ur/VERSION new file mode 100644 index 000000000..afaf360d3 --- /dev/null +++ b/src/python/arcor2_ur/VERSION @@ -0,0 +1 @@ +1.0.0 \ No newline at end of file diff --git a/src/python/arcor2_ur/__init__.py b/src/python/arcor2_ur/__init__.py new file mode 100644 index 000000000..2e49a73b1 --- /dev/null +++ b/src/python/arcor2_ur/__init__.py @@ -0,0 +1,13 @@ +import os + +from arcor2 import package_version + +_ROOT = os.path.abspath(os.path.dirname(__file__)) + + +def version() -> str: + return package_version(__name__) + + +def get_data(path: str) -> str: + return os.path.join(_ROOT, "data", path) diff --git a/src/python/arcor2_ur/data/BUILD b/src/python/arcor2_ur/data/BUILD new file mode 100644 index 000000000..1edd5c1b0 --- /dev/null +++ b/src/python/arcor2_ur/data/BUILD @@ -0,0 +1 @@ +resources(name="moveit.yaml", sources=["moveit.yaml"]) \ No newline at end of file diff --git a/src/python/arcor2_ur/data/moveit.yaml b/src/python/arcor2_ur/data/moveit.yaml new file mode 100644 index 000000000..97ca7c6dd --- /dev/null +++ b/src/python/arcor2_ur/data/moveit.yaml @@ -0,0 +1,19 @@ +planning_scene_monitor_options: + name: "planning_scene_monitor" + robot_description: "robot_description" + joint_state_topic: "/joint_states" + attached_collision_object_topic: "/moveit_cpp/planning_scene_monitor" + publish_planning_scene_topic: "/moveit_cpp/publish_planning_scene" + monitored_planning_scene_topic: "/moveit_cpp/monitored_planning_scene" + wait_for_initial_state_timeout: 10.0 + +planning_pipelines: + namespace: "moveit_cpp" # optional, default is ~ + pipeline_names: ["ompl"] + +plan_request_params: + planning_attempts: 1 + planning_pipeline: ompl + max_velocity_scaling_factor: 1.0 + max_acceleration_scaling_factor: 1.0 + planning_time: 5.0 diff --git a/src/python/arcor2_ur/data/urdf/BUILD b/src/python/arcor2_ur/data/urdf/BUILD new file mode 100644 index 000000000..73b4efc33 --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/BUILD @@ -0,0 +1,8 @@ +resources( + name="ur5e", + sources=[ + "ur5e.urdf", + "meshes/ur5e/collision/*.stl", + "meshes/ur5e/visual/*.dae", + ], +) diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/base.stl b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/base.stl new file mode 100644 index 000000000..17532f8b2 --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/base.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a145e0d46f2130afdf2a2e8825a00a929870c4c3d6d8e4d1adc5f04db3aac1b +size 21084 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/forearm.stl b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/forearm.stl new file mode 100644 index 000000000..f45e03826 --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/forearm.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e7423cab807c34160ec4f770daee5e747d70e777eb01b7beeace2b8c5751816 +size 53284 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/shoulder.stl b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/shoulder.stl new file mode 100644 index 000000000..2afa86568 --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/shoulder.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ceb92532177daa77682f5fbd628e01c2137d168f949a7a706ce1dabe9f002387 +size 70084 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/upperarm.stl b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/upperarm.stl new file mode 100644 index 000000000..d0535c386 --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/upperarm.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee893044caf00075cb55b4cf666d1f1311c7979786212a501009f33bee945209 +size 99684 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/wrist1.stl b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/wrist1.stl new file mode 100644 index 000000000..a4c0a8332 --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/wrist1.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8c9f9337b6fd98c75f052e96de10e14a107ddb6874ba6b904e546f8a4e4f43a +size 59584 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/wrist2.stl b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/wrist2.stl new file mode 100644 index 000000000..44ce896e6 --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/wrist2.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2964a63f60ce3e3cf3ad55bcf190d7876d50e373cb64b70a57cea5885eaf3c86 +size 67584 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/wrist3.stl b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/wrist3.stl new file mode 100644 index 000000000..2db25af90 --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/collision/wrist3.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83b3666b4ae2badd54af0d2c25a921682ecbc29e849eec646c3ed55fb74c78a3 +size 7184 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/base.dae b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/base.dae new file mode 100644 index 000000000..2185a214a --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/base.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c30e4d7228ef633dca2a02c26df2316741f6642cb6333e8289dba6e6d0b22819 +size 358056 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/forearm.dae b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/forearm.dae new file mode 100644 index 000000000..3c523ec8f --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/forearm.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04694bf57dac46e9b8bc7c30f2eec75a1bc762e1f1a879ea30c944f24cacbad8 +size 1140937 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/shoulder.dae b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/shoulder.dae new file mode 100644 index 000000000..d837c6541 --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/shoulder.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c581bfa55b86061d9b99d315ed53817b6b693e6a500643bbf9bbb783322d585d +size 1797083 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/upperarm.dae b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/upperarm.dae new file mode 100644 index 000000000..c8210688f --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/upperarm.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c040a05bb224f14cfab6aa6704d70cbb773ada940eca9a3e34e6ce486c4c4c29 +size 3082486 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/wrist1.dae b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/wrist1.dae new file mode 100644 index 000000000..cf80df86a --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/wrist1.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a07a3d96d2540f9be12e4a07bcb8577d9f1e36005920c396a407804343a3b588 +size 1334663 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/wrist2.dae b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/wrist2.dae new file mode 100644 index 000000000..69113135f --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/wrist2.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:982fa42933c6f81629882ad7975e9ba5dac5d474a6b56694e233708376cf840e +size 1554839 diff --git a/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/wrist3.dae b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/wrist3.dae new file mode 100644 index 000000000..96beb66bb --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/meshes/ur5e/visual/wrist3.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a7664ac4adcd53b0870fe6a2b8b975693d846dd4d07a5f44194c7d16f4890ba +size 66077 diff --git a/src/python/arcor2_ur/data/urdf/ur5e.urdf b/src/python/arcor2_ur/data/urdf/ur5e.urdf new file mode 100644 index 000000000..f0e7f5736 --- /dev/null +++ b/src/python/arcor2_ur/data/urdf/ur5e.urdf @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/python/arcor2_ur/exceptions.py b/src/python/arcor2_ur/exceptions.py new file mode 100644 index 000000000..d42551d33 --- /dev/null +++ b/src/python/arcor2_ur/exceptions.py @@ -0,0 +1,21 @@ +from arcor2.flask import FlaskException, General, WebApiErrorFactory +from arcor2_ur import __name__ as package_name + + +class UrException(FlaskException): + service = package_name + + +class UrGeneral(UrException): + description = General.description + + +class NotFound(UrException): + description = "Occurs when something is not found" + + +class StartError(UrException): + description = "Occurs when start condition is not met" + + +WebApiError = WebApiErrorFactory.get_class(UrGeneral, NotFound, StartError) diff --git a/src/python/arcor2_ur/object_types/BUILD b/src/python/arcor2_ur/object_types/BUILD new file mode 100644 index 000000000..2181f04b3 --- /dev/null +++ b/src/python/arcor2_ur/object_types/BUILD @@ -0,0 +1 @@ +python_sources() \ No newline at end of file diff --git a/src/python/arcor2_ur/object_types/__init__.py b/src/python/arcor2_ur/object_types/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/python/arcor2_ur/object_types/ur5e.py b/src/python/arcor2_ur/object_types/ur5e.py new file mode 100644 index 000000000..cb233677e --- /dev/null +++ b/src/python/arcor2_ur/object_types/ur5e.py @@ -0,0 +1,104 @@ +from dataclasses import dataclass +from typing import cast + +from arcor2 import rest +from arcor2.data.common import ActionMetadata, Joint, Pose +from arcor2.data.robot import InverseKinematicsRequest +from arcor2.object_types.abstract import Robot, Settings + + +@dataclass +class UrSettings(Settings): + url: str = "http://ur-demo-robot-api:5012" + + +class Ur5e(Robot): + _ABSTRACT = False + urdf_package_name = "ur5e.zip" + + def __init__(self, obj_id: str, name: str, pose: Pose, settings: UrSettings) -> None: + super(Ur5e, self).__init__(obj_id, name, pose, settings) + self._start() + + def _started(self) -> bool: + return rest.call(rest.Method.GET, f"{self.settings.url}/state/started", return_type=bool) + + def _stop(self) -> None: + rest.call(rest.Method.PUT, f"{self.settings.url}/state/stop") + + def _start(self) -> None: + if self._started(): + self._stop() + + rest.call(rest.Method.PUT, f"{self.settings.url}/state/start", body=self.pose, timeout=rest.Timeout(read=30)) + + @property + def settings(self) -> UrSettings: + return cast(UrSettings, super(Ur5e, self).settings) + + def cleanup(self): + self._stop() + + def get_end_effectors_ids(self) -> set[str]: + return {"default"} + + def grippers(self) -> set[str]: + return set() + + def suctions(self) -> set[str]: + return set("default") + + def get_end_effector_pose(self, end_effector_id: str) -> Pose: + return rest.call(rest.Method.GET, f"{self.settings.url}/eef/pose", return_type=Pose) + + def move_to_pose( + self, end_effector_id: str, target_pose: Pose, speed: float, safe: bool = True, linear: bool = True + ) -> None: + self.move(target_pose) + + def move( + self, + pose: Pose, + *, + an: None | str = None, + ) -> None: + """Moves the robot's end-effector to a specific pose. + + :param pose: Target pose. + :return: + """ + + with self._move_lock: + rest.call( + rest.Method.PUT, + f"{self.settings.url}/eef/pose", + body=pose, + ) + + def robot_joints(self, include_gripper: bool = False) -> list[Joint]: + return rest.call(rest.Method.GET, f"{self.settings.url}/joints", list_return_type=Joint) + + def inverse_kinematics( + self, + end_effector_id: str, + pose: Pose, + start_joints: None | list[Joint] = None, + avoid_collisions: bool = True, + ) -> list[Joint]: + """Computes inverse kinematics. + + :param end_effector_id: IK target pose end-effector + :param pose: IK target pose + :param start_joints: IK start joints (not supported) + :param avoid_collisions: Return non-collision IK result if true (not supported) + :return: Inverse kinematics + """ + + return rest.call( + rest.Method.PUT, + f"{self.settings.url}/ik", + body=InverseKinematicsRequest(pose, start_joints, avoid_collisions), + list_return_type=Joint, + ) + + move.__action__ = ActionMetadata() # type: ignore diff --git a/src/python/arcor2_ur/py.typed b/src/python/arcor2_ur/py.typed new file mode 100644 index 000000000..e69de29bb diff --git a/src/python/arcor2_ur/scripts/BUILD b/src/python/arcor2_ur/scripts/BUILD new file mode 100644 index 000000000..968facabe --- /dev/null +++ b/src/python/arcor2_ur/scripts/BUILD @@ -0,0 +1,4 @@ +python_sources(interpreter_constraints=["==3.12.*"]) + +arcor2_pex_binary(name="ur", interpreter_constraints=["==3.12.*"],dependencies=["3rdparty#lark", "src/python/arcor2_ur/data:moveit.yaml"]) +arcor2_pex_binary(name="upload_objects", dependencies=["src/python/arcor2_ur/data/urdf:ur5e"], interpreter_constraints=["==3.12.*"]) \ No newline at end of file diff --git a/src/python/arcor2_ur/scripts/__init__.py b/src/python/arcor2_ur/scripts/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/python/arcor2_ur/scripts/upload_objects.py b/src/python/arcor2_ur/scripts/upload_objects.py new file mode 100644 index 000000000..a8a787dd3 --- /dev/null +++ b/src/python/arcor2_ur/scripts/upload_objects.py @@ -0,0 +1,11 @@ +from arcor2.object_types.upload import Urdf, upload_def +from arcor2_ur import get_data +from arcor2_ur.object_types.ur5e import Ur5e + + +def main() -> None: + upload_def(Ur5e, urdf=Urdf(get_data("urdf"), Ur5e.urdf_package_name)) + + +if __name__ == "__main__": + main() diff --git a/src/python/arcor2_ur/scripts/ur.py b/src/python/arcor2_ur/scripts/ur.py new file mode 100644 index 000000000..b734fc1b1 --- /dev/null +++ b/src/python/arcor2_ur/scripts/ur.py @@ -0,0 +1,612 @@ +#!/usr/bin/env python3 + +import argparse +import logging +import os +import threading +import time +from dataclasses import dataclass, field +from functools import wraps + +import rclpy # pants: no-infer-dep +from ament_index_python.packages import get_package_share_directory # pants: no-infer-dep +from flask import Response, jsonify, request +from geometry_msgs.msg import Pose as RosPose # pants: no-infer-dep +from geometry_msgs.msg import PoseStamped # pants: no-infer-dep +from moveit.planning import MoveItPy, PlanningComponent # pants: no-infer-dep +from moveit_configs_utils import MoveItConfigsBuilder # pants: no-infer-dep +from rclpy.node import Node # pants: no-infer-dep +from sensor_msgs.msg import JointState # pants: no-infer-dep +from std_srvs.srv import Trigger # pants: no-infer-dep +from tf2_geometry_msgs import do_transform_pose # pants: no-infer-dep +from tf2_ros.buffer import Buffer # pants: no-infer-dep +from tf2_ros.transform_listener import TransformListener # pants: no-infer-dep +from ur_dashboard_msgs.srv import Load # pants: no-infer-dep + +from arcor2 import env +from arcor2 import transformations as tr +from arcor2.data.common import Joint, Pose +from arcor2.data.robot import InverseKinematicsRequest +from arcor2.flask import RespT, create_app, run_app +from arcor2.helpers import port_from_url +from arcor2.logging import get_logger +from arcor2_ur import get_data, version +from arcor2_ur.exceptions import StartError, UrGeneral, WebApiError + +logger = get_logger(__name__) + +URL = os.getenv("ARCOR2_UR_URL", "http://localhost:5012") +BASE_LINK = os.getenv("ARCOR2_UR_BASE_LINK", "base_link") +TOOL_LINK = os.getenv("ARCOR2_UR_TOOL_LINK", "tool0") +UR_TYPE = os.getenv("ARCOR2_UR_TYPE", "ur5e") +PLANNING_GROUP_NAME = os.getenv("ARCOR2_UR_PLANNING_GROUP_NAME", "ur_manipulator") + +SERVICE_NAME = f"UR Web API ({UR_TYPE})" + +INTERACT_WITH_DASHBOARD = env.get_bool("ARCOR2_UR_INTERACT_WITH_DASHBOARD", True) + +BRAKE_RELEASE_SRV = "/dashboard_client/brake_release" +POWER_OFF_SRV = "/dashboard_client/power_off" +LOAD_PROGRAM_SRV = "/dashboard_client/load_program" +PLAY_SRV = "/dashboard_client/play" + + +def plan_and_execute( + robot, + planning_component, + logger, + single_plan_parameters=None, + multi_plan_parameters=None, + sleep_time=0.0, +) -> None: + """Helper function to plan and execute a motion.""" + # plan to goal + logger.info("Planning trajectory") + if multi_plan_parameters is not None: + plan_result = planning_component.plan(multi_plan_parameters=multi_plan_parameters) + elif single_plan_parameters is not None: + plan_result = planning_component.plan(single_plan_parameters=single_plan_parameters) + else: + plan_result = planning_component.plan() + + # execute the plan + if plan_result: + logger.info("Executing plan") + robot_trajectory = plan_result.trajectory + if not robot.execute(robot_trajectory, controllers=[]): + raise UrGeneral("Trajectory execution failed.") + else: + raise UrGeneral("Planning failed") # TODO raise more specific exception + + time.sleep(sleep_time) + + +class MyNode(Node): + def __init__(self, interact_with_dashboard=True) -> None: + super().__init__("my_node") + + self.buffer = Buffer() + self.listener = TransformListener(self.buffer, self) + self.subscription = self.create_subscription(JointState, "joint_states", self.listener_callback, 10) + self.interact_with_dashboard = interact_with_dashboard + + self._break_release_client = self.create_client(Trigger, BRAKE_RELEASE_SRV) + while self.interact_with_dashboard and not self._break_release_client.wait_for_service(timeout_sec=1.0): + logger.warning(f"Service {BRAKE_RELEASE_SRV} not available, waiting again...") + + self._power_off_client = self.create_client(Trigger, POWER_OFF_SRV) + while self.interact_with_dashboard and not self._power_off_client.wait_for_service(timeout_sec=1.0): + logger.warning(f"Service {POWER_OFF_SRV} not available, waiting again...") + + self._load_program_client = self.create_client(Load, LOAD_PROGRAM_SRV) + while self.interact_with_dashboard and not self._load_program_client.wait_for_service(timeout_sec=1.0): + logger.warning(f"Service {LOAD_PROGRAM_SRV} not available, waiting again...") + + self._play_client = self.create_client(Trigger, PLAY_SRV) + while self.interact_with_dashboard and not self._play_client.wait_for_service(timeout_sec=1.0): + logger.warning(f"Service {PLAY_SRV} not available, waiting again...") + + def brake_release(self) -> None: + if not self.interact_with_dashboard: + return + + future = self._break_release_client.call_async(Trigger.Request()) + rclpy.spin_until_future_complete(self, future, timeout_sec=2) + + if future.result() is None: + raise Exception("Service call failed!") + + response = future.result() + if not response.success: + raise Exception(f"Service call failed with message: {response.message}") + + def power_off(self) -> None: + if not self.interact_with_dashboard: + return + + future = self._power_off_client.call_async(Trigger.Request()) + rclpy.spin_until_future_complete(self, future, timeout_sec=2) + + if future.result() is None: + raise Exception("Service call failed!") + + response = future.result() + if not response.success: + raise Exception(f"Service call failed with message: {response.message}") + + def load_program(self) -> None: + if not self.interact_with_dashboard: + return + + future = self._load_program_client.call_async(Load.Request(filename="prog.urp")) + rclpy.spin_until_future_complete(self, future, timeout_sec=2) + + if future.result() is None: + raise Exception("Service call failed!") + + response = future.result() + if not response.success: + raise Exception(f"Service call failed with message: {response.answer}") + + def play(self) -> None: + if not self.interact_with_dashboard: + return + + future = self._play_client.call_async(Trigger.Request()) + rclpy.spin_until_future_complete(self, future, timeout_sec=2) + + if future.result() is None: + raise Exception("Service call failed!") + + response = future.result() + if not response.success: + raise Exception(f"Service call failed with message: {response.message}") + + def listener_callback(self, msg: JointState) -> None: + joints = [] + for name, position in zip(msg.name, msg.position): + joints.append(Joint(name, position)) + if globs.state is not None: + globs.state.joints = joints # TODO not very clean solution + + +@dataclass +class State: + pose: Pose + node: MyNode + moveitpy: MoveItPy + ur_manipulator: PlanningComponent + joints: list[Joint] = field(default_factory=list) + + _executor: rclpy.executors.MultiThreadedExecutor | None = None + _executor_thread: threading.Thread | None = None + + def shutdown(self) -> None: + assert self._executor + assert self._executor_thread + + self.node.destroy_node() + self._executor.shutdown() + self._executor_thread.join(3) + assert not self._executor_thread.is_alive() + self.moveitpy.shutdown() + rclpy.shutdown() + + def __post_init__(self) -> None: + self._executor = rclpy.executors.MultiThreadedExecutor() + self._executor.add_node(self.node) + self._executor_thread = threading.Thread(target=self._executor.spin, daemon=True) + self._executor_thread.start() + + +@dataclass +class Globs: + state: State | None = None + # lock: threading.Lock = threading.Lock() + + +globs: Globs = Globs() +app = create_app(__name__) + +# this is normally specified in a launch file +moveit_config = ( + MoveItConfigsBuilder(robot_name="ur", package_name="ur_moveit_config") + .robot_description( + os.path.join(get_package_share_directory("ur_description"), "urdf", "ur.urdf.xacro"), + {"name": "ur", "ur_type": UR_TYPE}, + ) + .robot_description_semantic( + os.path.join(get_package_share_directory("ur_moveit_config"), "srdf", "ur.srdf.xacro"), {"name": UR_TYPE} + ) + .trajectory_execution( + os.path.join(get_package_share_directory("ur_moveit_config"), "config", "moveit_controllers.yaml") + ) + .robot_description_kinematics( + os.path.join(get_package_share_directory("ur_moveit_config"), "config", "kinematics.yaml") + ) + .moveit_cpp(file_path=get_data("moveit.yaml")) + .to_moveit_configs() +).to_dict() + + +def started() -> bool: + return globs.state is not None + + +def requires_started(f): + @wraps(f) + def wrapped(*args, **kwargs): + if not started(): + raise StartError("Not started") + return f(*args, **kwargs) + + return wrapped + + +@app.route("/state/start", methods=["PUT"]) +def put_start() -> RespT: + """Start the robot. + --- + put: + description: Start the robot. + tags: + - State + requestBody: + content: + application/json: + schema: + $ref: Pose + responses: + 204: + description: Ok + 500: + description: "Error types: **General**, **UrGeneral**, **StartError**." + content: + application/json: + schema: + $ref: WebApiError + """ + + if started(): + raise StartError("Already started.") + + if not isinstance(request.json, dict): + raise UrGeneral("Body should be a JSON dict containing Pose.") + + pose = Pose.from_dict(request.json) + + rclpy.init() + + # TODO find better way how to detect that the launch was started (wait for some topic?) + time.sleep(2) + + node = MyNode(INTERACT_WITH_DASHBOARD) + try: + node.brake_release() + node.load_program() + node.play() + except Exception: + node.destroy_node() + rclpy.shutdown() + raise + + moveitpy = MoveItPy(node_name="moveit_py", config_dict=moveit_config) + globs.state = State(pose, node, moveitpy, moveitpy.get_planning_component(PLANNING_GROUP_NAME)) + + return Response(status=204) + + +@app.route("/state/stop", methods=["PUT"]) +@requires_started +def put_stop() -> RespT: + """Stop the robot. + --- + put: + description: Stop the robot. + tags: + - State + responses: + 204: + description: Ok + 500: + description: "Error types: **General**, **StartError**." + content: + application/json: + schema: + $ref: WebApiError + """ + + assert globs.state + + globs.state.node.power_off() + globs.state.shutdown() + globs.state = None + + return Response(status=204) + + +@app.route("/state/started", methods=["GET"]) +def get_started() -> RespT: + """Get the current state. + --- + get: + description: Get the current state. + tags: + - State + responses: + 200: + description: Ok + content: + application/json: + schema: + type: boolean + 500: + description: "Error types: **General**." + content: + application/json: + schema: + $ref: WebApiError + """ + + return jsonify(started()) + + +@app.route("/joints", methods=["GET"]) +@requires_started +def get_joints() -> RespT: + """Get the current state. + --- + get: + description: Get the current state. + tags: + - Robot + responses: + 200: + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: Joint + 500: + description: "Error types: **General**, **StartError**." + content: + application/json: + schema: + $ref: WebApiError + """ + + assert globs.state + + return jsonify([joint.to_dict() for joint in globs.state.joints]) + + +@app.route("/ik", methods=["PUT"]) +@requires_started +def put_ik() -> RespT: + """Get the current state. + --- + put: + description: Get the current state. + tags: + - Robot + requestBody: + content: + application/json: + schema: + $ref: InverseKinematicsRequest + responses: + 200: + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: Joint + 500: + description: "Error types: **General**, **DobotGeneral**, **StartError**." + content: + application/json: + schema: + $ref: WebApiError + """ + + assert globs.state + + if not isinstance(request.json, dict): + raise UrGeneral("Body should be a JSON dict containing InverseKinematicsRequest.") + + ikr = InverseKinematicsRequest.from_dict(request.json) + + if not ikr.start_joints: + ikr.start_joints = globs.state.joints + elif len(ikr.start_joints) != len(globs.state.joints): + raise UrGeneral(f"Wrong number of joints! Should be {len(globs.state.joints)}.") + + ikr.pose = tr.make_pose_rel(globs.state.pose, ikr.pose) + + logger.debug(f"Got IK request: {ikr}") + + with globs.state.moveitpy.get_planning_scene_monitor().read_write() as scene: + if not ikr.avoid_collisions: + scene.remove_all_collision_objects() + + scene.current_state.update(force=True) + + scene.current_state.joint_positions = {j.name: j.value for j in ikr.start_joints} + + pose_goal = RosPose() + pose_goal.position.x = ikr.pose.position.x + pose_goal.position.y = ikr.pose.position.y + pose_goal.position.z = ikr.pose.position.z + pose_goal.orientation.x = ikr.pose.orientation.x + pose_goal.orientation.y = ikr.pose.orientation.y + pose_goal.orientation.z = ikr.pose.orientation.z + pose_goal.orientation.w = ikr.pose.orientation.w + + # Set the robot state and check collisions + if not scene.current_state.set_from_ik(PLANNING_GROUP_NAME, pose_goal, TOOL_LINK, timeout=3): + raise UrGeneral("Can't get IK!") + + scene.current_state.update() # required to update transforms + + if ( + scene.is_state_colliding( + robot_state=scene.current_state, joint_model_group_name=PLANNING_GROUP_NAME, verbose=True + ) + and ikr.avoid_collisions + ): + raise UrGeneral("State is in collision.") # TODO IK exception... + + assert len(scene.current_state.joint_positions) == len(globs.state.joints) + + return jsonify([Joint(jn, jv).to_dict() for jn, jv in scene.current_state.joint_positions.items()]) + + +@app.route("/eef/pose", methods=["GET"]) +@requires_started +def get_eef_pose() -> RespT: + """Get the EEF pose. + --- + get: + description: Get the EEF pose. + tags: + - Robot + responses: + 200: + description: Ok + content: + application/json: + schema: + $ref: Pose + 500: + description: "Error types: **General**, **StartError**." + content: + application/json: + schema: + $ref: WebApiError + """ + + assert globs.state + + ps = RosPose() + + time = rclpy.time.Time() + + globs.state.node.buffer.can_transform(BASE_LINK, TOOL_LINK, time, timeout=rclpy.time.Duration(seconds=1.0)) + transform = globs.state.node.buffer.lookup_transform(BASE_LINK, TOOL_LINK, time) + pst = do_transform_pose(ps, transform) + + pose = Pose() + pose.position.x = pst.position.x + pose.position.y = pst.position.y + pose.position.z = pst.position.z + + pose.orientation.x = pst.orientation.x + pose.orientation.y = pst.orientation.y + pose.orientation.z = pst.orientation.z + pose.orientation.w = pst.orientation.w + + pose = tr.make_pose_abs(globs.state.pose, pose) + + return jsonify(pose.to_dict()), 200 + + +@app.route("/eef/pose", methods=["PUT"]) +@requires_started +def put_eef_pose() -> RespT: + """Set the EEF pose. + --- + put: + description: Set the EEF pose. + tags: + - Robot + requestBody: + content: + application/json: + schema: + $ref: Pose + responses: + 200: + description: Ok + 500: + description: "Error types: **General**, **UrGeneral**, **StartError**, **NotFound**." + content: + application/json: + schema: + $ref: WebApiError + """ + + assert globs.state + + if not isinstance(request.json, dict): + raise UrGeneral("Body should be a JSON dict containing Pose.") + + pose = Pose.from_dict(request.json) + pose = tr.make_pose_rel(globs.state.pose, pose) + + pose_goal = PoseStamped() + pose_goal.header.frame_id = BASE_LINK + + pose_goal.pose.orientation.x = pose.orientation.x + pose_goal.pose.orientation.y = pose.orientation.y + pose_goal.pose.orientation.z = pose.orientation.z + pose_goal.pose.orientation.w = pose.orientation.w + pose_goal.pose.position.x = pose.position.x + pose_goal.pose.position.y = pose.position.y + pose_goal.pose.position.z = pose.position.z + + with globs.state.moveitpy.get_planning_scene_monitor().read_write() as scene: + scene.current_state.update(force=True) + scene.current_state.joint_positions = {j.name: j.value for j in globs.state.joints} + scene.current_state.update() + + globs.state.ur_manipulator.set_start_state_to_current_state() + globs.state.ur_manipulator.set_goal_state(pose_stamped_msg=pose_goal, pose_link=TOOL_LINK) + + plan_and_execute(globs.state.moveitpy, globs.state.ur_manipulator, logger, sleep_time=3.0) + + return Response(status=204) + + +def main() -> None: + parser = argparse.ArgumentParser(description=SERVICE_NAME) + parser.add_argument("-s", "--swagger", action="store_true", default=False) + + parser.add_argument( + "-d", + "--debug", + help="Set logging level to debug.", + action="store_const", + const=logging.DEBUG, + default=logging.DEBUG if env.get_bool("ARCOR2_UR_DEBUG") else logging.INFO, + ) + + args = parser.parse_args() + logger.setLevel(args.debug) + + # TODO there will be a ROS-specific scene service + # if not args.swagger: + # scene_service.wait_for() + + if not INTERACT_WITH_DASHBOARD: + logger.warning("Interaction with robot dashboard disabled. Make sure you know what it means.") + + run_app( + app, + SERVICE_NAME, + version(), + port_from_url(URL), + [Pose, Joint, InverseKinematicsRequest, WebApiError], + args.swagger, + # dependencies={"ARCOR2 Scene": "1.0.0"}, + ) + + if globs.state: + globs.state.shutdown() + + +if __name__ == "__main__": + main() diff --git a/src/python/arcor2_ur/tests/BUILD b/src/python/arcor2_ur/tests/BUILD new file mode 100644 index 000000000..dad4bce58 --- /dev/null +++ b/src/python/arcor2_ur/tests/BUILD @@ -0,0 +1,8 @@ +python_tests( + runtime_package_dependencies=[ + "src/python/arcor2_ur/scripts:ur", + ], + interpreter_constraints=["==3.12.*"] +) + +python_test_utils(name="test_utils") diff --git a/src/python/arcor2_ur/tests/__init__.py b/src/python/arcor2_ur/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/python/arcor2_ur/tests/conftest.py b/src/python/arcor2_ur/tests/conftest.py new file mode 100644 index 000000000..dcad972bc --- /dev/null +++ b/src/python/arcor2_ur/tests/conftest.py @@ -0,0 +1,81 @@ +import logging +import os +import random +import subprocess as sp +import sys +import time +from typing import Iterator, NamedTuple + +import pytest + +from arcor2.helpers import find_free_port +from arcor2_arserver.tests.testutils import CheckHealthException, check_health, finish_processes, log_proc_output + +LOGGER = logging.getLogger(__name__) + + +class Urls(NamedTuple): + ros_domain_id: str + robot_url: str + + +@pytest.fixture(scope="module", params=["ur5e"]) +def start_processes(request) -> Iterator[Urls]: + """Starts Dobot dependencies.""" + + ros_domain_id = str(random.sample(range(0, 232 + 1), 1)[0]) + ur_type: str = request.param + + processes = [] + my_env = os.environ.copy() + my_env["ROS_DOMAIN_ID"] = ros_domain_id + my_env["AMENT_PREFIX_PATH"] = "/opt/ros/jazzy" + + pypath = ":".join(sys.path) + my_env["PYTHONPATH"] = pypath + + kwargs = {"env": my_env, "stdout": sp.PIPE, "stderr": sp.STDOUT} + + processes.append( + sp.Popen( # type: ignore + [ + "ros2", + "launch", + "ur_robot_driver", + "ur_control.launch.py", + "launch_rviz:=false", + f"ur_type:={ur_type}", + "use_mock_hardware:=true", + "robot_ip:=xyz", + ], + **kwargs, + ) + ) + time.sleep(3) # TODO find another way how to make sure that everything is running + if processes[-1].poll(): + log_proc_output(processes[-1].communicate()) + raise Exception("Launch died...") + + robot_url = f"http://0.0.0.0:{find_free_port()}" + my_env["ARCOR2_UR_URL"] = robot_url + my_env["ARCOR2_UR_INTERACT_WITH_DASHBOARD"] = "false" + my_env["UR_TYPE"] = ur_type + my_env["PEX_EXTRA_SYS_PATH"] = "/opt/ros/jazzy/lib/python3.12/site-packages" + + robot_proc = sp.Popen(["python", "src.python.arcor2_ur.scripts/ur.pex"], **kwargs) # type: ignore + + processes.append(robot_proc) + + if robot_proc.poll(): + finish_processes(processes) + raise Exception("Robot service died.") + + try: + check_health("UR", robot_url, timeout=10) + except CheckHealthException: + finish_processes(processes) + raise + + yield Urls(ros_domain_id, robot_url) + + finish_processes(processes) diff --git a/src/python/arcor2_ur/tests/test_interaction.py b/src/python/arcor2_ur/tests/test_interaction.py new file mode 100644 index 000000000..f6e90f985 --- /dev/null +++ b/src/python/arcor2_ur/tests/test_interaction.py @@ -0,0 +1,19 @@ +import pytest + +from arcor2.data.common import Pose +from arcor2.rest import RestException +from arcor2_ur.object_types.ur5e import Ur5e, UrSettings +from arcor2_ur.tests.conftest import Urls + + +@pytest.mark.timeout(30) +def test_basics(start_processes: Urls) -> None: + ot = Ur5e("", "", Pose(), UrSettings(start_processes.robot_url)) + + assert len(ot.robot_joints()) == 6 + pos = ot.get_end_effector_pose("") + pos.position.z -= 0.01 + ot.move_to_pose("", pos, 0.5) + + with pytest.raises(RestException): # TODO stopping the service is broken ATM (Segmentation Fault) + ot.cleanup() diff --git a/src/python/arcor2_ur/tests/test_ur.py b/src/python/arcor2_ur/tests/test_ur.py new file mode 100644 index 000000000..81a3e0beb --- /dev/null +++ b/src/python/arcor2_ur/tests/test_ur.py @@ -0,0 +1,13 @@ +import os +from subprocess import check_output + +import yaml +from openapi_spec_validator import validate + + +def test_openapi() -> None: + my_env = os.environ.copy() + my_env["AMENT_PREFIX_PATH"] = "/opt/ros/jazzy" + my_env["PEX_EXTRA_SYS_PATH"] = "/opt/ros/jazzy/lib/python3.12/site-packages" + + validate(yaml.full_load(check_output(["python", "src.python.arcor2_ur.scripts/ur.pex", "--swagger"], env=my_env))) diff --git a/src/python/arcor2_yumi/BUILD b/src/python/arcor2_yumi/BUILD index 077ec34cb..c2680e81a 100644 --- a/src/python/arcor2_yumi/BUILD +++ b/src/python/arcor2_yumi/BUILD @@ -2,4 +2,5 @@ arcor2_python_distribution( name="arcor2_yumi", description="ARCOR2 Calibration", binaries={"arcor2_calibration": "src/python/arcor2_calibration/scripts:calibration"}, + interpreter_constraints=["==3.11.*"], ) diff --git a/src/python/arcor2_yumi/object_types/tests/BUILD b/src/python/arcor2_yumi/object_types/tests/BUILD index 053fd7535..282bac82e 100644 --- a/src/python/arcor2_yumi/object_types/tests/BUILD +++ b/src/python/arcor2_yumi/object_types/tests/BUILD @@ -1 +1 @@ -python_tests() \ No newline at end of file +python_tests(interpreter_constraints=["==3.11.*"]) diff --git a/src/python/arcor2_yumi/tests/BUILD b/src/python/arcor2_yumi/tests/BUILD index f8c39cf6d..171bcd26b 100644 --- a/src/python/arcor2_yumi/tests/BUILD +++ b/src/python/arcor2_yumi/tests/BUILD @@ -1,4 +1,5 @@ python_tests( + interpreter_constraints=["==3.11.*"], runtime_package_dependencies=[ "src/python/arcor2_mocks/scripts:mock_asset", "src/python/arcor2_mocks/scripts:mock_project",