Skip to main content

Translucent persistent objects

Project description

persistent: automatic persistence for Python objects

https://github.com/zopefoundation/persistent/actions/workflows/tests.yml/badge.svg https://coveralls.io/repos/github/zopefoundation/persistent/badge.svg?branch=master Documentation Status Latest release 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 (https://persistent.readthedocs.io/en/latest/) or stable release (https://persistent.readthedocs.io/en/stable/).

persistent Changelog

6.1 (2024-09-17)

6.0 (2024-05-30)

  • Drop support for Python 3.7.

  • Build Windows wheels on GHA.

5.2 (2024-02-16)

  • Add preliminary support for Python 3.13a3.

5.1 (2023-10-05)

  • Add support for Python 3.12.

5.0 (2023-01-09)

  • Build Linux binary wheels for Python 3.11.

  • Drop support for Python 2.7, 3.5, 3.6.

4.9.3 (2022-11-16)

  • Add support for building arm64 wheels on macOS.

4.9.2 (2022-11-03)

  • Update Python 3.11 support to final release.

4.9.1 (2022-09-16)

  • Update Python 3.11 support to 3.11.0-rc1.

  • Disable unsafe math optimizations in C code. See pull request 176.

4.9.0 (2022-03-10)

  • Add support for Python 3.11 (as of 3.11a5).

4.8.0 (2022-03-07)

  • Switch package to src-layout, this is a packaging only change. (#168)

  • Add support for Python 3.10.

4.7.0 (2021-04-13)

  • Add support for Python 3.9.

  • Move from Travis CI to Github Actions.

  • Supply manylinux wheels for aarch64 (ARM).

  • Fix the pure-Python implementation to activate a ghost object when setting its __class__ and __dict__. This matches the behaviour of the C implementation. See issue 155.

  • Fix the CFFI cache implementation (used on CPython when PURE_PYTHON=1) to not print unraisable AttributeErrors from _WeakValueDictionary during garbage collection. See issue 150.

  • Make the pure-Python implementation of the cache run a garbage collection (gc.collect()) on full_sweep, incrgc and minimize if it detects that an object that was weakly referenced has been ejected. This solves issues on PyPy with ZODB raising ConnectionStateError when there are persistent zope.interface utilities/adapters registered. This partly reverts a change from release 4.2.3.

4.6.4 (2020-03-26)

  • Fix an overly specific test failure using zope.interface 5. See issue 144.

  • Fix two reference leaks that could theoretically occur as the result of obscure errors. See issue 143.

4.6.3 (2020-03-18)

  • Fix a crash in the test suite under a 32-bit CPython on certain 32-bit platforms. See issue 137. Fix by Jerry James.

4.6.2 (2020-03-12)

  • Fix an AssertionError clearing a non-empty PersistentMapping that has no connection. See issue 139.

4.6.1 (2020-03-06)

  • Stop installing C header files on PyPy (which is what persistent before 4.6.0 used to do), fixes issue 135.

4.6.0 (2020-03-05)

  • Fix slicing of PersistentList to always return instances of the same class. It was broken on Python 3 prior to 3.7.4.

  • Fix copying of PersistentList and PersistentMapping using copy.copy to also copy the underlying data object. This was broken prior to Python 3.7.4.

  • Update the handling of the PURE_PYTHON environment variable. Now, a value of “0” requires that the C extensions be used; any other non-empty value prevents the extensions from being used. Also, all C extensions are required together or none of them will be used. This prevents strange errors that arise from a mismatch of Python and C implementations. See issue 131.

    Note that some private implementation details such as the names of the pure-Python implementations have changed.

  • Fix PersistentList to mark itself as changed after calling clear (if needed). See PR 115.

  • Fix PersistentMapping.update to accept keyword arguments like the native UserDict. Previously, most uses of keyword arguments resulted in TypeError; in the undocumented and extremely unlikely event of a single keyword argument called b that happens to be a dictionary, the behaviour will change. Also adjust the signatures of setdefault and pop to match the native version.

  • Fix PersistentList.clear, PersistentMapping.clear and PersistentMapping.popitem to no longer mark the object as changed if it was empty.

  • Add preliminary support for Python 3.9a3+. See issue 124.

  • Fix the Python implementation of the PickleCache to be able to store objects that cannot be weakly referenced. See issue 133.

    Note that ctypes is required to use the Python implementation (except on PyPy).

4.5.1 (2019-11-06)

  • Add support for Python 3.8.

  • Update documentation to Python 3.

4.5.0 (2019-05-09)

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

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

  • Fix DeprecationWarning about PY_SSIZE_T_CLEAN. See issue 108.

  • Drop support for Python 3.4.

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.

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

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.

4.4.1 (2018-08-23)

  • Fix installation of source packages on PyPy. See issue 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.

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

  • Reach and maintain 100% test coverage.

  • Simplify __init__.py, including removal of an attempted legacy import of persistent.TimeStamp. See PR 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 when CFFI is available. This replaces the deprecated way 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.

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

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

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.

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)

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-6.1.tar.gz (128.7 kB view details)

