Skip to main content

Translucent persistent objects

Project description

persistent: automatic persistence for Python objects

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.1.0 (2015-05-19)

  • Made 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.1.0.tar.gz (712.8 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.1.0.win-amd64-py3.4.exe (345.2 kB view details)

Uploaded Source

persistent-4.1.0.win-amd64-py3.3.exe (345.3 kB view details)

Uploaded Source

persistent-4.1.0.win-amd64-py3.2.exe (347.4 kB view details)

Uploaded Source

persistent-4.1.0.win-amd64-py2.7.exe (347.4 kB view details)

Uploaded Source

persistent-4.1.0.win-amd64-py2.6.exe (347.4 kB view details)

Uploaded Source

persistent-4.1.0.win32-py3.4.exe (313.6 kB view details)

Uploaded Source

persistent-4.1.0.win32-py3.3.exe (313.7 kB view details)

Uploaded Source

persistent-4.1.0.win32-py3.2.exe (318.9 kB view details)

Uploaded Source

persistent-4.1.0.win32-py2.7.exe (319.5 kB view details)

Uploaded Source

persistent-4.1.0.win32-py2.6.exe (319.5 kB view details)

Uploaded Source

persistent-4.1.0-py3.4-win-amd64.egg (194.4 kB view details)

Uploaded Egg

persistent-4.1.0-py3.4-win32.egg (193.9 kB view details)

Uploaded Egg

persistent-4.1.0-py3.3-win-amd64.egg (198.3 kB view details)

Uploaded Egg

persistent-4.1.0-py3.3-win32.egg (197.8 kB view details)

Uploaded Egg

persistent-4.1.0-py3.2-win-amd64.egg (191.6 kB view details)

Uploaded Egg

persistent-4.1.0-py3.2-win32.egg (191.1 kB view details)

Uploaded Egg

persistent-4.1.0-py2.7-win-amd64.egg (189.4 kB view details)

Uploaded Egg

persistent-4.1.0-py2.7-win32.egg (188.9 kB view details)

Uploaded Egg

persistent-4.1.0-py2.6-win-amd64.egg (189.7 kB view details)

Uploaded Egg

persistent-4.1.0-py2.6-win32.egg (189.2 kB view details)

Uploaded Egg

File details

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

File metadata

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

File hashes

Hashes for persistent-4.1.0.tar.gz
Algorithm Hash digest
SHA256 4bb487b82e185eb29bc3868b1cb30c826634ac609a3f911fab26d23d810f50de
MD5 9b3b71279271463f7d497352adbce5aa
BLAKE2b-256 28797fc1f1fbd704047f610967511891555e3530edcf64776c0e519af8b9bd3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for persistent-4.1.0.win-amd64-py3.4.exe
Algorithm Hash digest
SHA256 39e49f402919de3684e41d371c39d799a1fe96bcf082910d7b48a9efbd8c258a
MD5 844ca809c8230ad63518c81714caff15
BLAKE2b-256 125940a8509c4b11b88236d7c916385bbbc217914912ffbed6ce8a381a99dad2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for persistent-4.1.0.win-amd64-py3.3.exe
Algorithm Hash digest
SHA256 539bd404eb5f5aebe6cfdc195606c1905d9dc3c91e7ff2a01f0088ffc980856d
MD5 3fa658a5b363fdedbb06b1481ad48ce2
BLAKE2b-256 6e9587df627b12a7079dbd5994bc4642149119dcc0d14dcf07be0914a79ceaf8

See more details on using hashes here.

File details

Details for the file persistent-4.1.0.win-amd64-py3.2.exe.

File metadata

File hashes

Hashes for persistent-4.1.0.win-amd64-py3.2.exe
Algorithm Hash digest
SHA256 82a1a919c45c93a04dc98aea50666baa0b1863929e3e5ff8c78eb3e837d0d305
MD5 dd01eb23da9a1a2a7e04e2d17ac92578
BLAKE2b-256 9435dba3f7af15f9ccd5c284924e489c002070b568ff7280978f772c60399014

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for persistent-4.1.0.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 9b6610796f763347bd75a69c6d91c22d46a06af5dafdb44a9f4c7d8b9a08b2b8
MD5 46b8f670c9f6b4352cce2749e6108fcf
BLAKE2b-256 932e4b162e564a9c4a5abc27417303e86df627a853915d5942c023c4a4ec8938

See more details on using hashes here.

File details

Details for the file persistent-4.1.0.win-amd64-py2.6.exe.

File metadata

File hashes

Hashes for persistent-4.1.0.win-amd64-py2.6.exe
Algorithm Hash digest
SHA256 6e1047842414efa483ee89184461a9b82a5898c213ba54d1f414c02c282b8b96
MD5 bb12808983583cb449ec26ce669ebf08
BLAKE2b-256 194e807fae5548c6200a433352f68e0eddc1f1884b471d64593ef0fec28987fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for persistent-4.1.0.win32-py3.4.exe
Algorithm Hash digest
SHA256 376e48249295e465e2d0b3e7b4c4151285062f83e47606998776f8c493378dc6
MD5 f2009f810ced3bf1ca4cdd645303f221
BLAKE2b-256 928740ad99fd038a41c56cb7a5948445d7f12ade18a1e778c5200a80b1c29fd7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for persistent-4.1.0.win32-py3.3.exe
Algorithm Hash digest
SHA256 47453e01e37142a245232345cfb042be511d7f39b1e0558ad3437a3cad5af686
MD5 f46fc6ebc930e233d08d05aed5d260a4
BLAKE2b-256 4a29d556a37d643d6d990a4a807fb18da455cc5e4d90211b801534889509c0a4

See more details on using hashes here.

File details

Details for the file persistent-4.1.0.win32-py3.2.exe.

File metadata

File hashes

Hashes for persistent-4.1.0.win32-py3.2.exe
Algorithm Hash digest
SHA256 37d42ff0786789682af7f60a6a7ab7cfb3a1f8a1ec0f21fb992939d72f0af11c
MD5 311a3fe81dc2705f055a353ebd8a8191
BLAKE2b-256 caf7342e2bac941c01ce070e828594cb8b33e95e86c6897d6ed2d41acd47b902

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for persistent-4.1.0.win32-py2.7.exe
Algorithm Hash digest
SHA256 3dd9ed1108f01d8cf0022cb7850c060c10ee8da8079445b2e9cb2d7cb6d8e111
MD5 020d6dfa985eb08fe8c98a7a2bc31826
BLAKE2b-256 e74361c02066a6d3ed72acd4b5922989071ec7c73c0c3514826294b2e5261e35

See more details on using hashes here.

File details

Details for the file persistent-4.1.0.win32-py2.6.exe.

File metadata

File hashes

Hashes for persistent-4.1.0.win32-py2.6.exe
Algorithm Hash digest
SHA256 93ddc15267c774e5724a447587f653f0e535d91d190043be653ba5e2168033d4
MD5 b7ad03a2137b3af4a7445cfa9c4b2e77
BLAKE2b-256 e3fb2da8421b4bc58c13b586b38b98bf40b30011b8504ab831adbd6388069443

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for persistent-4.1.0-py3.4-win-amd64.egg
Algorithm Hash digest
SHA256 ba8e8b1f282eade60f2f367354eb85350c5ff615fa80e8616e4fb310547d9fbe
MD5 634d326b0118a7ece07453a184996505
BLAKE2b-256 3ef41151f4659352c904b7588ae3e3c6312f9f207a2fd02362c5c4380a7e2d41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for persistent-4.1.0-py3.4-win32.egg
Algorithm Hash digest
SHA256 28e9b66293f8922a93eeaa898b56b5bc65258b5ad6a236694e641a30eecf823a
MD5 be397c9789e13f87a6a4508d9f86b03f
BLAKE2b-256 e5b3e5645425667b6f3f6e652283f4bb5534b6d4a42a26411717c1b6c3c16cfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for persistent-4.1.0-py3.3-win-amd64.egg
Algorithm Hash digest
SHA256 1a8e2efb94427d21e7155193a31f3b8d935db1c61c29d70429e298b2a3cebdd3
MD5 6ca3321534cf322d1a813eaf1f70c9dc
BLAKE2b-256 2bfe6dfcaee57cfe370defd78a1f9931808f076e0753d23899fe378d685ebb73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for persistent-4.1.0-py3.3-win32.egg
Algorithm Hash digest
SHA256 92a321f801f257b805345f43fa111621dba397807487087b225de3b66ce54580
MD5 193bf6ffe8bcaabb711ad55330868aaa
BLAKE2b-256 fcb76bc711b2e1030ed6e15a9369adddd7978c7295c71efdb30c224a6cdfb3e4

See more details on using hashes here.

File details

Details for the file persistent-4.1.0-py3.2-win-amd64.egg.

File metadata

File hashes

Hashes for persistent-4.1.0-py3.2-win-amd64.egg
Algorithm Hash digest
SHA256 80cbe020cf57fd6aff3d5e03b215ded497c6e157f3bec39b3cf7bb405a16ed2e
MD5 b4d53813db7d0fa73f84d87fe48e349c
BLAKE2b-256 4aa19edbd6d63a04766f359d3f4e64186569cf0040691181a780d16c4cde8e8c

See more details on using hashes here.

File details

Details for the file persistent-4.1.0-py3.2-win32.egg.

File metadata

File hashes

Hashes for persistent-4.1.0-py3.2-win32.egg
Algorithm Hash digest
SHA256 c8253449a90737b5d8848819349a7466cb7c94ef5eb51481b5f65ca177bfc1f1
MD5 ac8a8c801cee691ef9b5aaa23c67eb34
BLAKE2b-256 607a00f6cdeff372191ece2cb56dcb8ada51c29b46496b12fcf5f10a80ceef31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for persistent-4.1.0-py2.7-win-amd64.egg
Algorithm Hash digest
SHA256 e5b0164f08d7dc060bbbc50f0b1420ea38d70dbe5387fc60351848be8271722f
MD5 7a60166c5ee77e7abdcc7a6b8cb61976
BLAKE2b-256 8c9bee6521824754a1a0392cd738a258f07a54f33e98efaf9e3179dce969b914

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for persistent-4.1.0-py2.7-win32.egg
Algorithm Hash digest
SHA256 4120bd39186843a1c10e286942a249542fe81d76fa8a51b74ceb9424a14d6674
MD5 67d718bd5ed9ad8d7ce854b94874ee45
BLAKE2b-256 9e27cd0185006eaeda9f63c3754d489193aafcd495e08685bfe3e3150f421b97

See more details on using hashes here.

File details

Details for the file persistent-4.1.0-py2.6-win-amd64.egg.

File metadata

File hashes

Hashes for persistent-4.1.0-py2.6-win-amd64.egg
Algorithm Hash digest
SHA256 ff901e52621af67faf6e76e55586037df73885beb4d8596922a018faf40be686
MD5 9471535d190a0eca038dbc4788080df3
BLAKE2b-256 0ac0e8c12a2587cd2ed0004e3d3b0272401d4db68d1620565e0ba40992aee0a4

See more details on using hashes here.

File details

Details for the file persistent-4.1.0-py2.6-win32.egg.

File metadata

File hashes

Hashes for persistent-4.1.0-py2.6-win32.egg
Algorithm Hash digest
SHA256 6b8d988fe09b308da76deb86f58c680869bf2fe6200d0983a1463a98fc7034ed
MD5 68cb1447bb13149a98b999102de33b4f
BLAKE2b-256 795eea9d9ef114232e3c83532e1595415207b145a2c246faf3d368ec203bc6d7

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