transaction
Transaction management for Python
Decision gist · record as of 2026-08-14
Yes, if you need explicit transaction management in Python. It is stable, actively maintained, has no known vulnerabilities, and installs cleanly. However, verify that ZPL-2.1 licensing is compatible with your project, and confirm that this package (primarily designed for ZODB) is the right fit for your use case rather than a database-specific transaction API.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; earlier versions are no longer supported.
- Low friction install with a single dependency (zope.interface).
- Actively maintained; last release 150 days ago with support for current Python versions including 3.14.
License · maintenance · safety
ZPL-2.1 (unclear) — Licensed under ZPL-2.1 (Zope Public License). License treatment is marked unclear in the metadata, so verify compatibility with your project's licensing requirements before use.
last release 2026-03-17 (150 days) · last repo commit 2026-03-17 · 74 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 852,246 downloads/mo, #4,900 on PyPI
Alternatives
Verify before relying
pip install transaction
import transaction
tx = transaction.get()
tx.commit()- Whether ZPL-2.1 is compatible with your project's license (marked unclear in metadata).
- Whether the package's role as primarily a ZODB dependency means it's the right choice for standalone transaction management.
What it is and what it does
Transaction is a generic transaction implementation for Python that manages the lifecycle of transactions—commit, abort, and rollback—along with coordination of multiple data managers. It is primarily used by ZODB (Zope Object Database) but can be used standalone for any application needing explicit transaction control. The package provides transaction managers, hooks for before-commit and abort operations, synchronizers for coordinating external resources, and APIs for storing transaction-scoped data.
The package is mature (first release in 2007) and actively maintained. It has a single runtime dependency on zope.interface and installs with low friction. It supports modern Python versions (3.10 through 3.14) and runs on both CPython and PyPy. The API includes explicit transaction modes, retry logic for transient errors, and mechanisms to avoid cyclic references and memory leaks.
Use it for
- Build a standalone application with explicit transaction control and multi-step commit/abort semantics without using ZODB.
- Coordinate multiple data managers (databases, caches, message queues) within a single atomic transaction.
- Implement before-commit hooks to validate or transform data before persistence, and abort hooks for cleanup.
- Manage thread-local transaction state in multi-threaded applications using ThreadTransactionManager.
- Retry transient errors automatically using the transaction manager's run method with configurable retry logic.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need explicit transaction management in Python.
It is stable, actively maintained, has no known vulnerabilities, and installs cleanly. However, verify that ZPL-2.1 licensing is compatible with your project, and confirm that this package (primarily designed for ZODB) is the right fit for your use case rather than a database-specific transaction API.
Install
transaction on PyPI
Before you install
Low friction install with a single dependency (zope.interface). Actively maintained; last release 150 days ago with support for current Python versions including 3.14. No known vulnerabilities.
Requires Python 3.10 or later; earlier versions are no longer supported.
License in practice
Licensed under ZPL-2.1 (Zope Public License). License treatment is marked unclear in the metadata, so verify compatibility with your project's licensing requirements before use.
Quickstart
pip install transaction
import transaction
tx = transaction.get()
tx.commit()
Verify before relying
- Whether ZPL-2.1 is compatible with your project's license (marked unclear in metadata).
- Whether the package's role as primarily a ZODB dependency means it's the right choice for standalone transaction management.
Package facts
| License | ZPL-2.1 unclear |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagezope.interface |
| Maintenance | Actively maintained 150 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 852,246 / month, #4,900 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 6 - MatureFramework :: ZODBOperating System :: Microsoft :: WindowsOperating System :: UnixProgramming Language :: PythonProgramming Language :: Python :: 3Programming 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 :: PyPyTopic :: DatabaseTopic :: Software Development :: Libraries :: Python Modules |
Evidence: transaction-5.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “transaction management python”
- transactionProvides a generic transaction management system for Python, handling…
- fireblocksPython SDK for integrating with the Fireblocks platform to manage…
- pyramid-tmIntegrates Pyramid web requests with the transaction package to…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also pyramid-tm · zope.sqlalchemy · ZODB · persistent · BTrees · bitcoin-utils · repoze-sendmail · apswutils · eth-account · paytmchecksum