mirror of
https://github.com/astral-sh/ruff.git
synced 2026-10-28 10:45:37 +08:00
[ty] Upgrade hyperfine to 2.0.0-alpha.2 for benchmarks (#29151)
## Summary
Upgrade hyperfine to 2.0.0-alpha.2, which now includes support for
memory measurements (see output below).
Tested:
<details>
<summary>Formatter benchmark output</summary>
```text
Benchmark 1: ./target/release/ruff format ./fixture (2 runs)
mean ± σ min … max
Wall Time 12.8 ms ± 0.2 ms 12.7 ms … 12.9 ms
Memory 16.6 MiB ± 0.1 MiB 16.5 MiB … 16.6 MiB
Benchmark 2: black --no-cache ./fixture --safe (2 runs)
mean ± σ min … max
Wall Time 207.1 ms ± 4.8 ms 203.7 ms … 210.5 ms +1517.9% (16.2x slower)
Memory 37.3 MiB ± 0.1 MiB 37.2 MiB … 37.4 MiB +125.2% (2.3x more)
Benchmark 3: black --no-cache ./fixture --fast (2 runs)
mean ± σ min … max
Wall Time 226.6 ms ± 7.4 ms 221.4 ms … 231.9 ms +1670.7% (17.7x slower)
Memory 37.4 MiB ± 0.1 MiB 37.3 MiB … 37.5 MiB +126.2% (2.3x more)
Benchmark 4: black --no-cache ./fixture --safe --preview (2 runs)
mean ± σ min … max
Wall Time 250.1 ms ± 41.8 ms 220.6 ms … 279.6 ms +1854.3% (19.5x slower)
Memory 37.4 MiB ± 0.3 MiB 37.2 MiB … 37.6 MiB +126.0% (2.3x more)
Benchmark 5: black --no-cache ./fixture --fast --preview (2 runs)
mean ± σ min … max
Wall Time 186.2 ms ± 2.5 ms 184.5 ms … 188.0 ms +1355.1% (14.6x slower)
Memory 37.3 MiB ± 0.0 MiB 37.3 MiB … 37.3 MiB +125.2% (2.3x more)
Benchmark 6: autopep8 ./fixture --recursive --in-place (2 runs)
mean ± σ min … max
Wall Time 41.6 ms ± 0.7 ms 41.1 ms … 42.1 ms +225.2% (3.3x slower)
Memory 26.3 MiB ± 0.0 MiB 26.3 MiB … 26.3 MiB +58.8% (1.6x more)
Benchmark 7: yapf ./fixture --parallel --recursive --in-place (2 runs)
mean ± σ min … max
Wall Time 142.1 ms ± 4.8 ms 138.7 ms … 145.5 ms +1010.6% (11.1x slower)
Memory 29.1 MiB ± 0.3 MiB 28.9 MiB … 29.4 MiB +76.0% (1.8x more)
Benchmark 1: env RAYON_NUM_THREADS=1 ./target/release/ruff format ./fixture (2 runs)
mean ± σ min … max
Wall Time 12.7 ms ± 2.5 ms 10.9 ms … 14.4 ms
Memory 14.6 MiB ± 0.1 MiB 14.6 MiB … 14.7 MiB
Benchmark 2: black --no-cache ./fixture --workers=1 --safe (2 runs)
mean ± σ min … max
Wall Time 95.2 ms ± 3.2 ms 92.9 ms … 97.4 ms +650.6% (7.5x slower)
Memory 38.4 MiB ± 0.0 MiB 38.4 MiB … 38.4 MiB +162.6% (2.6x more)
Benchmark 3: black --no-cache ./fixture --workers=1 --fast (2 runs)
mean ± σ min … max
Wall Time 89.6 ms ± 2.8 ms 87.6 ms … 91.6 ms +606.5% (7.1x slower)
Memory 38.4 MiB ± 0.0 MiB 38.4 MiB … 38.4 MiB +162.7% (2.6x more)
Benchmark 4: black --no-cache ./fixture --workers=1 --safe --preview (2 runs)
mean ± σ min … max
Wall Time 94.7 ms ± 0.6 ms 94.3 ms … 95.2 ms +646.9% (7.5x slower)
Memory 38.5 MiB ± 0.1 MiB 38.5 MiB … 38.6 MiB +163.5% (2.6x more)
Benchmark 5: black --no-cache ./fixture --workers=1 --fast --preview (2 runs)
mean ± σ min … max
Wall Time 92.7 ms ± 0.6 ms 92.3 ms … 93.2 ms +631.4% (7.3x slower)
Memory 38.4 MiB ± 0.1 MiB 38.3 MiB … 38.4 MiB +162.5% (2.6x more)
Benchmark 6: autopep8 ./fixture --in-place --recursive --jobs=1 (2 runs)
mean ± σ min … max
Wall Time 43.5 ms ± 3.7 ms 40.9 ms … 46.1 ms +242.7% (3.4x slower)
Memory 26.5 MiB ± 0.1 MiB 26.4 MiB … 26.6 MiB +81.2% (1.8x more)
Benchmark 7: yapf ./fixture --recursive --in-place (2 runs)
mean ± σ min … max
Wall Time 56.8 ms ± 1.2 ms 55.9 ms … 57.6 ms +347.8% (4.5x slower)
Memory 27.3 MiB ± 0.1 MiB 27.2 MiB … 27.4 MiB +86.5% (1.9x more)
Benchmark 1: ./target/release/ruff format ./fixture --check (2 runs)
mean ± σ min … max
Wall Time 10.2 ms ± 0.3 ms 9.9 ms … 10.4 ms
Memory 16.9 MiB ± 0.1 MiB 16.8 MiB … 17.0 MiB
Benchmark 2: black --no-cache ./fixture --check --safe (2 runs)
mean ± σ min … max
Wall Time 193.8 ms ± 6.2 ms 189.5 ms … 198.2 ms +1806.9% (19.1x slower)
Memory 37.3 MiB ± 0.1 MiB 37.2 MiB … 37.4 MiB +120.8% (2.2x more)
Benchmark 3: black --no-cache ./fixture --check --fast (2 runs)
mean ± σ min … max
Wall Time 188.2 ms ± 1.9 ms 186.8 ms … 189.6 ms +1751.4% (18.5x slower)
Memory 37.3 MiB ± 0.1 MiB 37.3 MiB … 37.4 MiB +121.1% (2.2x more)
Benchmark 4: black --no-cache ./fixture --check --safe --preview (2 runs)
mean ± σ min … max
Wall Time 202.1 ms ± 6.3 ms 197.7 ms … 206.6 ms +1888.5% (19.9x slower)
Memory 37.2 MiB ± 0.0 MiB 37.2 MiB … 37.2 MiB +120.5% (2.2x more)
Benchmark 5: black --no-cache ./fixture --check --fast --preview (2 runs)
mean ± σ min … max
Wall Time 197.0 ms ± 20.1 ms 182.8 ms … 211.2 ms +1837.8% (19.4x slower)
Memory 37.2 MiB ± 0.0 MiB 37.2 MiB … 37.2 MiB +120.5% (2.2x more)
Benchmark 6: autopep8 ./fixture --recursive --diff (2 runs)
mean ± σ min … max
Wall Time 38.5 ms ± 0.1 ms 38.4 ms … 38.6 ms +278.4% (3.8x slower)
Memory 26.3 MiB ± 0.0 MiB 26.3 MiB … 26.4 MiB +56.0% (1.6x more)
Benchmark 7: yapf ./fixture --parallel --recursive --quiet (2 runs)
mean ± σ min … max
Wall Time 144.8 ms ± 7.4 ms 139.6 ms … 150.1 ms +1324.8% (14.2x slower)
Memory 29.0 MiB ± 0.2 MiB 28.9 MiB … 29.1 MiB +71.6% (1.7x more)
```
</details>
<details>
<summary>ty_benchmark (multi-threaded, then single-threaded)</summary>
```text
jinja
-----
Benchmark 1: ty (2 runs)
mean ± σ min … max
Wall Time 73.0 ms ± 5.6 ms 69.0 ms … 76.9 ms
Memory 100.1 MiB ± 0.1 MiB 100.0 MiB … 100.2 MiB
Warning: Ignoring non-zero exit code.
Benchmark 2: Pyrefly (2 runs)
mean ± σ min … max
Wall Time 118.3 ms ± 6.0 ms 114.0 ms … 122.5 ms +62.1% (1.6x slower)
Memory 130.9 MiB ± 0.2 MiB 130.8 MiB … 131.1 MiB +30.8% (1.3x more)
Warning: Ignoring non-zero exit code.
Benchmark 3: mypy (2 runs)
mean ± σ min … max
Wall Time 802.9 ms ± 8.0 ms 797.2 ms … 808.6 ms +1000.2% (11.0x slower)
Memory 143.4 MiB ± 0.1 MiB 143.3 MiB … 143.5 MiB +43.2% (1.4x more)
Warning: Ignoring non-zero exit code.
Benchmark 4: mypy (warm) (2 runs)
mean ± σ min … max
Wall Time 208.8 ms ± 5.6 ms 204.9 ms … 212.7 ms +186.1% (2.9x slower)
Memory 51.9 MiB ± 0.2 MiB 51.8 MiB … 52.0 MiB -48.2% (1.9x less)
Warning: Ignoring non-zero exit code.
Benchmark 5: Pyright (2 runs)
mean ± σ min … max
Wall Time 1198.8 ms ± 12.0 ms 1190.3 ms … 1207.3 ms +1542.8% (16.4x slower)
Memory 251.6 MiB ± 1.3 MiB 250.7 MiB … 252.5 MiB +151.3% (2.5x more)
Warning: Ignoring non-zero exit code.
jinja
-----
Benchmark 1: ty (2 runs)
mean ± σ min … max
Wall Time 226.1 ms ± 14.0 ms 216.2 ms … 236.0 ms
Memory 84.9 MiB ± 0.2 MiB 84.8 MiB … 85.0 MiB
Warning: Ignoring non-zero exit code.
Benchmark 2: Pyrefly (2 runs)
mean ± σ min … max
Wall Time 210.4 ms ± 6.9 ms 205.5 ms … 215.3 ms -7.0%
Memory 92.3 MiB ± 0.1 MiB 92.2 MiB … 92.4 MiB +8.8%
Warning: Ignoring non-zero exit code.
Benchmark 3: mypy (2 runs)
mean ± σ min … max
Wall Time 896.4 ms ± 88.8 ms 833.7 ms … 959.2 ms +296.4% (4.0x slower)
Memory 144.3 MiB ± 0.6 MiB 143.9 MiB … 144.7 MiB +70.0% (1.7x more)
Warning: Ignoring non-zero exit code.
Benchmark 4: mypy (warm) (2 runs)
mean ± σ min … max
Wall Time 213.0 ms ± 3.7 ms 210.4 ms … 215.6 ms -5.8%
Memory 51.7 MiB ± 0.1 MiB 51.6 MiB … 51.8 MiB -39.1% (1.6x less)
Warning: Ignoring non-zero exit code.
Benchmark 5: Pyright (2 runs)
mean ± σ min … max
Wall Time 981.9 ms ± 13.0 ms 972.6 ms … 991.1 ms +334.2% (4.3x slower)
Memory 315.4 MiB ± 5.9 MiB 311.2 MiB … 319.5 MiB +271.6% (3.7x more)
Warning: Ignoring non-zero exit code.
```
</details>
I also tested most of the other hyperfine invocations mentioned
somewhere in this repo.
This commit is contained in:
1 parent
994443dd2c
commit
db2a4a9216
4 files changed
+40
-41
No files matched your search
+2
-1
@@ -715,7 +715,8 @@ will execute Pylint with maximum parallelism and only report errors.
|
||||
To benchmark Pyupgrade, run the following from `crates/ruff_linter/resources/test/cpython`:
|
||||
|
||||
```shell
|
||||
uv run --only-dev hyperfine --ignore-failure --warmup 5 --prepare "git reset --hard HEAD" \
|
||||
uv run --only-dev hyperfine --shell=default --ignore-failure --warmup=5 \
|
||||
--prepare="git reset --hard HEAD" \
|
||||
"find . -type f -name \"*.py\" | xargs -P 0 pyupgrade --py311-plus"
|
||||
|
||||
Benchmark 1: find . -type f -name "*.py" | xargs -P 0 pyupgrade --py311-plus
|
||||
|
||||
+2
-2
@@ -63,7 +63,7 @@ dev = [
|
||||
"astral-dev-toolchain-cargo-insta>=1.48.0",
|
||||
"astral-dev-toolchain-cargo-nextest>=0.9.143",
|
||||
"astral-dev-toolchain-cargo-shear>=1.13.4",
|
||||
"astral-dev-toolchain-hyperfine>=1.20.0",
|
||||
"astral-dev-toolchain-hyperfine>=2.0.0a2",
|
||||
"prek==0.5.0",
|
||||
]
|
||||
release = [
|
||||
@@ -148,7 +148,7 @@ exclude-newer = "P7D"
|
||||
|
||||
[tool.uv.exclude-newer-package]
|
||||
astral-dev-toolchain-cargo-deny = "2026-09-15T19:10:00Z"
|
||||
astral-dev-toolchain-hyperfine = "2026-08-27T00:00:00Z"
|
||||
astral-dev-toolchain-hyperfine = "2026-10-07T11:05:00Z"
|
||||
astral-dev-toolchain-cargo-shear = "2026-08-27T00:00:00Z"
|
||||
astral-dev-toolchain-cargo-codspeed = "2026-08-27T00:00:00Z"
|
||||
astral-dev-toolchain-cargo-nextest = "2026-08-27T00:00:00Z"
|
||||
|
||||
@@ -4,10 +4,8 @@
|
||||
# Benchmark the Ruff formatter's performance against a variety of similar tools.
|
||||
#
|
||||
# Expects to be run from the repo root after invoking `cargo build --release`,
|
||||
# in an environment with access to `black`, `autopep8`, and `yapf` (most recently:
|
||||
# `black` v23.9.1, `autopep8` v2.0.4, and `yapf` v0.40.2, on Python 3.11.6, the
|
||||
# most recent combination of versions for which Black provides compiled wheels at
|
||||
# time of writing).
|
||||
# in an environment with `black`, `autopep8`, and `yapf` installed from
|
||||
# `scripts/benchmarks/uv.lock`.
|
||||
#
|
||||
# Example usage:
|
||||
#
|
||||
@@ -28,14 +26,14 @@ TARGET_DIR=${1}
|
||||
hyperfine --ignore-failure \
|
||||
--prepare "./target/release/ruff format ${TARGET_DIR}" \
|
||||
"./target/release/ruff format ${TARGET_DIR}" \
|
||||
--prepare "BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --safe" \
|
||||
"BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --safe" \
|
||||
--prepare "BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --fast" \
|
||||
"BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --fast" \
|
||||
--prepare "BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --safe --preview" \
|
||||
"BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --safe --preview" \
|
||||
--prepare "BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --fast --preview" \
|
||||
"BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --fast --preview" \
|
||||
--prepare "black --no-cache ${TARGET_DIR} --safe" \
|
||||
"black --no-cache ${TARGET_DIR} --safe" \
|
||||
--prepare "black --no-cache ${TARGET_DIR} --fast" \
|
||||
"black --no-cache ${TARGET_DIR} --fast" \
|
||||
--prepare "black --no-cache ${TARGET_DIR} --safe --preview" \
|
||||
"black --no-cache ${TARGET_DIR} --safe --preview" \
|
||||
--prepare "black --no-cache ${TARGET_DIR} --fast --preview" \
|
||||
"black --no-cache ${TARGET_DIR} --fast --preview" \
|
||||
--prepare "autopep8 ${TARGET_DIR} --recursive --in-place" \
|
||||
"autopep8 ${TARGET_DIR} --recursive --in-place" \
|
||||
--prepare "yapf ${TARGET_DIR} --parallel --recursive --in-place" \
|
||||
@@ -44,15 +42,15 @@ hyperfine --ignore-failure \
|
||||
# Benchmark 2: Write to disk, but only use one thread.
|
||||
hyperfine --ignore-failure \
|
||||
--prepare "./target/release/ruff format ${TARGET_DIR}" \
|
||||
"RAYON_NUM_THREADS=1 ./target/release/ruff format ${TARGET_DIR}" \
|
||||
--prepare "BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --safe" \
|
||||
"BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --workers=1 --safe" \
|
||||
--prepare "BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --fast" \
|
||||
"BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --workers=1 --fast" \
|
||||
--prepare "BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --safe --preview" \
|
||||
"BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --workers=1 --safe --preview" \
|
||||
--prepare "BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --fast --preview" \
|
||||
"BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --workers=1 --fast --preview" \
|
||||
"env RAYON_NUM_THREADS=1 ./target/release/ruff format ${TARGET_DIR}" \
|
||||
--prepare "black --no-cache ${TARGET_DIR} --safe" \
|
||||
"black --no-cache ${TARGET_DIR} --workers=1 --safe" \
|
||||
--prepare "black --no-cache ${TARGET_DIR} --fast" \
|
||||
"black --no-cache ${TARGET_DIR} --workers=1 --fast" \
|
||||
--prepare "black --no-cache ${TARGET_DIR} --safe --preview" \
|
||||
"black --no-cache ${TARGET_DIR} --workers=1 --safe --preview" \
|
||||
--prepare "black --no-cache ${TARGET_DIR} --fast --preview" \
|
||||
"black --no-cache ${TARGET_DIR} --workers=1 --fast --preview" \
|
||||
--prepare "autopep8 ${TARGET_DIR} --recursive --in-place" \
|
||||
"autopep8 ${TARGET_DIR} --in-place --recursive --jobs=1" \
|
||||
--prepare "yapf ${TARGET_DIR} --parallel --recursive --in-place" \
|
||||
@@ -62,14 +60,14 @@ hyperfine --ignore-failure \
|
||||
hyperfine --ignore-failure \
|
||||
--prepare "./target/release/ruff format ${TARGET_DIR}" \
|
||||
"./target/release/ruff format ${TARGET_DIR} --check" \
|
||||
--prepare "BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --safe" \
|
||||
"BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --check --safe" \
|
||||
--prepare "BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --fast" \
|
||||
"BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --check --fast" \
|
||||
--prepare "BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --safe --preview" \
|
||||
"BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --check --safe --preview" \
|
||||
--prepare "BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --fast --preview" \
|
||||
"BLACK_CACHE_DIR=/dev/null black ${TARGET_DIR} --check --fast --preview" \
|
||||
--prepare "black --no-cache ${TARGET_DIR} --safe" \
|
||||
"black --no-cache ${TARGET_DIR} --check --safe" \
|
||||
--prepare "black --no-cache ${TARGET_DIR} --fast" \
|
||||
"black --no-cache ${TARGET_DIR} --check --fast" \
|
||||
--prepare "black --no-cache ${TARGET_DIR} --safe --preview" \
|
||||
"black --no-cache ${TARGET_DIR} --check --safe --preview" \
|
||||
--prepare "black --no-cache ${TARGET_DIR} --fast --preview" \
|
||||
"black --no-cache ${TARGET_DIR} --check --fast --preview" \
|
||||
--prepare "autopep8 ${TARGET_DIR} --recursive --in-place" \
|
||||
"autopep8 ${TARGET_DIR} --recursive --diff" \
|
||||
--prepare "yapf ${TARGET_DIR} --parallel --recursive --in-place" \
|
||||
|
||||
@@ -20,7 +20,7 @@ astral-dev-toolchain-cargo-fuzz = "2026-09-01T00:00:00Z"
|
||||
astral-dev-toolchain-cargo-insta = "2026-08-27T00:00:00Z"
|
||||
astral-dev-toolchain-cargo-nextest = "2026-08-27T00:00:00Z"
|
||||
astral-dev-toolchain-cargo-shear = "2026-08-27T00:00:00Z"
|
||||
astral-dev-toolchain-hyperfine = "2026-08-27T00:00:00Z"
|
||||
astral-dev-toolchain-hyperfine = "2026-10-07T11:05:00Z"
|
||||
|
||||
[manifest]
|
||||
build-constraints = [
|
||||
@@ -164,15 +164,15 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "astral-dev-toolchain-hyperfine"
|
||||
version = "1.20.0"
|
||||
version = "2.0.0a2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/5e/82/0109da6323b34d69d48df702438c0f3df4c22513e95154c26b6c7d266a13/astral_dev_toolchain_hyperfine-1.20.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:31b43291b77e9c583c3abebcc65995978cdad75195eb8182ce7eefc96f7dc53d", size = 609130, upload-time = "2026-08-26T16:09:29.018Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/5c/c2/bade068349c37f8c40ee1da1ab2853cb3a10ba51898e19bc6bfbbfa9933b/astral_dev_toolchain_hyperfine-1.20.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:828d4b33fa0d2ddb9c74fd8559e1359e74007ed71148e06ddafe0cbee0219c1b", size = 582152, upload-time = "2026-08-26T16:09:30.369Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/a0/54/0bb44acfe37a4a278023592fc703a1f7a7402f76635ba4dcdb14a6075e86/astral_dev_toolchain_hyperfine-1.20.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aafd0ca4620b89685bdec078657567833b462a8dceba930f3ac395d81a8dde17", size = 622444, upload-time = "2026-08-26T16:09:31.669Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/ec/1e/1ff7bb5b38fd7059577ec6fab9405a09b126b8775f73cad144bc43048499/astral_dev_toolchain_hyperfine-1.20.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a90dcfd64798ce5f82b62b4a05ea923fe76407abcc5b49ffaef30b902d1e3e70", size = 656263, upload-time = "2026-08-26T16:09:32.942Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/49/9e/036f671adf8dd42ca949f6358afe31f93490294f167d51d592362f2789c4/astral_dev_toolchain_hyperfine-1.20.0-py3-none-win_amd64.whl", hash = "sha256:c6e1667d641a06554a0d984b0b372dfecec833db1c4c6e84b56c6d56194ac45d", size = 588524, upload-time = "2026-08-26T16:09:34.192Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/3b/c2/eea4375484705603b7f83f97d2ea7f7f30b8e6ffa55fb4ec81dcd8a3b0a6/astral_dev_toolchain_hyperfine-1.20.0-py3-none-win_arm64.whl", hash = "sha256:2995536b8fa75c3137b8b74a728fe3ae4dc93dcbda226989355bfc3921ac6d55", size = 555078, upload-time = "2026-08-26T16:09:36.041Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f9/57/6e35b1d0799025fec41b460ac2d875a7f61b9914b9049e2c26cdd4fc8d92/astral_dev_toolchain_hyperfine-2.0.0a2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:56af039cf20afff837c28dd79c9e8d9ff0f968f7d8202a1ddd4c147d72cfd12f", size = 644685, upload-time = "2026-10-07T11:04:39.387Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/8c/f2/e56e1df137de7e37fc9f57b13efcf8f5b9c40c0b08cc0475b5bfcfba03a3/astral_dev_toolchain_hyperfine-2.0.0a2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5d9802c2c068ca67df34fe554a74c6ccc5cdb8d98052156f2a406951b39eaacc", size = 608694, upload-time = "2026-10-07T11:04:41.099Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/1c/c8/5d2abe9d4520af2f713c1a51538236926deb1419c1b1cc37097952eb2234/astral_dev_toolchain_hyperfine-2.0.0a2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2241f748ef22167424efae6c131bf7ee248ca5800eec2746519cb9bbd61fbfb", size = 645955, upload-time = "2026-10-07T11:04:42.562Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/c8/79/59810a2979a90bfdd1fb93ae32cebe9f6714c3fccf06a093d254d5cda40e/astral_dev_toolchain_hyperfine-2.0.0a2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79c1db475e5a90b847894afeb6143fef3f8385da84a93847666555a0f1c09f08", size = 688744, upload-time = "2026-10-07T11:04:43.787Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/77/3a/d8240d4f942d9d57c65f9c7cf4316d536beb94aa66056748c2997c7f6acc/astral_dev_toolchain_hyperfine-2.0.0a2-py3-none-win_amd64.whl", hash = "sha256:49b1423df898c139923d1a00c9752c92b870a4eac3873131e8d7795278d20471", size = 634519, upload-time = "2026-10-07T11:04:45.433Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/02/2c/2de989d4b9ba57ee94b6e52b768f7b6b8fe16df01ffce168a38ec196b222/astral_dev_toolchain_hyperfine-2.0.0a2-py3-none-win_arm64.whl", hash = "sha256:ca3e7429bbe273633f28ae730ccf4f77278d1ef345dc3014d4e7b20cd5796eb5", size = 592930, upload-time = "2026-10-07T11:04:46.778Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1680,7 +1680,7 @@ dev = [
|
||||
{ name = "astral-dev-toolchain-cargo-insta", marker = "python_full_version >= '3.12'", specifier = ">=1.48.0" },
|
||||
{ name = "astral-dev-toolchain-cargo-nextest", marker = "python_full_version >= '3.12'", specifier = ">=0.9.143" },
|
||||
{ name = "astral-dev-toolchain-cargo-shear", marker = "python_full_version >= '3.12'", specifier = ">=1.13.4" },
|
||||
{ name = "astral-dev-toolchain-hyperfine", marker = "python_full_version >= '3.12'", specifier = ">=1.20.0" },
|
||||
{ name = "astral-dev-toolchain-hyperfine", marker = "python_full_version >= '3.12'", specifier = ">=2.0.0a2" },
|
||||
{ name = "prek", marker = "python_full_version >= '3.12'", specifier = "==0.5.0" },
|
||||
]
|
||||
docs = [
|
||||
|
||||
Reference in new issue
Block a user