single |
The Cython language makes writing C extensions for the Python language as
easy as Python itself. Cython is a source code translator based on Pyrex_,
but supports more cutting edge functionality and optimizations.
The Cython language is a superset of the Python language (almost all Python
code is also valid Cython code), but Cython additionally supports optional
static typing to natively call C functions, operate with C++ classes and
declare fast C types on variables and class attributes. This allows the
compiler to generate very efficient C code from Cython code.
This makes Cython the ideal language for writing glue code for external
C/C++ libraries, and for fast C modules that speed up the execution of
Python code.
The newest Cython release can always be downloaded from
https://cython.org/.
Unpack the tarball or zip file, enter the directory, and then run::
pip install .
Note that for one-time builds, e.g. for CI/testing, on platforms that are
not
covered by one of the wheel packages provided on PyPI *and* the pure Python
wheel
that we provide is not used, it is substantially faster than a full source
build
to install an uncompiled (slower) version of Cython with::
NO_CYTHON_COMPILE=true pip install .
.. _Pyrex: https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/
3.1.2 (2025-06-09)
==================
Bugs fixed
----------
* Attribute lookups failed on the bool builtin type.
(Github issue https://github.com/cython/cython/issues/6905)
* Type checks on or-ed union types could incorrectly return false.
(Github issue https://github.com/cython/cython/issues/6420)
* Negative list indexing could accidentally wrap around twice in PyPy and
the Limited API.
* Iterating over literal sequences with starred (unpacked) items could
infer a wrong
type for the loop variable and fail to assign the values.
(Github issue https://github.com/cython/cython/issues/6924)
* Calls to C functions taking exception types failed to check for a `None`
argument.
(Github issue https://github.com/cython/cython/issues/6420)
* Fused functions had an incorrect __module__ attribute.
(Github issue https://github.com/cython/cython/issues/6897)
* The type of Cython implemented functions had an incorrect __module__
attribute.
(Github issue https://github.com/cython/cython/issues/6841)
* Errors while indexing into bytearray or str in nogil sections could
crash.
(Github issue https://github.com/cython/cython/issues/6947)
* ``bytearray.append()`` could silently accept some invalid character
numbers.
* The C++11 ```` header was included regardless of the C++
version.
(Github issue https://github.com/cython/cython/issues/6896)
* ``PyDict_GetItemStringRef()`` was accidentally used in older Limited API
versions.
(Github issue https://github.com/cython/cython/issues/6914)
* ``abort()`` was used but not always available in the Limited API.
(Github issue https://github.com/cython/cython/issues/6918)
* Some dependencies were missing from the depfile.
(Github issue https://github.com/cython/cython/issues/6938)
* Embedded function signatures were not always separated from the existing
docstring.
(Github issue https://github.com/cython/cython/issues/6904)
* ``numpy.math was missing from Cython/Includes/`` and could not be
cimported.
(Github issue https://github.com/cython/cython/issues/6859)
* Some tests were adapted for NumPy 2.x.
(Github issue https://github.com/cython/cython/issues/6898)
* Some C compiler warnings were fixed.
(Github issue https://github.com/cython/cython/issues/6870)
* ``Cython.Build was not officially exposing the cythonize`` function.
(Github issue https://github.com/cython/cython/issues/6934)
|