Persistent

Latest version: v6.1.1

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

Scan your dependencies

Page 5 of 8

4.3.0

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

- Fix the possibility of a rare crash in the C extension when
deallocating items. See https://github.com/zopefoundation/persistent/issues/66

- Change cPickleCache's comparison of object sizes to determine
whether an object can go in the cache to use ``PyObject_TypeCheck()``.
This matches what the pure Python implementation does and is a
stronger test that the object really is compatible with the cache.
Previously, an object could potentially include ``cPersistent_HEAD``
and *not* set ``tp_base`` to ``cPersistenceCAPI->pertype`` and still
be eligible for the pickle cache; that is no longer the case. See
`issue 69 <https://github.com/zopefoundation/persistent/issues/69>`_.

4.2.4.2

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

- Packaging-only release: fix Python 2.7 ``manylinux`` wheels.

4.2.4.1

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

- Packaging-only release: get ``manylinux`` wheel built automatically.

4.2.4

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

- Avoid raising a ``SystemError: error return without exception set``
when loading an object with slots whose jar generates an exception
(such as a ZODB ``POSKeyError``) in ``setstate``.

4.2.3

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

- Fix the hashcode of Python ``TimeStamp`` objects on 64-bit Python on
Windows. See https://github.com/zopefoundation/persistent/pull/55

- Stop calling ``gc.collect`` every time ``PickleCache.incrgc`` is called (every
transaction boundary) in pure-Python mode (PyPy). This means that
the reported size of the cache may be wrong (until the next GC), but
it is much faster. This should not have any observable effects for
user code.

- Stop clearing the dict and slots of objects added to
``PickleCache.new_ghost`` (typically these values are passed to
``__new__`` from the pickle data) in pure-Python mode (PyPy). This
matches the behaviour of the C code.

- Add support for Python 3.6.

- Fix ``__setstate__`` interning when ``state`` parameter is not a built-in dict

4.2.2

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

- Drop use of ``ctypes`` for determining maximum integer size, to increase
pure-Python compatibility. See https://github.com/zopefoundation/persistent/pull/31

- Ensure that ``__slots__`` attributes are cleared when a persistent
object is ghostified. (This excluses classes that override
``__new__``. See
https://github.com/zopefoundation/persistent/wiki/Notes_on_state_new_and_slots
if you're curious.)

Page 5 of 8

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.