Cython-plus

Latest version: v0.3.0

Safety actively analyzes 663899 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 13

0.26

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

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

* Pythran can be used as a backend for evaluating NumPy array expressions.
Patch by Adrien Guinet (Github issue 1607).

* cdef classes now support pickling by default when possible.
This can be disabled with the ``auto_pickle`` directive.

* Speed up comparisons of strings if their hash value is available.
Patch by Claudio Freire (Github issue 1571).

* Support pyximport from zip files.
Patch by Sergei Lebedev (Github issue 1485).

* IPython magic now respects the ``__all__`` variable and ignores
names with leading-underscore (like ``import *`` does).
Patch by Syrtis Major (Github issue 1625).

* ``abs()`` is optimised for C complex numbers.
Patch by David Woods (Github issue 1648).

* The display of C lines in Cython tracebacks can now be enabled at runtime
via ``import cython_runtime; cython_runtime.cline_in_traceback=True``.
The default has been changed to False.

* The overhead of calling fused types generic functions was reduced.

* "cdef extern" include files are now also searched relative to the current file.
Patch by Jeroen Demeyer (Github issue 1654).

* Optional optimization for re-acquiring the GIL, controlled by the
`fast_gil` directive.

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

* Item lookup/assignment with a unicode character as index that is typed
(explicitly or implicitly) as ``Py_UCS4`` or ``Py_UNICODE`` used the
integer value instead of the Unicode string value. Code that relied on
the previous behaviour now triggers a warning that can be disabled by
applying an explicit cast. (Github issue 1602)

* f-string processing was adapted to changes in PEP 498 and CPython 3.6.

* Invalid C code when decoding from UTF-16(LE/BE) byte strings.
(Github issue 1696)

* Unicode escapes in 'ur' raw-unicode strings were not resolved in Py2 code.
Original patch by Aaron Gallagher (Github issue 1594).

* File paths of code objects are now relative.
Original patch by Jelmer Vernooij (Github issue 1565).

* Decorators of cdef class methods could be executed twice.
Patch by Jeroen Demeyer (Github issue 1724).

* Dict iteration using the Py2 ``iter*`` methods failed in PyPy3.
Patch by Armin Rigo (Github issue 1631).

* Several warnings in the generated code are now suppressed.

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

* The ``unraisable_tracebacks`` option now defaults to ``True``.

* Coercion of C++ containers to Python is no longer automatic on attribute
access (Github issue 1521).

* Access to Python attributes of cimported modules without the corresponding
import is now a compile-time (rather than runtime) error.

* Do not use special dll linkage for "cdef public" functions.
Patch by Jeroen Demeyer (Github issue 1687).

* cdef/cpdef methods must match their declarations. See Github Issue 1732.
This is now a warning and will be an error in future releases.

0.25.2

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

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

* Fixes several issues with C++ template deduction.

* Fixes a issue with bound method type inference (Github issue 551).

* Fixes a bug with cascaded tuple assignment (Github issue 1523).

* Fixed or silenced many Clang warnings.

* Fixes bug with powers of pure real complex numbers (Github issue 1538).

0.25.1

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

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

* Fixes a bug with ``isinstance(o, Exception)`` (Github issue 1496).

* Fixes bug with ``cython.view.array`` missing utility code in some cases
(Github issue 1502).

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

* The distutils extension ``Cython.Distutils.build_ext`` has been reverted,
temporarily, to be ``old_build_ext`` to give projects time to migrate.
The new build_ext is available as ``new_build_ext``.

0.25

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

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

* def/cpdef methods of cdef classes benefit from Cython's internal function
implementation, which enables introspection and line profiling for them.
Implementation sponsored by Turbostream (www.turbostream-cfd.com).

* Calls to Python functions are faster, following the recent "FastCall"
optimisations that Victor Stinner implemented for CPython 3.6.
See https://bugs.python.org/issue27128 and related issues.

* The new METH_FASTCALL calling convention for PyCFunctions is supported
in CPython 3.6. See https://bugs.python.org/issue27810

* Initial support for using Cython modules in Pyston.
Patch by Boxiang Sun.

* Dynamic Python attributes are allowed on cdef classes if an attribute
``cdef dict __dict__`` is declared in the class. Patch by empyrical.

* Cython implemented C++ classes can make direct calls to base class methods.
Patch by empyrical.

* C++ classes can now have typedef members. STL containers updated with
value_type.

* New directive ``cython.no_gc`` to fully disable GC for a cdef class.
Patch by Claudio Freire.

