Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

A publication/history system for SQLAlchemy.

Project Description


Clio is a library based on SQLAlchemy that can be used to add a publication workflow and archiving system to a database.

The documentation is available at

Note that currently MySQL is a requirement (for running the tests, and for the sequence support). This requirement is not a core requirement of Clio however, and the main Clio codebase does not depend on it, so it is expected to go away.


0.7 (2010-05-14)

  • Changed the database schema: two new fields were added (changed_timestamp and created_userid). Throw away the clio_tests database and recreate it again to run the tests. You will have to upgrade your existing databases as well.
  • When a new version is created of an existing object, the changed_userid will be copied over from the last version. If a new object is created from scratch, it will be the created_userid. changed_timestamp is treated the same. This makes it possible to detect changes between versions by comparing the timestamps.
  • Update documentation to include integer status codes as they appear in the database.
  • Updated documentation to include changed information about the timestamps were recorded (as of 0.6), as well as the new timestamp.

0.6.4 (2010-02-17)

  • Provide an ‘update’ method for Sequence, so we can set the sequence value. This can be useful in code that converts old databases that already define the equivalent of ‘code’.

0.6.3 (2010-02-12)

  • Another bugfix with revert logic. Allow reverting already published objects, as they may have relations that need to be reverted. Don’t raise an error when trying to revert an archived object, instead just don’t do anything.

0.6.2 (2010-02-12)

  • Fixed a bug in revert logic. Reversion of edited records should now work better when there are relations.

0.6.1 (2010-02-10)

  • Added _actual property which is like _editable, except that deleted items are not part of it.
  • Also added is_actual method.

0.6 (2010-02-10)

  • userid tracking for workflow events.
  • change the way timestamps are recorded so that queries for older published items can more easily be constructed. This breaks existing databases. We assume nobody but the author is using Clio yet.
  • stop using pysqlite in the tests; the tests now depend on MySQL.
  • Introduce ACTUAL_STATUSES. This is what is present in the edit UI, except those things that were deleted. This can be handy in queries.

0.5 (2009-11-16)

  • Initial public release.


Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(31.8 kB) Copy SHA256 Hash SHA256
Source None May 14, 2010

Supported By

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 Google Google Cloud Servers