Persistent

Latest version: v6.1.1

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

Scan your dependencies

Page 4 of 8

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>`_.

4.4.2

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

- Explicitly use unsigned constants for packing and unpacking C
timestamps, fixing an arithmetic issue for GCC when optimizations
are enabled and ``-fwrapv`` is *not* enabled. See `issue 86
<https://github.com/zopefoundation/persistent/issues/86>`_.

4.4.1

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

- Fix installation of source packages on PyPy. See `issue 88
<https://github.com/zopefoundation/persistent/issues/88>`_.

4.4.0

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

- Use unsigned constants when doing arithmetic on C timestamps,
possibly avoiding some overflow issues with some compilers or
compiler settings. See `issue 86
<https://github.com/zopefoundation/persistent/issues/86>`_.

- Change the default representation of ``Persistent`` objects to
include the representation of their OID and jar, if set. Also add
the ability for subclasses to implement ``_p_repr()`` instead of
overriding ``__repr__`` for better exception handling. See `issue 11
<https://github.com/zopefoundation/persistent/issues/11>`_.

- Reach and maintain 100% test coverage.

- Simplify ``__init__.py``, including removal of an attempted legacy
import of ``persistent.TimeStamp``. See `PR 80
<https://github.com/zopefoundation/persistent/pull/80>`_.

- Add support for Python 3.7 and drop support for Python 3.3.

- Build the CFFI modules (used on PyPy or when PURE_PYTHON is set) `at
installation or wheel building time
<https://cffi.readthedocs.io/en/latest/cdef.html#ffibuilder-set-source-preparing-out-of-line-modules>`_
when CFFI is available. This replaces `the deprecated way
<https://cffi.readthedocs.io/en/latest/overview.html#abi-versus-api>`_
of building them at import time. If binary wheels are distributed,
it eliminates the need to have a functioning C compiler to use PyPy.
See `issue 75
<https://github.com/zopefoundation/persistent/issues/75>`_.

- Fix deleting the ``_p_oid`` of a pure-Python persistent object when
it is in a cache.

- Fix deleting special (``_p``) attributes of a pure-Python persistent
object that overrides ``__delattr__`` and correctly calls ``_p_delattr``.

- Remove some internal compatibility shims that are no longer
necessary. See `PR 82 <https://github.com/zopefoundation/persistent/pull/82>`_.

- Make the return value of ``TimeStamp.second()`` consistent across C
and Python implementations when the ``TimeStamp`` was created from 6
arguments with floating point seconds. Also make it match across
trips through ``TimeStamp.raw()``. Previously, the C version could
initially have erroneous rounding and too much false precision,
while the Python version could have too much precision. The raw/repr
values have not changed. See `issue 41
<https://github.com/zopefoundation/persistent/issues/41>`_.

Page 4 of 8

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.