Uploaded Source

Built Distributions

persistent-6.1-cp313-cp313-win_amd64.whl (128.3 kB view details)

Uploaded CPython 3.13 Windows x86-64

persistent-6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (240.7 kB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARM64

persistent-6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (239.0 kB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

persistent-6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (229.2 kB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

persistent-6.1-cp313-cp313-macosx_11_0_arm64.whl (147.1 kB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

persistent-6.1-cp313-cp313-macosx_10_9_x86_64.whl (145.1 kB view details)

Uploaded CPython 3.13 macOS 10.9+ x86-64

persistent-6.1-cp312-cp312-win_amd64.whl (128.3 kB view details)

Uploaded CPython 3.12 Windows x86-64

persistent-6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (241.0 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

persistent-6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (239.3 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

persistent-6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (229.5 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

persistent-6.1-cp312-cp312-macosx_11_0_arm64.whl (147.1 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

persistent-6.1-cp312-cp312-macosx_10_9_x86_64.whl (145.2 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

persistent-6.1-cp311-cp311-win_amd64.whl (128.0 kB view details)

Uploaded CPython 3.11 Windows x86-64

persistent-6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (235.2 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

persistent-6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (232.8 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

persistent-6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (225.7 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

persistent-6.1-cp311-cp311-macosx_11_0_arm64.whl (147.0 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

persistent-6.1-cp311-cp311-macosx_10_9_x86_64.whl (144.6 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

persistent-6.1-cp310-cp310-win_amd64.whl (128.0 kB view details)

Uploaded CPython 3.10 Windows x86-64

persistent-6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (232.3 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

persistent-6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (229.8 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

persistent-6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (222.8 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

persistent-6.1-cp310-cp310-macosx_11_0_arm64.whl (147.0 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

persistent-6.1-cp310-cp310-macosx_10_9_x86_64.whl (144.6 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

persistent-6.1-cp39-cp39-win_amd64.whl (128.0 kB view details)

Uploaded CPython 3.9 Windows x86-64

persistent-6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (231.4 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

persistent-6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (229.0 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

persistent-6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (222.0 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

persistent-6.1-cp39-cp39-macosx_11_0_arm64.whl (147.0 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

persistent-6.1-cp39-cp39-macosx_10_9_x86_64.whl (144.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

persistent-6.1-cp38-cp38-win_amd64.whl (128.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

persistent-6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (233.9 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

persistent-6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (231.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

persistent-6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (224.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

persistent-6.1-cp38-cp38-macosx_11_0_arm64.whl (147.0 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

persistent-6.1-cp38-cp38-macosx_10_9_x86_64.whl (144.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: persistent-6.1.tar.gz
  • Upload date:
  • Size: 128.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for persistent-6.1.tar.gz
Algorithm Hash digest
SHA256 aa17e6e4849738d080706ebe6c79ec8db0f4ab2c87975f9b34249eaf7a965867
MD5 48ec39a6620f1f838d09b5a42014f4db
BLAKE2b-256 33ff6e576c834287031b2482d17ecdee7541bfc8e514c684c2e2b93599073708

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: persistent-6.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 128.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0rc2

File hashes

Hashes for persistent-6.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9839c16817fca6eb076137882f652dfdd7ed1e06154ac2b415bfee97f65bbea5
MD5 7de467b2fdeffc19c892a5490a5f80b7
BLAKE2b-256 ddf30c18a8523d5eeb2d05d6e1b5587b37e55330a245cdfdde82659ebbcdaada

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2c6c2798b565ac1903b7062ef11a61260cd44257ab1e50c9d6819f42d8598e68
MD5 22aabbc0f268b507c6cd4ca7ec21ddac
BLAKE2b-256 0b10b131a6fb015ed45e89147b751042c91837bb63173e741b1748e0722d6cb5

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f262511534adea3157afc606aa93f041e62479cc2f238505eeb202e2f117dc22
MD5 8ab075b776cebb1da2f0f269531e5a93
BLAKE2b-256 9690f86528728293c2604d6b7c9824db259a566d01688269eab52232436b7e76

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d14253dc90645d50241d0a7f57e04bffcda009cd6f9a96900b0c4d8071add781
MD5 c4d89569087504d22c4752582ee0c990
BLAKE2b-256 b4072229f5784aa54df3a3109baeb20783cc63e773b4710b18851c55c696433a

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f18bf43306bb590e43c97c525000b76cb9ed4478f9bbc10ba9ee817648c9b0a1
MD5 c46f2245b584266cd8ed5672c22dd699
BLAKE2b-256 54510ffa0146108722dec0226a7b9e5fa84e4b4f801b0713ce6564c06fd8bc98

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp313-cp313-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ade3bfe8f8583c504368d6cb122cc10cdbd7400bc65504b7d601c51a490b1702
MD5 360af0ab8ab66afe353f93be3c9dcc3c
BLAKE2b-256 7802f09f7e3712baa1a097d0994fac9b8656cc111d8f6051eb3ad317ffdbe872

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: persistent-6.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 128.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for persistent-6.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 93b5943db6795f06f85010f9f038dc10ddd03c017dccf5ba87ef22ad6370e11f
MD5 75e581d2c880a48d8a20cd0c48dcde12
BLAKE2b-256 2c6883080646ba4667dace35769879eec358912d2e30e67b9592dcfa6f223339

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d626204286f84cfd4feef39387732d18832c76afbcba2bba4eee03b1ae759e8a
MD5 a66374a3d2ee4fb497bb06a33d6c3f9c
BLAKE2b-256 9328f9772cd88dfe6854c8865e7c61aecaa6a0ad6e668c848968c1cdef31dc0c

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2111566a7ac526240e37a4b2363cb9ebe40838369d363950222f15b5482cf944
MD5 d0b446765e6c83865707bf5022d89b47
BLAKE2b-256 98d8f53cca4242e564c4be0e11846c57d8db0b9559fe038866061f02c891460a

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c741c8461f9454828650850fc21687b57801839bb960c080f5823f54cd49fb85
MD5 d9ad192046e59fdc24fc81f8323e3228
BLAKE2b-256 8e557095d734ad7e6895d2d474be52afe6643d9d67b4927f76afd8dbef19a112

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4b15cd9ad8810388b1ae43d52733cafc04307cc9b3af63619eb8164d90ae14d6
MD5 8424c7fc793984c9d82a4d3523127ec6
BLAKE2b-256 cc20454b68954148f2b3607880b6b5991fea8ca402d8d2dd9aae3c359936667f

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8aafc5b8d7bc918997a22ea168a38e06f4343013a8fa4cbc857a9fab251367ad
MD5 764619026351ada64f5ee7a347d4721d
BLAKE2b-256 2299b96ab1f9b6e57a3e74463e34332aa730651729faeef9c88017dfd387a71f

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: persistent-6.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 128.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for persistent-6.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 89c6420275d4f548cf7a3426b02b9c5f7a8fdeb66c413d137141f386168e797d
MD5 bd4cddd8af8b523574658a798b6e5c6c
BLAKE2b-256 44bb2be8989dfdeb02a15a167cd0f0ac8b081afe9f467a3eba086f98fdd910b0

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5ab3054949ce3e358b044871b39e620aa549a81bf994ba223018d167c868d3b7
MD5 01cdd0a16d64233e137687d2b3a42774
BLAKE2b-256 9f58944826ef5b0298eb57c6f51f701501816b98628d07b673415cb04deeab80

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 264ea5bc7958000e592ff9ad527148ea2e44d88e63692f4a05033c371e340972
MD5 4a940cf77adf9ffce28e4af0be66b02a
BLAKE2b-256 f0bcb491c3590a930bcb0fd545190cdd94c15c848dcdcdf8b6212b159bcc5c60

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3be0c172aa113a6e51dcb88d43378f284aba5c4d808daf9c449cd3450e5bc374
MD5 b9ffdca9f34f0b41525b648a0378543d
BLAKE2b-256 15b76321a319f11b452b11c463b703c1b15fd743b8f81f65f1f23471931a3e35

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c04dee2c1bdc9f7c9b53888ca2cf9fe80d2be7f15750571dab5b76feb4b26ab
MD5 eef875ffa16a36d78f6f10eaa78d1ef9
BLAKE2b-256 fea13751c41c1f7dfb3acffed72ac884d557f68a8d8373ae35266a8e2325e539

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9e77ab43c8ad50b9e3d521c5f33bf85be78765553dae6cc8208b3f3118bef2ff
MD5 7616dd26e524024b467eed2d8aa3cf60
BLAKE2b-256 08e21356c7537d5481a3e2a1d322558fe73d8e014dc413ffd5ea0a3393b1fea3

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: persistent-6.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 128.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.11

File hashes

Hashes for persistent-6.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 19c8c3f019addabe97714d4a8611dab990a6e7cfd07960705ae23bc89de536de
MD5 df6eaa7f89396e25838088fd3e60e64f
BLAKE2b-256 cd6ee687b6116e02ccb8a291e2e83c81935e7d7d5d3ec81aa4cacb7813444d9f

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1a6f8abd1b3a0beabee3083ff30ce12489f99942b106d86d9399c3b5639a8cb5
MD5 0b4e013943aeb2f092b77132c2bbb19b
BLAKE2b-256 1f61018e06eeefde5d81b63a4cf9ef610c0348854c86cae0116241965c0bd2bd

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 86557a656214a6bf73c2d520ebc696640257bb77cedb6d9ed41757e4011bce89
MD5 a9d864c3e0022dd284b6546b66b8659b
BLAKE2b-256 72fc5c45d6b0ba534adfb1657fe0960d0ec0c99bcb351f52e5bbb00f246eb9c6

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ad33efef3c26ba3827d163f286cd6ce7dd45e5bb28d3bcd80939b839357205e3
MD5 d3a3e2d57147dacc2579aeeee1d87f11
BLAKE2b-256 ec7da46a76c5ca94fde9f0987a773c50cf3bf962ada0c2d9c74dd1c682acef95

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 126ccf1bb2860f28a931271071bd73aad820bcee87913fe7613eb51e045c10e1
MD5 03c5cf3806021f3888d04cb2cfe96203
BLAKE2b-256 cacf4af932d1a79b89daa8b0379595483e1c27fe9171dd790c15cae716812c7b

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8d28e79d5ccac8c77f807274d900628f5dd6ed9b56e46b6f2068fae40a895ea7
MD5 b38ca0b72859eb3e4175572d98d0bed4
BLAKE2b-256 a52aaec035db2578c62a8664ccb9fbc3111ac15af1913f16a737f8e04c0c039f

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: persistent-6.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 128.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.13

File hashes

Hashes for persistent-6.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7602ab4ad86d82d9aeb41d67c34c898e67ccaa60dbc206af8e03433a4ec78902
MD5 64309daf89dd84ef55c88f5a4156b660
BLAKE2b-256 227a61cced0c715582ef6b7b9fa55c505e434a8e7f7ad84e0bd44c2a1adcba90

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 af49c9e7e212c7272d3e927b69cf2cca26d390168cac66a004bb3e474bb18615
MD5 9a95b434996d8a4d60a7051aee7180bb
BLAKE2b-256 955d1009429c217670657f473e4a2065ae4418650efc3c7baa0378156cdee14a

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5029dfbb1156ee3492bb88a55aad6401ec404532617eaa50855057cfd095738f
MD5 dce38f0c1f0c92b5bb71d1baff9c9451
BLAKE2b-256 3cf1043f6911e26143cc64555cfb6020ad13285b54350db1c78e2f135fe3e918

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ab119c1db5a7d3fe5380809d038eef5518e32da6ddf0d2fc3045dc180253b695
MD5 d25cd27ae9bb97887a22e3f46fc63c67
BLAKE2b-256 30af4ac3ea4d5426d2bd4a5d2f523b5054875bad366f92dc0b94e7169a41f7b3

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9896dc5bf945a3427e7a4e310b2e30266e90df75de5288e4cf9376b110f08fc4
MD5 9234ab3f24c8c093523500339e7a8e93
BLAKE2b-256 683dbe1e0eb7ad5e24ad6f50c18a7a9e33413fe3e0f250864bfe840c9e87e734

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 75a84482a0d05868f56630efcc2c36ad0218bc52e5f4c9c4f7bb38450755c942
MD5 9be996af114cd7ef5f5ee3c827b71770
BLAKE2b-256 85745ff712e2bfea8fc4bad7ba45dec3b26885b4449c4e67ce74d462c792ac3b

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: persistent-6.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 128.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.10

File hashes

Hashes for persistent-6.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 e4debce7452da384de244c9ac8605ceb4e42178eea6af16069847628dfc16f6e
MD5 d348f0758ac0d56483f05818a31a4e4d
BLAKE2b-256 5e612bf5702779dd960d750e86b30169111577c80de970be1417a6f10a1682a2

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a8f73e71d062e84f6501b976a1dd58bc4eaf2f3bc110550d4e712f4c91f7fd48
MD5 680f3428bb7c3383a5da258613913062
BLAKE2b-256 73d332eb5c6ed4b10ba8c09add74a8e85a7fe46792fe43576e63d7909fd68fc0

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0e6e78058b047b01ab482e6df5986319c2cf9e86f2783a560df474dd743426ff
MD5 34b2ab433cb88f375489a848f38810bb
BLAKE2b-256 416896d2804621ac38df829b4af9e84353a8c9a342b3a5313cd5636c3bce9897

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f3d5b6e6466099ca4c003e70ff1a22aa9bfa1ff30a8435e02cceeb27b66269cb
MD5 e38d66d30ece1c9a20d3dd9bce477ab4
BLAKE2b-256 37ed8aa77d18fcfe7bb8034bd4f021ddb5b421eba675917b1bdb1f947a5f0a08

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b9ee0fadb7a54249f57e4c44d7105bc14daa9e01cbcff761fc19c8b04b752292
MD5 0a9cc6e75dde6768bd5d43b1891b11b8
BLAKE2b-256 64325d5b8a64682006ff04c77a67b0cbbfed5664707b1a8d885178c2b071aa3f

See more details on using hashes here.

File details

Details for the file persistent-6.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for persistent-6.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b78f6a5bf79fb164b534d808e71fd8a19aa8f16f83571ce13d8f21aaf12b3547
MD5 75e7e4024148cf15e160a5df2bfef7f9
BLAKE2b-256 f0474d78c3da0776f8521c80f2a537f0c0a5cb7df1179f5835c07926308996f6

See more details on using hashes here.

Supported by

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