123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412 |
- Metadata-Version: 2.1
- Name: persistent
- Version: 4.4.3
- Summary: Translucent persistent objects
- Home-page: https://github.com/zopefoundation/persistent/
- Author: Zope Corporation
- Author-email: zodb-dev@zope.org
- License: ZPL 2.1
- Platform: any
- Classifier: Development Status :: 6 - Mature
- Classifier: License :: OSI Approved :: Zope Public License
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 2
- Classifier: Programming Language :: Python :: 2.7
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3.4
- Classifier: Programming Language :: Python :: 3.5
- Classifier: Programming Language :: Python :: 3.6
- Classifier: Programming Language :: Python :: 3.7
- Classifier: Programming Language :: Python :: Implementation :: CPython
- Classifier: Programming Language :: Python :: Implementation :: PyPy
- Classifier: Framework :: ZODB
- Classifier: Topic :: Database
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
- Classifier: Operating System :: Microsoft :: Windows
- Classifier: Operating System :: Unix
- Requires-Dist: zope.interface
- Provides-Extra: docs
- Requires-Dist: Sphinx; extra == 'docs'
- Requires-Dist: repoze.sphinx.autointerface; extra == 'docs'
- Provides-Extra: test
- Requires-Dist: zope.testrunner; extra == 'test'
- Requires-Dist: manuel; extra == 'test'
- Requires-Dist: cffi; (platform_python_implementation == "CPython") and extra == 'test'
- Provides-Extra: testing
-
- ``persistent``: automatic persistence for Python objects
- =========================================================
-
- .. image:: https://travis-ci.org/zopefoundation/persistent.svg?branch=master
- :target: https://travis-ci.org/zopefoundation/persistent
-
- .. image:: https://coveralls.io/repos/github/zopefoundation/persistent/badge.svg?branch=master
- :target: https://coveralls.io/github/zopefoundation/persistent?branch=master
-
- .. image:: https://readthedocs.org/projects/persistent/badge/?version=latest
- :target: http://persistent.readthedocs.org/en/latest/
- :alt: Documentation Status
-
- .. image:: https://img.shields.io/pypi/v/persistent.svg
- :target: https://pypi.org/project/persistent
- :alt: Latest release
-
- .. image:: https://img.shields.io/pypi/pyversions/persistent.svg
- :target: https://pypi.org/project/persistent
- :alt: Python versions
-
- This package contains a generic persistence implementation for Python. It
- forms the core protocol for making objects interact "transparently" with
- a database such as the ZODB.
-
- Please see the Sphinx documentation (``docs/index.rst``) for further
- information, or view the documentation at Read The Docs, for either
- the latest (``http://persistent.readthedocs.io/en/latest/``) or stable
- release (``http://persistent.readthedocs.io/en/stable/``).
-
- .. note::
-
- Use of this standalone ``persistent`` release is not recommended or
- supported with ZODB < 3.11. ZODB 3.10 and earlier bundle their own
- version of the ``persistent`` package.
-
-
- ``persistent`` Changelog
- ========================
-
- 4.4.3 (2018-10-22)
- ------------------
-
- - 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 (2018-08-28)
- ------------------
-
- - 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 (2018-08-23)
- ------------------
-
- - Fix installation of source packages on PyPy. See `issue 88
- <https://github.com/zopefoundation/persistent/issues/88>`_.
-
-
- 4.4.0 (2018-08-22)
- ------------------
-
- - 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>`_.
-
- 4.3.0 (2018-07-30)
- ------------------
-
- - 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 (2017-04-23)
- --------------------
-
- - Packaging-only release: fix Python 2.7 ``manylinux`` wheels.
-
-
- 4.2.4.1 (2017-04-21)
- --------------------
-
- - Packaging-only release: get ``manylinux`` wheel built automatically.
-
-
- 4.2.4 (2017-03-20)
- ------------------
-
- - 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 (2017-03-08)
- ------------------
-
- - 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 (2016-11-29)
- ------------------
-
- - 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.)
-
- 4.2.1 (2016-05-26)
- ------------------
-
- - Fix the hashcode of C ``TimeStamp`` objects on 64-bit Python 3 on
- Windows.
-
- 4.2.0 (2016-05-05)
- ------------------
-
- - Fixed the Python(/PYPY) implementation ``TimeStamp.timeTime`` method
- to have subsecond precision.
-
- - When testing ``PURE_PYTHON`` environments under ``tox``, avoid poisoning
- the user's global wheel cache.
-
- - Add support for Python 3.5.
-
- - Drop support for Python 2.6 and 3.2.
-
- 4.1.1 (2015-06-02)
- ------------------
-
- - Fix manifest and re-upload to fix stray files included in 4.1.0.
-
- 4.1.0 (2015-05-19)
- ------------------
-
- - Make the Python implementation of ``Persistent`` and ``PickleCache``
- behave more similarly to the C implementation. In particular, the
- Python version can now run the complete ZODB and ZEO test suites.
-
- - Fix the hashcode of the Python ``TimeStamp`` on 32-bit platforms.
-
- 4.0.9 (2015-04-08)
- ------------------
-
- - Make the C and Python ``TimeStamp`` objects behave more alike. The
- Python version now produces the same ``repr`` and ``.raw()`` output as
- the C version, and has the same hashcode. In addition, the Python
- version is now supports ordering and equality like the C version.
-
- - Intern keys of object state in ``__setstate__`` to reduce memory usage
- when unpickling multiple objects with the same attributes.
-
- - Add support for PyPy3.
-
- - 100% branch coverage.
-
- 4.0.8 (2014-03-20)
- ------------------
-
- - Add support for Python 3.4.
-
- - In pure-Python ``Persistent``, avoid loading state in ``_p_activate``
- for non-ghost objects (which could corrupt their state). (PR #9)
-
- - In pure-Python, and don't throw ``POSKeyError`` if ``_p_activate`` is
- called on an object that has never been committed. (PR #9)
-
- - In pure-Python ``Persistent``, avoid calling a subclass's ``__setattr__``
- at instance creation time. (PR #8)
-
- - Make it possible to delete ``_p_jar`` / ``_p_oid`` of a pure-Python
- ``Persistent`` object which has been removed from the jar's cache
- (fixes aborting a ZODB Connection that has added objects). (PR #7)
-
- 4.0.7 (2014-02-20)
- ------------------
-
- - Avoid a KeyError from ``_p_accessed()`` on newly-created objects under
- pure-Python: these objects may be assigned to a jar, but not yet added
- to its cache. (PR #6)
-
- - Avoid a failure in ``Persistent.__setstate__`` when the state dict
- contains exactly two keys. (PR #5)
-
- - Fix a hang in ``picklecache`` invalidation if OIDs are manually passed
- out-of-order. (PR #4)
-
- - Add ``PURE_PYTHON`` environment variable support: if set, the C
- extensions will not be built, imported, or tested.
-
-
- 4.0.6 (2013-01-03)
- ------------------
-
- - Updated Trove classifiers.
-
-
- 4.0.5 (2012-12-14)
- ------------------
-
- - Fixed the C-extensions under Py3k (previously they compiled but were
- not importable).
-
-
- 4.0.4 (2012-12-11)
- ------------------
-
- - Added support for Python 3.3.
-
- - C extenstions now build under Python 3.2, passing the same tests as
- the pure-Python reference implementation.
-
- 4.0.3 (2012-11-19)
- ------------------
-
- - Fixed: In the C implimentation, an integer was compared with a
- pointer, with undefined results and a compiler warning.
-
- - Fixed: the Python implementation of the ``_p_estimated_size`` propety
- didn't support deletion.
-
- - Simplified implementation of the ``_p_estimated_size`` property to
- only accept integers. A TypeError is raised if an incorrect type is
- provided.
-
-
- 4.0.2 (2012-08-27)
- ------------------
-
- - Correct initialization functions in renamed ``_timestamp`` extension.
-
-
- 4.0.1 (2012-08-26)
- ------------------
-
- - Worked around test failure due to overflow to long on 32-bit systems.
-
- - Renamed ``TimeStamp`` extension module to avoid clash with pure-Python
- ``timestamp`` module on case-insensitive filesystems.
-
- N.B: the canonical way to import the ``TimeStamp`` class is now::
-
- from persistent.timestamp import TimeStamp
-
- which will yield the class from the extension module (if available),
- falling back to the pure-Python reference implementation.
-
-
- 4.0.0 (2012-08-11)
- ------------------
-
- Platform Changes
- ################
-
- - Added explicit support for Python 3.2 and PyPy.
-
- - Note that the C implementations of Persistent, PickleCache, and Timestamp
- are not built (yet) on these platforms.
-
- - Dropped support for Python < 2.6.
-
- Testing Changes
- ###############
-
- - 100% unit test coverage.
-
- - Removed all ``ZODB``-dependent tests:
-
- - Rewrote some to avoid the dependency
-
- - Cloned the remainder into new ``ZODB.tests`` modules.
-
- - Refactored some doctests refactored as unittests.
-
- - Completed pure-Python reference implementations of 'Persistent',
- 'PickleCache', and 'TimeStamp'.
-
- - All covered platforms tested under ``tox``.
-
- - Added support for continuous integration using ``tox`` and ``jenkins``.
-
- - Added ``setup.py dev`` alias (installs ``nose`` and ``coverage``).
-
- - Dropped dependency on ``zope.testing`` / ``zope.testrunner``: tests now
- run with ``setup.py test``.
-
- Documentation Changes
- #####################
-
- - Refactored many Doctests as Sphinx documentation (snippets are exercised
- via 'tox').
-
- - Added ``setup.py docs`` alias (installs ``Sphinx`` and
- ``repoze.sphinx.autointerface``).
-
|