Skip to content

Scheduled monthly dependency update for January#170

Closed
pyup-bot wants to merge 4 commits into
masterfrom
pyup-scheduled-update-2025-01-01
Closed

Scheduled monthly dependency update for January#170
pyup-bot wants to merge 4 commits into
masterfrom
pyup-scheduled-update-2025-01-01

Conversation

@pyup-bot
Copy link
Copy Markdown
Collaborator

@pyup-bot pyup-bot commented Jan 1, 2025

Update Cython from 0.29.23 to 3.0.11.

Changelog

3.0.11

===================

Features added
--------------

* The C++11 ``emplace*`` methods were added to ``libcpp.deque``.
Patch by Somin An.  (Github issue :issue:`6159`)

Bugs fixed
----------

* The exception check value of functions declared in pxd files was not always applied in 3.0.10.
(Github issue :issue:`6122`)

* A crash on exception deallocations was fixed.
(Github issue :issue:`6022`)

* A crash was fixed when assigning a zero-length slice to a memoryview.
Patch by Michael Man.  (Github issue :issue:`6227`)

* ``libcpp.optional.value()`` could crash if it raised a C++ exception.
Patch by Alexander Condello.  (Github issue :issue:`6190`)

* The return type of ``str()`` was mishandled, leading to crashes with ``language_level=3``.
(Github issue :issue:`6166`)

* ``bytes.startswith/endswith()`` failed for non-bytes substrings (e.g. ``bytearray``).
(Github issue :issue:`6168`)

* Fused ctuples crashed Cython.
(Github issue :issue:`6068`)

* A compiler crash was fixed when using extension types in fused types.
(Github issue :issue:`6204`)

* The module cleanup code was incorrect for globally defined memory view slices.
(Github issue :issue:`6276`)

* Some adaptations were made to enable compilation in Python 3.13.
(Github issues :issue:`5997`, :issue:`6182`, :issue:`6251`)

3.0.10

===================

Bugs fixed
----------

* Cython generated incorrect self-casts when directly calling final methods of subtypes.
Patch by Lisandro Dalcin.  (Github issue :issue:`2747`)

* Internal C names generated from C function signatures could become too long for MSVC.
(Github issue :issue:`6052`)

* The ``noexcept`` warnings could be misleading in some cases.
Patch by Gonzalo Tornaría.  (Github issue :issue:`6087`)

* The ``cython.ufunc`` implementation could generate incomplete C code.
(Github issue :issue:`6064`)

* The ``libcpp.complex`` declarations could result in incorrect C++ code.
Patch by Raffi Enficiaud.  (Github issue :issue:`6037`)

* Several tests were adapted to work with both NumPy 1.x and 2.0.
Patch by Matti Picus.  (Github issues :issue:`6076`, :issue:`6100`)

* C compiler warnings when the freelist implementation is disabled (e.g. on PyPy) were fixed.
It can now be disabled explicitly with the C macro guard ``CYTHON_USE_FREELISTS=0``.
(Github issue :issue:`6099`)

* Some C macro guards for feature flags were missing from the NOGIL Python configuration.

* Some recently added builtins were unconditionally looked up at module import time
(if used by user code) that weren't available on all Python versions and could thus
fail the import.

* A performance hint regarding exported pxd declarations was improved.
(Github issue :issue:`6001`)

3.0.9

==================

Features added
--------------

* Assigning ``const`` values to non-const variables now issues a warning.
(Github issue :issue:`5639`)

* Using ``noexcept`` on a function returning Python objects now issues a warning.
(Github issue :issue:`5661`)

* Some C-API usage was updated for the upcoming CPython 3.13.
Patches by Victor Stinner et al.  (Github issues :issue:`6003`, :issue:`6020`)

* The deprecated ``Py_UNICODE`` type is no longer used, unless required by user code.
(Github issue :issue:`5982`)

* ``std::string.replace()`` declarations were added to libcpp.string.
Patch by Kieran Geary.  (Github issue :issue:`6037`)

Bugs fixed
----------

* Cython generates incorrect (but harmless) self-casts when directly calling
final methods of subtypes.  Lacking a better solution, the errors that recent
gcc versions produce have been silenced for the time being.
Original patch by Michał Górny.  (Github issue :issue:`2747`)

* Unused variable warnings about clineno were fixed when C lines in tracebacks are disabled.
(Github issue :issue:`6035`)

* Subclass deallocation of extern classes could crash if the base class uses GC.
Original patch by Jason Fried.  (Github issue :issue:`5971`)

* Type checks for Python ``memoryview`` could use an invalid C function.
Patch by Xenia Lu.  (Github issue :issue:`5988`)

* Calling final fused functions could generate invalid C code.
(Github issue :issue:`5989`)

* Declaring extern enums multiple times could generate invalid C code.
(Github issue :issue:`5905`)

* ``pyximport`` used relative paths incorrectly.
Patch by Stefano Rivera.  (Github issue :issue:`5957`)

* Running Cython with globbing characters (``[]*?``) in the module search path could fail.
Patch by eewanco.  (Github issue :issue:`5942`)

* Literal strings that include braces could change the C code indentation.

Other changes
-------------

* The "enum class not importable" warning is now only issued once per enum type.
(Github issue :issue:`5941`)

3.0.8

==================

Bugs fixed
----------