* Buffer variables are no longer excluded from ``locals()``.
Patch by David Woods.

* Building f-strings is faster, especially when formatting C integers.

* for-loop iteration over "std::string".

* ``libc/math.pxd`` provides ``e`` and ``pi`` as alias constants to simplify
usage as a drop-in replacement for Python's math module.

* Speed up cython.inline().

* Binary lshift operations with small constant Python integers are faster.

* Some integer operations on Python long objects are faster in Python 2.7.

* Support for the C++ ``typeid`` operator.

* Support for bazel using a the pyx_library rule in //Tools:rules.bzl.

Significant Bugs fixed
----------------------

* Division of complex numbers avoids overflow by using Smith's method.

* Some function signatures in ``libc.math`` and ``numpy.pxd`` were incorrect.
Patch by Michael Seifert.

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

* The "%%cython" IPython/jupyter magic now defaults to the language level of
the current jupyter kernel. The language level can be set explicitly with
"%%cython -2" or "%%cython -3".

* The distutils extension ``Cython.Distutils.build_ext`` has now been updated
to use cythonize which properly handles dependencies. The old extension can
still be found in ``Cython.Distutils.old_build_ext`` and is now deprecated.

* ``directive_defaults`` is no longer available in ``Cython.Compiler.Options``,
use ``get_directive_defaults()`` instead.

0.24.1

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

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

* IPython cell magic was lacking a good way to enable Python 3 code semantics.
It can now be used as "%%cython -3".

* Follow a recent change in `PEP 492 <https://www.python.org/dev/peps/pep-0492/>`_
and CPython 3.5.2 that now requires the ``__aiter__()`` method of asynchronous
iterators to be a simple ``def`` method instead of an ``async def`` method.

* Coroutines and generators were lacking the ``__module__`` special attribute.

* C++ ``std::complex`` values failed to auto-convert from and to Python complex
objects.

* Namespaced C++ types could not be used as memory view types due to lack of
name mangling. Patch by Ivan Smirnov.

* Assignments between identical C++ types that were declared with differently
typedefed template types could fail.

* Rebuilds could fail to evaluate dependency timestamps in C++ mode.
Patch by Ian Henriksen.

* Macros defined in the ``distutils`` compiler option do not require values
anymore. Patch by Ian Henriksen.

* Minor fixes for MSVC, Cygwin and PyPy.

0.24

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

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

* `PEP 498 <https://www.python.org/dev/peps/pep-0498/>`_:
Literal String Formatting (f-strings).
Original patch by Jelle Zijlstra.

* `PEP 515 <https://www.python.org/dev/peps/pep-0515/>`_:
Underscores as visual separators in number literals.

* Parser was adapted to some minor syntax changes in Py3.6, e.g.
https://bugs.python.org/issue9232

* The embedded C code comments that show the original source code
can be discarded with the new directive ``emit_code_comments=False``.

* Cpdef enums are now first-class iterable, callable types in Python.

* Ctuples can now be declared in pure Python code.

* Posix declarations for DLL loading and stdio extensions were added.
Patch by Lars Buitinck.

* The Py2-only builtins ``unicode()``, ``xrange()``, ``reduce()`` and
``long`` are now also available in compile time ``DEF`` expressions
when compiling with Py3.

* Exception type tests have slightly lower overhead.
This fixes ticket 868.

* property syntax fully supported in cdef classes, old syntax deprecated.

* C++ classes can now be declared with default template parameters.

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

* C++ exceptions raised by overloaded C++ operators were not always
handled. Patch by Ian Henriksen.

* C string literals were previously always stored as non-const global
variables in the module. They are now stored as global constants
when possible, and otherwise as non-const C string literals in the
generated code that uses them. This improves compatibility with
strict C compiler options and prevents non-const strings literals
with the same content from being incorrectly merged.

* Compile time evaluated ``str`` expressions (``DEF``) now behave in a
more useful way by turning into Unicode strings when compiling under
Python 3. This allows using them as intermediate values in expressions.
Previously, they always evaluated to bytes objects.

* ``isinf()`` declarations in ``libc/math.pxd`` and ``numpy/math.pxd`` now
reflect the actual tristate ``int`` return value instead of using ``bint``.

* Literal assignments to ctuples avoid Python tuple round-trips in some
more corner cases.

* Iteration over ``dict(...).items()`` failed to get optimised when dict
arguments included keyword arguments.

* cProfile now correctly profiles cpdef functions and methods.

Page 7 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.