| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| header-only.zip | 2026-07-02 | 43.8 kB | |
| README.md | 2026-07-02 | 6.0 kB | |
| Version 2.10.0 source code.tar.gz | 2026-07-02 | 7.0 MB | |
| Version 2.10.0 source code.zip | 2026-07-02 | 7.9 MB | |
| Totals: 4 Items | 14.9 MB | 0 | |
Highlights
- Much faster list reductions (
ak.sum,ak.max, …) — about 5× faster on average (geometric mean), 10×+ on long lists https://github.com/scikit-hep/awkward/pull/4056- Kernels rewritten: CPU (
awkward-cpp), GPU (cuda.compute) - Exact floating-point results may differ from the previous release
- The same arrays may have different internal layouts than before
- Removed the undocumented
ak.index.EmptyIndex/ZeroIndex/LazyIndex
- Kernels rewritten: CPU (
- Many bug fixes and improvements from code review by Claude Fable 5 (PRs 4089–4108) https://github.com/scikit-hep/awkward/issues/4085
What's Changed
New features
- feat: complete CPU kernel migration from
parentstooffsetsby @ianna in https://github.com/scikit-hep/awkward/pull/4056 - feat: migrate
UnionArraykernels tocuda.computeby @maxymnaumchyk in https://github.com/scikit-hep/awkward/pull/4083 - feat: combine cuda.compute PRs into one by @maxymnaumchyk in https://github.com/scikit-hep/awkward/pull/4124
- feat: migrate kernels that were using
parentsto cuda.compute by @maxymnaumchyk in https://github.com/scikit-hep/awkward/pull/4159
Bug-fixes and performance
- fix: add missing .attrs support in parquet serialisation by @albert-physics in https://github.com/scikit-hep/awkward/pull/4079
- fix:
test_pandas_attr_serialisationshould have unique parquet path per thread by @ikrommyd in https://github.com/scikit-hep/awkward/pull/4110 - fix: passing a non-Collection iterable to pytest.parametrize is deprecated by @maxymnaumchyk in https://github.com/scikit-hep/awkward/pull/4144
- fix: datetime.time conversion and binary buffer copy in bindings by @henryiii in https://github.com/scikit-hep/awkward/pull/4089
- fix: properly error on conversion of
IndexedOptionArraywith anEmptyArraycontent andlength > 0to aByteMaskedArrayby @ikrommyd in https://github.com/scikit-hep/awkward/pull/4127 - fix: named-axis context sharing and ak.where broadcasting crash by @henryiii in https://github.com/scikit-hep/awkward/pull/4108
- fix: require pyarrow>=17.0.0 by @henryiii in https://github.com/scikit-hep/awkward/pull/4152
- fix: wrong results from string sort/unique kernels by @henryiii in https://github.com/scikit-hep/awkward/pull/4091
- fix: int64 precision loss in sort comparators and per-comparison branching by @henryiii in https://github.com/scikit-hep/awkward/pull/4090
- fix: LayoutBuilder Union form JSON and Record map-type support by @henryiii in https://github.com/scikit-hep/awkward/pull/4094
- fix: misc integration bugs (hist, avro, numexpr, RDataFrame) by @henryiii in https://github.com/scikit-hep/awkward/pull/4096
- fix: modify cache key for macOS deployment in workflow by @ianna in https://github.com/scikit-hep/awkward/pull/4158
- fix: reject non-integer float indices instead of truncating by @henryiii in https://github.com/scikit-hep/awkward/pull/4097
- fix: typetracer correctness issues affecting dask-awkward by @henryiii in https://github.com/scikit-hep/awkward/pull/4100
- fix: BitMaskedArray mask inversion and placeholder detection by @henryiii in https://github.com/scikit-hep/awkward/pull/4092
- fix: Arrow conversion without pandas, empty chunked arrays, and multi-file Parquet attrs by @henryiii in https://github.com/scikit-hep/awkward/pull/4099
- fix: BitMasked builder use-after-free and GrowableBuffer copy bugs by @henryiii in https://github.com/scikit-hep/awkward/pull/4098
Other
- ci: fix deploy job by @ariostas in https://github.com/scikit-hep/awkward/pull/4082
- chore: add an AGENTS file by @henryiii in https://github.com/scikit-hep/awkward/pull/4086
- chore: don't refuse to install awkward_cpp when using uv by @henryiii in https://github.com/scikit-hep/awkward/pull/4087
- chore(deps): bump the actions group with 3 updates by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/4121
- docs: add albert-physics as a contributor for code by @allcontributors[bot] in https://github.com/scikit-hep/awkward/pull/4122
- ci: automate release-note categorization with type labels by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/4125
- docs: document kernel spec invariants and CPU/CUDA equivalence in AGENTS by @henryiii in https://github.com/scikit-hep/awkward/pull/4088
- ci: run property-based tests nightly with a large max_examples by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/4128
- test: add a property-based kernel test with CPU and GPU backends by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/4142
- ci: show Hypothesis statistics in the nightly property tests by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/4146
- chore: modernize header-only code to C++17 and remove dead code by @henryiii in https://github.com/scikit-hep/awkward/pull/4104
- ci: run the GPU kernel property tests nightly at the nightly profile by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/4147
- ci: enable pyodide build by @ryanking13 in https://github.com/scikit-hep/awkward/pull/4149
- ci: fix docs-preview PR comment failing without a checkout by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/4155
- chore(deps): bump the actions group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/4153
- docs: describe the returned object in Returns: for already-merged operations by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/4148
- chore(deps): update python version for mypy by @maxymnaumchyk in https://github.com/scikit-hep/awkward/pull/4172
New Contributors
- @albert-physics made their first contribution in https://github.com/scikit-hep/awkward/pull/4079
- @ryanking13 made their first contribution in https://github.com/scikit-hep/awkward/pull/4149
Full Changelog: https://github.com/scikit-hep/awkward/compare/v2.9.1...v2.10.0