NumPy 2.5.2 Release Notes#
The NumPy 2.5.2 is a patch release that fixes bugs discovered after the 2.5.1 release. The big news is that it includes wheels for the newly released Python 3.15.0rc1.
This release supports Python versions 3.12-3.15
C API changes#
PyArray_StringDTypeObject is opaque under the abi3t stable ABI#
The PyArray_StringDTypeObject was accidentally exposed in NumPy
2.5 when targeting the free-threading-compatible stable ABI
(Py_TARGET_ABI3T). PyArray_StringDTypeObject is now an opaque
struct: extensions compiled that way cannot access its fields, since
the struct layout depends on the size of the object header. Any code
that accessed PyArray_StringDTypeObject fields in an abi3t build
would have crashed, so we are making this API change in a bugfix
release.
The NpyString allocator API remains usable by passing the
descriptor object pointer, e.g.
NpyString_acquire_allocator((PyArray_StringDTypeObject *)descr).
(gh-31771)
Contributors#
A total of 16 people contributed to this release. People with a “+” by their names contributed a patch for the first time.
Abhijeetsingh Meena +
Charalampos Stratakis
Charles Harris
Chris Ninham +
David Woods
Geonho +
Gopu Yeshwanth Reddy +
Iason Krommydas
Ijtihed Kilani
Jelle Zijlstra +
Joren Hammudoglu
Kumar Aditya
Mike Boyle
Nathan Goldbaum
Raghuveer Devulapalli
Sebastian Berg
Pull requests merged#
A total of 28 pull requests were merged for this release.
#31864: MAINT: Prepare 2.5.x for further development
#31889: TYP: Backport multiple static typing fixes 1.
#31900: TST: add tests for stable ABI numpy extensions (#31822)
#31901: BUG: fix
StringDTypecoerce flag in binary ufunc promotion…#31902: BLD: fix meson deprecation warnings (#31892)
#31921: TYP: Backport multiple typing fixes 2.
#31947: MAINT: Update x86-simd-sort subproject (5adb334 → fa944ef) (#31908)
#31949: BUG: fix crash on 32 bit systems using abi3t (#31771)
#31950: MNT: remove some obsolete string to bool workarounds (#31859)
#31952: BUG: centralized helper for output coerce and na_object in stringdtype…
#31953: BUG: fix CPU feature env diagnostic buffer overruns (#31905)
#31954: BUG: restore ndarray.conjugate() for legacy user-defined dtypes…
#31955: TYP: Avoid shadowed dtype annotations
#32077: MAINT: Update verdored-meson/meson to match main.
#32114: BUG: fix refcount leak on overlapping copyto with where=False
#32115: BUG: fix swallowed cast error in fancy indexing assignment (#31975)
#32116: BUG: Fix buffered iterator stride after removing multi-index
#32117: BUG: fix
np.fromitercorruption when reusing aStringDType…#32119: BUG: add a special case for StringDType in np.isdtype (#32030)
#32121: BUG: reference leak in
simd_sequence_from_iterable(#32038)#32122: BUG: ensure lock is held when accessing or writing to RNG state…
#32123: BUG: fully reset cached RNG state for non-MT19937 RNGs (#32062)
#32135: TYP: type capabilities max dimensions
#32158: BUG: avoid possible stack overflow in arraydescr_dealloc (#32133)
#32206: MAINT: Update cibuildwheel to v4.2.0
#32214: MAINT: Skip limited_api tests on some platforms.
#32220: TYP:
iscloseshape-typing fix for 2d array-likes (#32205)#32221: BUG: avoid segfaults when legacy copyswap slot is not defined…