About Anaconda Help Download Anaconda
  • 200185 total downloads
  • Last upload: 2 days and 22 hours ago

Installers

pip install

To install this package run one of the following:
pip install -i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple cython

Description

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.2.0a0 (2025-??-??)

Features added

  • Builtin exception types are now inferred. (Github issue https://github.com/cython/cython/issues/6908)

  • The list of known, inferred and optimised Python builtins was updated. range is now considered a type. ascii, bin, format, hex, oct were added as functions. (Github issue https://github.com/cython/cython/issues/6931)

  • Type checks on PEP-604 union types (int | None) are optimised into separate checks. (Github issue https://github.com/cython/cython/issues/6935)

  • Item type inference was improved for looping over literals. (Github issue https://github.com/cython/cython/issues/6912)

  • Looping over literal sequences and strings now uses efficient C array looping if possible. (Github issue https://github.com/cython/cython/issues/6926)

  • Using NaN as exception return value is supported. (Github issues https://github.com/cython/cython/issues/6900, https://github.com/cython/cython/issues/6903)

  • Declarations for C++ condition variables were added. (Github issue https://github.com/cython/cython/issues/6836)

Bugs fixed

  • Special float exception values could generate invalid C code. (Github issues https://github.com/cython/cython/issues/6900, https://github.com/cython/cython/issues/6903)

  • References to the Python bool type could generate invalid C code. (Github issue https://github.com/cython/cython/issues/6902)

  • Pure mode type alias like p_int or ulong leaked into some C type contexts. (Github issues https://github.com/cython/cython/issues/6922, https://github.com/cython/cython/issues/6339)

  • Vectorcalls could use needless temp assignments for self. (Github issue https://github.com/cython/cython/issues/6909)

  • Includes all fixes as of Cython 3.1.2.

3.1.2 (2025-06-09):

  • 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 <type_traits> 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)


© 2025 Anaconda, Inc. All Rights Reserved. (v4.1.0) Legal | Privacy Policy