* Using ``const`` together with defined fused types could fail to compile.
(Github issue :issue:`5230`)

* A "use after free" bug was fixed in parallel sections.
(Github issue :issue:`5922`)

* Several types were not available as ``cython.*`` types in pure Python code.

* The generated code is now correct C89 again, removing some C++ style ``//`` comments
and C99-style declaration-after-code code ordering.  This is still relevant for some
ols C compilers, specifically ones that match old Python 2.7 installations.

3.0.7

==================

Bugs fixed
----------

* In the iterator of generator expressions, ``await`` and ``yield`` were not correctly analysed.
(Github issue :issue:`5851`)

* ``cpdef`` enums with the same name cimported from different modules could lead to
invalid C code.
(Github issue :issue:`5887`)

* Some declarations in ``cpython.unicode`` were fixed and extended.
(Github issue :issue:`5902`)

* Compiling fused types used in pxd files could crash Cython in Python 3.11+.
(Github issues :issue:`5894`,  :issue:`5588`)

* Source files with non-ASCII file names could crash Cython.
(Github issue :issue:`5873`)

* Includes all bug-fixes and features from the 0.29 maintenance branch
up to the :ref:`0.29.37` release.

3.0.6

==================

Features added
--------------

* Fused def function dispatch is a bit faster.

* Declarations for the ``wchar`` PyUnicode API were added.
(Github issue :issue:`5836`)

* The Python "nogil" fork is now also detected with the new ``Py_GIL_DISABLED`` macro.
Patch by Hugo van Kemenade.  (Github issue :issue:`5852`)

Bugs fixed
----------

* Comparing dataclasses could give different results than Python.
(Github issue :issue:`5857`)

* ``float(std::string)`` generated invalid C code.
(Github issue :issue:`5818`)

* Using ``cpdef`` functions with ``cimport_from_pyx`` failed.
(Github issue :issue:`5795`)

* A crash was fixed when string-formatting a Python value fails.
(Github issue :issue:`5787`)

* On item access, Cython could try the sequence protocol before the mapping protocol
in some cases if an object supports both.
(Github issue :issue:`5776`)

* A C compiler warning was resolved.
(Github issue :issue:`5794`)

* Complex numbers failed to compile in MSVC with C11.
Patch by Lysandros Nikolaou.  (Github issue :issue:`5809`)

* Some issues with the Limited API and with PyPy were resolved.
(Github issues :issue:`5695`, :issue:`5696`)

* A C++ issue in Python 3.13 was resolved.
(Github issue :issue:`5790`)

* Several directives are now also available (as no-ops) in Python code.
(Github issue :issue:`5803`)

* An error message was corrected.
Patch by Mads Ynddal.  (Github issue :issue:`5805`)

3.0.5

==================

Features added
--------------

* Preliminary support for CPython 3.13a1 was added to allow early testing.
(Github issue :issue:`5767`)

Bugs fixed
----------

* A compiler crash was fixed.
(Github issue :issue:`5771`)

* A typo in the ``always_allow_keywords`` directive for Python code was fixed.
Patch by lk-1984.  (Github issue :issue:`5772`)

* Some C compiler warnings were resolved.
Patch by Pierre Jolivet.  (Github issue :issue:`5780`)

3.0.4

==================

Features added
--------------

* A new compiler directive ``show_performance_hints`` was added to disable the
newly added performance hint output.
(Github issue :issue:`5748`)

Bugs fixed
----------

