Skip to main content

Translucent persistent objects

Project description

persistent: automatic persistence for Python objects

https://travis-ci.org/zopefoundation/persistent.png?branch=master Documentation Status PyPI 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.

persistent Changelog

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)

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).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

persistent-4.2.3.tar.gz (94.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

persistent-4.2.3.win-amd64-py3.4.exe (350.5 kB view details)

Uploaded Source

persistent-4.2.3.win-amd64-py3.3.exe (350.6 kB view details)

Uploaded Source

persistent-4.2.3.win-amd64-py2.7.exe (351.9 kB view details)

Uploaded Source

persistent-4.2.3.win32-py3.4.exe (318.9 kB view details)

Uploaded Source

persistent-4.2.3.win32-py3.3.exe (319.0 kB view details)

Uploaded Source

persistent-4.2.3.win32-py2.7.exe (323.9 kB view details)

Uploaded Source

persistent-4.2.3-py3.4-win-amd64.egg (199.3 kB view details)

Uploaded Egg

persistent-4.2.3-py3.4-win32.egg (198.7 kB view details)

Uploaded Egg

persistent-4.2.3-py3.3-win-amd64.egg (203.3 kB view details)

Uploaded Egg

persistent-4.2.3-py3.3-win32.egg (202.7 kB view details)

Uploaded Egg

persistent-4.2.3-py2.7-win-amd64.egg (193.2 kB view details)

Uploaded Egg

persistent-4.2.3-py2.7-win32.egg (192.7 kB view details)

Uploaded Egg

persistent-4.2.3-cp36-cp36m-win_amd64.whl (130.2 kB view details)

Uploaded CPython 3.6mWindows x86-64

persistent-4.2.3-cp36-cp36m-win32.whl (127.6 kB view details)

Uploaded CPython 3.6mWindows x86

persistent-4.2.3-cp36-cp36m-macosx_10_6_intel.whl (148.0 kB view details)

Uploaded CPython 3.6mmacOS 10.6+ Intel (x86-64, i386)

persistent-4.2.3-cp35-cp35m-win_amd64.whl (130.2 kB view details)

Uploaded CPython 3.5mWindows x86-64

persistent-4.2.3-cp35-cp35m-win32.whl (127.6 kB view details)

Uploaded CPython 3.5mWindows x86

persistent-4.2.3-cp35-cp35m-macosx_10_6_intel.whl (148.0 kB view details)

Uploaded CPython 3.5mmacOS 10.6+ Intel (x86-64, i386)

persistent-4.2.3-cp34-cp34m-win_amd64.whl (123.3 kB view details)

Uploaded CPython 3.4mWindows x86-64

persistent-4.2.3-cp34-cp34m-win32.whl (122.8 kB view details)

Uploaded CPython 3.4mWindows x86

persistent-4.2.3-cp34-cp34m-macosx_10_6_intel.whl (147.9 kB view details)

Uploaded CPython 3.4mmacOS 10.6+ Intel (x86-64, i386)

persistent-4.2.3-cp33-cp33m-win_amd64.whl (123.3 kB view details)

Uploaded CPython 3.3mWindows x86-64

persistent-4.2.3-cp33-cp33m-win32.whl (122.9 kB view details)

Uploaded CPython 3.3mWindows x86

persistent-4.2.3-cp27-cp27m-win_amd64.whl (123.1 kB view details)

Uploaded CPython 2.7mWindows x86-64

persistent-4.2.3-cp27-cp27m-win32.whl (122.7 kB view details)

Uploaded CPython 2.7mWindows x86

persistent-4.2.3-cp27-cp27m-macosx_10_6_intel.whl (147.3 kB view details)

Uploaded CPython 2.7mmacOS 10.6+ Intel (x86-64, i386)

File details

Details for the file persistent-4.2.3.tar.gz.

File metadata

  • Download URL: persistent-4.2.3.tar.gz
  • Upload date:
  • Size: 94.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for persistent-4.2.3.tar.gz
Algorithm Hash digest
SHA256 0041958884b17f70f817788d7163cc26b88f67bed9f1fab26413204e6f09e296
MD5 8a7d119bd1fc1a3f76a22da50aecffd9
BLAKE2b-256 1c26fb3dd79612eaddf0739316ee734f674446e01b87d672786f8129e7bb6db8

See more details on using hashes here.

File details

Details for the file persistent-4.2.3.win-amd64-py3.4.exe.

File metadata

File hashes

Hashes for persistent-4.2.3.win-amd64-py3.4.exe
Algorithm Hash digest
SHA256 db250e33fe2ada2b21a3b421c64b2bb422f7bd6b0ddc163830d44f97b31e29c3
MD5 577a8420546b6f8d8369c1840fbcd5e3
BLAKE2b-256 68b31d7ad6d3d363c1ee2747b761bec22583a6691f25cfaa59b469b52d8c4629

See more details on using hashes here.

File details

Details for the file persistent-4.2.3.win-amd64-py3.3.exe.

File metadata

File hashes

Hashes for persistent-4.2.3.win-amd64-py3.3.exe
Algorithm Hash digest
SHA256 34a8d2317da8c760fc1fc4befcd6c465242b946470e47e430671cd2bbf786fc9
MD5 6ad5813658e6bdc44d6e4c0ac35a86b2
BLAKE2b-256 55a69ffea154aa7317586593a13f0ba46580067ff74026d35306bdb81c2a080d

See more details on using hashes here.

File details

Details for the file persistent-4.2.3.win-amd64-py2.7.exe.

File metadata

File hashes

Hashes for persistent-4.2.3.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 b0f713a30fe93342d98f416792df9b0071d64d30722474efc1629ca6323ac6cb
MD5 fa0b4feea3bef97525bfba90adb3686e
BLAKE2b-256 2f62d12762e96a0542f7ff3d9422876b073e808b1634e645853d74885bc6f3ac

See more details on using hashes here.

File details

Details for the file persistent-4.2.3.win32-py3.4.exe.

File metadata

File hashes

Hashes for persistent-4.2.3.win32-py3.4.exe
Algorithm Hash digest
SHA256 884eea7345a57a19fa96df570d7ad6c4486bb8564498a410f501bb89ff6265cc
MD5 249dda53b9b18166bdb4799af1507d58
BLAKE2b-256 05434da297f2d9f682ea35b54499e7e48ad1b4e8f27b66d8e9f148e58949eb85

See more details on using hashes here.

File details

Details for the file persistent-4.2.3.win32-py3.3.exe.

File metadata

File hashes

Hashes for persistent-4.2.3.win32-py3.3.exe
Algorithm Hash digest
SHA256 943c78dd821bcc30588cdc4b87834717502b38bba42aa718bbe9b9d20eb4314c
MD5 73e4ade0b688f171a02815b9e32d3565
BLAKE2b-256 058ab5e86fd9ad9d09e8b876bfa2e04ae7fc209f2799a5203533a86bb8f76f2e

See more details on using hashes here.

File details

Details for the file persistent-4.2.3.win32-py2.7.exe.

File metadata

File hashes

Hashes for persistent-4.2.3.win32-py2.7.exe
Algorithm Hash digest
SHA256 331bc2cd4cad223d06e0fef2e3dbb55dca7cdbeafad656e0bbde6fac53b88e96
MD5 59a24d7db511b853aa0a16653cb698b1
BLAKE2b-256 79fa7b5e6900bcd076d9094f5a8b17f25aa342fe63d6867ebdd6c591f26d0779

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-py3.4-win-amd64.egg.

File metadata

File hashes

Hashes for persistent-4.2.3-py3.4-win-amd64.egg
Algorithm Hash digest
SHA256 b5a4f3a734e7409b6087067a12c89ebafc2e8e56686c6ed8a3a2c8c54fbac2a2
MD5 1e887d422f0a006e455dfa14aa8dae8f
BLAKE2b-256 74eb8a0cdbcc2afa4b064ec60275ac042235c1d112548361e88299dfb2fde01a

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-py3.4-win32.egg.

File metadata

File hashes

Hashes for persistent-4.2.3-py3.4-win32.egg
Algorithm Hash digest
SHA256 4b1f182d7c2220ee16dd92dd867b654c1921e949509f4d1679cafaeb9625fae5
MD5 dbe910f70209650ed7b33aa804a45abb
BLAKE2b-256 914cfbbdca15ac9283808b665ccf2dc3842e9243bc1fb5e9082e99afcd78108e

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-py3.3-win-amd64.egg.

File metadata

File hashes

Hashes for persistent-4.2.3-py3.3-win-amd64.egg
Algorithm Hash digest
SHA256 b45a822f521876fbcbb7042622c10a09a4133035ac3bd61806416dc8643dc6f1
MD5 97f0c96d4066097510d9a85f6cf1a6da
BLAKE2b-256 3e292a31f518691881334b2ceb2dfeb14c42a1765caa3c2aeffcc5cd32fdc532

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-py3.3-win32.egg.

File metadata

File hashes

Hashes for persistent-4.2.3-py3.3-win32.egg
Algorithm Hash digest
SHA256 c83f119294c98bc85b85ce1d3848d902d0d6ffaaf2cd59d244199dfc0815e10c
MD5 ceabda119c436a74bd613f45f4079d82
BLAKE2b-256 699b6932856c5144bd12ef84dbef00f81291c155a081898be9e3f1c6b93fcfd4

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-py2.7-win-amd64.egg.

File metadata

File hashes

Hashes for persistent-4.2.3-py2.7-win-amd64.egg
Algorithm Hash digest
SHA256 cdb7e3726683eb9ac49b9e444ce233ac6696400d440d3b282902177d7849921c
MD5 0e9e3a8464617a54c4985cce811429f7
BLAKE2b-256 27dbef98cf1f56417a83d5c22741f943408179c4680384096907a199b68b38a3

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-py2.7-win32.egg.

File metadata

File hashes

Hashes for persistent-4.2.3-py2.7-win32.egg
Algorithm Hash digest
SHA256 ba53ac2a8947e3646fef1fea56495debbd85ad5383474c108e49698d6bab6efa
MD5 756f7d0894500997a7caeaa154436ff7
BLAKE2b-256 0a6c9b35c17718866368ef32e8296c3aee155fd76c2a5b69d6e42350124fba7f

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 e91a9b75899516871ee86a6e4a62c37504853902ae49c880e5e1bfe2aea3c7d6
MD5 8774aa8a8ab6e3ef0d3201f25eac3512
BLAKE2b-256 308c10fc0f53ff6c3b806933895cee527ab6e0e4fb1da50275d3d5090bc7f13f

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp36-cp36m-win32.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 51ad66bb79e5b5de0d146aad779e7cda80d85ddc9513ce0a47f33b78ffc2b281
MD5 e40c0ec897a9a0724baddf519b7f35c5
BLAKE2b-256 1be31672e9e8ec9738cd2dc7f57764a34d6671a24a91e58a502b655a7374338f

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp36-cp36m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp36-cp36m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 bb1c5390b3e1bac05b90497011d37507bb251f14e61422efe5e70c09ceefaac2
MD5 5b4a1a69bf069bcf6dae46b6910ce296
BLAKE2b-256 1166da3caade6f169bd9be0f4f7627c182b6d0669d98da5748dbfb01a5962755

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp35-cp35m-win_amd64.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 b567676c40af587682b98c0f106a135e0c14bd094bc52950927575b78084ad87
MD5 d83052eab9634f523f7ec2458f28370a
BLAKE2b-256 01d97b4ea352891344a1d0de821b6c55446feb304b30f820d886f40fc751e1b5

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp35-cp35m-win32.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 ff52def495b5388c74934b78db0a9b4378a72706eab051240228ed7db7a94020
MD5 777ae62df1ab9ea4ead5f06b1e9f7d7e
BLAKE2b-256 3b6e97a3f600f62e17d5882347a97e7d1f4300fc04624c43415d64c2da3642b2

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp35-cp35m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp35-cp35m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 67358163732a1b972ead7f087d00c592452bd9ce77971b05a86ce8200d7a254d
MD5 88251e864e55449a3442c2b811122666
BLAKE2b-256 c2a36d4447ebd9ccb3c82295683b3e2c89c4e7d87b4429a823fe619e36e2c49f

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp34-cp34m-win_amd64.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp34-cp34m-win_amd64.whl
Algorithm Hash digest
SHA256 e613b4164266efc0f779454aeab0f62bf80a06b895ab616b574118b8c49048b2
MD5 17924fc02b13c157a1afc7b06c9d783c
BLAKE2b-256 04ee0e5f3cf09b1a6fc43ef575d09bfb67b455036054fe1d2c7a496b9bbbb4b2

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp34-cp34m-win32.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp34-cp34m-win32.whl
Algorithm Hash digest
SHA256 7bbd98283e61bf23ab5d81f0a1cf50f66c81677d1c4649e50bc93022532048a8
MD5 cbb9666cb575563dba332f235118ef79
BLAKE2b-256 ecb0348c7e6e1c8a2365ada9fce4adacd179f1583c89bc267ee42afb54d7cb9c

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp34-cp34m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp34-cp34m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 aa43fdb1b84a431b9f7557d1b74e4e7ab0889effb731fe20c568aadfd7301326
MD5 d19b19048f69cad3f88d223a94170ad4
BLAKE2b-256 643e47248317273bb7a74667a9fa894750b498b2a32d89bf841382ecf3b25146

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp33-cp33m-win_amd64.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp33-cp33m-win_amd64.whl
Algorithm Hash digest
SHA256 2151f15a6dffda89636ac1fca612c693b6981a3dc3e035795860a090c6ab8902
MD5 d94403991df62165e7df6d01028d3b77
BLAKE2b-256 a5f95abb3fd21a8845d550601f6ad30b888dcb6c687618b1429da7349fa1e10c

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp33-cp33m-win32.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp33-cp33m-win32.whl
Algorithm Hash digest
SHA256 6558799fec000a4894aec2ec6dfbbc519d345750cf5e59ff73a4b83921919cfd
MD5 3ddcc63904cd6131adafc442417e6d9e
BLAKE2b-256 e14c66cb1255a713118d3b7478394f5325912654a021a952d97eb3fd53a7263d

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp27-cp27m-win_amd64.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 7c72b09314f0abfb76c3daf85b5efd7c31cb7e4debb3f6762e13618e586fa0de
MD5 c75fbee95768eb0ea7b6135bd90a6e0f
BLAKE2b-256 6e6b7d8e2bf591a946111279958b4ca74af6dc764cc35e47d31ae87e2ddbe725

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp27-cp27m-win32.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp27-cp27m-win32.whl
Algorithm Hash digest
SHA256 76b217077051249ccc0239197fb9f6d064c693c363d4ce81e650e66685eb6566
MD5 edfeaea69614168c50772bacea4a6b06
BLAKE2b-256 d20b65bd99a2f08f4095e081b91064644243460239e3d65e61d555ccbbc2ad65

See more details on using hashes here.

File details

Details for the file persistent-4.2.3-cp27-cp27m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for persistent-4.2.3-cp27-cp27m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 0adb6f41865feb744bd170633a6cf7220724edb19bf97e471777c4eb4af0cc18
MD5 578e5629174a0e4f1947ba6ca4754b61
BLAKE2b-256 bdcb8fe35978b0cf0ec2576effe814f179a27d14c203f6ec0867ae18fc852bb2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page