pypi numpy-groupies 0.14.1
v0.14.1

2 hours ago

Python 3.10 is on its way out. From 0.15.0 numpy-groupies will require Python 3.11 or newer - the 0.14 releases are the last ones that run on 3.10. This release is the one that says so at import time.

Changed

  • Every import in the package is absolute, and TID252 in the ruff config keeps the parent form (from ..utils import ...) from coming back (#126).
  • The benchmark entry point moved to numpy_groupies.benchmarks, so it is python -m numpy_groupies.benchmarks now and simple.py is gone. Columns are opt-in (--ufunc, --numbagg, --pandas, --purepy, --grouploop), the table is Markdown you can paste into a report, and --help is where the columns are explained (#125).

Fixed

  • Two operations whose drivers take the same argument types shared one compiled symbol, and a driver loaded from the on-disk numba cache then bound its building blocks into the other operation's environment: correct types, wrong results. It appeared as one or two failing cells in the numba column on a cold cache and was gone on a re-run of the identical commit, which is why it was easy to mistake for a flaky test. Numba names a compiled function after module, qualname and argument signature, so every nested block of the kernel factories now carries the name of its operation (and of its nan variant) in its qualname (#129).
    • Side effect: the cache file names follow the qualnames, so this release reads a different cache revision. A cache written by 0.14.0 is left alone and the first run after upgrading compiles once - a few seconds, then cached as before.
  • Concurrent writers of one numba cache file could leave its index naming the machine code of a different signature, since numba announces the index entry before it writes the data file. Index and data file are now written as one transaction under an advisory lock (#127).

Deprecated

  • Python 3.10. Importing the package on it warns that 0.15 will require Python 3.11 or newer and that 0.14 is the last release line for that interpreter (#128). DeprecationWarning is hidden by default - it shows up under -W default, under -X dev, and in the warnings summary of a pytest session.

Don't miss a new numpy-groupies release

NewReleases is sending notifications on new releases.