Repository navigation
Conversation
eriknw
marked this pull request as ready for review
August 4, 2026 16:07
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
August 4, 2026 16:12
0610f1d to
8120ea8
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
2 times, most recently
from
August 5, 2026 03:18
a9630c5 to
871707e
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
August 5, 2026 17:44
871707e to
48c0a37
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
August 5, 2026 18:03
48c0a37 to
0b7a63a
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
2 times, most recently
from
August 6, 2026 07:59
2241c0d to
f28bd3e
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
August 6, 2026 15:39
f28bd3e to
0a586c9
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
3 times, most recently
from
August 6, 2026 20:41
e469e6c to
ced8b66
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
August 7, 2026 02:48
ced8b66 to
80d325e
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
August 7, 2026 05:09
80d325e to
dfa59f3
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
August 26, 2026 17:30
dfa59f3 to
0510efb
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
September 18, 2026 03:09
0510efb to
3029f1c
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
September 18, 2026 03:46
3029f1c to
ea554c2
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
4 times, most recently
from
October 1, 2026 17:10
a3272da to
a1bfea7
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
October 1, 2026 17:11
a1bfea7 to
6168be8
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
2 times, most recently
from
October 3, 2026 04:57
3283cea to
a10ff8a
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
2 times, most recently
from
October 4, 2026 06:21
60cc74c to
c6677b0
Compare
eriknw
changed the base branch from
15-udt-division-semantics
to
11-udt-record-leaf-count
October 8, 2026 21:24
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
October 8, 2026 21:40
c6677b0 to
7d2e820
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
3 times, most recently
from
October 14, 2026 18:45
adcf4a4 to
f2b77a4
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
October 19, 2026 07:47
f2b77a4 to
6a525e3
Compare
eriknw
force-pushed
the
16-asv-benchmarks
branch
from
October 19, 2026 07:55
6a525e3 to
b0d1ee5
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 17-viz-fixes #596 +/- ##
================================================
+ Coverage 98.81% 98.87% +0.06%
================================================
Files 109 109
Lines 32828 32828
Branches 3746 3746
================================================
+ Hits 32438 32460 +22
+ Misses 254 245 -9
+ Partials 136 123 -13 🚀 New features to boost your workflow:
|
101 benchmarks over the library's hot paths: scalar access (getitem, get and contains on hit and miss, setitem), index parsing, small-op overhead on 10/100/1000-element objects, large kernels at ~1e6 nnz (mxm, mxv, ewise, reduce, single-threaded via OMP_NUM_THREADS=1), coo/dense/scipy conversions, cold import and first-use timings in fresh subprocesses, and repr costs. `benchmarks/_verify.py` is a standalone checker rather than an asv benchmark: it imports every module the way asv does and calls each benchmark once across all parameter combinations. It reports 101 passed, 0 failed, 0 skipped. No timing numbers are claimed; what this commit establishes is that the benchmarks exist and run. `asv.conf.json` uses `//` comments. That is asv's own documented config format and its loader strips them, but the repo's `check-json` hook is a strict JSON parser and rejects the file, so that one path is excluded from the hook and the hook's stale "no JSON files yet" comment is replaced. Verified with `pre-commit run check-json --all-files`, which passes. Two alternatives were considered and not taken. Renaming to `asv.conf.jsonc` needs no exclude and asv 0.6.5 does resolve it (`Config.load` accepts `.json` and `.jsonc`), but asv is not a pinned dependency here and older versions look only for the `.json` name, which would fail as "No `asv.conf` file found". Stripping the comments would delete the only explanation of why each setting is set as it is. The exclude names the single path, so every other JSON file is still checked. asv is deliberately not added to `dev-requirements.txt` or `environment.yml`. Nothing in the test suite or CI invokes it, and this repo ties dependency changes to `scripts/check_versions.sh` and the CI version pools, which a benchmarks-only change should not be editing. The README carries the `pip install asv` line and the reasoning. CI wiring is also left alone: a weekly cron on a fixed machine suits asv far better than per-PR runs on shared runners. The lint configuration for benchmarks/ rides in this commit because the directory it configures arrives here: flake8 and ruff ignore B015/B018 (a bare expression IS what an asv benchmark measures) and T201 for the benchmark CLI, and codespell learns "bu".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
101 benchmarks over the library's hot paths: scalar access (getitem, get and
contains on hit and miss, setitem), index parsing, small-op overhead on
10/100/1000-element objects, large kernels at ~1e6 nnz (mxm, mxv, ewise,
reduce, single-threaded via OMP_NUM_THREADS=1), coo/dense/scipy conversions,
cold import and first-use timings in fresh subprocesses, and repr costs.
benchmarks/_verify.pyis a standalone checker rather than an asv benchmark:it imports every module the way asv does and calls each benchmark once across
all parameter combinations. It reports 101 passed, 0 failed, 0 skipped. No
timing numbers are claimed; what this commit establishes is that the
benchmarks exist and run.
asv.conf.jsonuses//comments. That is asv's own documented configformat and its loader strips them, but the repo's
check-jsonhook is astrict JSON parser and rejects the file, so that one path is excluded from
the hook and the hook's stale "no JSON files yet" comment is replaced.
Verified with
pre-commit run check-json --all-files, which passes.Two alternatives were considered and not taken. Renaming to
asv.conf.jsoncneeds no exclude and asv 0.6.5 does resolve it (
Config.loadaccepts.jsonand.jsonc), but asv is not a pinned dependency here and olderversions look only for the
.jsonname, which would fail as "Noasv.conffile found". Stripping the comments would delete the only explanation of why
each setting is set as it is. The exclude names the single path, so every
other JSON file is still checked.
asv is deliberately not added to
dev-requirements.txtorenvironment.yml.Nothing in the test suite or CI invokes it, and this repo ties dependency
changes to
scripts/check_versions.shand the CI version pools, which abenchmarks-only change should not be editing. The README carries the
pip install asvline and the reasoning. CI wiring is also left alone: aweekly cron on a fixed machine suits asv far better than per-PR runs on
shared runners.
The lint configuration for benchmarks/ rides in this commit because the
directory it configures arrives here: flake8 and ruff ignore B015/B018
(a bare expression IS what an asv benchmark measures) and T201 for the
benchmark CLI, and codespell learns "bu".
Stack created with GitHub Stacks CLI • Give Feedback 💬