This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Rstransaction is a python2/python3 toolbox to create transactional systems, for any kind of operations: in-memory, on filesystems, on remote storages…

It supports commits/rollbacks and savepoints.

It was never used in production, but is well tested, and easily extendable to support different kinds of behaviour : immediate or lazy actions, recording of operations to disk files or DBs in case of crash, auto-rollback on error or not…


Using pip is recommended, although installing from a checkout of the repository (via also works:

$ pip install rstransaction


Your best bet is to read the sources (especially tests).

The idea is to create “atomic” operations using TransactionalActionAdapter. Each of these operations knows how to operate, how to rollback itself, and also how to preprocess its arguments so that they are unambiguous (ex. turn relative file names into absolute ones).

These actions are then registered near a TransactionalActionRegistry.

An action recorder has to be chosen (the default one, ActionRecorderBase, simply records actions in-memory, without persistence).

A transaction processor (inheriting TransactionBase) is then instantiated, and given the action registry as well as the action recorder. The default transaction processor, InteractiveTransaction, executes any operation (issued with tx_process_action()), immediately, so potential errors must be handled accordingly. But one could implement a transaction processor which delays all operations until commit time.

Transaction steps can be set manually (with tx_commit(), tx_rollback(), savepoint methods..), but the best is to use the transaction processor as a context manager (with keyword), so that full commit/rollback occur automatically on exit. The “tx_savepoint” attribute of transaction processor can also be used as a context manager, only acting on a savepoint this time.

A transaction processor automatically begins a new transaction, on commit or rollback, so it can be reused.

Note that exceptions do not get swallowed by this system, even if an automatic rollback occurs.

Subclasses of TransactionFailure are used to report errors linked to the transaction systemn, as exceptions.

Release History

Release History


This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
RSTransaction-0.1.tar.gz (11.6 kB) Copy SHA256 Checksum SHA256 Source Aug 10, 2016 (15.8 kB) Copy SHA256 Checksum SHA256 Source Aug 10, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting