Persistence
Persistent ExtensionClass
What it is and what it does
Persistence is a specialized variant of the persistent base class that leverages ExtensionClass semantics for object persistence in Zope environments. It enables objects to be serialized and stored, typically in a ZODB database, while maintaining the performance and behavioral characteristics of ExtensionClass-based inheritance. The package is mature (first released 2008) and actively maintained, with wheels built for modern Python versions across multiple platforms.
Unless your application specifically requires ExtensionClass semantics—such as tight integration with Zope framework components or legacy code that depends on ExtensionClass behavior—the package documentation recommends using persistent.Persistent from the persistent distribution instead. This package is a narrower, specialized tool for Zope-centric persistence patterns.
Use it for:
- Building persistent object hierarchies in Zope 5 applications that require ExtensionClass semantics
- Integrating legacy Zope code that depends on ExtensionClass-based persistence
- Serializing and storing application state in ZODB with ExtensionClass inheritance patterns
- Extending Zope framework components that expect ExtensionClass-derived persistent objects
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a persistent base class built on ExtensionClass for object serialization and storage in Zope-based applications.
Yes, if you are building or maintaining Zope 5 applications that explicitly require ExtensionClass semantics for persistence. The package is actively maintained, has no known vulnerabilities, and supports current Python versions. No, if you are starting a new persistence layer outside Zope or can use persistent.Persistent instead—this is a specialized variant, not a general-purpose persistence tool. Verify the ZPL-2.1 license terms for your use case before committing.
Install
persistence on PyPI
pip
pip install persistenceuv
uv add persistencepoetry
poetry add persistenceInstalling Persistence
Before you install
Medium install friction due to compiled wheels for multiple Python versions and architectures. Actively maintained with recent releases; last commit 2026-08-14. Supports Python 3.10–3.14 on CPython and PyPy.
License in practice
Licensed under ZPL-2.1 (Zope Public License 2.1), but license treatment is marked unclear in the metadata—verify the actual license terms before use in proprietary or restricted-license projects.
Quickstart
pip install persistence
from persistence import Persistent
from ExtensionClass import Base
class MyPersistent(Persistent):
pass
Requires Python >=3.10; ExtensionClass dependency must be installed (pulled in automatically).
Verify before relying
- Whether ZPL-2.1 classification as 'unclear' reflects ambiguity in the license itself or metadata gaps
- Specific use-case guidance beyond Zope framework integration
Package facts
| License | ZPL-2.1 (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — ExtensionClass, persistent |
| Maintenance | actively maintained — 271 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 162,755/month — #10,589 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: persistence-5.4-cp310-cp310-macosx_10_9_x86_64.whl; persistence-5.4-cp310-cp310-macosx_11_0_arm64.whl; persistence-5.4-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl; persistence-5.4-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl; persistence-5.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; persistence-5.4-cp310-cp310-win_amd64.whl; persistence-5.4-cp311-cp311-macosx_10_9_x86_64.whl; persistence-5.4-cp311-cp311-macosx_11_0_arm64.whl; persistence-5.4-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl; persistence-5.4-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl; persistence-5.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; persistence-5.4-cp311-cp311-win_amd64.whl; persistence-5.4-cp312-cp312-macosx_10_9_x86_64.whl; persistence-5.4-cp312-cp312-macosx_11_0_arm64.whl; persistence-5.4-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl; persistence-5.4-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl; persistence-5.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; persistence-5.4-cp312-cp312-win_amd64.whl; persistence-5.4-cp313-cp313-macosx_10_9_x86_64.whl; persistence-5.4-cp313-cp313-macosx_11_0_arm64.whl
Tags
More Database packages
psycopg2-binary is a PostgreSQL database…
copyleft · top 1,000 on PyPI
redisPython client library for connecting to and…
permissive · top 1,000 on PyPI
ydbYDB Python SDK is the official client library…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
sqlparsesqlparse tokenizes SQL text into a tree of…
permissive · top 1,000 on PyPI
dbt-adaptersProvides base adapter protocols and shared…
permissive · top 1,000 on PyPI
ExtensionClassProvides a metaclass that enables extension…
unclear · top 15,000 on PyPI
zope.annotationStores additional metadata on objects without…
unclear · top 15,000 on PyPI
persistentProvides transparent persistence for Python…
unclear · top 15,000 on PyPI
zope.containerProvides container interfaces and…
unclear · top 15,000 on PyPI
ZopeZope is an open-source web application server…
unclear · top 15,000 on PyPI
zope.globalrequestProvides a function to retrieve the currently…
unclear · top 15,000 on PyPI
AcquisitionAcquisition implements a mechanism for Python…
unclear · top 15,000 on PyPI
seba-sqliteProvides legacy SQLite storage backend for the…
copyleft · top 15,000 on PyPI
BTreesBTrees provides persistent, scalable B-tree…
unclear · top 15,000 on PyPI
ripserRipser computes persistent homology and…
permissive · top 15,000 on PyPI