Changelog
### 3.0.2
```
==================
Bugs fixed
----------
* Using ``None`` as default value for arguments annotated as ``int`` could crash Cython.
(Github issue :issue:`5643`)
* Default values of fused types that include ``complex`` could generate invalid C code
with ``-DCYTHON_CCOMPLEX=0``.
(Github issue :issue:`5644`)
* Using C++ enum class types in extension type method signatures could generate invalid C code.
(Github issue :issue:`5637`)
```
### 3.0.1
```
==================
Features added
--------------
* The error messages regarding exception declarations were improved in order to give
better help about possible reasons and fixes.
(Github issue :issue:`5547`)
Bugs fixed
----------
* Memory view types in Python argument annotations no longer accept ``None``. They now
require an explicit ``Optional[]`` or a ``None`` default value in order to allow ``None``
to be passed. This was an oversight in the 3.0.0 release and is a BACKWARDS INCOMPATIBLE
change. However, since it only applies to code using Python syntax, it probably only
applies to newly written code that was written for Cython 3.0 and can easily be adapted.
In most cases, we expect that this change will avoid bugs in user code rather than
produce problems.
(Github issue :issue:`5612`)
* ``nogil`` functions using parallel code could freeze when called with the GIL held.
(Github issues :issue:`5564`, :issue:`5573`)
* Relative cimports could end up searching globally and find the same package installed
elsewhere, potentially in another version.
(Github issue :issue:`5511`)
* Attribute lookups on known standard library modules could accidentally search
in the module namespace instead.
(Github issue :issue:`5536`)
* Using constructed C++ default arguments could generate invalid C++ code.
(Github issue :issue:`5553`)
* ``libcpp.memory.make_unique()`` was lacking C++ exception handling.
(Github issue :issue:`5560`)
* Some non-public and deprecated CAPI usages were replaced by public
(and thus more future proof) API code.
* Many issues with the Limited API support were resolved.
Patches by Lisandro Dalcin et al.
(Github issues :issue:`5549`, :issue:`5550`, :issue:`5556`, :issue:`5605`, :issue:`5617`)
* Some C compiler warnings were resolved.
Patches by Matti Picus et al. (Github issues :issue:`5557`, :issue:`5555`)
* Large Python integers are now stored in hex instead of decimal strings to work around
security limits in Python and generally speed up their Python object creation.
* ``NULL`` could not be used as default for fused type pointer arguments.
(Github issue :issue:`5554`)
* C functions that return pointer types now return ``NULL`` as default exception value.
Previously, calling code wasn't aware of this and always tested for raised exceptions.
(Github issue :issue:`5554`)
* Untyped literal default arguments in fused functions could generate invalid C code.
(Github issue :issue:`5614`)
* C variables declared as ``const`` could generate invalid C code when used in closures,
generator expressions, ctuples, etc.
(Github issues :issue:`5558`, :issue:`5333`)
* Enums could not refer to previously defined enums in their definition.
(Github issue :issue:`5602`)
* The Python conversion code for anonymous C enums conflicted with regular int conversion.
(Github issue :issue:`5623`)
* Using memory views for property methods (and other special methods) could lead to
refcounting problems.
(Github issue :issue:`5571`)
* Star-imports could generate code that tried to assign to constant C macros like
``PY_SSIZE_T_MAX`` and ``PY_SSIZE_T_MIN``.
Patch by Philipp Wagner. (Github issue :issue:`5562`)
* ``CYTHON_USE_TYPE_SPECS`` can now be (explicitly) enabled in PyPy.
* The template parameter "delimeters" in the Tempita ``Template`` class was corrected
to "delimiters". The old spelling is still available in the main template API but
now issues a ``DeprecationWarning``.
(Github issue :issue:`5608`)
* The ``cython --version`` output is now less likely to reach both stdout and stderr.
Patch by Eli Schwartz. (Github issue :issue:`5504`)
* The sdist was missing the `Shadow.pyi` stub file.
```
### 3.0.0
```
==========================
Features added
--------------
* Cython functions now use the `PEP-590`_ vectorcall protocol in Py3.7+.
Patch by Jeroen Demeyer. (Github issue :issue:`2263`)
* Unicode identifiers are supported in Cython code (`PEP-3131`_).
Patch by David Woods. (Github issue :issue:`2601`)
* Unicode module names and imports are supported.
Patch by David Woods. (Github issue :issue:`3119`)
* Annotations are no longer parsed, keeping them as strings following `PEP-563`_.
Patch by David Woods. (Github issue :issue:`3285`)
* Preliminary support for the CPython's ``Py_LIMITED_API`` (stable ABI) is
available by setting the ``CYTHON_LIMITED_API`` C macro. Note that the
support is currently in an early stage and many features do not yet work.
You currently still have to define ``Py_LIMITED_API`` externally in order
to restrict the API usage. This will change when the feature stabilises.
Patches by Eddie Elizondo and David Woods. (Github issues :issue:`3223`,
:issue:`3311`, :issue:`3501`)
* The dispatch to fused functions is now linear in the number of arguments,
which makes it much faster, often 2x or more, and several times faster for
larger fused types with many specialisations.
Patch by will-ca. (Github issue :issue:`1385`)
* ``with gil/nogil`` statements can be conditional based on compile-time
constants, e.g. fused type checks.
Patch by Noam Hershtig. (Github issue :issue:`2579`)
* ``const`` can be used together with fused types.
Patch by Thomas Vincent. (Github issue :issue:`1772`)
* Reimports of already imported modules are substantially faster.
(Github issue :issue:`2854`)
* Positional-only arguments are supported in Python functions (`PEP-570`_).
Patch by Josh Tobin. (Github issue :issue:`2915`)
* The ``volatile`` C modifier is supported in Cython code.
Patch by Jeroen Demeyer. (Github issue :issue:`1667`)
* ``cython.trashcan(True)`` can be used on an extension type to enable the
CPython :ref:`trashcan`. This allows deallocating deeply recursive objects
without overflowing the stack. Patch by Jeroen Demeyer. (Github issue :issue:`2842`)
* Inlined properties can be defined for external extension types.
Patch by Matti Picus. (Github issue :issue:`2640`, redone later in :issue:`3571`)
* The ``str()`` builtin now calls ``PyObject_Str()`` instead of going
through a Python call.
Patch by William Ayd. (Github issue :issue:`3279`)
* String concatenation can now happen in place if possible, by extending the
existing string rather than always creating a new one.
Patch by David Woods. (Github issue :issue:`3453`)
* Multiplication of Python numbers with small constant integers is faster.
(Github issue :issue:`2808`)
* Some list copying is avoided internally when a new list needs to be created
but we already have a fresh one.
(Github issue :issue:`3494`)
* Extension types that do not need their own ``tp_new`` implementation (because
they have no object attributes etc.) directly inherit the implementation of
their parent type if possible.
(Github issue :issue:`1555`)
* The attributes ``gen.gi_frame`` and ``coro.cr_frame`` of Cython compiled
generators and coroutines now return an actual frame object for introspection.
(Github issue :issue:`2306`)
* Several declarations in ``cpython.*``, ``libc.*`` and ``libcpp.*`` were added.
Patches by Jeroen Demeyer, Matthew Edwards, Chris Gyurgyik, Jerome Kieffer
and Zackery Spytz.
(Github issues :issue:`3468`, :issue:`3332`, :issue:`3202`, :issue:`3188`,
:issue:`3179`, :issue:`2891`, :issue:`2826`, :issue:`2713`)
* Deprecated NumPy API usages were removed from ``numpy.pxd``.
Patch by Matti Picus. (Github issue :issue:`3365`)
* ``cython.inline()`` now sets the ``NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION``
C macro automatically when ``numpy`` is imported in the code, to avoid C compiler
warnings about deprecated NumPy C-API usage.
* The builtin ``abs()`` function can now be used on C numbers in nogil code.
Patch by Elliott Sales de Andrade. (Github issue :issue:`2748`)
* `PEP-479`_ (``generator_stop``) is now enabled by default with language level 3.
(Github issue :issue:`2580`)
* The ``cython.view.array`` type supports inheritance.
Patch by David Woods. (Github issue :issue:`3413`)
* Code annotation accepts a new debugging argument ``--annotate-fullc`` that
will include the complete syntax highlighted C file in the HTML output.
(Github issue :issue:`2855`)
* ``--no-capture`` added to ``runtests.py`` to prevent stdout/stderr capturing
during srctree tests.
Patch by Matti Picus. (Github issue :issue:`2701`)
* ``--no-docstrings`` option added to ``cythonize`` script.
Original patch by mo-han. (Github issue :issue:`2889`)
* ``cygdb`` gives better error messages when it fails to initialise the
Python runtime support in gdb.
Patch by Volker Weissmann. (Github issue :issue:`3489`)
* The Pythran ``shape`` attribute is supported.
Patch by Serge Guelton. (Github issue :issue:`3307`)
Bugs fixed
----------
* The unicode methods ``.upper()``, ``.lower()`` and ``.title()`` were
incorrectly optimised for single character input values and only returned
the first character if multiple characters should have been returned.
They now use the original Python methods again.
* Fused argument types were not correctly handled in type annotations and
``cython.locals()``.
Patch by David Woods. (Github issues :issue:`3391`, :issue:`3142`)
* Diverging from the usual behaviour, ``len(memoryview)``, ``len(char*)``
and ``len(Py_UNICODE*)`` returned an unsigned ``size_t`` value. They now
return a signed ``Py_ssize_t``, like other usages of ``len()``.
* Nested dict literals in function call kwargs could incorrectly raise an
error about duplicate keyword arguments, which are allowed when passing
them from dict literals.
(Github issue :issue:`2963`)
* Item access (subscripting) with integer indices/keys always tried the
Sequence protocol before the Mapping protocol, which diverged from Python
semantics. It now passes through the Mapping protocol first when supported.
(Github issue :issue:`1807`)
* Name lookups in class bodies no longer go through an attribute lookup.
Patch by Jeroen Demeyer. (Github issue :issue:`3100`)
* Broadcast assignments to a multi-dimensional memory view slice could end
up in the wrong places when the underlying memory view is known to be
contiguous but the slice is not.
(Github issue :issue:`2941`)
* Pickling unbound methods of Python classes failed.
Patch by Pierre Glaser. (Github issue :issue:`2972`)
* The ``Py_hash_t`` type failed to accept arbitrary "index" values.
(Github issue :issue:`2752`)
* The first function line number of functions with decorators pointed to the
signature line and not the first decorator line, as in Python.
Patch by Felix Kohlgrüber. (Github issue :issue:`2536`)
* Constant integer expressions that used a negative exponent were evaluated
as integer 0 instead of the expected float value.
Patch by Kryštof Pilnáček. (Github issue :issue:`2133`)
* The ``cython.declare()`` and ``cython.cast()`` functions could fail in pure mode.
Patch by Dmitry Shesterkin. (Github issue :issue:`3244`)
* ``__doc__`` was not available inside of the class body during class creation.
(Github issue :issue:`1635`)
* Setting ``language_level=2`` in a file did not work if ``language_level=3``
was enabled globally before.
Patch by Jeroen Demeyer. (Github issue :issue:`2791`)
* ``__init__.pyx`` files were not always considered as package indicators.
(Github issue :issue:`2665`)
* Compiling package ``__init__`` files could fail under Windows due to an
undefined export symbol. (Github issue :issue:`2968`)
* A C compiler cast warning was resolved.
Patch by Michael Buesch. (Github issue :issue:`2775`)
* Binding staticmethods of Cython functions were not behaving like Python methods.
Patch by Jeroen Demeyer. (Github issue :issue:`3106`, :issue:`3102`)
* Memoryviews failed to compile when the ``cache_builtins`` feature was disabled.
Patch by David Woods. (Github issue :issue:`3406`)
Other changes
-------------
* The default language level was changed to ``3str``, i.e. Python 3 semantics,
but with ``str`` literals (also in Python 2.7). This is a backwards incompatible
change from the previous default of Python 2 semantics. The previous behaviour
is available through the directive ``language_level=2``.
(Github issue :issue:`2565`)
* Cython no longer generates ``__qualname__`` attributes for classes in Python
2.x since they are problematic there and not correctly maintained for subclasses.
Patch by Jeroen Demeyer. (Github issue :issue:`2772`)
* Source file fingerprinting now uses SHA-1 instead of MD5 since the latter
tends to be slower and less widely supported these days.
(Github issue :issue:`2790`)
* The long deprecated include files ``python_*``, ``stdio``, ``stdlib`` and
``stl`` in ``Cython/Includes/Deprecated/`` were removed. Use the ``libc.*``
and ``cpython.*`` pxd modules instead.
Patch by Jeroen Demeyer. (Github issue :issue:`2904`)
* The search order for include files was changed. Previously it was
``include_directories``, ``Cython/Includes``, ``sys.path``. Now it is
``include_directories``, ``sys.path``, ``Cython/Includes``. This was done to
allow third-party ``*.pxd`` files to override the ones in Cython.
Patch by Matti Picus. (Github issue :issue:`2905`)
* The command line parser was rewritten and modernised using ``argparse``.
Patch by Egor Dranischnikow. (Github issue :issue:`2952`, :issue:`3001`)
* Dotted filenames for qualified module names (``pkg.mod.pyx``) are deprecated.
Use the normal Python package directory layout instead.
(Github issue :issue:`2686`)
* Binary Linux wheels now follow the manylinux2010 standard.
Patch by Alexey Stepanov. (Github issue :issue:`3355`)
* Support for Python 2.6 was removed.
.. _`PEP-560`: https://www.python.org/dev/peps/pep-0560
.. _`PEP-570`: https://www.python.org/dev/peps/pep-0570
.. _`PEP-487`: https://www.python.org/dev/peps/pep-0487
.. _`PEP-590`: https://www.python.org/dev/peps/pep-0590
.. _`PEP-3131`: https://www.python.org/dev/peps/pep-3131
.. _`PEP-563`: https://www.python.org/dev/peps/pep-0563
.. _`PEP-479`: https://www.python.org/dev/peps/pep-0479
```
### 0.29.36
```
====================
Bugs fixed
----------
* Async generators lost their return value in PyPy.
(Github issue :issue:`5465`)
* The outdated C macro ``_PyGC_FINALIZED()`` is no longer used in Py3.9+.
* The deprecated ``Py_OptimizeFlag`` is no longer used in Python 3.9+.
(Github issue :issue:`5343`)
* Using the global ``__debug__`` variable but not assertions could lead to compile errors.
* The broken HTML template support was removed from Tempita.
(Github issue :issue:`3309`)
```
### 0.29.35
```
====================
Bugs fixed
----------
* A garbage collection enabled subtype of a non-GC extension type could call into the
deallocation function of the super type with GC tracking enabled. This could lead
to crashes during deallocation if GC was triggered on the type at the same time.
(Github issue :issue:`5432`)
* Some C compile failures and crashes in CPython 3.12 were resolved.
* ``except + nogil`` was syntactically not allowed.
``except +nogil`` (i.e. defining a C++ exception handling function called ``nogil``)
is now disallowed to prevent typos.
(Github issue :issue:`5430`)
* A C compile failure in PyPy 3.10 was resolved.
Patch by Matti Picus. (Github issue :issue:`5408`)
* Cython modules now use PEP-489 multi-phase init by default in PyPy 3.9 and later.
Original patch by Matti Picus. (Github issue :issue:`5413`)
* API header files generated by different Cython versions can now be included in the
same C file.
(Github issue :issue:`5383`)
* Function signatures containing a type like `tuple[()]` could not be printed.
Patch by Lisandro Dalcin. (Github issue :issue:`5355`)
```
### 0.29.34
```
====================
Bugs fixed
----------
* A reference leak of the for-loop list/tuple iterable was resolved if the for-loop's
``else:`` branch executes a ``break`` for an outer loop.
(Github issue :issue:`5347`)
* Some C compile failures in CPython 3.12 were resolved.
* Some old usages of the deprecated Python ``imp`` module were replaced with ``importlib``.
Patch by Matúš Valo. (Github issue :issue:`5300`)
* Some issues with ``depfile`` generation were resolved.
Patches by Eli Schwartz. (Github issues :issue:`5279`, :issue:`5291`)
```
### 0.29.33
```
====================
Features added
--------------
* The ``cythonize`` and ``cython`` commands have a new option ``-M`` / ``--depfile``
to generate ``.dep`` dependency files for the compilation unit. This can be used
by external build tools to track these dependencies.
The ``cythonize`` option was already available in Cython :ref:`0.29.27`.
Patches by Evgeni Burovski and Eli Schwartz. (Github issue :issue:`1214`)
Bugs fixed
----------
* ``const`` fused types could not be used with memory views.
Patch by Thomas Vincent. (Github issue :issue:`1772`)
* ``wstr`` usage was removed in Python 3.12 and later (PEP-623).
(Github issue :issue:`5145`)
* A type check assertion for Cython functions failed in debug Python builds.
(Github issue :issue:`5031`)
* Fixed various compiler warnings.
Patches by Lisandro Dalcin et al. (Github issues :issue:`4948`, :issue:`5086`)
* Fixed error when calculating complex powers of negative numbers.
(Github issue :issue:`5014`)
* Corrected a small mis-formatting of exception messages on Python 2.
(Github issue :issue:`5018`)
* The ``PyUnicode_AsUTF8AndSize()`` C-API function was missing from the CPython declarations.
(Github issue :issue:`5163`)
* A performance problem in the compiler was resolved when nesting conditional expressions.
(Github issue :issue:`5197`)
* Test suite problems with recent NumPy and CPython versions were resolved.
(Github issues :issue:`5183`, :issue:`5190`)
Other changes
-------------
* The undocumented, untested and apparently useless syntax
``from somemodule cimport class/struct/union somename`` was deprecated
in anticipation of its removal in Cython 3. The type
modifier is not needed here and a plain ``cimport`` of the name will do.
(Github issue :issue:`4905`)
* Properly disable generation of descriptor docstrings on PyPy since they cause crashes.
It was previously disabled, but only accidentally via a typo.
Patch by Matti Picus. (Github issue :issue:`5083`)
* The ``cpow`` directive of Cython 3.0 is available as a no-op.
(Github issue :issue:`5016`)
```
### 0.29.32
```
====================
Bugs fixed
----------
* Revert "Using memoryview typed arguments in inner functions is now rejected as unsupported."
Patch by David Woods. (Github issue :issue:`4798`)
* ``from module import *`` failed in 0.29.31 when using memoryviews.
Patch by David Woods. (Github issue :issue:`4927`)
```
### 0.29.31
```
====================
Features added
--------------
* A new argument ``--module-name`` was added to the ``cython`` command to
provide the (one) exact target module name from the command line.
Patch by Matthew Brett and h-vetinari. (Github issue :issue:`4906`)
* A new keyword ``noexcept`` was added for forward compatibility with Cython 3.
Patch by David Woods. (Github issue :issue:`4903`)
Bugs fixed
----------
* Use ``importlib.util.find_spec()`` instead of the deprecated ``importlib.find_loader()``
function when setting up the package path at import-time.
Patch by Matti Picus. (Github issue :issue:`4764`)
* Require the C compiler to support the two-arg form of ``va_start``
on Python 3.10 and higher.
Patch by Thomas Caswell. (Github issue :issue:`4820`)
* Make ``fused_type`` subscriptable in Shadow.py.
Patch by Pfebrer. (Github issue :issue:`4842`)
* Fix the incorrect code generation of the target type in ``bytearray`` loops.
Patch by Kenrick Everett. (Github issue :issue:`4108`)
* Atomic refcounts for memoryviews were not used on some GCC versions by accident.
Patch by Sam Gross. (Github issue :issue:`4915`)
* Silence some GCC ``-Wconversion`` warnings in C utility code.
Patch by Lisandro Dalcin. (Github issue :issue:`4854`)
* Tuple multiplication was ignored in expressions such as ``[*(1,) * 2]``.
Patch by David Woods. (Github issue :issue:`4864`)
* Calling ``append`` methods on extension types could fail to find the method
in some cases.
Patch by David Woods. (Github issue :issue:`4828`)
* Ensure that object buffers (e.g. ``ndarray[object, ndim=1]``) containing
``NULL`` pointers are safe to use, returning ``None`` instead of the ``NULL``
pointer.
Patch by Sebastian Berg. (Github issue :issue:`4859`)
* Using memoryview typed arguments in inner functions is now rejected as unsupported.
Patch by David Woods. (Github issue :issue:`4798`)
* Compilation could fail on systems (e.g. FIPS) that block MD5 checksums at runtime.
(Github issue :issue:`4909`)
* Experimental adaptations for the CPython "nogil" fork was added.
Note that there is no official support for this in Cython 0.x.
Patch by Sam Gross. (Github issue :issue:`4912`)
```
### 0.29.30
```
====================
Bugs fixed
----------
* The GIL handling changes in 0.29.29 introduced a regression where
objects could be deallocated without holding the GIL.
(Github issue :issue:`4796`)
```
### 0.29.29
```
====================
Features added
--------------
* Avoid acquiring the GIL at the end of nogil functions.
This change was backported in order to avoid generating wrong C code
that would trigger C compiler warnings with tracing support enabled.
Backport by Oleksandr Pavlyk. (Github issue :issue:`4637`)
Bugs fixed
----------
* Function definitions in ``finally:`` clauses were not correctly generated.
Patch by David Woods. (Github issue :issue:`4651`)
* A case where C-API functions could be called with a live exception set was fixed.
Patch by Jakub Kulík. (Github issue :issue:`4722`)
* Pickles can now be exchanged again with those generated from Cython 3.0 modules.
(Github issue :issue:`4680`)
* Cython now correctly generates Python methods for both the provided regular and
reversed special numeric methods of extension types.
Patch by David Woods. (Github issue :issue:`4750`)
* Calling unbound extension type methods without arguments could raise an
``IndexError`` instead of a ``TypeError``.
Patch by David Woods. (Github issue :issue:`4779`)
* Calling unbound ``.__contains__()`` super class methods on some builtin base
types could trigger an infinite recursion.
Patch by David Woods. (Github issue :issue:`4785`)
* The C union type in pure Python mode mishandled some field names.
Patch by Jordan Brière. (Github issue :issue:`4727`)
* Allow users to overwrite the C macro ``_USE_MATH_DEFINES``.
Patch by Yuriy Chernyshov. (Github issue :issue:`4690`)
* Improved compatibility with CPython 3.10/11.
Patches by Thomas Caswell, David Woods.
(Github issues :issue:`4609`, :issue:`4667`, :issue:`4721`, :issue:`4730`, :issue:`4777`)
* Docstrings of descriptors are now provided in PyPy 7.3.9.
Patch by Matti Picus. (Github issue :issue:`4701`)
```
### 0.29.28
```
====================
Bugs fixed
----------
* Due to backwards incompatible changes in CPython 3.11a4, the feature flags
``CYTHON_FAST_THREAD_STATE`` and ``CYTHON_USE_EXC_INFO_STACK`` are now disabled
in Python 3.11 and later. They are enabled again in Cython 3.0.
Patch by David Woods. (Github issue :issue:`4610`)
* A C compiler warning in older PyPy versions was resolved.
Patch by Matti Picus. (Github issue :issue:`4236`)
```
### 0.29.27
```
====================
Features added
--------------
* The ``cythonize`` command has a new option ``-M`` to generate ``.dep`` dependency
files for the compilation unit. This can be used by external build tools to track
these dependencies.
Patch by Evgeni Burovski. (Github issue :issue:`1214`)
Bugs fixed
----------
* Compilation failures on PyPy were resolved.
Patches by Matti Picus. (Github issues :issue:`4509`, :issue:`4517`)
* Calls to ``range()`` with more than three arguments did not fail.
Original patch by Max Bachmann. (Github issue :issue:`4550`)
* Some C compiler warnings about missing type struct initialisers in Py3.10 were resolved.
* Cython no longer warns about using OpenMP 3.0 features since they are now
considered generally available.
```
### 0.29.26
```
====================
Bugs fixed
----------
* An incompatibility with CPython 3.11.0a3 was resolved.
(Github issue :issue:`4499`)
* The ``in`` operator failed on literal lists with starred expressions.
Patch by Arvind Natarajan. (Github issue :issue:`3938`)
* A C compiler warning in PyPy about a missing struct field initialisation was resolved.
```
### 0.29.25
```
====================
Bugs fixed
----------
* Several incompatibilities with CPython 3.11 were resolved.
Patches by David Woods, Victor Stinner, Thomas Caswell.
(Github issues :issue:`4411`, :issue:`4414`, :issue:`4415`, :issue:`4416`, :issue:`4420`,
:issue:`4428`, :issue:`4473`, :issue:`4479`, :issue:`4480`)
* Some C compiler warnings were resolved.
Patches by Lisandro Dalcin and others. (Github issue :issue:`4439`)
* C++ ``std::move()`` should only be used automatically in MSVC versions that support it.
Patch by Max Bachmann. (Github issue :issue:`4191`)
* The ``Py_hash_t`` type failed to accept arbitrary "index" values.
(Github issue :issue:`2752`)
* Avoid copying unaligned 16-bit values since some platforms require them to be aligned.
Use memcpy() instead to let the C compiler decide how to do it.
(Github issue :issue:`4343`)
* Cython crashed on invalid truthiness tests on C++ types without ``operator bool``.
Patch by David Woods. (Github issue :issue:`4348`)
* The declaration of ``PyUnicode_CompareWithASCIIString()`` in ``cpython.unicode`` was incorrect.
Patch by Max Bachmann. (Github issue :issue:`4344`)
```
### 0.29.24
```
====================
Bugs fixed
----------
* Inline functions in pxd files that used memory views could lead to invalid
C code if the module that imported from them does not use memory views.
Patch by David Woods. (Github issue :issue:`1415`)
* Several declarations in ``libcpp.string`` were added and corrected.
Patch by Janek Bevendorff. (Github issue :issue:`4268`)
* Pickling unbound Cython compiled methods failed.
Patch by Pierre Glaser. (Github issue :issue:`2972`)
* The tracing code was adapted to work with CPython 3.10.
* The optimised ``in`` operator failed on unicode strings in Py3.9 and later
that were constructed from an external ``wchar_t`` source.
Also, related C compiler warnings about deprecated C-API usage were resolved.
(Github issue :issue:`3925`)
* Some compiler crashes were resolved.
Patch by David Woods. (Github issues :issue:`4214`, :issue:`2811`)
* An incorrect warning about 'unused' generator expressions was removed.
(GIthub issue :issue:`1699`)
* The attributes ``gen.gi_frame`` and ``coro.cr_frame`` of Cython compiled
generators and coroutines now return an actual frame object for introspection,
instead of ``None``.
(Github issue :issue:`2306`)
```
Links
- PyPI: https://pypi.org/project/cython
- Changelog: https://data.safetycli.com/changelogs/cython/
- Homepage: https://cython.org/
Changelog
### 1.26.0
```
The NumPy 1.26.0 release is a continuation of the 1.25.x release cycle
with the addition of Python 3.12.0 support. Python 3.12 dropped
distutils, consequently supporting it required finding a replacement for
the setup.py/distutils based build system NumPy was using. We have
chosen to use the Meson build system instead, and this is the first
NumPy release supporting it. This is also the first release that
supports Cython 3.0 in addition to retaining 0.29.X compatibility.
Supporting those two upgrades was a large project, over 100 files have
been touched in this release. The changelog doesn\'t capture the full
extent of the work, special thanks to Ralf Gommers, Sayed Adel, Stéfan
van der Walt, and Matti Picus who did much of the work in the main
development branch.
The highlights of this release are:
- Python 3.12.0 support.
- Cython 3.0.0 compatibility.
- Use of the Meson build system
- Updated SIMD support
The Python versions supported in this release are 3.9-3.12.
Build system changes
In this release, NumPy has switched to Meson as the build system and
meson-python as the build backend. Installing NumPy or building a wheel
can be done with standard tools like `pip` and `pypa/build`. The
following are supported:
- Regular installs: `pip install numpy` or (in a cloned repo)
`pip install .`
- Building a wheel: `python -m build` (preferred), or `pip wheel .`
- Editable installs: `pip install -e . --no-build-isolation`
- Development builds through the custom CLI implemented with
[spin](https://github.com/scientific-python/spin): `spin build`.
All the regular `pip` and `pypa/build` flags (e.g.,
`--no-build-isolation`) should work as expected.
NumPy-specific build customization
Many of the NumPy-specific ways of customizing builds have changed. The
`NPY_*` environment variables which control BLAS/LAPACK, SIMD,
threading, and other such options are no longer supported, nor is a
`site.cfg` file to select BLAS and LAPACK. Instead, there are
command-line flags that can be passed to the build via `pip`/`build`\'s
config-settings interface. These flags are all listed in the
`meson_options.txt` file in the root of the repo. Detailed documented
will be available before the final 1.26.0 release; for now please see
[the SciPy \"building from source\"docs](http://scipy.github.io/devdocs/building/index.html) since most
build customization works in an almost identical way in SciPy as it does
in NumPy.
Build dependencies
While the runtime dependencies of NumPy have not changed, the build
dependencies have. Because we temporarily vendor Meson and meson-python,
there are several new dependencies - please see the `[build-system]`
section of `pyproject.toml` for details.
Troubleshooting
This build system change is quite large. In case of unexpected issues,
it is still possible to use a `setup.py`-based build as a temporary
workaround (on Python 3.9-3.11, not 3.12), by copying
`pyproject.toml.setuppy` to `pyproject.toml`. However, please open an
issue with details on the NumPy issue tracker. We aim to phase out
`setup.py` builds as soon as possible, and therefore would like to see
all potential blockers surfaced early on in the 1.26.0 release cycle.
Contributors
A total of 11 people contributed to this release. People with a \"+\" by
their names contributed a patch for the first time.
- Bas van Beek
- Charles Harris
- Matti Picus
- Melissa Weber Mendonça
- Ralf Gommers
- Sayed Adel
- Sebastian Berg
- Stefan van der Walt
- Tyler Reddy
- Warren Weckesser
Pull requests merged
A total of 18 pull requests were merged for this release.
- [24305](https://github.com/numpy/numpy/pull/24305): MAINT: Prepare 1.26.x branch for development
- [24308](https://github.com/numpy/numpy/pull/24308): MAINT: Massive update of files from main for numpy 1.26
- [24322](https://github.com/numpy/numpy/pull/24322): CI: fix wheel builds on the 1.26.x branch
- [24326](https://github.com/numpy/numpy/pull/24326): BLD: update openblas to newer version
- [24327](https://github.com/numpy/numpy/pull/24327): TYP: Trim down the `_NestedSequence.__getitem__` signature
- [24328](https://github.com/numpy/numpy/pull/24328): BUG: fix choose refcount leak
- [24337](https://github.com/numpy/numpy/pull/24337): TST: fix running the test suite in builds without BLAS/LAPACK
- [24338](https://github.com/numpy/numpy/pull/24338): BUG: random: Fix generation of nan by dirichlet.
- [24340](https://github.com/numpy/numpy/pull/24340): MAINT: Dependabot updates from main
- [24342](https://github.com/numpy/numpy/pull/24342): MAINT: Add back NPY_RUN_MYPY_IN_TESTSUITE=1
- [24353](https://github.com/numpy/numpy/pull/24353): MAINT: Update `extbuild.py` from main.
- [24356](https://github.com/numpy/numpy/pull/24356): TST: fix distutils tests for deprecations in recent setuptools\...
- [24375](https://github.com/numpy/numpy/pull/24375): MAINT: Update cibuildwheel to version 2.15.0
- [24381](https://github.com/numpy/numpy/pull/24381): MAINT: Fix codespaces setup.sh script
- [24403](https://github.com/numpy/numpy/pull/24403): ENH: Vendor meson for multi-target build support
- [24404](https://github.com/numpy/numpy/pull/24404): BLD: vendor meson-python to make the Windows builds with SIMD\...
- [24405](https://github.com/numpy/numpy/pull/24405): BLD, SIMD: The meson CPU dispatcher implementation
- [24406](https://github.com/numpy/numpy/pull/24406): MAINT: Remove versioneer
Checksums
MD5
875d02016f215f8ce2513453393f0089 numpy-1.26.0b1-cp310-cp310-macosx_10_9_x86_64.whl
7df1856729096fbbbbb82b58c1695810 numpy-1.26.0b1-cp310-cp310-macosx_11_0_arm64.whl
928037510906572ecadb154b8089853f numpy-1.26.0b1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
93fb7c8a0e7af169c9bf42d8bfa17c2c numpy-1.26.0b1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
a865069d224bf3830671de8e1f374344 numpy-1.26.0b1-cp310-cp310-musllinux_1_1_x86_64.whl
c53d1d8cb653fc08bd3f931e4c965430 numpy-1.26.0b1-cp310-cp310-win_amd64.whl
c7e212fbb7e64231747c6c8aac0f8678 numpy-1.26.0b1-cp311-cp311-macosx_10_9_x86_64.whl
f2df03cdaee283c1f7486d2f66e497dd numpy-1.26.0b1-cp311-cp311-macosx_11_0_arm64.whl
8af359b78166474b7a621a482f3073fd numpy-1.26.0b1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
4eec2761b87ccd43028697410ed8909d numpy-1.26.0b1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
d9f0b03e455e9e99bdbe69e2e729c197 numpy-1.26.0b1-cp311-cp311-musllinux_1_1_x86_64.whl
dd1c5e4492988e2b3641602b295e7de3 numpy-1.26.0b1-cp311-cp311-win_amd64.whl
88e35ab901c8315ccdb172abc0d2350c numpy-1.26.0b1-cp312-cp312-macosx_10_9_x86_64.whl
ad426a4203844eaa8de6b519e94dc2c0 numpy-1.26.0b1-cp312-cp312-macosx_11_0_arm64.whl
2e0e7a297de88cfe930c205b1ab8fdb0 numpy-1.26.0b1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
5d4ea12ab53e506a9887ab8a587f68f6 numpy-1.26.0b1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
1b3c3a80d2fb928b753545ded60312f3 numpy-1.26.0b1-cp312-cp312-musllinux_1_1_x86_64.whl
e27356122ee42d84f6965ac802792bc3 numpy-1.26.0b1-cp312-cp312-win_amd64.whl
1cc0d71476548fa30c27a542e3c3f9bf numpy-1.26.0b1-cp39-cp39-macosx_10_9_x86_64.whl
ec4882af449c1754cc7af84a82305aed numpy-1.26.0b1-cp39-cp39-macosx_11_0_arm64.whl
142493180019de1ec22c4510bf650366 numpy-1.26.0b1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
4a0c76b75fa36c54c0d2a9107c838910 numpy-1.26.0b1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
cb4d1c3b95e3a2662f94475b4b525da0 numpy-1.26.0b1-cp39-cp39-musllinux_1_1_x86_64.whl
afa3f60467530e022eb1a584a8c48f84 numpy-1.26.0b1-cp39-cp39-win_amd64.whl
35c77e2f2b25225ae62354f91c26a693 numpy-1.26.0b1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
1986181def7286ae37ced5df7c0ca312 numpy-1.26.0b1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e013942d0d71cb6a680afa89c9aa5259 numpy-1.26.0b1-pp39-pypy39_pp73-win_amd64.whl
3268568cee06327fa34175aa3805829d numpy-1.26.0b1.tar.gz
SHA256
9a74361204dc604ba53916ed55aef0ca73e7aa3d0b7e47e1c28aece8c2ad4f59 numpy-1.26.0b1-cp310-cp310-macosx_10_9_x86_64.whl
ab9e86bb7c9d3e009945b24a92318ff5d8c245e0e0aaaa765825c4561c292d53 numpy-1.26.0b1-cp310-cp310-macosx_11_0_arm64.whl
b0b73599c80b29dfa7f812cb2e8738ce3f058b413e9f2f478e3cc4e038bb8f8e numpy-1.26.0b1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
4a6d4c99396c57e02b0181f01ba42b482f327774057e51fb7fb390a130c95cff numpy-1.26.0b1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
02af7482f34aeb9658ece615c922942f1a3908c449a9a6cd9f33fa233ce486d4 numpy-1.26.0b1-cp310-cp310-musllinux_1_1_x86_64.whl
5a8f04e957259ef93a1e4a29da0b64d49ee842af456257bbb7253925cfe2f7bd numpy-1.26.0b1-cp310-cp310-win_amd64.whl
f71e10402e705aaa5908464e489d38e6583c48e40a4721f83195772178c7da9f numpy-1.26.0b1-cp311-cp311-macosx_10_9_x86_64.whl
94d5572fea8dca0fa929da9d17fa49e525ceee1e59b04372dfa5bd8a5f688f5f numpy-1.26.0b1-cp311-cp311-macosx_11_0_arm64.whl
1f88e6fe42b0d6418e53332e525b299762dbd9e33055d2e0398e6298da5b0cc9 numpy-1.26.0b1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
c466707e5ce5a44caadb85fd672a5ce0bfc060012df465771e7b10506e1e5dad numpy-1.26.0b1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
16313a28cf703ae722b3ac139809360ffef81a45e758f196e538be3bcbee85c9 numpy-1.26.0b1-cp311-cp311-musllinux_1_1_x86_64.whl
ea85e8e297af49d30830177ecb0c54d1cbca051e4306161f3ceabfa66560b17c numpy-1.26.0b1-cp311-cp311-win_amd64.whl
321a063fabc302931029f831f284cf43c301fdeead1b15df2f8aa87673294d4d numpy-1.26.0b1-cp312-cp312-macosx_10_9_x86_64.whl
dc36a9e8df48b72dad668d6f4036ed477d8bc2cb1f7a23b688e8e8057afdfee3 numpy-1.26.0b1-cp312-cp312-macosx_11_0_arm64.whl
3c6c5804671fa1697e3d0cbc608a65c55794fb6682f4e04e9f6d65d0ddfc47c7 numpy-1.26.0b1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
3aa806da215e9c10ba89e9037a69c7a56367e059615679ef1a5cf937eedfbf61 numpy-1.26.0b1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b66135c02ee55f9113dce3c8c5130b5feaead8767cd2c7ad36547a3d5e264230 numpy-1.26.0b1-cp312-cp312-musllinux_1_1_x86_64.whl
87f2799f475e9e7aee69254dfe357975b163d409550d4641a0bca4cb4f64b725 numpy-1.26.0b1-cp312-cp312-win_amd64.whl
2b258f67ca4a8245c74470da66a87684ddb3f06dde98760efc7ca792a44ee254 numpy-1.26.0b1-cp39-cp39-macosx_10_9_x86_64.whl
a31d9109ffed9fc5566e73346a076fffbc7db00e626579ae4d5dfec933b29bfc numpy-1.26.0b1-cp39-cp39-macosx_11_0_arm64.whl
18e29ab806ec5e0b05df900d44b3b257a5901c32fc3ddaeb818c520cd9279b4e numpy-1.26.0b1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
216b47882877ea5272f279c08bf7e42935728f35c6db2e4843b37db7b29ce016 numpy-1.26.0b1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
eea337d6d5ab2b6eb657b3f18e8b57a280f16fb5f94df484d9c1a8d3450d9ae9 numpy-1.26.0b1-cp39-cp39-musllinux_1_1_x86_64.whl
db698c9008217c54a8005ea58bd5836241d7b519c8bb16a698a1b4ec4ca296a8 numpy-1.26.0b1-cp39-cp39-win_amd64.whl
f250b3099649137f1021f8f95a9404273bcb7539f0bef6d6cf2c91260285edc4 numpy-1.26.0b1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
22584a41b1be30543dd8c030affc90d8cb7ec19a56fda7f27fc33f64f8b0fbaa numpy-1.26.0b1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
8aefe8ab1228e00146e5ae88290c7fdb8221aef45b357aed7f3dff6ac3b3b25a numpy-1.26.0b1-pp39-pypy39_pp73-win_amd64.whl
c67eea90827e1e9aa220a3fc380ce8776428deba8ac9e7c931ce7b69e8dce115 numpy-1.26.0b1.tar.gz
```
### 1.25.2
```
discovered after the 1.25.1 release. This is the last planned release in
the 1.25.x series, the next release will be 1.26.0, which will use the
meson build system and support Python 3.12. The Python versions
supported by this release are 3.9-3.11.
Contributors
A total of 13 people contributed to this release. People with a \"+\" by
their names contributed a patch for the first time.
- Aaron Meurer
- Andrew Nelson
- Charles Harris
- Kevin Sheppard
- Matti Picus
- Nathan Goldbaum
- Peter Hawkins
- Ralf Gommers
- Randy Eckenrode +
- Sam James +
- Sebastian Berg
- Tyler Reddy
- dependabot\[bot\]
Pull requests merged
A total of 19 pull requests were merged for this release.
- [24148](https://github.com/numpy/numpy/pull/24148): MAINT: prepare 1.25.x for further development
- [24174](https://github.com/numpy/numpy/pull/24174): ENH: Improve clang-cl compliance
- [24179](https://github.com/numpy/numpy/pull/24179): MAINT: Upgrade various build dependencies.
- [24182](https://github.com/numpy/numpy/pull/24182): BLD: use `-ftrapping-math` with Clang on macOS
- [24183](https://github.com/numpy/numpy/pull/24183): BUG: properly handle negative indexes in ufunc_at fast path
- [24184](https://github.com/numpy/numpy/pull/24184): BUG: PyObject_IsTrue and PyObject_Not error handling in setflags
- [24185](https://github.com/numpy/numpy/pull/24185): BUG: histogram small range robust
- [24186](https://github.com/numpy/numpy/pull/24186): MAINT: Update meson.build files from main branch
- [24234](https://github.com/numpy/numpy/pull/24234): MAINT: exclude min, max and round from `np.__all__`
- [24241](https://github.com/numpy/numpy/pull/24241): MAINT: Dependabot updates
- [24242](https://github.com/numpy/numpy/pull/24242): BUG: Fix the signature for np.array_api.take
- [24243](https://github.com/numpy/numpy/pull/24243): BLD: update OpenBLAS to an intermeidate commit
- [24244](https://github.com/numpy/numpy/pull/24244): BUG: Fix reference count leak in str(scalar).
- [24245](https://github.com/numpy/numpy/pull/24245): BUG: fix invalid function pointer conversion error
- [24255](https://github.com/numpy/numpy/pull/24255): BUG: Factor out slow `getenv` call used for memory policy warning
- [24292](https://github.com/numpy/numpy/pull/24292): CI: correct URL in cirrus.star
- [24293](https://github.com/numpy/numpy/pull/24293): BUG: Fix C types in scalartypes
- [24294](https://github.com/numpy/numpy/pull/24294): BUG: do not modify the input to ufunc_at
- [24295](https://github.com/numpy/numpy/pull/24295): BUG: Further fixes to indexing loop and added tests
Checksums
MD5
33518ccb4da8ee11f1dee4b9fef1e468 numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl
b5cb0c3b33ef6d93ec2888f25b065636 numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl
ae027dd38bd73f09c07220b2f516f148 numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
88cf69dc3c0d293492c4c7e75dccf3d8 numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
3e4e3ad02375ba71ae2cd05ccd97aba4 numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl
f52bb644682deb26c35ddec77198b65c numpy-1.25.2-cp310-cp310-win32.whl
4944cf36652be7560a6bcd0d5d56e8ea numpy-1.25.2-cp310-cp310-win_amd64.whl
5a56e639defebb7b871c8c5613960ca3 numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl
3988b96944e7218e629255214f2598bd numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl
302d65015ddd908a862fb3761a2a0363 numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
e54a2e23272d1c5e5b278bd7e304c948 numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
961d390e8ccaf11b1b0d6200d2c8b1c0 numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl
e113865b90f97079d344100c41226fbe numpy-1.25.2-cp311-cp311-win32.whl
834a147aa1adaec97655018b882232bd numpy-1.25.2-cp311-cp311-win_amd64.whl
fb55f93a8033bde854c8a2b994045686 numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl
d96e754217d29bf045e082b695667e62 numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl
beab540edebecbb257e482dd9e498b44 numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
e0d608c9e09cd8feba48567586cfefc0 numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
fe1fc32c8bb005ca04b8f10ebdcff6dd numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl
41df58a9935c8ed869c92307c95f02eb numpy-1.25.2-cp39-cp39-win32.whl
a4371272c64493beb8b04ac46c4c1521 numpy-1.25.2-cp39-cp39-win_amd64.whl
bbe051cbd5f8661dd054277f0b0f0c3d numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
3f68e6b4af6922989dc0133e37db34ee numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
fc89421b79e8800240999d3a1d06a4d2 numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl
cee1996a80032d47bdf1d9d17249c34e numpy-1.25.2.tar.gz
SHA256
db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3 numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl
90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl
dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187 numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357 numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9 numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl
7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044 numpy-1.25.2-cp310-cp310-win32.whl
834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545 numpy-1.25.2-cp310-cp310-win_amd64.whl
c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418 numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl
c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl
0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2 numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364 numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl
5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d numpy-1.25.2-cp311-cp311-win32.whl
5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4 numpy-1.25.2-cp311-cp311-win_amd64.whl
b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3 numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl
eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926 numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl
3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295 numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl
2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01 numpy-1.25.2-cp39-cp39-win32.whl
76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380 numpy-1.25.2-cp39-cp39-win_amd64.whl
1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55 numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901 numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl
fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760 numpy-1.25.2.tar.gz
```
### 1.25.1
```
discovered after the 1.25.0 release. The Python versions supported by
this release are 3.9-3.11.
Contributors
A total of 10 people contributed to this release. People with a \"+\" by
their names contributed a patch for the first time.
- Andrew Nelson
- Charles Harris
- Developer-Ecosystem-Engineering
- Hood Chatham
- Nathan Goldbaum
- Rohit Goswami
- Sebastian Berg
- Tim Paine +
- dependabot\[bot\]
- matoro +
Pull requests merged
A total of 14 pull requests were merged for this release.
- [23968](https://github.com/numpy/numpy/pull/23968): MAINT: prepare 1.25.x for further development
- [24036](https://github.com/numpy/numpy/pull/24036): BLD: Port long double identification to C for meson
- [24037](https://github.com/numpy/numpy/pull/24037): BUG: Fix reduction `return NULL` to be `goto fail`
- [24038](https://github.com/numpy/numpy/pull/24038): BUG: Avoid undefined behavior in array.astype()
- [24039](https://github.com/numpy/numpy/pull/24039): BUG: Ensure `__array_ufunc__` works without any kwargs passed
- [24117](https://github.com/numpy/numpy/pull/24117): MAINT: Pin urllib3 to avoid anaconda-client bug.
- [24118](https://github.com/numpy/numpy/pull/24118): TST: Pin pydantic\<2 in Pyodide workflow
- [24119](https://github.com/numpy/numpy/pull/24119): MAINT: Bump pypa/cibuildwheel from 2.13.0 to 2.13.1
- [24120](https://github.com/numpy/numpy/pull/24120): MAINT: Bump actions/checkout from 3.5.2 to 3.5.3
- [24122](https://github.com/numpy/numpy/pull/24122): BUG: Multiply or Divides using SIMD without a full vector can\...
- [24127](https://github.com/numpy/numpy/pull/24127): MAINT: testing for IS_MUSL closes #24074
- [24128](https://github.com/numpy/numpy/pull/24128): BUG: Only replace dtype temporarily if dimensions changed
- [24129](https://github.com/numpy/numpy/pull/24129): MAINT: Bump actions/setup-node from 3.6.0 to 3.7.0
- [24134](https://github.com/numpy/numpy/pull/24134): BUG: Fix private procedures in f2py modules
Checksums
MD5
d09d98643db31e892fad11b8c2b7af22 numpy-1.25.1-cp310-cp310-macosx_10_9_x86_64.whl
d5b8d3b0424e2af41018f35a087c4500 numpy-1.25.1-cp310-cp310-macosx_11_0_arm64.whl
1007893b1a8bfd97d445a63d29d33642 numpy-1.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
6a62d7a6cee310b41dc872aa7f3d7e8b numpy-1.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e81f6264aecfa2269c5d29d10c362cbc numpy-1.25.1-cp310-cp310-musllinux_1_1_x86_64.whl
ab8ecd125ca86eac0b3ada67ab66dad6 numpy-1.25.1-cp310-cp310-win32.whl
5466bebeaafcc3d6e1b98858d77ff945 numpy-1.25.1-cp310-cp310-win_amd64.whl
f31b059256ae09b7b83df63f52d8371e numpy-1.25.1-cp311-cp311-macosx_10_9_x86_64.whl
099f74d654888869704469c321af845d numpy-1.25.1-cp311-cp311-macosx_11_0_arm64.whl
20d04dccd2bfca5cfd88780d1dc9a3f8 numpy-1.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
61dfd7c00638e83a7af59b86615ee9d2 numpy-1.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
4eb459c3d9479c4da2fdf20e4c4085d0 numpy-1.25.1-cp311-cp311-musllinux_1_1_x86_64.whl
5e84e797866c68ba65fa89a4bf4ba8ce numpy-1.25.1-cp311-cp311-win32.whl
87bb1633b2e8029dbfa1e59f7ab22625 numpy-1.25.1-cp311-cp311-win_amd64.whl
3fcf2eb5970d848a26abdff1b10228e7 numpy-1.25.1-cp39-cp39-macosx_10_9_x86_64.whl
d71e1cbe18fe05944219e5a5be1796bf numpy-1.25.1-cp39-cp39-macosx_11_0_arm64.whl
5b457e10834c991bca84aae7eaa49f34 numpy-1.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
5cbb4c2f2892fafdf6f34fcb37c9e743 numpy-1.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
7d9d1ae23cf5420652088bfe8e048d89 numpy-1.25.1-cp39-cp39-musllinux_1_1_x86_64.whl
7e5bed491b85f0d7c718d6809f9b3ed2 numpy-1.25.1-cp39-cp39-win32.whl
838e97b751bebadf47e2196b2c88ffa2 numpy-1.25.1-cp39-cp39-win_amd64.whl
9ba95d8d6004d9659d7728fe93f67be9 numpy-1.25.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
fbccb20254a2dc85bdec549a03b8eb56 numpy-1.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
95e36689e6dd078caf11e7e2a2d5f5f1 numpy-1.25.1-pp39-pypy39_pp73-win_amd64.whl
768d0ebf15e2242f4c7ca7565bb5dd3e numpy-1.25.1.tar.gz
SHA256
77d339465dff3eb33c701430bcb9c325b60354698340229e1dff97745e6b3efa numpy-1.25.1-cp310-cp310-macosx_10_9_x86_64.whl
d736b75c3f2cb96843a5c7f8d8ccc414768d34b0a75f466c05f3a739b406f10b numpy-1.25.1-cp310-cp310-macosx_11_0_arm64.whl
4a90725800caeaa160732d6b31f3f843ebd45d6b5f3eec9e8cc287e30f2805bf numpy-1.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
6c6c9261d21e617c6dc5eacba35cb68ec36bb72adcff0dee63f8fbc899362588 numpy-1.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
0def91f8af6ec4bb94c370e38c575855bf1d0be8a8fbfba42ef9c073faf2cf19 numpy-1.25.1-cp310-cp310-musllinux_1_1_x86_64.whl
fd67b306320dcadea700a8f79b9e671e607f8696e98ec255915c0c6d6b818503 numpy-1.25.1-cp310-cp310-win32.whl
c1516db588987450b85595586605742879e50dcce923e8973f79529651545b57 numpy-1.25.1-cp310-cp310-win_amd64.whl
6b82655dd8efeea69dbf85d00fca40013d7f503212bc5259056244961268b66e numpy-1.25.1-cp311-cp311-macosx_10_9_x86_64.whl
e8f6049c4878cb16960fbbfb22105e49d13d752d4d8371b55110941fb3b17800 numpy-1.25.1-cp311-cp311-macosx_11_0_arm64.whl
41a56b70e8139884eccb2f733c2f7378af06c82304959e174f8e7370af112e09 numpy-1.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
d5154b1a25ec796b1aee12ac1b22f414f94752c5f94832f14d8d6c9ac40bcca6 numpy-1.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
38eb6548bb91c421261b4805dc44def9ca1a6eef6444ce35ad1669c0f1a3fc5d numpy-1.25.1-cp311-cp311-musllinux_1_1_x86_64.whl
791f409064d0a69dd20579345d852c59822c6aa087f23b07b1b4e28ff5880fcb numpy-1.25.1-cp311-cp311-win32.whl
c40571fe966393b212689aa17e32ed905924120737194b5d5c1b20b9ed0fb171 numpy-1.25.1-cp311-cp311-win_amd64.whl
3d7abcdd85aea3e6cdddb59af2350c7ab1ed764397f8eec97a038ad244d2d105 numpy-1.25.1-cp39-cp39-macosx_10_9_x86_64.whl
1a180429394f81c7933634ae49b37b472d343cccb5bb0c4a575ac8bbc433722f numpy-1.25.1-cp39-cp39-macosx_11_0_arm64.whl
d412c1697c3853c6fc3cb9751b4915859c7afe6a277c2bf00acf287d56c4e625 numpy-1.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
20e1266411120a4f16fad8efa8e0454d21d00b8c7cee5b5ccad7565d95eb42dd numpy-1.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
f76aebc3358ade9eacf9bc2bb8ae589863a4f911611694103af05346637df1b7 numpy-1.25.1-cp39-cp39-musllinux_1_1_x86_64.whl
247d3ffdd7775bdf191f848be8d49100495114c82c2bd134e8d5d075fb386a1c numpy-1.25.1-cp39-cp39-win32.whl
1d5d3c68e443c90b38fdf8ef40e60e2538a27548b39b12b73132456847f4b631 numpy-1.25.1-cp39-cp39-win_amd64.whl
35a9527c977b924042170a0887de727cd84ff179e478481404c5dc66b4170009 numpy-1.25.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
0d3fe3dd0506a28493d82dc3cf254be8cd0d26f4008a417385cbf1ae95b54004 numpy-1.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
012097b5b0d00a11070e8f2e261128c44157a8689f7dedcf35576e525893f4fe numpy-1.25.1-pp39-pypy39_pp73-win_amd64.whl
9a3a9f3a61480cc086117b426a8bd86869c213fc4072e606f01c4e4b66eb92bf numpy-1.25.1.tar.gz
```
### 1.25.0
```
The NumPy 1.25.0 release continues the ongoing work to improve the
handling and promotion of dtypes, increase the execution speed, and
clarify the documentation. There has also been work to prepare for the
future NumPy 2.0.0 release, resulting in a large number of new and
expired deprecation. Highlights are:
- Support for MUSL, there are now MUSL wheels.
- Support the Fujitsu C/C++ compiler.
- Object arrays are now supported in einsum
- Support for inplace matrix multiplication (`=`).
We will be releasing a NumPy 1.26 when Python 3.12 comes out. That is
needed because distutils has been dropped by Python 3.12 and we will be
switching to using meson for future builds. The next mainline release
will be NumPy 2.0.0. We plan that the 2.0 series will still support
downstream projects built against earlier versions of NumPy.
The Python versions supported in this release are 3.9-3.11.
Deprecations
- `np.core.MachAr` is deprecated. It is private API. In names defined
in `np.core` should generally be considered private.
([gh-22638](https://github.com/numpy/numpy/pull/22638))
- `np.finfo(None)` is deprecated.
([gh-23011](https://github.com/numpy/numpy/pull/23011))
- `np.round_` is deprecated. Use `np.round` instead.
([gh-23302](https://github.com/numpy/numpy/pull/23302))
- `np.product` is deprecated. Use `np.prod` instead.
([gh-23314](https://github.com/numpy/numpy/pull/23314))
- `np.cumproduct` is deprecated. Use `np.cumprod` instead.
([gh-23314](https://github.com/numpy/numpy/pull/23314))
- `np.sometrue` is deprecated. Use `np.any` instead.
([gh-23314](https://github.com/numpy/numpy/pull/23314))
- `np.alltrue` is deprecated. Use `np.all` instead.
([gh-23314](https://github.com/numpy/numpy/pull/23314))
- Only ndim-0 arrays are treated as scalars. NumPy used to treat all
arrays of size 1 (e.g., `np.array([3.14])`) as scalars. In the
future, this will be limited to arrays of ndim 0 (e.g.,
`np.array(3.14)`). The following expressions will report a
deprecation warning:
python
a = np.array([3.14])
float(a) better: a[0] to get the numpy.float or a.item()
b = np.array([[3.14]])
c = numpy.random.rand(10)
c[0] = b better: c[0] = b[0, 0]
([gh-10615](https://github.com/numpy/numpy/pull/10615))
- `numpy.find_common_type` is now deprecated and its use
should be replaced with either `numpy.result_type` or
`numpy.promote_types`. Most users leave the second
`scalar_types` argument to `find_common_type` as `[]` in which case
`np.result_type` and `np.promote_types` are both faster and more
robust. When not using `scalar_types` the main difference is that
the replacement intentionally converts non-native byte-order to
native byte order. Further, `find_common_type` returns `object`
dtype rather than failing promotion. This leads to differences when
the inputs are not all numeric. Importantly, this also happens for
e.g. timedelta/datetime for which NumPy promotion rules are
currently sometimes surprising.
When the `scalar_types` argument is not `[]` things are more
complicated. In most cases, using `np.result_type` and passing the
Python values `0`, `0.0`, or `0j` has the same result as using
`int`, `float`, or `complex` in `scalar_types`.
When `scalar_types` is constructed, `np.result_type` is the correct
replacement and it may be passed scalar values like
`np.float32(0.0)`. Passing values other than 0, may lead to
value-inspecting behavior (which `np.find_common_type` never used
and NEP 50 may change in the future). The main possible change in
behavior in this case, is when the array types are signed integers
and scalar types are unsigned.
If you are unsure about how to replace a use of `scalar_types` or
when non-numeric dtypes are likely, please do not hesitate to open a
NumPy issue to ask for help.
([gh-22539](https://github.com/numpy/numpy/pull/22539))
Expired deprecations
- `np.core.machar` and `np.finfo.machar` have been removed.
([gh-22638](https://github.com/numpy/numpy/pull/22638))
- `+arr` will now raise an error when the dtype is not numeric (and
positive is undefined).
([gh-22998](https://github.com/numpy/numpy/pull/22998))
- A sequence must now be passed into the stacking family of functions
(`stack`, `vstack`, `hstack`, `dstack` and `column_stack`).
([gh-23019](https://github.com/numpy/numpy/pull/23019))
- `np.clip` now defaults to same-kind casting. Falling back to unsafe
casting was deprecated in NumPy 1.17.
([gh-23403](https://github.com/numpy/numpy/pull/23403))
- `np.clip` will now propagate `np.nan` values passed as `min` or
`max`. Previously, a scalar NaN was usually ignored. This was
deprecated in NumPy 1.17.
([gh-23403](https://github.com/numpy/numpy/pull/23403))
- The `np.dual` submodule has been removed.
([gh-23480](https://github.com/numpy/numpy/pull/23480))
- NumPy now always ignores sequence behavior for an array-like
(defining one of the array protocols). (Deprecation started NumPy
1.20)
([gh-23660](https://github.com/numpy/numpy/pull/23660))
- The niche `FutureWarning` when casting to a subarray dtype in
`astype` or the array creation functions such as `asarray` is now
finalized. The behavior is now always the same as if the subarray
dtype was wrapped into a single field (which was the workaround,
previously). (FutureWarning since NumPy 1.20)
([gh-23666](https://github.com/numpy/numpy/pull/23666))
- `==` and `!=` warnings have been finalized. The `==` and `!=`
operators on arrays now always:
- raise errors that occur during comparisons such as when the
arrays have incompatible shapes
(`np.array([1, 2]) == np.array([1, 2, 3])`).
- return an array of all `True` or all `False` when values are
fundamentally not comparable (e.g. have different dtypes). An
example is `np.array(["a"]) == np.array([1])`.
This mimics the Python behavior of returning `False` and `True`
when comparing incompatible types like `"a" == 1` and
`"a" != 1`. For a long time these gave `DeprecationWarning` or
`FutureWarning`.
([gh-22707](https://github.com/numpy/numpy/pull/22707))
- Nose support has been removed. NumPy switched to using pytest in
2018 and nose has been unmaintained for many years. We have kept
NumPy\'s nose support to avoid breaking downstream projects who
might have been using it and not yet switched to pytest or some
other testing framework. With the arrival of Python 3.12, unpatched
nose will raise an error. It is time to move on.
*Decorators removed*:
- raises
- slow
- setastest
- skipif
- knownfailif
- deprecated
- parametrize
- \_needs_refcount
These are not to be confused with pytest versions with similar
names, e.g., pytest.mark.slow, pytest.mark.skipif,
pytest.mark.parametrize.
*Functions removed*:
- Tester
- import_nose
- run_module_suite
([gh-23041](https://github.com/numpy/numpy/pull/23041))
- The `numpy.testing.utils` shim has been removed. Importing from the
`numpy.testing.utils` shim has been deprecated since 2019, the shim
has now been removed. All imports should be made directly from
`numpy.testing`.
([gh-23060](https://github.com/numpy/numpy/pull/23060))
- The environment variable to disable dispatching has been removed.
Support for the `NUMPY_EXPERIMENTAL_ARRAY_FUNCTION` environment
variable has been removed. This variable disabled dispatching with
`__array_function__`.
([gh-23376](https://github.com/numpy/numpy/pull/23376))
- Support for `y=` as an alias of `out=` has been removed. The `fix`,
`isposinf` and `isneginf` functions allowed using `y=` as a
(deprecated) alias for `out=`. This is no longer supported.
([gh-23376](https://github.com/numpy/numpy/pull/23376))
Compatibility notes
- The `busday_count` method now correctly handles cases where the
`begindates` is later in time than the `enddates`. Previously, the
`enddates` was included, even though the documentation states it is
always excluded.
([gh-23229](https://github.com/numpy/numpy/pull/23229))
- When comparing datetimes and timedelta using `np.equal` or
`np.not_equal` numpy previously allowed the comparison with
`casting="unsafe"`. This operation now fails. Forcing the output
dtype using the `dtype` kwarg can make the operation succeed, but we
do not recommend it.
([gh-22707](https://github.com/numpy/numpy/pull/22707))
- When loading data from a file handle using `np.load`, if the handle
is at the end of file, as can happen when reading multiple arrays by
calling `np.load` repeatedly, numpy previously raised `ValueError`
if `allow_pickle=False`, and `OSError` if `allow_pickle=True`. Now
it raises `EOFError` instead, in both cases.
([gh-23105](https://github.com/numpy/numpy/pull/23105))
`np.pad` with `mode=wrap` pads with strict multiples of original data
Code based on earlier version of `pad` that uses `mode="wrap"` will
return different results when the padding size is larger than initial
array.
`np.pad` with `mode=wrap` now always fills the space with strict
multiples of original data even if the padding size is larger than the
initial array.
([gh-22575](https://github.com/numpy/numpy/pull/22575))
Cython `long_t` and `ulong_t` removed
`long_t` and `ulong_t` were aliases for `longlong_t` and `ulonglong_t`
and confusing (a remainder fr
Update Cython from 0.29.23 to 3.0.2.
Changelog
### 3.0.2 ``` ================== Bugs fixed ---------- * Using ``None`` as default value for arguments annotated as ``int`` could crash Cython. (Github issue :issue:`5643`) * Default values of fused types that include ``complex`` could generate invalid C code with ``-DCYTHON_CCOMPLEX=0``. (Github issue :issue:`5644`) * Using C++ enum class types in extension type method signatures could generate invalid C code. (Github issue :issue:`5637`) ``` ### 3.0.1 ``` ================== Features added -------------- * The error messages regarding exception declarations were improved in order to give better help about possible reasons and fixes. (Github issue :issue:`5547`) Bugs fixed ---------- * Memory view types in Python argument annotations no longer accept ``None``. They now require an explicit ``Optional[]`` or a ``None`` default value in order to allow ``None`` to be passed. This was an oversight in the 3.0.0 release and is a BACKWARDS INCOMPATIBLE change. However, since it only applies to code using Python syntax, it probably only applies to newly written code that was written for Cython 3.0 and can easily be adapted. In most cases, we expect that this change will avoid bugs in user code rather than produce problems. (Github issue :issue:`5612`) * ``nogil`` functions using parallel code could freeze when called with the GIL held. (Github issues :issue:`5564`, :issue:`5573`) * Relative cimports could end up searching globally and find the same package installed elsewhere, potentially in another version. (Github issue :issue:`5511`) * Attribute lookups on known standard library modules could accidentally search in the module namespace instead. (Github issue :issue:`5536`) * Using constructed C++ default arguments could generate invalid C++ code. (Github issue :issue:`5553`) * ``libcpp.memory.make_unique()`` was lacking C++ exception handling. (Github issue :issue:`5560`) * Some non-public and deprecated CAPI usages were replaced by public (and thus more future proof) API code. * Many issues with the Limited API support were resolved. Patches by Lisandro Dalcin et al. (Github issues :issue:`5549`, :issue:`5550`, :issue:`5556`, :issue:`5605`, :issue:`5617`) * Some C compiler warnings were resolved. Patches by Matti Picus et al. (Github issues :issue:`5557`, :issue:`5555`) * Large Python integers are now stored in hex instead of decimal strings to work around security limits in Python and generally speed up their Python object creation. * ``NULL`` could not be used as default for fused type pointer arguments. (Github issue :issue:`5554`) * C functions that return pointer types now return ``NULL`` as default exception value. Previously, calling code wasn't aware of this and always tested for raised exceptions. (Github issue :issue:`5554`) * Untyped literal default arguments in fused functions could generate invalid C code. (Github issue :issue:`5614`) * C variables declared as ``const`` could generate invalid C code when used in closures, generator expressions, ctuples, etc. (Github issues :issue:`5558`, :issue:`5333`) * Enums could not refer to previously defined enums in their definition. (Github issue :issue:`5602`) * The Python conversion code for anonymous C enums conflicted with regular int conversion. (Github issue :issue:`5623`) * Using memory views for property methods (and other special methods) could lead to refcounting problems. (Github issue :issue:`5571`) * Star-imports could generate code that tried to assign to constant C macros like ``PY_SSIZE_T_MAX`` and ``PY_SSIZE_T_MIN``. Patch by Philipp Wagner. (Github issue :issue:`5562`) * ``CYTHON_USE_TYPE_SPECS`` can now be (explicitly) enabled in PyPy. * The template parameter "delimeters" in the Tempita ``Template`` class was corrected to "delimiters". The old spelling is still available in the main template API but now issues a ``DeprecationWarning``. (Github issue :issue:`5608`) * The ``cython --version`` output is now less likely to reach both stdout and stderr. Patch by Eli Schwartz. (Github issue :issue:`5504`) * The sdist was missing the `Shadow.pyi` stub file. ``` ### 3.0.0 ``` ========================== Features added -------------- * Cython functions now use the `PEP-590`_ vectorcall protocol in Py3.7+. Patch by Jeroen Demeyer. (Github issue :issue:`2263`) * Unicode identifiers are supported in Cython code (`PEP-3131`_). Patch by David Woods. (Github issue :issue:`2601`) * Unicode module names and imports are supported. Patch by David Woods. (Github issue :issue:`3119`) * Annotations are no longer parsed, keeping them as strings following `PEP-563`_. Patch by David Woods. (Github issue :issue:`3285`) * Preliminary support for the CPython's ``Py_LIMITED_API`` (stable ABI) is available by setting the ``CYTHON_LIMITED_API`` C macro. Note that the support is currently in an early stage and many features do not yet work. You currently still have to define ``Py_LIMITED_API`` externally in order to restrict the API usage. This will change when the feature stabilises. Patches by Eddie Elizondo and David Woods. (Github issues :issue:`3223`, :issue:`3311`, :issue:`3501`) * The dispatch to fused functions is now linear in the number of arguments, which makes it much faster, often 2x or more, and several times faster for larger fused types with many specialisations. Patch by will-ca. (Github issue :issue:`1385`) * ``with gil/nogil`` statements can be conditional based on compile-time constants, e.g. fused type checks. Patch by Noam Hershtig. (Github issue :issue:`2579`) * ``const`` can be used together with fused types. Patch by Thomas Vincent. (Github issue :issue:`1772`) * Reimports of already imported modules are substantially faster. (Github issue :issue:`2854`) * Positional-only arguments are supported in Python functions (`PEP-570`_). Patch by Josh Tobin. (Github issue :issue:`2915`) * The ``volatile`` C modifier is supported in Cython code. Patch by Jeroen Demeyer. (Github issue :issue:`1667`) * ``cython.trashcan(True)`` can be used on an extension type to enable the CPython :ref:`trashcan`. This allows deallocating deeply recursive objects without overflowing the stack. Patch by Jeroen Demeyer. (Github issue :issue:`2842`) * Inlined properties can be defined for external extension types. Patch by Matti Picus. (Github issue :issue:`2640`, redone later in :issue:`3571`) * The ``str()`` builtin now calls ``PyObject_Str()`` instead of going through a Python call. Patch by William Ayd. (Github issue :issue:`3279`) * String concatenation can now happen in place if possible, by extending the existing string rather than always creating a new one. Patch by David Woods. (Github issue :issue:`3453`) * Multiplication of Python numbers with small constant integers is faster. (Github issue :issue:`2808`) * Some list copying is avoided internally when a new list needs to be created but we already have a fresh one. (Github issue :issue:`3494`) * Extension types that do not need their own ``tp_new`` implementation (because they have no object attributes etc.) directly inherit the implementation of their parent type if possible. (Github issue :issue:`1555`) * The attributes ``gen.gi_frame`` and ``coro.cr_frame`` of Cython compiled generators and coroutines now return an actual frame object for introspection. (Github issue :issue:`2306`) * Several declarations in ``cpython.*``, ``libc.*`` and ``libcpp.*`` were added. Patches by Jeroen Demeyer, Matthew Edwards, Chris Gyurgyik, Jerome Kieffer and Zackery Spytz. (Github issues :issue:`3468`, :issue:`3332`, :issue:`3202`, :issue:`3188`, :issue:`3179`, :issue:`2891`, :issue:`2826`, :issue:`2713`) * Deprecated NumPy API usages were removed from ``numpy.pxd``. Patch by Matti Picus. (Github issue :issue:`3365`) * ``cython.inline()`` now sets the ``NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION`` C macro automatically when ``numpy`` is imported in the code, to avoid C compiler warnings about deprecated NumPy C-API usage. * The builtin ``abs()`` function can now be used on C numbers in nogil code. Patch by Elliott Sales de Andrade. (Github issue :issue:`2748`) * `PEP-479`_ (``generator_stop``) is now enabled by default with language level 3. (Github issue :issue:`2580`) * The ``cython.view.array`` type supports inheritance. Patch by David Woods. (Github issue :issue:`3413`) * Code annotation accepts a new debugging argument ``--annotate-fullc`` that will include the complete syntax highlighted C file in the HTML output. (Github issue :issue:`2855`) * ``--no-capture`` added to ``runtests.py`` to prevent stdout/stderr capturing during srctree tests. Patch by Matti Picus. (Github issue :issue:`2701`) * ``--no-docstrings`` option added to ``cythonize`` script. Original patch by mo-han. (Github issue :issue:`2889`) * ``cygdb`` gives better error messages when it fails to initialise the Python runtime support in gdb. Patch by Volker Weissmann. (Github issue :issue:`3489`) * The Pythran ``shape`` attribute is supported. Patch by Serge Guelton. (Github issue :issue:`3307`) Bugs fixed ---------- * The unicode methods ``.upper()``, ``.lower()`` and ``.title()`` were incorrectly optimised for single character input values and only returned the first character if multiple characters should have been returned. They now use the original Python methods again. * Fused argument types were not correctly handled in type annotations and ``cython.locals()``. Patch by David Woods. (Github issues :issue:`3391`, :issue:`3142`) * Diverging from the usual behaviour, ``len(memoryview)``, ``len(char*)`` and ``len(Py_UNICODE*)`` returned an unsigned ``size_t`` value. They now return a signed ``Py_ssize_t``, like other usages of ``len()``. * Nested dict literals in function call kwargs could incorrectly raise an error about duplicate keyword arguments, which are allowed when passing them from dict literals. (Github issue :issue:`2963`) * Item access (subscripting) with integer indices/keys always tried the Sequence protocol before the Mapping protocol, which diverged from Python semantics. It now passes through the Mapping protocol first when supported. (Github issue :issue:`1807`) * Name lookups in class bodies no longer go through an attribute lookup. Patch by Jeroen Demeyer. (Github issue :issue:`3100`) * Broadcast assignments to a multi-dimensional memory view slice could end up in the wrong places when the underlying memory view is known to be contiguous but the slice is not. (Github issue :issue:`2941`) * Pickling unbound methods of Python classes failed. Patch by Pierre Glaser. (Github issue :issue:`2972`) * The ``Py_hash_t`` type failed to accept arbitrary "index" values. (Github issue :issue:`2752`) * The first function line number of functions with decorators pointed to the signature line and not the first decorator line, as in Python. Patch by Felix Kohlgrüber. (Github issue :issue:`2536`) * Constant integer expressions that used a negative exponent were evaluated as integer 0 instead of the expected float value. Patch by Kryštof Pilnáček. (Github issue :issue:`2133`) * The ``cython.declare()`` and ``cython.cast()`` functions could fail in pure mode. Patch by Dmitry Shesterkin. (Github issue :issue:`3244`) * ``__doc__`` was not available inside of the class body during class creation. (Github issue :issue:`1635`) * Setting ``language_level=2`` in a file did not work if ``language_level=3`` was enabled globally before. Patch by Jeroen Demeyer. (Github issue :issue:`2791`) * ``__init__.pyx`` files were not always considered as package indicators. (Github issue :issue:`2665`) * Compiling package ``__init__`` files could fail under Windows due to an undefined export symbol. (Github issue :issue:`2968`) * A C compiler cast warning was resolved. Patch by Michael Buesch. (Github issue :issue:`2775`) * Binding staticmethods of Cython functions were not behaving like Python methods. Patch by Jeroen Demeyer. (Github issue :issue:`3106`, :issue:`3102`) * Memoryviews failed to compile when the ``cache_builtins`` feature was disabled. Patch by David Woods. (Github issue :issue:`3406`) Other changes ------------- * The default language level was changed to ``3str``, i.e. Python 3 semantics, but with ``str`` literals (also in Python 2.7). This is a backwards incompatible change from the previous default of Python 2 semantics. The previous behaviour is available through the directive ``language_level=2``. (Github issue :issue:`2565`) * Cython no longer generates ``__qualname__`` attributes for classes in Python 2.x since they are problematic there and not correctly maintained for subclasses. Patch by Jeroen Demeyer. (Github issue :issue:`2772`) * Source file fingerprinting now uses SHA-1 instead of MD5 since the latter tends to be slower and less widely supported these days. (Github issue :issue:`2790`) * The long deprecated include files ``python_*``, ``stdio``, ``stdlib`` and ``stl`` in ``Cython/Includes/Deprecated/`` were removed. Use the ``libc.*`` and ``cpython.*`` pxd modules instead. Patch by Jeroen Demeyer. (Github issue :issue:`2904`) * The search order for include files was changed. Previously it was ``include_directories``, ``Cython/Includes``, ``sys.path``. Now it is ``include_directories``, ``sys.path``, ``Cython/Includes``. This was done to allow third-party ``*.pxd`` files to override the ones in Cython. Patch by Matti Picus. (Github issue :issue:`2905`) * The command line parser was rewritten and modernised using ``argparse``. Patch by Egor Dranischnikow. (Github issue :issue:`2952`, :issue:`3001`) * Dotted filenames for qualified module names (``pkg.mod.pyx``) are deprecated. Use the normal Python package directory layout instead. (Github issue :issue:`2686`) * Binary Linux wheels now follow the manylinux2010 standard. Patch by Alexey Stepanov. (Github issue :issue:`3355`) * Support for Python 2.6 was removed. .. _`PEP-560`: https://www.python.org/dev/peps/pep-0560 .. _`PEP-570`: https://www.python.org/dev/peps/pep-0570 .. _`PEP-487`: https://www.python.org/dev/peps/pep-0487 .. _`PEP-590`: https://www.python.org/dev/peps/pep-0590 .. _`PEP-3131`: https://www.python.org/dev/peps/pep-3131 .. _`PEP-563`: https://www.python.org/dev/peps/pep-0563 .. _`PEP-479`: https://www.python.org/dev/peps/pep-0479 ``` ### 0.29.36 ``` ==================== Bugs fixed ---------- * Async generators lost their return value in PyPy. (Github issue :issue:`5465`) * The outdated C macro ``_PyGC_FINALIZED()`` is no longer used in Py3.9+. * The deprecated ``Py_OptimizeFlag`` is no longer used in Python 3.9+. (Github issue :issue:`5343`) * Using the global ``__debug__`` variable but not assertions could lead to compile errors. * The broken HTML template support was removed from Tempita. (Github issue :issue:`3309`) ``` ### 0.29.35 ``` ==================== Bugs fixed ---------- * A garbage collection enabled subtype of a non-GC extension type could call into the deallocation function of the super type with GC tracking enabled. This could lead to crashes during deallocation if GC was triggered on the type at the same time. (Github issue :issue:`5432`) * Some C compile failures and crashes in CPython 3.12 were resolved. * ``except + nogil`` was syntactically not allowed. ``except +nogil`` (i.e. defining a C++ exception handling function called ``nogil``) is now disallowed to prevent typos. (Github issue :issue:`5430`) * A C compile failure in PyPy 3.10 was resolved. Patch by Matti Picus. (Github issue :issue:`5408`) * Cython modules now use PEP-489 multi-phase init by default in PyPy 3.9 and later. Original patch by Matti Picus. (Github issue :issue:`5413`) * API header files generated by different Cython versions can now be included in the same C file. (Github issue :issue:`5383`) * Function signatures containing a type like `tuple[()]` could not be printed. Patch by Lisandro Dalcin. (Github issue :issue:`5355`) ``` ### 0.29.34 ``` ==================== Bugs fixed ---------- * A reference leak of the for-loop list/tuple iterable was resolved if the for-loop's ``else:`` branch executes a ``break`` for an outer loop. (Github issue :issue:`5347`) * Some C compile failures in CPython 3.12 were resolved. * Some old usages of the deprecated Python ``imp`` module were replaced with ``importlib``. Patch by Matúš Valo. (Github issue :issue:`5300`) * Some issues with ``depfile`` generation were resolved. Patches by Eli Schwartz. (Github issues :issue:`5279`, :issue:`5291`) ``` ### 0.29.33 ``` ==================== Features added -------------- * The ``cythonize`` and ``cython`` commands have a new option ``-M`` / ``--depfile`` to generate ``.dep`` dependency files for the compilation unit. This can be used by external build tools to track these dependencies. The ``cythonize`` option was already available in Cython :ref:`0.29.27`. Patches by Evgeni Burovski and Eli Schwartz. (Github issue :issue:`1214`) Bugs fixed ---------- * ``const`` fused types could not be used with memory views. Patch by Thomas Vincent. (Github issue :issue:`1772`) * ``wstr`` usage was removed in Python 3.12 and later (PEP-623). (Github issue :issue:`5145`) * A type check assertion for Cython functions failed in debug Python builds. (Github issue :issue:`5031`) * Fixed various compiler warnings. Patches by Lisandro Dalcin et al. (Github issues :issue:`4948`, :issue:`5086`) * Fixed error when calculating complex powers of negative numbers. (Github issue :issue:`5014`) * Corrected a small mis-formatting of exception messages on Python 2. (Github issue :issue:`5018`) * The ``PyUnicode_AsUTF8AndSize()`` C-API function was missing from the CPython declarations. (Github issue :issue:`5163`) * A performance problem in the compiler was resolved when nesting conditional expressions. (Github issue :issue:`5197`) * Test suite problems with recent NumPy and CPython versions were resolved. (Github issues :issue:`5183`, :issue:`5190`) Other changes ------------- * The undocumented, untested and apparently useless syntax ``from somemodule cimport class/struct/union somename`` was deprecated in anticipation of its removal in Cython 3. The type modifier is not needed here and a plain ``cimport`` of the name will do. (Github issue :issue:`4905`) * Properly disable generation of descriptor docstrings on PyPy since they cause crashes. It was previously disabled, but only accidentally via a typo. Patch by Matti Picus. (Github issue :issue:`5083`) * The ``cpow`` directive of Cython 3.0 is available as a no-op. (Github issue :issue:`5016`) ``` ### 0.29.32 ``` ==================== Bugs fixed ---------- * Revert "Using memoryview typed arguments in inner functions is now rejected as unsupported." Patch by David Woods. (Github issue :issue:`4798`) * ``from module import *`` failed in 0.29.31 when using memoryviews. Patch by David Woods. (Github issue :issue:`4927`) ``` ### 0.29.31 ``` ==================== Features added -------------- * A new argument ``--module-name`` was added to the ``cython`` command to provide the (one) exact target module name from the command line. Patch by Matthew Brett and h-vetinari. (Github issue :issue:`4906`) * A new keyword ``noexcept`` was added for forward compatibility with Cython 3. Patch by David Woods. (Github issue :issue:`4903`) Bugs fixed ---------- * Use ``importlib.util.find_spec()`` instead of the deprecated ``importlib.find_loader()`` function when setting up the package path at import-time. Patch by Matti Picus. (Github issue :issue:`4764`) * Require the C compiler to support the two-arg form of ``va_start`` on Python 3.10 and higher. Patch by Thomas Caswell. (Github issue :issue:`4820`) * Make ``fused_type`` subscriptable in Shadow.py. Patch by Pfebrer. (Github issue :issue:`4842`) * Fix the incorrect code generation of the target type in ``bytearray`` loops. Patch by Kenrick Everett. (Github issue :issue:`4108`) * Atomic refcounts for memoryviews were not used on some GCC versions by accident. Patch by Sam Gross. (Github issue :issue:`4915`) * Silence some GCC ``-Wconversion`` warnings in C utility code. Patch by Lisandro Dalcin. (Github issue :issue:`4854`) * Tuple multiplication was ignored in expressions such as ``[*(1,) * 2]``. Patch by David Woods. (Github issue :issue:`4864`) * Calling ``append`` methods on extension types could fail to find the method in some cases. Patch by David Woods. (Github issue :issue:`4828`) * Ensure that object buffers (e.g. ``ndarray[object, ndim=1]``) containing ``NULL`` pointers are safe to use, returning ``None`` instead of the ``NULL`` pointer. Patch by Sebastian Berg. (Github issue :issue:`4859`) * Using memoryview typed arguments in inner functions is now rejected as unsupported. Patch by David Woods. (Github issue :issue:`4798`) * Compilation could fail on systems (e.g. FIPS) that block MD5 checksums at runtime. (Github issue :issue:`4909`) * Experimental adaptations for the CPython "nogil" fork was added. Note that there is no official support for this in Cython 0.x. Patch by Sam Gross. (Github issue :issue:`4912`) ``` ### 0.29.30 ``` ==================== Bugs fixed ---------- * The GIL handling changes in 0.29.29 introduced a regression where objects could be deallocated without holding the GIL. (Github issue :issue:`4796`) ``` ### 0.29.29 ``` ==================== Features added -------------- * Avoid acquiring the GIL at the end of nogil functions. This change was backported in order to avoid generating wrong C code that would trigger C compiler warnings with tracing support enabled. Backport by Oleksandr Pavlyk. (Github issue :issue:`4637`) Bugs fixed ---------- * Function definitions in ``finally:`` clauses were not correctly generated. Patch by David Woods. (Github issue :issue:`4651`) * A case where C-API functions could be called with a live exception set was fixed. Patch by Jakub Kulík. (Github issue :issue:`4722`) * Pickles can now be exchanged again with those generated from Cython 3.0 modules. (Github issue :issue:`4680`) * Cython now correctly generates Python methods for both the provided regular and reversed special numeric methods of extension types. Patch by David Woods. (Github issue :issue:`4750`) * Calling unbound extension type methods without arguments could raise an ``IndexError`` instead of a ``TypeError``. Patch by David Woods. (Github issue :issue:`4779`) * Calling unbound ``.__contains__()`` super class methods on some builtin base types could trigger an infinite recursion. Patch by David Woods. (Github issue :issue:`4785`) * The C union type in pure Python mode mishandled some field names. Patch by Jordan Brière. (Github issue :issue:`4727`) * Allow users to overwrite the C macro ``_USE_MATH_DEFINES``. Patch by Yuriy Chernyshov. (Github issue :issue:`4690`) * Improved compatibility with CPython 3.10/11. Patches by Thomas Caswell, David Woods. (Github issues :issue:`4609`, :issue:`4667`, :issue:`4721`, :issue:`4730`, :issue:`4777`) * Docstrings of descriptors are now provided in PyPy 7.3.9. Patch by Matti Picus. (Github issue :issue:`4701`) ``` ### 0.29.28 ``` ==================== Bugs fixed ---------- * Due to backwards incompatible changes in CPython 3.11a4, the feature flags ``CYTHON_FAST_THREAD_STATE`` and ``CYTHON_USE_EXC_INFO_STACK`` are now disabled in Python 3.11 and later. They are enabled again in Cython 3.0. Patch by David Woods. (Github issue :issue:`4610`) * A C compiler warning in older PyPy versions was resolved. Patch by Matti Picus. (Github issue :issue:`4236`) ``` ### 0.29.27 ``` ==================== Features added -------------- * The ``cythonize`` command has a new option ``-M`` to generate ``.dep`` dependency files for the compilation unit. This can be used by external build tools to track these dependencies. Patch by Evgeni Burovski. (Github issue :issue:`1214`) Bugs fixed ---------- * Compilation failures on PyPy were resolved. Patches by Matti Picus. (Github issues :issue:`4509`, :issue:`4517`) * Calls to ``range()`` with more than three arguments did not fail. Original patch by Max Bachmann. (Github issue :issue:`4550`) * Some C compiler warnings about missing type struct initialisers in Py3.10 were resolved. * Cython no longer warns about using OpenMP 3.0 features since they are now considered generally available. ``` ### 0.29.26 ``` ==================== Bugs fixed ---------- * An incompatibility with CPython 3.11.0a3 was resolved. (Github issue :issue:`4499`) * The ``in`` operator failed on literal lists with starred expressions. Patch by Arvind Natarajan. (Github issue :issue:`3938`) * A C compiler warning in PyPy about a missing struct field initialisation was resolved. ``` ### 0.29.25 ``` ==================== Bugs fixed ---------- * Several incompatibilities with CPython 3.11 were resolved. Patches by David Woods, Victor Stinner, Thomas Caswell. (Github issues :issue:`4411`, :issue:`4414`, :issue:`4415`, :issue:`4416`, :issue:`4420`, :issue:`4428`, :issue:`4473`, :issue:`4479`, :issue:`4480`) * Some C compiler warnings were resolved. Patches by Lisandro Dalcin and others. (Github issue :issue:`4439`) * C++ ``std::move()`` should only be used automatically in MSVC versions that support it. Patch by Max Bachmann. (Github issue :issue:`4191`) * The ``Py_hash_t`` type failed to accept arbitrary "index" values. (Github issue :issue:`2752`) * Avoid copying unaligned 16-bit values since some platforms require them to be aligned. Use memcpy() instead to let the C compiler decide how to do it. (Github issue :issue:`4343`) * Cython crashed on invalid truthiness tests on C++ types without ``operator bool``. Patch by David Woods. (Github issue :issue:`4348`) * The declaration of ``PyUnicode_CompareWithASCIIString()`` in ``cpython.unicode`` was incorrect. Patch by Max Bachmann. (Github issue :issue:`4344`) ``` ### 0.29.24 ``` ==================== Bugs fixed ---------- * Inline functions in pxd files that used memory views could lead to invalid C code if the module that imported from them does not use memory views. Patch by David Woods. (Github issue :issue:`1415`) * Several declarations in ``libcpp.string`` were added and corrected. Patch by Janek Bevendorff. (Github issue :issue:`4268`) * Pickling unbound Cython compiled methods failed. Patch by Pierre Glaser. (Github issue :issue:`2972`) * The tracing code was adapted to work with CPython 3.10. * The optimised ``in`` operator failed on unicode strings in Py3.9 and later that were constructed from an external ``wchar_t`` source. Also, related C compiler warnings about deprecated C-API usage were resolved. (Github issue :issue:`3925`) * Some compiler crashes were resolved. Patch by David Woods. (Github issues :issue:`4214`, :issue:`2811`) * An incorrect warning about 'unused' generator expressions was removed. (GIthub issue :issue:`1699`) * The attributes ``gen.gi_frame`` and ``coro.cr_frame`` of Cython compiled generators and coroutines now return an actual frame object for introspection, instead of ``None``. (Github issue :issue:`2306`) ```Links
- PyPI: https://pypi.org/project/cython - Changelog: https://data.safetycli.com/changelogs/cython/ - Homepage: https://cython.org/Update numpy from 1.21.0 to 1.26.0.
Changelog
### 1.26.0 ``` The NumPy 1.26.0 release is a continuation of the 1.25.x release cycle with the addition of Python 3.12.0 support. Python 3.12 dropped distutils, consequently supporting it required finding a replacement for the setup.py/distutils based build system NumPy was using. We have chosen to use the Meson build system instead, and this is the first NumPy release supporting it. This is also the first release that supports Cython 3.0 in addition to retaining 0.29.X compatibility. Supporting those two upgrades was a large project, over 100 files have been touched in this release. The changelog doesn\'t capture the full extent of the work, special thanks to Ralf Gommers, Sayed Adel, Stéfan van der Walt, and Matti Picus who did much of the work in the main development branch. The highlights of this release are: - Python 3.12.0 support. - Cython 3.0.0 compatibility. - Use of the Meson build system - Updated SIMD support The Python versions supported in this release are 3.9-3.12. Build system changes In this release, NumPy has switched to Meson as the build system and meson-python as the build backend. Installing NumPy or building a wheel can be done with standard tools like `pip` and `pypa/build`. The following are supported: - Regular installs: `pip install numpy` or (in a cloned repo) `pip install .` - Building a wheel: `python -m build` (preferred), or `pip wheel .` - Editable installs: `pip install -e . --no-build-isolation` - Development builds through the custom CLI implemented with [spin](https://github.com/scientific-python/spin): `spin build`. All the regular `pip` and `pypa/build` flags (e.g., `--no-build-isolation`) should work as expected. NumPy-specific build customization Many of the NumPy-specific ways of customizing builds have changed. The `NPY_*` environment variables which control BLAS/LAPACK, SIMD, threading, and other such options are no longer supported, nor is a `site.cfg` file to select BLAS and LAPACK. Instead, there are command-line flags that can be passed to the build via `pip`/`build`\'s config-settings interface. These flags are all listed in the `meson_options.txt` file in the root of the repo. Detailed documented will be available before the final 1.26.0 release; for now please see [the SciPy \"building from source\"docs](http://scipy.github.io/devdocs/building/index.html) since most build customization works in an almost identical way in SciPy as it does in NumPy. Build dependencies While the runtime dependencies of NumPy have not changed, the build dependencies have. Because we temporarily vendor Meson and meson-python, there are several new dependencies - please see the `[build-system]` section of `pyproject.toml` for details. Troubleshooting This build system change is quite large. In case of unexpected issues, it is still possible to use a `setup.py`-based build as a temporary workaround (on Python 3.9-3.11, not 3.12), by copying `pyproject.toml.setuppy` to `pyproject.toml`. However, please open an issue with details on the NumPy issue tracker. We aim to phase out `setup.py` builds as soon as possible, and therefore would like to see all potential blockers surfaced early on in the 1.26.0 release cycle. Contributors A total of 11 people contributed to this release. People with a \"+\" by their names contributed a patch for the first time. - Bas van Beek - Charles Harris - Matti Picus - Melissa Weber Mendonça - Ralf Gommers - Sayed Adel - Sebastian Berg - Stefan van der Walt - Tyler Reddy - Warren Weckesser Pull requests merged A total of 18 pull requests were merged for this release. - [24305](https://github.com/numpy/numpy/pull/24305): MAINT: Prepare 1.26.x branch for development - [24308](https://github.com/numpy/numpy/pull/24308): MAINT: Massive update of files from main for numpy 1.26 - [24322](https://github.com/numpy/numpy/pull/24322): CI: fix wheel builds on the 1.26.x branch - [24326](https://github.com/numpy/numpy/pull/24326): BLD: update openblas to newer version - [24327](https://github.com/numpy/numpy/pull/24327): TYP: Trim down the `_NestedSequence.__getitem__` signature - [24328](https://github.com/numpy/numpy/pull/24328): BUG: fix choose refcount leak - [24337](https://github.com/numpy/numpy/pull/24337): TST: fix running the test suite in builds without BLAS/LAPACK - [24338](https://github.com/numpy/numpy/pull/24338): BUG: random: Fix generation of nan by dirichlet. - [24340](https://github.com/numpy/numpy/pull/24340): MAINT: Dependabot updates from main - [24342](https://github.com/numpy/numpy/pull/24342): MAINT: Add back NPY_RUN_MYPY_IN_TESTSUITE=1 - [24353](https://github.com/numpy/numpy/pull/24353): MAINT: Update `extbuild.py` from main. - [24356](https://github.com/numpy/numpy/pull/24356): TST: fix distutils tests for deprecations in recent setuptools\... - [24375](https://github.com/numpy/numpy/pull/24375): MAINT: Update cibuildwheel to version 2.15.0 - [24381](https://github.com/numpy/numpy/pull/24381): MAINT: Fix codespaces setup.sh script - [24403](https://github.com/numpy/numpy/pull/24403): ENH: Vendor meson for multi-target build support - [24404](https://github.com/numpy/numpy/pull/24404): BLD: vendor meson-python to make the Windows builds with SIMD\... - [24405](https://github.com/numpy/numpy/pull/24405): BLD, SIMD: The meson CPU dispatcher implementation - [24406](https://github.com/numpy/numpy/pull/24406): MAINT: Remove versioneer Checksums MD5 875d02016f215f8ce2513453393f0089 numpy-1.26.0b1-cp310-cp310-macosx_10_9_x86_64.whl 7df1856729096fbbbbb82b58c1695810 numpy-1.26.0b1-cp310-cp310-macosx_11_0_arm64.whl 928037510906572ecadb154b8089853f numpy-1.26.0b1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 93fb7c8a0e7af169c9bf42d8bfa17c2c numpy-1.26.0b1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl a865069d224bf3830671de8e1f374344 numpy-1.26.0b1-cp310-cp310-musllinux_1_1_x86_64.whl c53d1d8cb653fc08bd3f931e4c965430 numpy-1.26.0b1-cp310-cp310-win_amd64.whl c7e212fbb7e64231747c6c8aac0f8678 numpy-1.26.0b1-cp311-cp311-macosx_10_9_x86_64.whl f2df03cdaee283c1f7486d2f66e497dd numpy-1.26.0b1-cp311-cp311-macosx_11_0_arm64.whl 8af359b78166474b7a621a482f3073fd numpy-1.26.0b1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 4eec2761b87ccd43028697410ed8909d numpy-1.26.0b1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl d9f0b03e455e9e99bdbe69e2e729c197 numpy-1.26.0b1-cp311-cp311-musllinux_1_1_x86_64.whl dd1c5e4492988e2b3641602b295e7de3 numpy-1.26.0b1-cp311-cp311-win_amd64.whl 88e35ab901c8315ccdb172abc0d2350c numpy-1.26.0b1-cp312-cp312-macosx_10_9_x86_64.whl ad426a4203844eaa8de6b519e94dc2c0 numpy-1.26.0b1-cp312-cp312-macosx_11_0_arm64.whl 2e0e7a297de88cfe930c205b1ab8fdb0 numpy-1.26.0b1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 5d4ea12ab53e506a9887ab8a587f68f6 numpy-1.26.0b1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 1b3c3a80d2fb928b753545ded60312f3 numpy-1.26.0b1-cp312-cp312-musllinux_1_1_x86_64.whl e27356122ee42d84f6965ac802792bc3 numpy-1.26.0b1-cp312-cp312-win_amd64.whl 1cc0d71476548fa30c27a542e3c3f9bf numpy-1.26.0b1-cp39-cp39-macosx_10_9_x86_64.whl ec4882af449c1754cc7af84a82305aed numpy-1.26.0b1-cp39-cp39-macosx_11_0_arm64.whl 142493180019de1ec22c4510bf650366 numpy-1.26.0b1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 4a0c76b75fa36c54c0d2a9107c838910 numpy-1.26.0b1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl cb4d1c3b95e3a2662f94475b4b525da0 numpy-1.26.0b1-cp39-cp39-musllinux_1_1_x86_64.whl afa3f60467530e022eb1a584a8c48f84 numpy-1.26.0b1-cp39-cp39-win_amd64.whl 35c77e2f2b25225ae62354f91c26a693 numpy-1.26.0b1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl 1986181def7286ae37ced5df7c0ca312 numpy-1.26.0b1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl e013942d0d71cb6a680afa89c9aa5259 numpy-1.26.0b1-pp39-pypy39_pp73-win_amd64.whl 3268568cee06327fa34175aa3805829d numpy-1.26.0b1.tar.gz SHA256 9a74361204dc604ba53916ed55aef0ca73e7aa3d0b7e47e1c28aece8c2ad4f59 numpy-1.26.0b1-cp310-cp310-macosx_10_9_x86_64.whl ab9e86bb7c9d3e009945b24a92318ff5d8c245e0e0aaaa765825c4561c292d53 numpy-1.26.0b1-cp310-cp310-macosx_11_0_arm64.whl b0b73599c80b29dfa7f812cb2e8738ce3f058b413e9f2f478e3cc4e038bb8f8e numpy-1.26.0b1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 4a6d4c99396c57e02b0181f01ba42b482f327774057e51fb7fb390a130c95cff numpy-1.26.0b1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 02af7482f34aeb9658ece615c922942f1a3908c449a9a6cd9f33fa233ce486d4 numpy-1.26.0b1-cp310-cp310-musllinux_1_1_x86_64.whl 5a8f04e957259ef93a1e4a29da0b64d49ee842af456257bbb7253925cfe2f7bd numpy-1.26.0b1-cp310-cp310-win_amd64.whl f71e10402e705aaa5908464e489d38e6583c48e40a4721f83195772178c7da9f numpy-1.26.0b1-cp311-cp311-macosx_10_9_x86_64.whl 94d5572fea8dca0fa929da9d17fa49e525ceee1e59b04372dfa5bd8a5f688f5f numpy-1.26.0b1-cp311-cp311-macosx_11_0_arm64.whl 1f88e6fe42b0d6418e53332e525b299762dbd9e33055d2e0398e6298da5b0cc9 numpy-1.26.0b1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl c466707e5ce5a44caadb85fd672a5ce0bfc060012df465771e7b10506e1e5dad numpy-1.26.0b1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 16313a28cf703ae722b3ac139809360ffef81a45e758f196e538be3bcbee85c9 numpy-1.26.0b1-cp311-cp311-musllinux_1_1_x86_64.whl ea85e8e297af49d30830177ecb0c54d1cbca051e4306161f3ceabfa66560b17c numpy-1.26.0b1-cp311-cp311-win_amd64.whl 321a063fabc302931029f831f284cf43c301fdeead1b15df2f8aa87673294d4d numpy-1.26.0b1-cp312-cp312-macosx_10_9_x86_64.whl dc36a9e8df48b72dad668d6f4036ed477d8bc2cb1f7a23b688e8e8057afdfee3 numpy-1.26.0b1-cp312-cp312-macosx_11_0_arm64.whl 3c6c5804671fa1697e3d0cbc608a65c55794fb6682f4e04e9f6d65d0ddfc47c7 numpy-1.26.0b1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 3aa806da215e9c10ba89e9037a69c7a56367e059615679ef1a5cf937eedfbf61 numpy-1.26.0b1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl b66135c02ee55f9113dce3c8c5130b5feaead8767cd2c7ad36547a3d5e264230 numpy-1.26.0b1-cp312-cp312-musllinux_1_1_x86_64.whl 87f2799f475e9e7aee69254dfe357975b163d409550d4641a0bca4cb4f64b725 numpy-1.26.0b1-cp312-cp312-win_amd64.whl 2b258f67ca4a8245c74470da66a87684ddb3f06dde98760efc7ca792a44ee254 numpy-1.26.0b1-cp39-cp39-macosx_10_9_x86_64.whl a31d9109ffed9fc5566e73346a076fffbc7db00e626579ae4d5dfec933b29bfc numpy-1.26.0b1-cp39-cp39-macosx_11_0_arm64.whl 18e29ab806ec5e0b05df900d44b3b257a5901c32fc3ddaeb818c520cd9279b4e numpy-1.26.0b1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 216b47882877ea5272f279c08bf7e42935728f35c6db2e4843b37db7b29ce016 numpy-1.26.0b1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl eea337d6d5ab2b6eb657b3f18e8b57a280f16fb5f94df484d9c1a8d3450d9ae9 numpy-1.26.0b1-cp39-cp39-musllinux_1_1_x86_64.whl db698c9008217c54a8005ea58bd5836241d7b519c8bb16a698a1b4ec4ca296a8 numpy-1.26.0b1-cp39-cp39-win_amd64.whl f250b3099649137f1021f8f95a9404273bcb7539f0bef6d6cf2c91260285edc4 numpy-1.26.0b1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl 22584a41b1be30543dd8c030affc90d8cb7ec19a56fda7f27fc33f64f8b0fbaa numpy-1.26.0b1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 8aefe8ab1228e00146e5ae88290c7fdb8221aef45b357aed7f3dff6ac3b3b25a numpy-1.26.0b1-pp39-pypy39_pp73-win_amd64.whl c67eea90827e1e9aa220a3fc380ce8776428deba8ac9e7c931ce7b69e8dce115 numpy-1.26.0b1.tar.gz ``` ### 1.25.2 ``` discovered after the 1.25.1 release. This is the last planned release in the 1.25.x series, the next release will be 1.26.0, which will use the meson build system and support Python 3.12. The Python versions supported by this release are 3.9-3.11. Contributors A total of 13 people contributed to this release. People with a \"+\" by their names contributed a patch for the first time. - Aaron Meurer - Andrew Nelson - Charles Harris - Kevin Sheppard - Matti Picus - Nathan Goldbaum - Peter Hawkins - Ralf Gommers - Randy Eckenrode + - Sam James + - Sebastian Berg - Tyler Reddy - dependabot\[bot\] Pull requests merged A total of 19 pull requests were merged for this release. - [24148](https://github.com/numpy/numpy/pull/24148): MAINT: prepare 1.25.x for further development - [24174](https://github.com/numpy/numpy/pull/24174): ENH: Improve clang-cl compliance - [24179](https://github.com/numpy/numpy/pull/24179): MAINT: Upgrade various build dependencies. - [24182](https://github.com/numpy/numpy/pull/24182): BLD: use `-ftrapping-math` with Clang on macOS - [24183](https://github.com/numpy/numpy/pull/24183): BUG: properly handle negative indexes in ufunc_at fast path - [24184](https://github.com/numpy/numpy/pull/24184): BUG: PyObject_IsTrue and PyObject_Not error handling in setflags - [24185](https://github.com/numpy/numpy/pull/24185): BUG: histogram small range robust - [24186](https://github.com/numpy/numpy/pull/24186): MAINT: Update meson.build files from main branch - [24234](https://github.com/numpy/numpy/pull/24234): MAINT: exclude min, max and round from `np.__all__` - [24241](https://github.com/numpy/numpy/pull/24241): MAINT: Dependabot updates - [24242](https://github.com/numpy/numpy/pull/24242): BUG: Fix the signature for np.array_api.take - [24243](https://github.com/numpy/numpy/pull/24243): BLD: update OpenBLAS to an intermeidate commit - [24244](https://github.com/numpy/numpy/pull/24244): BUG: Fix reference count leak in str(scalar). - [24245](https://github.com/numpy/numpy/pull/24245): BUG: fix invalid function pointer conversion error - [24255](https://github.com/numpy/numpy/pull/24255): BUG: Factor out slow `getenv` call used for memory policy warning - [24292](https://github.com/numpy/numpy/pull/24292): CI: correct URL in cirrus.star - [24293](https://github.com/numpy/numpy/pull/24293): BUG: Fix C types in scalartypes - [24294](https://github.com/numpy/numpy/pull/24294): BUG: do not modify the input to ufunc_at - [24295](https://github.com/numpy/numpy/pull/24295): BUG: Further fixes to indexing loop and added tests Checksums MD5 33518ccb4da8ee11f1dee4b9fef1e468 numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl b5cb0c3b33ef6d93ec2888f25b065636 numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl ae027dd38bd73f09c07220b2f516f148 numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 88cf69dc3c0d293492c4c7e75dccf3d8 numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3e4e3ad02375ba71ae2cd05ccd97aba4 numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl f52bb644682deb26c35ddec77198b65c numpy-1.25.2-cp310-cp310-win32.whl 4944cf36652be7560a6bcd0d5d56e8ea numpy-1.25.2-cp310-cp310-win_amd64.whl 5a56e639defebb7b871c8c5613960ca3 numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl 3988b96944e7218e629255214f2598bd numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl 302d65015ddd908a862fb3761a2a0363 numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl e54a2e23272d1c5e5b278bd7e304c948 numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 961d390e8ccaf11b1b0d6200d2c8b1c0 numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl e113865b90f97079d344100c41226fbe numpy-1.25.2-cp311-cp311-win32.whl 834a147aa1adaec97655018b882232bd numpy-1.25.2-cp311-cp311-win_amd64.whl fb55f93a8033bde854c8a2b994045686 numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl d96e754217d29bf045e082b695667e62 numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl beab540edebecbb257e482dd9e498b44 numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl e0d608c9e09cd8feba48567586cfefc0 numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl fe1fc32c8bb005ca04b8f10ebdcff6dd numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl 41df58a9935c8ed869c92307c95f02eb numpy-1.25.2-cp39-cp39-win32.whl a4371272c64493beb8b04ac46c4c1521 numpy-1.25.2-cp39-cp39-win_amd64.whl bbe051cbd5f8661dd054277f0b0f0c3d numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl 3f68e6b4af6922989dc0133e37db34ee numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl fc89421b79e8800240999d3a1d06a4d2 numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl cee1996a80032d47bdf1d9d17249c34e numpy-1.25.2.tar.gz SHA256 db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3 numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl 90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187 numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357 numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9 numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl 7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044 numpy-1.25.2-cp310-cp310-win32.whl 834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545 numpy-1.25.2-cp310-cp310-win_amd64.whl c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418 numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl 0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2 numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364 numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl 5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d numpy-1.25.2-cp311-cp311-win32.whl 5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4 numpy-1.25.2-cp311-cp311-win_amd64.whl b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3 numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926 numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl 3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295 numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl 2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01 numpy-1.25.2-cp39-cp39-win32.whl 76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380 numpy-1.25.2-cp39-cp39-win_amd64.whl 1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55 numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl 4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901 numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760 numpy-1.25.2.tar.gz ``` ### 1.25.1 ``` discovered after the 1.25.0 release. The Python versions supported by this release are 3.9-3.11. Contributors A total of 10 people contributed to this release. People with a \"+\" by their names contributed a patch for the first time. - Andrew Nelson - Charles Harris - Developer-Ecosystem-Engineering - Hood Chatham - Nathan Goldbaum - Rohit Goswami - Sebastian Berg - Tim Paine + - dependabot\[bot\] - matoro + Pull requests merged A total of 14 pull requests were merged for this release. - [23968](https://github.com/numpy/numpy/pull/23968): MAINT: prepare 1.25.x for further development - [24036](https://github.com/numpy/numpy/pull/24036): BLD: Port long double identification to C for meson - [24037](https://github.com/numpy/numpy/pull/24037): BUG: Fix reduction `return NULL` to be `goto fail` - [24038](https://github.com/numpy/numpy/pull/24038): BUG: Avoid undefined behavior in array.astype() - [24039](https://github.com/numpy/numpy/pull/24039): BUG: Ensure `__array_ufunc__` works without any kwargs passed - [24117](https://github.com/numpy/numpy/pull/24117): MAINT: Pin urllib3 to avoid anaconda-client bug. - [24118](https://github.com/numpy/numpy/pull/24118): TST: Pin pydantic\<2 in Pyodide workflow - [24119](https://github.com/numpy/numpy/pull/24119): MAINT: Bump pypa/cibuildwheel from 2.13.0 to 2.13.1 - [24120](https://github.com/numpy/numpy/pull/24120): MAINT: Bump actions/checkout from 3.5.2 to 3.5.3 - [24122](https://github.com/numpy/numpy/pull/24122): BUG: Multiply or Divides using SIMD without a full vector can\... - [24127](https://github.com/numpy/numpy/pull/24127): MAINT: testing for IS_MUSL closes #24074 - [24128](https://github.com/numpy/numpy/pull/24128): BUG: Only replace dtype temporarily if dimensions changed - [24129](https://github.com/numpy/numpy/pull/24129): MAINT: Bump actions/setup-node from 3.6.0 to 3.7.0 - [24134](https://github.com/numpy/numpy/pull/24134): BUG: Fix private procedures in f2py modules Checksums MD5 d09d98643db31e892fad11b8c2b7af22 numpy-1.25.1-cp310-cp310-macosx_10_9_x86_64.whl d5b8d3b0424e2af41018f35a087c4500 numpy-1.25.1-cp310-cp310-macosx_11_0_arm64.whl 1007893b1a8bfd97d445a63d29d33642 numpy-1.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 6a62d7a6cee310b41dc872aa7f3d7e8b numpy-1.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl e81f6264aecfa2269c5d29d10c362cbc numpy-1.25.1-cp310-cp310-musllinux_1_1_x86_64.whl ab8ecd125ca86eac0b3ada67ab66dad6 numpy-1.25.1-cp310-cp310-win32.whl 5466bebeaafcc3d6e1b98858d77ff945 numpy-1.25.1-cp310-cp310-win_amd64.whl f31b059256ae09b7b83df63f52d8371e numpy-1.25.1-cp311-cp311-macosx_10_9_x86_64.whl 099f74d654888869704469c321af845d numpy-1.25.1-cp311-cp311-macosx_11_0_arm64.whl 20d04dccd2bfca5cfd88780d1dc9a3f8 numpy-1.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 61dfd7c00638e83a7af59b86615ee9d2 numpy-1.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 4eb459c3d9479c4da2fdf20e4c4085d0 numpy-1.25.1-cp311-cp311-musllinux_1_1_x86_64.whl 5e84e797866c68ba65fa89a4bf4ba8ce numpy-1.25.1-cp311-cp311-win32.whl 87bb1633b2e8029dbfa1e59f7ab22625 numpy-1.25.1-cp311-cp311-win_amd64.whl 3fcf2eb5970d848a26abdff1b10228e7 numpy-1.25.1-cp39-cp39-macosx_10_9_x86_64.whl d71e1cbe18fe05944219e5a5be1796bf numpy-1.25.1-cp39-cp39-macosx_11_0_arm64.whl 5b457e10834c991bca84aae7eaa49f34 numpy-1.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 5cbb4c2f2892fafdf6f34fcb37c9e743 numpy-1.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 7d9d1ae23cf5420652088bfe8e048d89 numpy-1.25.1-cp39-cp39-musllinux_1_1_x86_64.whl 7e5bed491b85f0d7c718d6809f9b3ed2 numpy-1.25.1-cp39-cp39-win32.whl 838e97b751bebadf47e2196b2c88ffa2 numpy-1.25.1-cp39-cp39-win_amd64.whl 9ba95d8d6004d9659d7728fe93f67be9 numpy-1.25.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl fbccb20254a2dc85bdec549a03b8eb56 numpy-1.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 95e36689e6dd078caf11e7e2a2d5f5f1 numpy-1.25.1-pp39-pypy39_pp73-win_amd64.whl 768d0ebf15e2242f4c7ca7565bb5dd3e numpy-1.25.1.tar.gz SHA256 77d339465dff3eb33c701430bcb9c325b60354698340229e1dff97745e6b3efa numpy-1.25.1-cp310-cp310-macosx_10_9_x86_64.whl d736b75c3f2cb96843a5c7f8d8ccc414768d34b0a75f466c05f3a739b406f10b numpy-1.25.1-cp310-cp310-macosx_11_0_arm64.whl 4a90725800caeaa160732d6b31f3f843ebd45d6b5f3eec9e8cc287e30f2805bf numpy-1.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 6c6c9261d21e617c6dc5eacba35cb68ec36bb72adcff0dee63f8fbc899362588 numpy-1.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 0def91f8af6ec4bb94c370e38c575855bf1d0be8a8fbfba42ef9c073faf2cf19 numpy-1.25.1-cp310-cp310-musllinux_1_1_x86_64.whl fd67b306320dcadea700a8f79b9e671e607f8696e98ec255915c0c6d6b818503 numpy-1.25.1-cp310-cp310-win32.whl c1516db588987450b85595586605742879e50dcce923e8973f79529651545b57 numpy-1.25.1-cp310-cp310-win_amd64.whl 6b82655dd8efeea69dbf85d00fca40013d7f503212bc5259056244961268b66e numpy-1.25.1-cp311-cp311-macosx_10_9_x86_64.whl e8f6049c4878cb16960fbbfb22105e49d13d752d4d8371b55110941fb3b17800 numpy-1.25.1-cp311-cp311-macosx_11_0_arm64.whl 41a56b70e8139884eccb2f733c2f7378af06c82304959e174f8e7370af112e09 numpy-1.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl d5154b1a25ec796b1aee12ac1b22f414f94752c5f94832f14d8d6c9ac40bcca6 numpy-1.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 38eb6548bb91c421261b4805dc44def9ca1a6eef6444ce35ad1669c0f1a3fc5d numpy-1.25.1-cp311-cp311-musllinux_1_1_x86_64.whl 791f409064d0a69dd20579345d852c59822c6aa087f23b07b1b4e28ff5880fcb numpy-1.25.1-cp311-cp311-win32.whl c40571fe966393b212689aa17e32ed905924120737194b5d5c1b20b9ed0fb171 numpy-1.25.1-cp311-cp311-win_amd64.whl 3d7abcdd85aea3e6cdddb59af2350c7ab1ed764397f8eec97a038ad244d2d105 numpy-1.25.1-cp39-cp39-macosx_10_9_x86_64.whl 1a180429394f81c7933634ae49b37b472d343cccb5bb0c4a575ac8bbc433722f numpy-1.25.1-cp39-cp39-macosx_11_0_arm64.whl d412c1697c3853c6fc3cb9751b4915859c7afe6a277c2bf00acf287d56c4e625 numpy-1.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 20e1266411120a4f16fad8efa8e0454d21d00b8c7cee5b5ccad7565d95eb42dd numpy-1.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl f76aebc3358ade9eacf9bc2bb8ae589863a4f911611694103af05346637df1b7 numpy-1.25.1-cp39-cp39-musllinux_1_1_x86_64.whl 247d3ffdd7775bdf191f848be8d49100495114c82c2bd134e8d5d075fb386a1c numpy-1.25.1-cp39-cp39-win32.whl 1d5d3c68e443c90b38fdf8ef40e60e2538a27548b39b12b73132456847f4b631 numpy-1.25.1-cp39-cp39-win_amd64.whl 35a9527c977b924042170a0887de727cd84ff179e478481404c5dc66b4170009 numpy-1.25.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl 0d3fe3dd0506a28493d82dc3cf254be8cd0d26f4008a417385cbf1ae95b54004 numpy-1.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 012097b5b0d00a11070e8f2e261128c44157a8689f7dedcf35576e525893f4fe numpy-1.25.1-pp39-pypy39_pp73-win_amd64.whl 9a3a9f3a61480cc086117b426a8bd86869c213fc4072e606f01c4e4b66eb92bf numpy-1.25.1.tar.gz ``` ### 1.25.0 ``` The NumPy 1.25.0 release continues the ongoing work to improve the handling and promotion of dtypes, increase the execution speed, and clarify the documentation. There has also been work to prepare for the future NumPy 2.0.0 release, resulting in a large number of new and expired deprecation. Highlights are: - Support for MUSL, there are now MUSL wheels. - Support the Fujitsu C/C++ compiler. - Object arrays are now supported in einsum - Support for inplace matrix multiplication (`=`). We will be releasing a NumPy 1.26 when Python 3.12 comes out. That is needed because distutils has been dropped by Python 3.12 and we will be switching to using meson for future builds. The next mainline release will be NumPy 2.0.0. We plan that the 2.0 series will still support downstream projects built against earlier versions of NumPy. The Python versions supported in this release are 3.9-3.11. Deprecations - `np.core.MachAr` is deprecated. It is private API. In names defined in `np.core` should generally be considered private. ([gh-22638](https://github.com/numpy/numpy/pull/22638)) - `np.finfo(None)` is deprecated. ([gh-23011](https://github.com/numpy/numpy/pull/23011)) - `np.round_` is deprecated. Use `np.round` instead. ([gh-23302](https://github.com/numpy/numpy/pull/23302)) - `np.product` is deprecated. Use `np.prod` instead. ([gh-23314](https://github.com/numpy/numpy/pull/23314)) - `np.cumproduct` is deprecated. Use `np.cumprod` instead. ([gh-23314](https://github.com/numpy/numpy/pull/23314)) - `np.sometrue` is deprecated. Use `np.any` instead. ([gh-23314](https://github.com/numpy/numpy/pull/23314)) - `np.alltrue` is deprecated. Use `np.all` instead. ([gh-23314](https://github.com/numpy/numpy/pull/23314)) - Only ndim-0 arrays are treated as scalars. NumPy used to treat all arrays of size 1 (e.g., `np.array([3.14])`) as scalars. In the future, this will be limited to arrays of ndim 0 (e.g., `np.array(3.14)`). The following expressions will report a deprecation warning: python a = np.array([3.14]) float(a) better: a[0] to get the numpy.float or a.item() b = np.array([[3.14]]) c = numpy.random.rand(10) c[0] = b better: c[0] = b[0, 0] ([gh-10615](https://github.com/numpy/numpy/pull/10615)) - `numpy.find_common_type` is now deprecated and its use should be replaced with either `numpy.result_type` or `numpy.promote_types`. Most users leave the second `scalar_types` argument to `find_common_type` as `[]` in which case `np.result_type` and `np.promote_types` are both faster and more robust. When not using `scalar_types` the main difference is that the replacement intentionally converts non-native byte-order to native byte order. Further, `find_common_type` returns `object` dtype rather than failing promotion. This leads to differences when the inputs are not all numeric. Importantly, this also happens for e.g. timedelta/datetime for which NumPy promotion rules are currently sometimes surprising. When the `scalar_types` argument is not `[]` things are more complicated. In most cases, using `np.result_type` and passing the Python values `0`, `0.0`, or `0j` has the same result as using `int`, `float`, or `complex` in `scalar_types`. When `scalar_types` is constructed, `np.result_type` is the correct replacement and it may be passed scalar values like `np.float32(0.0)`. Passing values other than 0, may lead to value-inspecting behavior (which `np.find_common_type` never used and NEP 50 may change in the future). The main possible change in behavior in this case, is when the array types are signed integers and scalar types are unsigned. If you are unsure about how to replace a use of `scalar_types` or when non-numeric dtypes are likely, please do not hesitate to open a NumPy issue to ask for help. ([gh-22539](https://github.com/numpy/numpy/pull/22539)) Expired deprecations - `np.core.machar` and `np.finfo.machar` have been removed. ([gh-22638](https://github.com/numpy/numpy/pull/22638)) - `+arr` will now raise an error when the dtype is not numeric (and positive is undefined). ([gh-22998](https://github.com/numpy/numpy/pull/22998)) - A sequence must now be passed into the stacking family of functions (`stack`, `vstack`, `hstack`, `dstack` and `column_stack`). ([gh-23019](https://github.com/numpy/numpy/pull/23019)) - `np.clip` now defaults to same-kind casting. Falling back to unsafe casting was deprecated in NumPy 1.17. ([gh-23403](https://github.com/numpy/numpy/pull/23403)) - `np.clip` will now propagate `np.nan` values passed as `min` or `max`. Previously, a scalar NaN was usually ignored. This was deprecated in NumPy 1.17. ([gh-23403](https://github.com/numpy/numpy/pull/23403)) - The `np.dual` submodule has been removed. ([gh-23480](https://github.com/numpy/numpy/pull/23480)) - NumPy now always ignores sequence behavior for an array-like (defining one of the array protocols). (Deprecation started NumPy 1.20) ([gh-23660](https://github.com/numpy/numpy/pull/23660)) - The niche `FutureWarning` when casting to a subarray dtype in `astype` or the array creation functions such as `asarray` is now finalized. The behavior is now always the same as if the subarray dtype was wrapped into a single field (which was the workaround, previously). (FutureWarning since NumPy 1.20) ([gh-23666](https://github.com/numpy/numpy/pull/23666)) - `==` and `!=` warnings have been finalized. The `==` and `!=` operators on arrays now always: - raise errors that occur during comparisons such as when the arrays have incompatible shapes (`np.array([1, 2]) == np.array([1, 2, 3])`). - return an array of all `True` or all `False` when values are fundamentally not comparable (e.g. have different dtypes). An example is `np.array(["a"]) == np.array([1])`. This mimics the Python behavior of returning `False` and `True` when comparing incompatible types like `"a" == 1` and `"a" != 1`. For a long time these gave `DeprecationWarning` or `FutureWarning`. ([gh-22707](https://github.com/numpy/numpy/pull/22707)) - Nose support has been removed. NumPy switched to using pytest in 2018 and nose has been unmaintained for many years. We have kept NumPy\'s nose support to avoid breaking downstream projects who might have been using it and not yet switched to pytest or some other testing framework. With the arrival of Python 3.12, unpatched nose will raise an error. It is time to move on. *Decorators removed*: - raises - slow - setastest - skipif - knownfailif - deprecated - parametrize - \_needs_refcount These are not to be confused with pytest versions with similar names, e.g., pytest.mark.slow, pytest.mark.skipif, pytest.mark.parametrize. *Functions removed*: - Tester - import_nose - run_module_suite ([gh-23041](https://github.com/numpy/numpy/pull/23041)) - The `numpy.testing.utils` shim has been removed. Importing from the `numpy.testing.utils` shim has been deprecated since 2019, the shim has now been removed. All imports should be made directly from `numpy.testing`. ([gh-23060](https://github.com/numpy/numpy/pull/23060)) - The environment variable to disable dispatching has been removed. Support for the `NUMPY_EXPERIMENTAL_ARRAY_FUNCTION` environment variable has been removed. This variable disabled dispatching with `__array_function__`. ([gh-23376](https://github.com/numpy/numpy/pull/23376)) - Support for `y=` as an alias of `out=` has been removed. The `fix`, `isposinf` and `isneginf` functions allowed using `y=` as a (deprecated) alias for `out=`. This is no longer supported. ([gh-23376](https://github.com/numpy/numpy/pull/23376)) Compatibility notes - The `busday_count` method now correctly handles cases where the `begindates` is later in time than the `enddates`. Previously, the `enddates` was included, even though the documentation states it is always excluded. ([gh-23229](https://github.com/numpy/numpy/pull/23229)) - When comparing datetimes and timedelta using `np.equal` or `np.not_equal` numpy previously allowed the comparison with `casting="unsafe"`. This operation now fails. Forcing the output dtype using the `dtype` kwarg can make the operation succeed, but we do not recommend it. ([gh-22707](https://github.com/numpy/numpy/pull/22707)) - When loading data from a file handle using `np.load`, if the handle is at the end of file, as can happen when reading multiple arrays by calling `np.load` repeatedly, numpy previously raised `ValueError` if `allow_pickle=False`, and `OSError` if `allow_pickle=True`. Now it raises `EOFError` instead, in both cases. ([gh-23105](https://github.com/numpy/numpy/pull/23105)) `np.pad` with `mode=wrap` pads with strict multiples of original data Code based on earlier version of `pad` that uses `mode="wrap"` will return different results when the padding size is larger than initial array. `np.pad` with `mode=wrap` now always fills the space with strict multiples of original data even if the padding size is larger than the initial array. ([gh-22575](https://github.com/numpy/numpy/pull/22575)) Cython `long_t` and `ulong_t` removed `long_t` and `ulong_t` were aliases for `longlong_t` and `ulonglong_t` and confusing (a remainder fr