Metadata-Version: 2.1
Name: Cython
Version: 3.2.4
Summary: The Cython compiler for writing C extensions in the Python language.
Home-page: https://cython.org/
Author: Robert Bradshaw, Stefan Behnel, David Woods, Greg Ewing, et al.
Author-email: cython-devel@python.org
License: Apache-2.0
Project-URL: Documentation, https://cython.readthedocs.io/
Project-URL: Donate, https://cython.readthedocs.io/en/latest/src/donating.html
Project-URL: Source Code, https://github.com/cython/cython
Project-URL: Bug Tracker, https://github.com/cython/cython/issues/
Project-URL: User Group, https://groups.google.com/g/cython-users
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.4 (2026-01-04)
        ==================
        
        Features added
        --------------
        
        * In preparation of Cython 3.3, a new decorator ``@collection_type(tname)`` can be used
          to advertise an extension type as being a ``'sequence'`` or ``'mapping'``.  This currently
          only has the effect of setting the ``Py_TPFLAGS_SEQUENCE`` flag on the type or not, but
          is provided for convenience to allow using the new decorator already in Cython 3.2 code.
        
        * Several C++ exception declarations were added to ``libcpp.exceptions``.
          (Github issue https://github.com/cython/cython/issues/7389)
        
        Bugs fixed
        ----------
        
        * Pseudo-literal default values of function arguments like ``arg=str()`` could generate
          invalid C code when internally converted into a real literal.
          (Github issue https://github.com/cython/cython/issues/6192)
        
        * The pickle serialisation of extension types using the ``auto_pickle`` feature was
          larger than necessary since 3.2.0 for types without Python object attributes.
          It is now back to the state before 3.2.0 again.
          (Github issue https://github.com/cython/cython/issues/7443)
        
        * Constants are now only made immortal on freethreading Python if they are not shared.
          (Github issue https://github.com/cython/cython/issues/7439)
        
        * ``PyDict_SetDefaultRef()`` is now used when available to avoid temporary borrowed references.
          (Github issue https://github.com/cython/cython/issues/7347)
        
        * Includes all fixes as of Cython 3.1.8.
        
        3.1.8 (2026-01-03):
        
        * Assignment expressions used in comprehensions could look at the wrong scope,
          thus using different variables and different data.
          (Github issue https://github.com/cython/cython/issues/6547)
        
        * Some internal C symbols were not declared as ``static``, preventing static linking
          of multiple modules.
          Patch by Yury Popov.  (Github issue https://github.com/cython/cython/issues/7310)
        
        * Accidentally using ``except +`` in C mode did not raise a compile error but generated
          invalid C code leading to obscure error messages.
          Patch by user202729.  (Github issue https://github.com/cython/cython/issues/6560)
        
        3.1.7 (2025-11-12):
        
        * Unicode characters formatted from C integers with padding, as in ``f"{value:XXc}"``,
          could result in invalid Python string objects since Cython 3.1.0.
          Also, lone surrogates failed to format in this way.
          (Github issue https://github.com/cython/cython/issues/7298)
        
        * Assigning nested structs from a list of structs (item by item) could crash Cython.
          (Github issue https://github.com/cython/cython/issues/7308)
        
        * Cython incorrectly called ``PyList_GetItemRef()`` in PyPy and GraalPython before Py3.13.
          (Github issue https://github.com/cython/cython/issues/7269)
        
        * Trying to instantiate internal types used by Cython is now prohibited.
          (Github issue https://github.com/cython/cython/issues/7263)
        
        3.1.6 (2025-10-23):
        
        * Unicode characters formatted from C integers with ``f"{value:c}"`` could result in
          invalid Python string objects since Cython 3.1.0.
          (Github issue https://github.com/cython/cython/issues/7240)
        
        * ``cythonize`` (program and function) now uses ``concurrent.futures.ProcessPoolExecutor``
          instead of ``multiprocessing.Pool`` to fix a hang on build failures in parallel builds.
          A possible work-around is to disable parallel builds.
          Patch by Sviatoslav Sydorenko.  (Github issue https://github.com/cython/cython/issues/7183)
        
        3.1.5 (2025-10-20):
        
        * Conversion from C++ strings longer than ``PY_SSIZE_T_MAX`` did not validate the length.
        
        * Some non-Limited API code was incorrectly used in generated header files.
          (Github issue https://github.com/cython/cython/issues/7157)
        
        * Optimised unpacking of Python integers in expressions uses a slightly safer scheme.
          (Github issue https://github.com/cython/cython/issues/7134)
        
        * Empty return statements were not always reported when tracing.
          (Github issue https://github.com/cython/cython/issues/7022)
        
        * Value conversion errors when tracing C return statements no longer fail the trace
          but fall back to reporting ``None`` returns instead.
          (Github issue https://github.com/cython/cython/issues/6503)
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Programming Language :: Python :: Implementation :: Stackless
Classifier: Programming Language :: C
Classifier: Programming Language :: C++
Classifier: Programming Language :: Cython
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Compilers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
