Persistent

Latest version: v5.2

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

Scan your dependencies

Page 3 of 7

4.6.2

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

- Fix an ``AssertionError`` clearing a non-empty ``PersistentMapping``
that has no connection. See `issue 139
<https://github.com/zopefoundation/persistent/issues/139>`_.

4.6.1

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

- Stop installing C header files on PyPy (which is what persistent before 4.6.0
used to do), fixes `issue 135
<https://github.com/zopefoundation/persistent/issues/135>`_.

4.6.0

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

- Fix slicing of ``PersistentList`` to always return instances of the
same class. It was broken on Python 3 prior to 3.7.4.

- Fix copying of ``PersistentList`` and ``PersistentMapping`` using
``copy.copy`` to also copy the underlying data object. This was
broken prior to Python 3.7.4.

- Update the handling of the ``PURE_PYTHON`` environment variable.
Now, a value of "0" requires that the C extensions be used; any other
non-empty value prevents the extensions from being used. Also, all C
extensions are required together or none of them will be used. This
prevents strange errors that arise from a mismatch of Python and C
implementations. See `issue 131 <https://github.com/zopefoundation/persistent/issues/131>`_.

Note that some private implementation details such as the names of
the pure-Python implementations have changed.

- Fix ``PersistentList`` to mark itself as changed after calling
``clear`` (if needed). See `PR 115
<https://github.com/zopefoundation/persistent/pull/115/>`_.

- Fix ``PersistentMapping.update`` to accept keyword arguments like
the native ``UserDict``. Previously, most uses of keyword arguments
resulted in ``TypeError``; in the undocumented and extremely
unlikely event of a single keyword argument called ``b`` that
happens to be a dictionary, the behaviour will change. Also adjust
the signatures of ``setdefault`` and ``pop`` to match the native
version.

- Fix ``PersistentList.clear``, ``PersistentMapping.clear`` and
``PersistentMapping.popitem`` to no longer mark the object as
changed if it was empty.

- Add preliminary support for Python 3.9a3+.
See `issue 124 <https://github.com/zopefoundation/persistent/issues/124>`_.

- Fix the Python implementation of the PickleCache to be able to store
objects that cannot be weakly referenced. See `issue 133
<https://github.com/zopefoundation/persistent/issues/133>`_.

Note that ``ctypes`` is required to use the Python implementation
(except on PyPy).

4.5.1

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

- Add support for Python 3.8.

- Update documentation to Python 3.

4.5.0

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

- Fully test the C implementation of the PickleCache, and fix
discrepancies between it and the Python implementation:

- The C implementation now raises ``ValueError`` instead of
``AssertionError`` for certain types of bad inputs.
- The Python implementation uses the C wording for error messages.
- The C implementation properly implements ``IPickleCache``; methods
unique to the Python implementation were moved to
``IExtendedPickleCache``.
- The Python implementation raises ``AttributeError`` if a
persistent class doesn't have a ``p_jar`` attribute.

See `issue 102
<https://github.com/zopefoundation/persistent/issues/102>`_.

- Allow sweeping cache without ``cache_size``. ``cache_size_bytes``
works with ``cache_size=0``, no need to set ``cache_size`` to a
large value.

- Require ``CFFI`` on CPython for pure-Python operation. This drops
support for Jython (which was untested). See `issue 77
<https://github.com/zopefoundation/persistent/issues/77>`_.

- Fix DeprecationWarning about ``PY_SSIZE_T_CLEAN``.
See `issue 108 <https://github.com/zopefoundation/persistent/issues/108>`_.

- Drop support for Python 3.4.

4.4.3

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

- Fix the repr of the persistent objects to include the module name
when using the C extension. This matches the pure-Python behaviour
and the behaviour prior to 4.4.0. See `issue 92
<https://github.com/zopefoundation/persistent/issues/92>`_.

- Change the repr of persistent objects to format the OID as in
integer in hexadecimal notation if it is an 8-byte byte string, as
ZODB does. This eliminates some issues in doctests. See `issue 95
<https://github.com/zopefoundation/persistent/pull/95>`_.

Page 3 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.