skillfed

Persistence

Persistent ExtensionClass

persistence v5.4 162.8K downloads/30d#10,589 on PyPI2
License unclear ZPL-2.1 Active released

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 persistence

uv

uv add persistence

poetry

poetry add persistence

Installing 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

Development Status :: 6 - MatureEnvironment :: Web EnvironmentFramework :: ZopeFramework :: Zope :: 5Operating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy

Tags

persistent object storageextensionclass base classzope persistenceobject serialization frameworkpersistent data structures
zope-frameworkobject-persistence

More Database packages