* cythonize` required ``distutils`` even for operations that did not build binaries.
(Github issue :issue:`5751`)

* A regression in 3.0.3 was fixed that prevented calling inline functions
from another inline function in ``.pxd`` files.
(Github issue :issue:`5748`)

* Some C compiler warnings were resolved.
Patch by Pierre Jolivet.  (Github issue :issue:`5756`)

3.0.3

==================

Features added
--------------

* More warnings were added to help users migrate and avoid bugs.
(Github issue :issue:`5650`)

* A warning-like category for performance hints was added that bypasses ``-Werror``.
(Github issue :issue:`5673`)

* FastGIL now uses standard ``thread_local`` in C++.
(Github issue :issue:`5640`)

* ``reference_wrapper`` was added to ``libcpp.functional``.
Patch by Vyas Ramasubramani.  (Github issue :issue:`5671`)

* The ``cythonize`` command now supports the ``--cplus`` option known from the ``cython`` command.
(Github issue :issue:`5736`)

Bugs fixed
----------

* Performance regressions where the GIL was needlessly acquired were fixed.
(Github issues :issue:`5670`, :issue:`5700`)

* A reference leak for exceptions in Python 3.12 was resolved.
Patch by Eric Johnson.  (Github issue :issue:`5724`)

* ``fastcall`` calls with keyword arguments generated incorrect C code.
(Github issue :issue:`5665`)

* Assigning the type converted result of a conditional (if-else) expression
to ``int`` or ``bool`` variables could lead to incorrect C code.
(Github issue :issue:`5731`)

* Early (unlikely) failures in Python function wrappers no longer set a
traceback in order to simplify the C code flow.  Being mostly memory
allocation errors, they probably would never have created a traceback anyway.
(Github issue :issue:`5681`)

* Relative cimports from packages with ``__init__.py`` files could fail.
(Github issue :issue:`5715`)

* Several issues with the Limited API support were resolved.
(Github issues :issue:`5641`, :issue:`5648`, :issue:`5689`)

* The code generated for special-casing both Cython functions and PyCFunctions was cleaned up
to avoid calling C-API functions that were not meant for the other type respectively.
This could previously trigger assertions in CPython debug builds and now also plays better
with the Limited API.
(Github issues :issue:`4804`, :issue:`5739`)

* Fix some C compiler warnings.
Patches by Ralf Gommers, Oleksandr Pavlyk, Sebastian Koslowski et al.
(Github issues :issue:`5651`, :issue:`5663`, :issue:`5668`, :issue:`5717`, :issue:`5726`, :issue:`5734`)

* Generating gdb debugging information failed when using generator expressions.
Patch by Oleksandr Pavlyk.  (Github issue :issue:`5552`)

* Passing a ``setuptools.Extension`` into ``cythonize()`` instead of a
``distutils.Extension`` could make it miss the matching extensions.

* ``cython -M`` needlessly required ``distutils``, which made it fail in Python 3.12.
(Github issue :issue:`5681`)

Other changes
-------------

* The visible deprecation warning for ``DEF`` was removed again since it proved
difficult for some users to migrate away from it.  The statement is still
meant to be removed at some point (and thus, like ``IF``, should not be
used in new code), but the time for sunset is probably not around the corner.
(Github issue :issue:`4310`)

* The ``np_pythran`` option raise a ``DeprecationWarning`` if it receives other values
than ``True`` and ``False``.  This will eventually be disallowed (in line with all
other boolean options).

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.37

====================

Bugs fixed
----------

* Fix a potential crash while cleaning up subtypes of externally imported extension
types when terminating Python.  This was introduced in Cython 0.29.35.

* Fix a ``complex`` related compile error on Windows.
(Github issue :issue:`5512`)

* Compiling fused types used in pxd files could crash Cython in Python 3.11+.
(Github issues :issue:`5894`, :issue:`5588`)

* ``cythonize`` failed to consider the ``CYTHON_FORCE_REGEN`` env variable.
Patch by Harmen Stoppels.  (Github issue :issue:`5712`)

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

Update numpy from 1.21.0 to 2.2.1.

Changelog

2.2.0

The NumPy 2.2.0 release is a quick release that brings us back into sync
with the usual twice yearly release cycle. There have been an number of
small cleanups, as well as work bringing the new StringDType to
completion and improving support for free threaded Python. Highlights
are:

-   New functions `matvec` and `vecmat`, see below.
-   Many improved annotations.
-   Improved support for the new StringDType.
-   Improved support for free threaded Python
-   Fixes for f2py

This release supports Python versions 3.10-3.13.

Deprecations

-   `_add_newdoc_ufunc` is now deprecated. `ufunc.__doc__ = newdoc`
 should be used instead.

 ([gh-27735](https://github.com/numpy/numpy/pull/27735))

Expired deprecations

-   `bool(np.array([]))` and other empty arrays will now raise an error.
 Use `arr.size > 0` instead to check whether an array has no
 elements.

 ([gh-27160](https://github.com/numpy/numpy/pull/27160))

Compatibility notes

-   `numpy.cov` now properly transposes single-row (2d array) design matrices
 when `rowvar=False`. Previously, single-row design matrices would return a
 scalar in this scenario, which is not correct, so this is a behavior change
 and an array of the appropriate shape will now be returned.

 ([gh-27661](https://github.com/numpy/numpy/pull/27661))

New Features

-   New functions for matrix-vector and vector-matrix products

 Two new generalized ufuncs were defined:

 -   `numpy.matvec` - matrix-vector product, treating the
     arguments as stacks of matrices and column vectors,
     respectively.
 -   `numpy.vecmat` - vector-matrix product, treating the
     arguments as stacks of column vectors and matrices,
     respectively. For complex vectors, the conjugate is taken.

 These add to the existing `numpy.matmul` as well as to
 `numpy.vecdot`, which was added in numpy 2.0.

 Note that `numpy.matmul` never takes a complex conjugate, also not when its
 left input is a vector, while both `numpy.vecdot` and `numpy.vecmat` do
 take the conjugate for complex vectors on the left-hand side (which are
 taken to be the ones that are transposed, following the physics
 convention).

 ([gh-25675](https://github.com/numpy/numpy/pull/25675))

-   `np.complexfloating[T, T]` can now also be written as
 `np.complexfloating[T]`

 ([gh-27420](https://github.com/numpy/numpy/pull/27420))

-   UFuncs now support `__dict__` attribute and allow overriding
 `__doc__` (either directly or via `ufunc.__dict__["__doc__"]`).
 `__dict__` can be used to also override other properties, such as
 `__module__` or `__qualname__`.

 ([gh-27735](https://github.com/numpy/numpy/pull/27735))

-   The \"nbit\" type parameter of `np.number` and its subtypes now
 defaults to `typing.Any`. This way, type-checkers will infer
 annotations such as `x: np.floating` as `x: np.floating[Any]`, even
 in strict mode.

 ([gh-27736](https://github.com/numpy/numpy/pull/27736))

Improvements

-   The `datetime64` and `timedelta64` hashes now correctly match the
 Pythons builtin `datetime` and `timedelta` ones. The hashes now
 evaluated equal even for equal values with different time units.

 ([gh-14622](https://github.com/numpy/numpy/pull/14622))

-   Fixed a number of issues around promotion for string ufuncs with
 StringDType arguments. Mixing StringDType and the fixed-width DTypes
 using the string ufuncs should now generate much more uniform
 results.

 ([gh-27636](https://github.com/numpy/numpy/pull/27636))

-   Improved support for empty `memmap`. Previously an empty `memmap` would
 fail unless a non-zero `offset` was set.  Now a zero-size `memmap` is
 supported even if `offset=0`. To achieve this, if a `memmap` is mapped to
 an empty file that file is padded with a single byte.

 ([gh-27723](https://github.com/numpy/numpy/pull/27723))

-   `f2py` handles multiple modules and exposes variables again.  A regression
 has been fixed which allows F2PY users to expose variables to Python in
 modules with only assignments, and also fixes situations where multiple
 modules are present within a single source file.

 ([gh-27695](https://github.com/numpy/numpy/pull/27695))

Performance improvements and changes

-   NumPy now uses fast-on-failure attribute lookups for protocols. This
 can greatly reduce overheads of function calls or array creation
 especially with custom Python objects. The largest improvements will
 be seen on Python 3.12 or newer.

 ([gh-27119](https://github.com/numpy/numpy/pull/27119))

-   OpenBLAS on x86_64 and i686 is built with fewer kernels. Based on
 benchmarking, there are 5 clusters of performance around these
 kernels: `PRESCOTT NEHALEM SANDYBRIDGE HASWELL SKYLAKEX`.

-   OpenBLAS on windows is linked without quadmath, simplifying
 licensing

-   Due to a regression in OpenBLAS on windows, the performance
 improvements when using multiple threads for OpenBLAS 0.3.26 were
 reverted.

 ([gh-27147](https://github.com/numpy/numpy/pull/27147))

-   NumPy now indicates hugepages also for large `np.zeros` allocations
 on linux. Thus should generally improve performance.

 ([gh-27808](https://github.com/numpy/numpy/pull/27808))

Changes

-   `numpy.fix` now won\'t perform casting to a floating
 data-type for integer and boolean data-type input arrays.

 ([gh-26766](https://github.com/numpy/numpy/pull/26766))

-   The type annotations of `numpy.float64` and `numpy.complex128` now reflect
 that they are also subtypes of the built-in `float` and `complex` types,
 respectively. This update prevents static type-checkers from reporting
 errors in cases such as:

  python
 x: float = numpy.float64(6.28)   valid
 z: complex = numpy.complex128(-1j)   valid
 

 ([gh-27334](https://github.com/numpy/numpy/pull/27334))

-   The `repr` of arrays large enough to be summarized (i.e., where
 elements are replaced with `...`) now includes the `shape` of the
 array, similar to what already was the case for arrays with zero
 size and non-obvious shape. With this change, the shape is always
 given when it cannot be inferred from the values. Note that while
 written as `shape=...`, this argument cannot actually be passed in
 to the `np.array` constructor. If you encounter problems, e.g., due
 to failing doctests, you can use the print option `legacy=2.1` to
 get the old behaviour.

 ([gh-27482](https://github.com/numpy/numpy/pull/27482))

-   Calling `__array_wrap__` directly on NumPy arrays or scalars now
 does the right thing when `return_scalar` is passed (Added in NumPy
 2). It is further safe now to call the scalar `__array_wrap__` on a
 non-scalar result.

 ([gh-27807](https://github.com/numpy/numpy/pull/27807))

-   Bump the musllinux CI image and wheels to 1_2 from 1_1. This is because
 1_1 is [end of life](https://github.com/pypa/manylinux/issues/1629).

 ([gh-27088](https://github.com/numpy/numpy/pull/27088))

-   NEP 50 promotion state option removed

 The NEP 50 promotion state settings are now removed. They were always meant as
 temporary means for testing. A warning will be given if the environment
 variable is set to anything but `NPY_PROMOTION_STATE=weak` while
 `_set_promotion_state` and `_get_promotion_state` are removed. In case code
 used `_no_nep50_warning`, a `contextlib.nullcontext` could be used to replace
 it when not available.

 ([gh-27156](https://github.com/numpy/numpy/pull/27156))

Checksums

MD5

 83746dfc1b7774a6677a69c705b83afe  numpy-2.2.0rc1-cp310-cp310-macosx_10_9_x86_64.whl
 e69c45cf5ea08fdf2a5527190a7d6549  numpy-2.2.0rc1-cp310-cp310-macosx_11_0_arm64.whl
 d4f8048977139cb229875c201f605369  numpy-2.2.0rc1-cp310-cp310-macosx_14_0_arm64.whl
 8710578b7f4ceef7f73b6d234ad3a82a  numpy-2.2.0rc1-cp310-cp310-macosx_14_0_x86_64.whl
 899d1f24d8e5570695a024908d100174  numpy-2.2.0rc1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 cb768ee568bed2e4f55d47f43c655bc2  numpy-2.2.0rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 5a40726db153ca1984598323cc59eb9b  numpy-2.2.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl
 450e5e05bdc5551c0a4df2a8d7f09925  numpy-2.2.0rc1-cp310-cp310-musllinux_1_2_x86_64.whl
 1c34c86b0abaa5d2a75677044a7fca07  numpy-2.2.0rc1-cp310-cp310-win32.whl
 d679ad13f3892325fd4542931ee74852  numpy-2.2.0rc1-cp310-cp310-win_amd64.whl
 a7a8cf5fa2e3d4bd0131ad48c0215f50  numpy-2.2.0rc1-cp311-cp311-macosx_10_9_x86_64.whl
 aa6c629290d8b05b44fbbf805fb39dbe  numpy-2.2.0rc1-cp311-cp311-macosx_11_0_arm64.whl
 a04fe8ac96a5226686ec4190db8511d6  numpy-2.2.0rc1-cp311-cp311-macosx_14_0_arm64.whl
 50aedb2a570a7867e860d98eb816bec4  numpy-2.2.0rc1-cp311-cp311-macosx_14_0_x86_64.whl
 cd034c5179ee4cc5669ae36be0deb6ab  numpy-2.2.0rc1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 67e3336cdcdcf72cd07978a465e61ebd  numpy-2.2.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 45456522fc3996937f1b1ad8bd7f85b2  numpy-2.2.0rc1-cp311-cp311-musllinux_1_2_aarch64.whl
 244dcedc05e96c843853738bc2d37bdb  numpy-2.2.0rc1-cp311-cp311-musllinux_1_2_x86_64.whl
 da24dd620b6509740a1d8aebe4d1306c  numpy-2.2.0rc1-cp311-cp311-win32.whl
 472e5f997dc437b8115ba4ef70a6a266  numpy-2.2.0rc1-cp311-cp311-win_amd64.whl
 6e4ec4f92f8b0768d679419360098a89  numpy-2.2.0rc1-cp312-cp312-macosx_10_13_x86_64.whl
 e15a1756fbe98aa61cb8d98de1d516fc  numpy-2.2.0rc1-cp312-cp312-macosx_11_0_arm64.whl
 6c58bba6f453ad22a651f6f0f6416899  numpy-2.2.0rc1-cp312-cp312-macosx_14_0_arm64.whl
 1a00dd2343f8ec48350b39f72e2c4fa1  numpy-2.2.0rc1-cp312-cp312-macosx_14_0_x86_64.whl
 cbe9b6d14530bdfb75ef61f4328f6b9e  numpy-2.2.0rc1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 a4f14055b4cfafab7035f35e61c6cebb  numpy-2.2.0rc1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 8c3c80295b92ae839fcb1fc2ab2edf0e  numpy-2.2.0rc1-cp312-cp312-musllinux_1_2_aarch64.whl
 1a5aac9894d1959e1cbbcf58e3aa98d1  numpy-2.2.0rc1-cp312-cp312-musllinux_1_2_x86_64.whl
 03577c58315ae4b28c3111be0af0c18a  numpy-2.2.0rc1-cp312-cp312-win32.whl
 c8ed06acb7e1b885081e682a391524d8  numpy-2.2.0rc1-cp312-cp312-win_amd64.whl
 53955ed28cb43f004ccd9f2f1e07b0d4  numpy-2.2.0rc1-cp313-cp313-macosx_10_13_x86_64.whl
 dffe0e20843d5e331358206b535c47f7  numpy-2.2.0rc1-cp313-cp313-macosx_11_0_arm64.whl
 1f22dc1bc3dd3bf645a35a8c58e07ac3  numpy-2.2.0rc1-cp313-cp313-macosx_14_0_arm64.whl
 57bb0a9d61444162269751eb861bef75  numpy-2.2.0rc1-cp313-cp313-macosx_14_0_x86_64.whl
 b38fd53f8f162a833b89e32b52d6f0b5  numpy-2.2.0rc1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 f8975385402dfa988efe0121adcb3b83  numpy-2.2.0rc1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 8b739c89e3c67210467ac0855623da47  numpy-2.2.0rc1-cp313-cp313-musllinux_1_2_aarch64.whl
 902e1f704a187a85f02f71877ed69baf  numpy-2.2.0rc1-cp313-cp313-musllinux_1_2_x86_64.whl
 fc33a9a4c895b2463672d01e75431a8f  numpy-2.2.0rc1-cp313-cp313-win32.whl
 f57eb3377cf0acf5ce165034e5d3d061  numpy-2.2.0rc1-cp313-cp313-win_amd64.whl
 4dff6567391c376daf27f2a144a4142d  numpy-2.2.0rc1-cp313-cp313t-macosx_10_13_x86_64.whl
 5195eeac3d355592ec97db04cea7fb43  numpy-2.2.0rc1-cp313-cp313t-macosx_11_0_arm64.whl
 9a5e6fb707b1bc448d6f5eb226757581  numpy-2.2.0rc1-cp313-cp313t-macosx_14_0_arm64.whl
 455ef245987926bb966565de0f68d00f  numpy-2.2.0rc1-cp313-cp313t-macosx_14_0_x86_64.whl
 f10882cf7238a03896903b337bce2b05  numpy-2.2.0rc1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 8889da4b211ca3edba34518306115a81  numpy-2.2.0rc1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 1d29f0a150c39b500b4f0b1e4c625e9b  numpy-2.2.0rc1-cp313-cp313t-musllinux_1_2_aarch64.whl
 dcf499ab9d350e3414368a106c714256  numpy-2.2.0rc1-cp313-cp313t-musllinux_1_2_x86_64.whl
 af48c02a9130ad93e93a55ebf87b5c78  numpy-2.2.0rc1-cp313-cp313t-win32.whl
 290c12deaff6df2e54569563a8f1316a  numpy-2.2.0rc1-cp313-cp313t-win_amd64.whl
 fce62da0e31ae09237cf241c77e54498  numpy-2.2.0rc1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
 85acaaaa495d92bc52631a6a0654fd8e  numpy-2.2.0rc1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl
 cb0482e5c60d706b9b0e9ce8dac9d8a6  numpy-2.2.0rc1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 67390891e461b1983aadab51bc96a78b  numpy-2.2.0rc1-pp310-pypy310_pp73-win_amd64.whl
 4836fdb3009f043287f011b5f6d18208  numpy-2.2.0rc1.tar.gz

SHA256

 acd4f4e9f8c3c04c9a695333d4f475ec2f7a577342b469b411f7ffb2a2888fdc  numpy-2.2.0rc1-cp310-cp310-macosx_10_9_x86_64.whl
 8c3cd769a38a363fe21077ad137ee43be639464e5f257821a4cc4d4e2016deea  numpy-2.2.0rc1-cp310-cp310-macosx_11_0_arm64.whl
 72fa15a5f801faf598e6633a6efcb5661085f509f8f6631a0c2c86be06631b78  numpy-2.2.0rc1-cp310-cp310-macosx_14_0_arm64.whl
 44d55304a7397d6e89707af99ea8e980a101a7ff01dd768aaaca16b2312c799b  numpy-2.2.0rc1-cp310-cp310-macosx_14_0_x86_64.whl
 8a25595d5951ad46bec827dfee09328b8da041fc3f7f13f63880274ed4ec215e  numpy-2.2.0rc1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 c335bd4e3395b8209a011b97e5f9876092fb2dc283933d39620a30c1fa82dfab  numpy-2.2.0rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 5ac124ab756ad56a14cdfcdc69cc220befbfb1162fdf3ca4f6eb1a0ace634c56  numpy-2.2.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl
 2f7861ff2b862e2536f2256acf5dcf1909e927a5f5e940dfd488eecd178a96b6  numpy-2.2.0rc1-cp310-cp310-musllinux_1_2_x86_64.whl
 e2d4b5a37cf5df43ffdabe0ebea150d5ec0a1796ad7122b3a780f1ab646708c8  numpy-2.2.0rc1-cp310-cp310-win32.whl
 7a3261b3b7d1403a65112dbad568eee7de596cebd0267e27e7daaa9e08dd396a  numpy-2.2.0rc1-cp310-cp310-win_amd64.whl
 61915861927b8e20223b7ccbe40ebf3f52220c0fca43be8423087348c7c00418  numpy-2.2.0rc1-cp311-cp311-macosx_10_9_x86_64.whl
 8815f7e6d48dbcf4f14704d79b90c8fee1a68a42886d42e9c8209092e684bd99  numpy-2.2.0rc1-cp311-cp311-macosx_11_0_arm64.whl
 3e80348e6d187573dc2bb6b1d862fc32353db371ae063d25b2199f65adc96ff1  numpy-2.2.0rc1-cp311-cp311-macosx_14_0_arm64.whl
 8fb79fe9bfefb2b43f701090f70413fb535f10bfdfab1981b7c02bd406cc39dd  numpy-2.2.0rc1-cp311-cp311-macosx_14_0_x86_64.whl
 042b6a87c48307955049b338981ff9278fa5e7ff3166bbd0d3294f40726d22d5  numpy-2.2.0rc1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 94251286fd3cec5552f217030af4cae68f7a1db4f1791765e597b6d9c0a7647a  numpy-2.2.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 ffaa01305af250d733d9940c694d206a0c7d1ea2bd5a01bcb5ff7e48c3e6adac  numpy-2.2.0rc1-cp311-cp311-musllinux_1_2_aarch64.whl
 37e6413ed8f66df534631058771ca362939e243da725b5e8537d8c64b664e9b2  numpy-2.2.0rc1-cp311-cp311-musllinux_1_2_x86_64.whl
 7bd86cdae85da5fa8763fbe9acfdb4748e1f10bef5e6524bffdfdd2b21bfd56f  numpy-2.2.0rc1-cp311-cp311-win32.whl
 27f2593fe479dff6f4398563ca2fbf7a416fd8d3a8ad7a35fecbc8ba959000ab  numpy-2.2.0rc1-cp311-cp311-win_amd64.whl
 f721298f4c39b4619b16ba0d341ff5e043d4123dfb796bd84835538bf8abad2b  numpy-2.2.0rc1-cp312-cp312-macosx_10_13_x86_64.whl
 aed72fe759ada921342b4a8ae0893cc7778b07d2f36a78445c70d5ea633c3b25  numpy-2.2.0rc1-cp312-cp312-macosx_11_0_arm64.whl
 c940b9623e29db06b7d0d3c93c560d42bbd73a76f6d27c41d3fd09c0a15f7773  numpy-2.2.0rc1-cp312-cp312-macosx_14_0_arm64.whl
 a783f561c34be98eb25f8cce029b63434d2dfe79702a1d53e9a0fd63c0391dc8  numpy-2.2.0rc1-cp312-cp312-macosx_14_0_x86_64.whl
 d0db426baa0d9547d9ac3ea08110e9bba400fab7a036235d9baddf61fd931af8  numpy-2.2.0rc1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 7925618745531971be54a87e0b85dfe83c69dac9dfd8e46c8aaae520af05792b  numpy-2.2.0rc1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 5d7a819d4d31bf9998c907105d97a082919b659ff8d44cef2c4f78d0ac16af47  numpy-2.2.0rc1-cp312-cp312-musllinux_1_2_aarch64.whl
 0b6cb83ab76b101b87211ab6227e010789adf4a98ee4af07a2480d1d2f61d195  numpy-2.2.0rc1-cp312-cp312-musllinux_1_2_x86_64.whl
 dc86f8502db8dfbe3474a34395e453849d03f0717227f7bda57a235cbbee3575  numpy-2.2.0rc1-cp312-cp312-win32.whl
 a87c1a4d808de26157440153bb9c51d7dc4778c6cd730026406298b75fa5c2df  numpy-2.2.0rc1-cp312-cp312-win_amd64.whl
 c2ef440fc343cc11e8e1591bf77b0f4f21b0684feabdf7b3ec3d768b8cce7a05  numpy-2.2.0rc1-cp313-cp313-macosx_10_13_x86_64.whl
 4332ddb4f40e85f6cdf1594279b35e847a20054c3269f7f2e848b6075cb8f4b3  numpy-2.2.0rc1-cp313-cp313-macosx_11_0_arm64.whl
 dc532dd1c767864614f383cad63edf864f78df3533b6444d94af099583c8fb39  numpy-2.2.0rc1-cp313-cp313-macosx_14_0_arm64.whl
 ecc601c633667ea5eed0c16f987e4c715ee951d0bfa3658f76b690e8dceaddfd  numpy-2.2.0rc1-cp313-cp313-macosx_14_0_x86_64.whl
 38405f26748e7ed4c7b31e5f8c24f385e1daf4954628f6143f5a09047e220ca9  numpy-2.2.0rc1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 e515a7d5f5e1b32eb9e761de4f0327aceee27ec07cc655d26424a5e86d3c8d0d  numpy-2.2.0rc1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 fd3981aa01428eef69fe5ff2e97e3ca8e65e677ffacc7c447e164ae2aaf521fb  numpy-2.2.0rc1-cp313-cp313-musllinux_1_2_aarch64.whl
 61a04f035bd4f87d6c0592eaa06061f9f16bf0e11d546e3b9252ccf83f0917a6  numpy-2.2.0rc1-cp313-cp313-musllinux_1_2_x86_64.whl
 1b18bf71975be1728042ba232d7406ae2f6fed8431684851fda4b909ab6e20ce  numpy-2.2.0rc1-cp313-cp313-win32.whl
 5776d7b395dcf180bc807a9374aca05b6569e5e5e4bdcbf112aa452a471405e0  numpy-2.2.0rc1-cp313-cp313-win_amd64.whl
 3f0d900e60e783fa9965729fa2a17021add82d769bf298cdb407abcbbf316e28  numpy-2.2.0rc1-cp313-cp313t-macosx_10_13_x86_64.whl
 def9537da892cd995f81646df94021fbf0dce690d518daaabc0902bc8ce42cd9  numpy-2.2.0rc1-cp313-cp313t-macosx_11_0_arm64.whl
 f2b59a4e85367107dced5b3c7374a5e828ddb7c5c4e1d98176d09b177e23edd0  numpy-2.2.0rc1-cp313-cp313t-macosx_14_0_arm64.whl
 9c3bdfe13209bf4f81aea5f8dd2843ab17c9a9273133d491c220636bfd51432d  numpy-2.2.0rc1-cp313-cp313t-macosx_14_0_x86_64.whl
 b0b742731c2721445a03e469f286c9ddf15dd80e52622ea4487ddc10a7869fe9  numpy-2.2.0rc1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 8c43d7beaab6509f1467175cc7cfdcc048581b91ba55e149cc39af758209b166  numpy-2.2.0rc1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 598b88170e0f361d2f6d8cc9ec18d798af07a2e9b30b95ba2d76415b7c3cc433  numpy-2.2.0rc1-cp313-cp313t-musllinux_1_2_aarch64.whl
 ddb4720b057048d7ac3ce973256e89e1e7481f71b5a214a0a3be936aeda014e7  numpy-2.2.0rc1-cp313-cp313t-musllinux_1_2_x86_64.whl
 64b994b9054ab051d137fff61bb6244aa1e7a80defa42c507355b562cc44a561  numpy-2.2.0rc1-cp313-cp313t-win32.whl
 67d2f5c34f231e7ed59189c20f8b7472b77cff85277bcd80537417eee61977db  numpy-2.2.0rc1-cp313-cp313t-win_amd64.whl
 d4bbc95647ce01252827d4c6ea5de42460ea66d75831333f2b92f088b60e1b43  numpy-2.2.0rc1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
 d8d13dd7b6f1f14c43ff68e81c8edcb035f572d87507b5f629e78a7d8c61e9f4  numpy-2.2.0rc1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl
 d12bf735dc4e7dfa8c66b2fd47547bcf91c9996585324959e2c5a2f5360e1c8f  numpy-2.2.0rc1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 8d7de626a5e554b074890258e63d0b06eff2af48da034fe5ffef8743578b1e0b  numpy-2.2.0rc1-pp310-pypy310_pp73-win_amd64.whl
 d3c343e027351fbb3f7ddb0024857cd10837d6a77b40b33e39ff6706ed7ceec1  numpy-2.2.0rc1.tar.gz

2.1.3

discovered after the 2.1.2 release. This release also adds support
for free threaded Python 3.13 on Windows.

The Python versions supported by this release are 3.10-3.13.

Improvements

-   Fixed a number of issues around promotion for string ufuncs with
 StringDType arguments. Mixing StringDType and the fixed-width DTypes
 using the string ufuncs should now generate much more uniform
 results.

 ([gh-27636](https://github.com/numpy/numpy/pull/27636))

Changes

-   `numpy.fix` now won\'t perform casting to a floating
 data-type for integer and boolean data-type input arrays.

 ([gh-26766](https://github.com/numpy/numpy/pull/26766))

Contributors

A total of 15 people contributed to this release. People with a \"+\" by
their names contributed a patch for the first time.

-   Abhishek Kumar +
-   Austin +
-   Benjamin A. Beasley +
-   Charles Harris
-   Christian Lorentzen
-   Marcel Telka +
-   Matti Picus
-   Michael Davidsaver +
-   Nathan Goldbaum
-   Peter Hawkins
-   Raghuveer Devulapalli
-   Ralf Gommers
-   Sebastian Berg
-   dependabot\[bot\]
-   kp2pml30 +

Pull requests merged

A total of 21 pull requests were merged for this release.

-   [27512](https://github.com/numpy/numpy/pull/27512): MAINT: prepare 2.1.x for further development
-   [27537](https://github.com/numpy/numpy/pull/27537): MAINT: Bump actions/cache from 4.0.2 to 4.1.1
-   [27538](https://github.com/numpy/numpy/pull/27538): MAINT: Bump pypa/cibuildwheel from 2.21.2 to 2.21.3
-   [27539](https://github.com/numpy/numpy/pull/27539): MAINT: MSVC does not support #warning directive
-   [27543](https://github.com/numpy/numpy/pull/27543): BUG: Fix user dtype can-cast with python scalar during promotion
-   [27561](https://github.com/numpy/numpy/pull/27561): DEV: bump `python` to 3.12 in environment.yml
-   [27562](https://github.com/numpy/numpy/pull/27562): BLD: update vendored Meson to 1.5.2
-   [27563](https://github.com/numpy/numpy/pull/27563): BUG: weighted quantile for some zero weights (#27549)
-   [27565](https://github.com/numpy/numpy/pull/27565): MAINT: Use miniforge for macos conda test.
-   [27566](https://github.com/numpy/numpy/pull/27566): BUILD: satisfy gcc-13 pendantic errors
-   [27569](https://github.com/numpy/numpy/pull/27569): BUG: handle possible error for PyTraceMallocTrack
-   [27570](https://github.com/numpy/numpy/pull/27570): BLD: start building Windows free-threaded wheels \[wheel build\]
-   [27571](https://github.com/numpy/numpy/pull/27571): BUILD: vendor tempita from Cython
-   [27574](https://github.com/numpy/numpy/pull/27574): BUG: Fix warning \"differs in levels of indirection\" in npy_atomic.h\...
-   [27592](https://github.com/numpy/numpy/pull/27592): MAINT: Update Highway to latest
-   [27593](https://github.com/numpy/numpy/pull/27593): BUG: Adjust numpy.i for SWIG 4.3 compatibility
-   [27616](https://github.com/numpy/numpy/pull/27616): BUG: Fix Linux QEMU CI workflow
-   [27668](https://github.com/numpy/numpy/pull/27668): BLD: Do not set \_\_STDC_VERSION\_\_ to zero during build
-   [27669](https://github.com/numpy/numpy/pull/27669): ENH: fix wasm32 runtime type error in numpy.\_core
-   [27672](https://github.com/numpy/numpy/pull/27672): BUG: Fix a reference count leak in npy_find_descr_for_scalar.
-   [27673](https://github.com/numpy/numpy/pull/27673): BUG: fixes for StringDType/unicode promoters

Checksums

MD5

 3f2f22827dd321ae86b5ab4fa888d0db  numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl
 13da2761d1abe71731a2806537369115  numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl
 5aef4a78b69cd90d0f6fff8f88817991  numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl
 12da7f09cd5707634878f85845c9de10  numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl
 5b999693362815b56855533469aea0ca  numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 8c49f457127bfb4f167c91583e5167af  numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 f31c0e80b18afc0c04cada401cbe0358  numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl
 2c0709812e27bcaf74d75ac8ed45614b  numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl
 a65b28800e78942b9e60e03e96cfd0c0  numpy-2.1.3-cp310-cp310-win32.whl
 d8358545732fe4ee1ecf407b06567d81  numpy-2.1.3-cp310-cp310-win_amd64.whl
 34942f9a1391532e2c3168043c0021d5  numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl
 0d69ec06e303b5112788db68a8fdde1b  numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl
 da1988c8d3a9db5947a2bd51290b8b95  numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl
 b5eba73c2abaf5a81535f4b1034fe8d2  numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl

@pyup-bot
Copy link
Copy Markdown
Collaborator Author

pyup-bot commented Feb 1, 2025

Closing this in favor of #171

@pyup-bot pyup-bot closed this Feb 1, 2025
@alimanfoo alimanfoo deleted the pyup-scheduled-update-2025-01-01 branch February 1, 2025 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant