From 6f7ba32871ae9494dfd4a97a904d79695e1654c9 Mon Sep 17 00:00:00 2001 From: Ciaran Ryan-Anderson Date: Thu, 19 Mar 2026 16:55:31 -0600 Subject: [PATCH] bump Python version to 0.8.0.dev8 + linting --- .pre-commit-config.yaml | 6 +- .typos.toml | 4 ++ Cargo.lock | 20 +++--- python/pecos-rslib-cuda/pyproject.toml | 2 +- python/pecos-rslib/pyproject.toml | 2 +- .../pecos-rslib/tests/test_array_methods.py | 1 - python/pecos-rslib/tests/test_graph.py | 1 - .../tests/test_phir_json_engine.py | 1 + python/quantum-pecos/pyproject.toml | 6 +- .../src/pecos/simulators/cointoss/state.py | 1 - .../surface/layouts/rot_square_lattice.py | 1 - .../tests/guppy/test_for_loop.py | 1 + .../example_tests/test_basic_logical_sim.py | 1 + .../state_sim_tests/test_cointoss.py | 1 + .../state_sim_tests/test_densitymatrix.py | 1 + .../test_stab_sims/test_gate_init.py | 1 + .../tests/pecos/integration/test_phir.py | 1 + .../integration/test_quantum_circuits.py | 1 + .../pecos/integration/test_random_circuits.py | 1 + .../test_r1xy_conditional_gates.py | 1 - .../pecos/unit/test_slr_converter_guppy.py | 1 - .../pecos-selene-stab/pyproject.toml | 2 +- .../pecos-selene-statevec/pyproject.toml | 2 +- uv.lock | 64 +++++++++---------- 24 files changed, 65 insertions(+), 58 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3e22430c4..8397e5e6c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -24,19 +24,19 @@ repos: - id: debug-statements - repo: https://github.com/crate-ci/typos - rev: v1.38.1 + rev: v1 hooks: - id: typos args: [] - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.14.0 + rev: v0.15.7 hooks: - id: ruff-check args: [--fix, --exit-non-zero-on-fix] - repo: https://github.com/psf/black - rev: 25.9.0 + rev: 26.3.1 hooks: - id: black diff --git a/.typos.toml b/.typos.toml index e3f1c0535..05b3f16f9 100644 --- a/.typos.toml +++ b/.typos.toml @@ -5,6 +5,8 @@ ket = "ket" wqs = "wqs" thr = "thr" IY = "IY" +IZ = "IZ" +iz = "iz" anc = "anc" Pn = "Pn" emiss = "emiss" @@ -36,3 +38,5 @@ repare = "repare" easure = "easure" egative = "egative" agger = "agger" +# Ruff rule code prefix (flake8-copyright) +CPY = "CPY" diff --git a/Cargo.lock b/Cargo.lock index 6107f0221..27c9f8d80 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -307,9 +307,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-lc-rs" -version = "1.16.1" +version = "1.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94bffc006df10ac2a68c83692d734a465f8ee6c5b384d8545a636f81d858f4bf" +checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" dependencies = [ "aws-lc-sys", "zeroize", @@ -317,9 +317,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4321e568ed89bb5a7d291a7f37997c2c0df89809d7b6d12062c81ddb54aa782e" +checksum = "1fa7e52a4c5c547c741610a2c6f123f3881e409b714cd27e6798ef020c514f0a" dependencies = [ "cc", "cmake", @@ -5547,9 +5547,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +checksum = "22692a6476a21fa75fdfc11d452fda482af402c008cdbaf3476414e122040973" dependencies = [ "filetime", "libc", @@ -7175,18 +7175,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.42" +version = "0.8.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2578b716f8a7a858b7f02d5bd870c14bf4ddbbcf3a4c05414ba6503640505e3" +checksum = "efbb2a062be311f2ba113ce66f697a4dc589f85e78a4aea276200804cea0ed87" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.42" +version = "0.8.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e6cc098ea4d3bd6246687de65af3f920c430e236bee1e3bf2e441463f08a02f" +checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" dependencies = [ "proc-macro2", "quote", diff --git a/python/pecos-rslib-cuda/pyproject.toml b/python/pecos-rslib-cuda/pyproject.toml index d482b6c1f..60fb1a258 100644 --- a/python/pecos-rslib-cuda/pyproject.toml +++ b/python/pecos-rslib-cuda/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "pecos-rslib-cuda" -version = "0.8.0.dev7" +version = "0.8.0.dev8" description = "CUDA/cuQuantum Python bindings for PECOS quantum simulators (Rust implementation)." authors = [ {name = "The PECOS Developers"}, diff --git a/python/pecos-rslib/pyproject.toml b/python/pecos-rslib/pyproject.toml index 3077f3132..afb12ad8b 100644 --- a/python/pecos-rslib/pyproject.toml +++ b/python/pecos-rslib/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "pecos-rslib" -version = "0.8.0.dev7" +version = "0.8.0.dev8" description = "Rust libary extensions for Python PECOS." authors = [ {name = "The PECOS Developers"}, diff --git a/python/pecos-rslib/tests/test_array_methods.py b/python/pecos-rslib/tests/test_array_methods.py index 9095a5e63..ad03776d9 100644 --- a/python/pecos-rslib/tests/test_array_methods.py +++ b/python/pecos-rslib/tests/test_array_methods.py @@ -5,7 +5,6 @@ from pecos_rslib import Array, dtypes - # --------------------------------------------------------------------------- # copy() # --------------------------------------------------------------------------- diff --git a/python/pecos-rslib/tests/test_graph.py b/python/pecos-rslib/tests/test_graph.py index 66e76dde8..ee132edb6 100644 --- a/python/pecos-rslib/tests/test_graph.py +++ b/python/pecos-rslib/tests/test_graph.py @@ -11,7 +11,6 @@ """Tests for graph module (MWPM decoder).""" - import pecos_rslib as pc diff --git a/python/pecos-rslib/tests/test_phir_json_engine.py b/python/pecos-rslib/tests/test_phir_json_engine.py index 38538dae2..18ad7019d 100644 --- a/python/pecos-rslib/tests/test_phir_json_engine.py +++ b/python/pecos-rslib/tests/test_phir_json_engine.py @@ -5,6 +5,7 @@ Representation) and the Rust-based quantum simulators, ensuring proper execution of quantum programs and correct simulation results. """ + import json import pytest diff --git a/python/quantum-pecos/pyproject.toml b/python/quantum-pecos/pyproject.toml index b4797b808..6bd0f74f0 100644 --- a/python/quantum-pecos/pyproject.toml +++ b/python/quantum-pecos/pyproject.toml @@ -15,7 +15,7 @@ build-backend = "hatchling.build" [project] name = "quantum-pecos" -version = "0.8.0.dev7" +version = "0.8.0.dev8" authors = [ {name = "The PECOS Developers"}, ] @@ -28,7 +28,7 @@ requires-python = ">=3.10" license = { file = "LICENSE"} keywords = ["quantum", "QEC", "simulation", "PECOS"] dependencies = [ - "pecos-rslib==0.8.0.dev7", + "pecos-rslib==0.8.0.dev8", "phir>=0.3.3", "networkx>=2.1.0", "guppylang>=0.21.6", @@ -74,7 +74,7 @@ all = [ # These packages work with uv/pip once CUDA toolkit is installed. # Note: CUDA packages require Python 3.11+ due to cuquantum-python-cu13 requirements cuda = [ - "pecos-rslib-cuda==0.8.0.dev7", + "pecos-rslib-cuda==0.8.0.dev8", "cupy-cuda13x>=13.0.0; python_version >= '3.11'", # Use cupy-cuda12x for CUDA 12 "cuquantum-python-cu13>=25.3.0; python_version >= '3.11'", # Use cuquantum-python-cu12 for CUDA 12 "pytket-cutensornet>=0.12.0; python_version >= '3.11'", diff --git a/python/quantum-pecos/src/pecos/simulators/cointoss/state.py b/python/quantum-pecos/src/pecos/simulators/cointoss/state.py index d0507c513..0ad0aacac 100644 --- a/python/quantum-pecos/src/pecos/simulators/cointoss/state.py +++ b/python/quantum-pecos/src/pecos/simulators/cointoss/state.py @@ -16,7 +16,6 @@ making it useful for debugging classical logic paths and testing error correction protocols with random noise. """ - from __future__ import annotations from typing import TYPE_CHECKING diff --git a/python/quantum-pecos/src/pecos/slr/qeclib/surface/layouts/rot_square_lattice.py b/python/quantum-pecos/src/pecos/slr/qeclib/surface/layouts/rot_square_lattice.py index 68b136322..6deade645 100644 --- a/python/quantum-pecos/src/pecos/slr/qeclib/surface/layouts/rot_square_lattice.py +++ b/python/quantum-pecos/src/pecos/slr/qeclib/surface/layouts/rot_square_lattice.py @@ -17,7 +17,6 @@ layouts (4.4.4.4 lattice) used in quantum error correction surface codes. """ - from pecos.slr.qeclib.surface.visualization.visualization_base import VisualizationData diff --git a/python/quantum-pecos/tests/guppy/test_for_loop.py b/python/quantum-pecos/tests/guppy/test_for_loop.py index 401e262ae..d2b4ebe86 100755 --- a/python/quantum-pecos/tests/guppy/test_for_loop.py +++ b/python/quantum-pecos/tests/guppy/test_for_loop.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 """Test for-loop behavior.""" + import os from guppylang.decorator import guppy diff --git a/python/quantum-pecos/tests/pecos/integration/example_tests/test_basic_logical_sim.py b/python/quantum-pecos/tests/pecos/integration/example_tests/test_basic_logical_sim.py index a70da386d..8cfb8ed54 100644 --- a/python/quantum-pecos/tests/pecos/integration/example_tests/test_basic_logical_sim.py +++ b/python/quantum-pecos/tests/pecos/integration/example_tests/test_basic_logical_sim.py @@ -11,6 +11,7 @@ # specific language governing permissions and limitations under the License. """Integration tests for basic logical quantum circuit simulations.""" + import pecos as pc diff --git a/python/quantum-pecos/tests/pecos/integration/state_sim_tests/test_cointoss.py b/python/quantum-pecos/tests/pecos/integration/state_sim_tests/test_cointoss.py index 65ca273f5..c37809b06 100644 --- a/python/quantum-pecos/tests/pecos/integration/state_sim_tests/test_cointoss.py +++ b/python/quantum-pecos/tests/pecos/integration/state_sim_tests/test_cointoss.py @@ -10,6 +10,7 @@ # specific language governing permissions and limitations under the License. """Integration tests for coin toss quantum simulator.""" + from __future__ import annotations import pecos as pc diff --git a/python/quantum-pecos/tests/pecos/integration/state_sim_tests/test_densitymatrix.py b/python/quantum-pecos/tests/pecos/integration/state_sim_tests/test_densitymatrix.py index e9e65d2d4..1d9cf359e 100644 --- a/python/quantum-pecos/tests/pecos/integration/state_sim_tests/test_densitymatrix.py +++ b/python/quantum-pecos/tests/pecos/integration/state_sim_tests/test_densitymatrix.py @@ -18,6 +18,7 @@ - Partial trace operations - Non-unitary operations """ + from __future__ import annotations from typing import TYPE_CHECKING diff --git a/python/quantum-pecos/tests/pecos/integration/state_sim_tests/test_stab_sims/test_gate_init.py b/python/quantum-pecos/tests/pecos/integration/state_sim_tests/test_stab_sims/test_gate_init.py index dc1650e5c..10da2fd1a 100644 --- a/python/quantum-pecos/tests/pecos/integration/state_sim_tests/test_stab_sims/test_gate_init.py +++ b/python/quantum-pecos/tests/pecos/integration/state_sim_tests/test_stab_sims/test_gate_init.py @@ -10,6 +10,7 @@ # specific language governing permissions and limitations under the License. """Integration tests for stabilizer simulator gate initialization.""" + from pecos.simulators import SparseSim, SparseSimPy, Stab states = [ diff --git a/python/quantum-pecos/tests/pecos/integration/test_phir.py b/python/quantum-pecos/tests/pecos/integration/test_phir.py index 28d12204e..f71200523 100644 --- a/python/quantum-pecos/tests/pecos/integration/test_phir.py +++ b/python/quantum-pecos/tests/pecos/integration/test_phir.py @@ -10,6 +10,7 @@ # specific language governing permissions and limitations under the License. """Integration tests for PHIR quantum program execution.""" + import json from pathlib import Path diff --git a/python/quantum-pecos/tests/pecos/integration/test_quantum_circuits.py b/python/quantum-pecos/tests/pecos/integration/test_quantum_circuits.py index 433d6a1e3..b1eeee58a 100644 --- a/python/quantum-pecos/tests/pecos/integration/test_quantum_circuits.py +++ b/python/quantum-pecos/tests/pecos/integration/test_quantum_circuits.py @@ -11,6 +11,7 @@ # specific language governing permissions and limitations under the License. """Integration tests for quantum circuit operations.""" + from __future__ import annotations import copy diff --git a/python/quantum-pecos/tests/pecos/integration/test_random_circuits.py b/python/quantum-pecos/tests/pecos/integration/test_random_circuits.py index 8a156b3e6..2881a267a 100644 --- a/python/quantum-pecos/tests/pecos/integration/test_random_circuits.py +++ b/python/quantum-pecos/tests/pecos/integration/test_random_circuits.py @@ -12,6 +12,7 @@ # specific language governing permissions and limitations under the License. """Integration tests for random quantum circuit simulations.""" + from __future__ import annotations from typing import Any diff --git a/python/quantum-pecos/tests/pecos/regression/test_engines/test_r1xy_conditional_gates.py b/python/quantum-pecos/tests/pecos/regression/test_engines/test_r1xy_conditional_gates.py index 788d6e4da..f6318aea0 100644 --- a/python/quantum-pecos/tests/pecos/regression/test_engines/test_r1xy_conditional_gates.py +++ b/python/quantum-pecos/tests/pecos/regression/test_engines/test_r1xy_conditional_gates.py @@ -24,7 +24,6 @@ properly, producing random results instead of deterministic zeros. """ - import pecos as pc from pecos.engines.hybrid_engine import HybridEngine diff --git a/python/quantum-pecos/tests/pecos/unit/test_slr_converter_guppy.py b/python/quantum-pecos/tests/pecos/unit/test_slr_converter_guppy.py index 0f8b5260f..3da0e0ed3 100644 --- a/python/quantum-pecos/tests/pecos/unit/test_slr_converter_guppy.py +++ b/python/quantum-pecos/tests/pecos/unit/test_slr_converter_guppy.py @@ -11,7 +11,6 @@ """Tests for SlrConverter Guppy functionality.""" - from pecos.slr import CReg, Main, Parallel, QReg, SlrConverter from pecos.slr.qeclib import qubit as qb from pecos.slr.qeclib.steane.steane_class import Steane diff --git a/python/selene-plugins/pecos-selene-stab/pyproject.toml b/python/selene-plugins/pecos-selene-stab/pyproject.toml index c9eed1547..ea55488aa 100644 --- a/python/selene-plugins/pecos-selene-stab/pyproject.toml +++ b/python/selene-plugins/pecos-selene-stab/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "pecos-selene-stab" -version = "0.8.0.dev7" +version = "0.8.0.dev8" requires-python = ">=3.10" description = "PECOS Stab simulator plugin for the Selene quantum emulator" readme = "README.md" diff --git a/python/selene-plugins/pecos-selene-statevec/pyproject.toml b/python/selene-plugins/pecos-selene-statevec/pyproject.toml index d19ccbebd..051fb1a87 100644 --- a/python/selene-plugins/pecos-selene-statevec/pyproject.toml +++ b/python/selene-plugins/pecos-selene-statevec/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "pecos-selene-statevec" -version = "0.8.0.dev7" +version = "0.8.0.dev8" requires-python = ">=3.10" description = "PECOS StateVec simulator plugin for the Selene quantum emulator" readme = "README.md" diff --git a/uv.lock b/uv.lock index 25aa49d34..bc6b35078 100644 --- a/uv.lock +++ b/uv.lock @@ -134,11 +134,11 @@ wheels = [ [[package]] name = "attrs" -version = "25.4.0" +version = "26.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" }, ] [[package]] @@ -2211,7 +2211,7 @@ wheels = [ [[package]] name = "mkdocs-material" -version = "9.7.5" +version = "9.7.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "babel" }, @@ -2226,9 +2226,9 @@ dependencies = [ { name = "pymdown-extensions" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/74/76/5c202fecdc45d53e83e03a85bae70c48b6c81e9f87f0bc19a9e9c723bdc0/mkdocs_material-9.7.5.tar.gz", hash = "sha256:f76bdab532bad1d9c57ca7187b37eccf64dd12e1586909307f8856db3be384ea", size = 4097749, upload-time = "2026-03-10T15:43:22.809Z" } +sdist = { url = "https://files.pythonhosted.org/packages/45/29/6d2bcf41ae40802c4beda2432396fff97b8456fb496371d1bc7aad6512ec/mkdocs_material-9.7.6.tar.gz", hash = "sha256:00bdde50574f776d328b1862fe65daeaf581ec309bd150f7bff345a098c64a69", size = 4097959, upload-time = "2026-03-19T15:41:58.161Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/45/e1/e8080dcfa95cca267662a6f4afe29237452bdeb5a2a6555ac83646d21915/mkdocs_material-9.7.5-py3-none-any.whl", hash = "sha256:7cf9df2ff121fd098ff6e05c732b0be3699afca9642e2dfe4926c40eb5873eec", size = 9305251, upload-time = "2026-03-10T15:43:19.089Z" }, + { url = "https://files.pythonhosted.org/packages/2c/01/bc663630c510822c95c47a66af9fa7a443c295b47d5f041e5e6ae62ef659/mkdocs_material-9.7.6-py3-none-any.whl", hash = "sha256:71b84353921b8ea1ba84fe11c50912cc512da8fe0881038fcc9a0761c0e635ba", size = 9305470, upload-time = "2026-03-19T15:41:55.217Z" }, ] [[package]] @@ -2669,7 +2669,7 @@ wheels = [ [[package]] name = "pecos-rslib" -version = "0.8.0.dev7" +version = "0.8.0.dev8" source = { editable = "python/pecos-rslib" } [package.dev-dependencies] @@ -2698,7 +2698,7 @@ test = [{ name = "pytest", specifier = ">=7.0" }] [[package]] name = "pecos-rslib-cuda" -version = "0.8.0.dev7" +version = "0.8.0.dev8" source = { editable = "python/pecos-rslib-cuda" } [package.dev-dependencies] @@ -2714,7 +2714,7 @@ test = [{ name = "pytest", specifier = ">=7.0" }] [[package]] name = "pecos-selene-stab" -version = "0.8.0.dev7" +version = "0.8.0.dev8" source = { editable = "python/selene-plugins/pecos-selene-stab" } dependencies = [ { name = "selene-core" }, @@ -2738,7 +2738,7 @@ provides-extras = ["test"] [[package]] name = "pecos-selene-statevec" -version = "0.8.0.dev7" +version = "0.8.0.dev8" source = { editable = "python/selene-plugins/pecos-selene-statevec" } dependencies = [ { name = "selene-core" }, @@ -3691,7 +3691,7 @@ wheels = [ [[package]] name = "quantum-pecos" -version = "0.8.0.dev7" +version = "0.8.0.dev8" source = { editable = "python/quantum-pecos" } dependencies = [ { name = "guppylang" }, @@ -3954,27 +3954,27 @@ wheels = [ [[package]] name = "ruff" -version = "0.15.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/51/df/f8629c19c5318601d3121e230f74cbee7a3732339c52b21daa2b82ef9c7d/ruff-0.15.6.tar.gz", hash = "sha256:8394c7bb153a4e3811a4ecdacd4a8e6a4fa8097028119160dffecdcdf9b56ae4", size = 4597916, upload-time = "2026-03-12T23:05:47.51Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/2f/4e03a7e5ce99b517e98d3b4951f411de2b0fa8348d39cf446671adcce9a2/ruff-0.15.6-py3-none-linux_armv6l.whl", hash = "sha256:7c98c3b16407b2cf3d0f2b80c80187384bc92c6774d85fefa913ecd941256fff", size = 10508953, upload-time = "2026-03-12T23:05:17.246Z" }, - { url = "https://files.pythonhosted.org/packages/70/60/55bcdc3e9f80bcf39edf0cd272da6fa511a3d94d5a0dd9e0adf76ceebdb4/ruff-0.15.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ee7dcfaad8b282a284df4aa6ddc2741b3f4a18b0555d626805555a820ea181c3", size = 10942257, upload-time = "2026-03-12T23:05:23.076Z" }, - { url = "https://files.pythonhosted.org/packages/e7/f9/005c29bd1726c0f492bfa215e95154cf480574140cb5f867c797c18c790b/ruff-0.15.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:3bd9967851a25f038fc8b9ae88a7fbd1b609f30349231dffaa37b6804923c4bb", size = 10322683, upload-time = "2026-03-12T23:05:33.738Z" }, - { url = "https://files.pythonhosted.org/packages/5f/74/2f861f5fd7cbb2146bddb5501450300ce41562da36d21868c69b7a828169/ruff-0.15.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13f4594b04e42cd24a41da653886b04d2ff87adbf57497ed4f728b0e8a4866f8", size = 10660986, upload-time = "2026-03-12T23:05:53.245Z" }, - { url = "https://files.pythonhosted.org/packages/c1/a1/309f2364a424eccb763cdafc49df843c282609f47fe53aa83f38272389e0/ruff-0.15.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e2ed8aea2f3fe57886d3f00ea5b8aae5bf68d5e195f487f037a955ff9fbaac9e", size = 10332177, upload-time = "2026-03-12T23:05:56.145Z" }, - { url = "https://files.pythonhosted.org/packages/30/41/7ebf1d32658b4bab20f8ac80972fb19cd4e2c6b78552be263a680edc55ac/ruff-0.15.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70789d3e7830b848b548aae96766431c0dc01a6c78c13381f423bf7076c66d15", size = 11170783, upload-time = "2026-03-12T23:06:01.742Z" }, - { url = "https://files.pythonhosted.org/packages/76/be/6d488f6adca047df82cd62c304638bcb00821c36bd4881cfca221561fdfc/ruff-0.15.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:542aaf1de3154cea088ced5a819ce872611256ffe2498e750bbae5247a8114e9", size = 12044201, upload-time = "2026-03-12T23:05:28.697Z" }, - { url = "https://files.pythonhosted.org/packages/71/68/e6f125df4af7e6d0b498f8d373274794bc5156b324e8ab4bf5c1b4fc0ec7/ruff-0.15.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c22e6f02c16cfac3888aa636e9eba857254d15bbacc9906c9689fdecb1953ab", size = 11421561, upload-time = "2026-03-12T23:05:31.236Z" }, - { url = "https://files.pythonhosted.org/packages/f1/9f/f85ef5fd01a52e0b472b26dc1b4bd228b8f6f0435975442ffa4741278703/ruff-0.15.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98893c4c0aadc8e448cfa315bd0cc343a5323d740fe5f28ef8a3f9e21b381f7e", size = 11310928, upload-time = "2026-03-12T23:05:45.288Z" }, - { url = "https://files.pythonhosted.org/packages/8c/26/b75f8c421f5654304b89471ed384ae8c7f42b4dff58fa6ce1626d7f2b59a/ruff-0.15.6-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:70d263770d234912374493e8cc1e7385c5d49376e41dfa51c5c3453169dc581c", size = 11235186, upload-time = "2026-03-12T23:05:50.677Z" }, - { url = "https://files.pythonhosted.org/packages/fc/d4/d5a6d065962ff7a68a86c9b4f5500f7d101a0792078de636526c0edd40da/ruff-0.15.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:55a1ad63c5a6e54b1f21b7514dfadc0c7fb40093fa22e95143cf3f64ebdcd512", size = 10635231, upload-time = "2026-03-12T23:05:37.044Z" }, - { url = "https://files.pythonhosted.org/packages/d6/56/7c3acf3d50910375349016cf33de24be021532042afbed87942858992491/ruff-0.15.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8dc473ba093c5ec238bb1e7429ee676dca24643c471e11fbaa8a857925b061c0", size = 10340357, upload-time = "2026-03-12T23:06:04.748Z" }, - { url = "https://files.pythonhosted.org/packages/06/54/6faa39e9c1033ff6a3b6e76b5df536931cd30caf64988e112bbf91ef5ce5/ruff-0.15.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:85b042377c2a5561131767974617006f99f7e13c63c111b998f29fc1e58a4cfb", size = 10860583, upload-time = "2026-03-12T23:05:58.978Z" }, - { url = "https://files.pythonhosted.org/packages/cb/1e/509a201b843b4dfb0b32acdedf68d951d3377988cae43949ba4c4133a96a/ruff-0.15.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:cef49e30bc5a86a6a92098a7fbf6e467a234d90b63305d6f3ec01225a9d092e0", size = 11410976, upload-time = "2026-03-12T23:05:39.955Z" }, - { url = "https://files.pythonhosted.org/packages/6c/25/3fc9114abf979a41673ce877c08016f8e660ad6cf508c3957f537d2e9fa9/ruff-0.15.6-py3-none-win32.whl", hash = "sha256:bbf67d39832404812a2d23020dda68fee7f18ce15654e96fb1d3ad21a5fe436c", size = 10616872, upload-time = "2026-03-12T23:05:42.451Z" }, - { url = "https://files.pythonhosted.org/packages/89/7a/09ece68445ceac348df06e08bf75db72d0e8427765b96c9c0ffabc1be1d9/ruff-0.15.6-py3-none-win_amd64.whl", hash = "sha256:aee25bc84c2f1007ecb5037dff75cef00414fdf17c23f07dc13e577883dca406", size = 11787271, upload-time = "2026-03-12T23:05:20.168Z" }, - { url = "https://files.pythonhosted.org/packages/7f/d0/578c47dd68152ddddddf31cd7fc67dc30b7cdf639a86275fda821b0d9d98/ruff-0.15.6-py3-none-win_arm64.whl", hash = "sha256:c34de3dd0b0ba203be50ae70f5910b17188556630e2178fd7d79fc030eb0d837", size = 11060497, upload-time = "2026-03-12T23:05:25.968Z" }, +version = "0.15.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/22/9e4f66ee588588dc6c9af6a994e12d26e19efbe874d1a909d09a6dac7a59/ruff-0.15.7.tar.gz", hash = "sha256:04f1ae61fc20fe0b148617c324d9d009b5f63412c0b16474f3d5f1a1a665f7ac", size = 4601277, upload-time = "2026-03-19T16:26:22.605Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/2f/0b08ced94412af091807b6119ca03755d651d3d93a242682bf020189db94/ruff-0.15.7-py3-none-linux_armv6l.whl", hash = "sha256:a81cc5b6910fb7dfc7c32d20652e50fa05963f6e13ead3c5915c41ac5d16668e", size = 10489037, upload-time = "2026-03-19T16:26:32.47Z" }, + { url = "https://files.pythonhosted.org/packages/91/4a/82e0fa632e5c8b1eba5ee86ecd929e8ff327bbdbfb3c6ac5d81631bef605/ruff-0.15.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:722d165bd52403f3bdabc0ce9e41fc47070ac56d7a91b4e0d097b516a53a3477", size = 10955433, upload-time = "2026-03-19T16:27:00.205Z" }, + { url = "https://files.pythonhosted.org/packages/ab/10/12586735d0ff42526ad78c049bf51d7428618c8b5c467e72508c694119df/ruff-0.15.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7fbc2448094262552146cbe1b9643a92f66559d3761f1ad0656d4991491af49e", size = 10269302, upload-time = "2026-03-19T16:26:26.183Z" }, + { url = "https://files.pythonhosted.org/packages/eb/5d/32b5c44ccf149a26623671df49cbfbd0a0ae511ff3df9d9d2426966a8d57/ruff-0.15.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b39329b60eba44156d138275323cc726bbfbddcec3063da57caa8a8b1d50adf", size = 10607625, upload-time = "2026-03-19T16:27:03.263Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f1/f0001cabe86173aaacb6eb9bb734aa0605f9a6aa6fa7d43cb49cbc4af9c9/ruff-0.15.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:87768c151808505f2bfc93ae44e5f9e7c8518943e5074f76ac21558ef5627c85", size = 10324743, upload-time = "2026-03-19T16:27:09.791Z" }, + { url = "https://files.pythonhosted.org/packages/7a/87/b8a8f3d56b8d848008559e7c9d8bf367934d5367f6d932ba779456e2f73b/ruff-0.15.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb0511670002c6c529ec66c0e30641c976c8963de26a113f3a30456b702468b0", size = 11138536, upload-time = "2026-03-19T16:27:06.101Z" }, + { url = "https://files.pythonhosted.org/packages/e4/f2/4fd0d05aab0c5934b2e1464784f85ba2eab9d54bffc53fb5430d1ed8b829/ruff-0.15.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0d19644f801849229db8345180a71bee5407b429dd217f853ec515e968a6912", size = 11994292, upload-time = "2026-03-19T16:26:48.718Z" }, + { url = "https://files.pythonhosted.org/packages/64/22/fc4483871e767e5e95d1622ad83dad5ebb830f762ed0420fde7dfa9d9b08/ruff-0.15.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4806d8e09ef5e84eb19ba833d0442f7e300b23fe3f0981cae159a248a10f0036", size = 11398981, upload-time = "2026-03-19T16:26:54.513Z" }, + { url = "https://files.pythonhosted.org/packages/b0/99/66f0343176d5eab02c3f7fcd2de7a8e0dd7a41f0d982bee56cd1c24db62b/ruff-0.15.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dce0896488562f09a27b9c91b1f58a097457143931f3c4d519690dea54e624c5", size = 11242422, upload-time = "2026-03-19T16:26:29.277Z" }, + { url = "https://files.pythonhosted.org/packages/5d/3a/a7060f145bfdcce4c987ea27788b30c60e2c81d6e9a65157ca8afe646328/ruff-0.15.7-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:1852ce241d2bc89e5dc823e03cff4ce73d816b5c6cdadd27dbfe7b03217d2a12", size = 11232158, upload-time = "2026-03-19T16:26:42.321Z" }, + { url = "https://files.pythonhosted.org/packages/a7/53/90fbb9e08b29c048c403558d3cdd0adf2668b02ce9d50602452e187cd4af/ruff-0.15.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:5f3e4b221fb4bd293f79912fc5e93a9063ebd6d0dcbd528f91b89172a9b8436c", size = 10577861, upload-time = "2026-03-19T16:26:57.459Z" }, + { url = "https://files.pythonhosted.org/packages/2f/aa/5f486226538fe4d0f0439e2da1716e1acf895e2a232b26f2459c55f8ddad/ruff-0.15.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:b15e48602c9c1d9bdc504b472e90b90c97dc7d46c7028011ae67f3861ceba7b4", size = 10327310, upload-time = "2026-03-19T16:26:35.909Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/271afdffb81fe7bfc8c43ba079e9d96238f674380099457a74ccb3863857/ruff-0.15.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:1b4705e0e85cedc74b0a23cf6a179dbb3df184cb227761979cc76c0440b5ab0d", size = 10840752, upload-time = "2026-03-19T16:26:45.723Z" }, + { url = "https://files.pythonhosted.org/packages/bf/29/a4ae78394f76c7759953c47884eb44de271b03a66634148d9f7d11e721bd/ruff-0.15.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:112c1fa316a558bb34319282c1200a8bf0495f1b735aeb78bfcb2991e6087580", size = 11336961, upload-time = "2026-03-19T16:26:39.076Z" }, + { url = "https://files.pythonhosted.org/packages/26/6b/8786ba5736562220d588a2f6653e6c17e90c59ced34a2d7b512ef8956103/ruff-0.15.7-py3-none-win32.whl", hash = "sha256:6d39e2d3505b082323352f733599f28169d12e891f7dd407f2d4f54b4c2886de", size = 10582538, upload-time = "2026-03-19T16:26:15.992Z" }, + { url = "https://files.pythonhosted.org/packages/2b/e9/346d4d3fffc6871125e877dae8d9a1966b254fbd92a50f8561078b88b099/ruff-0.15.7-py3-none-win_amd64.whl", hash = "sha256:4d53d712ddebcd7dace1bc395367aec12c057aacfe9adbb6d832302575f4d3a1", size = 11755839, upload-time = "2026-03-19T16:26:19.897Z" }, + { url = "https://files.pythonhosted.org/packages/8f/e8/726643a3ea68c727da31570bde48c7a10f1aa60eddd628d94078fec586ff/ruff-0.15.7-py3-none-win_arm64.whl", hash = "sha256:18e8d73f1c3fdf27931497972250340f92e8c861722161a9caeb89a58ead6ed2", size = 11023304, upload-time = "2026-03-19T16:26:51.669Z" }, ] [[package]]