ANN: shove 0.1, the next-generation shelve

L. C. Rees lcrees at gmail.com
Tue Jan 16 20:41:44 CET 2007


shove is a object storage frontend inspired by the standard library's
shelve module. It features a dictionary-style API, automatic object
storage (with pickle) with in-storage compression (with zlib), and
multiple storage and caching backends.

The currently supported storage backends are:

    * Amazon S3 Web Service
    * Berkeley Source Database
    * Filesystem-based
    * Firebird
    * FTP
    * DBM
    * Durus
    * Memory
    * Microsoft SQL Server
    * MySQL
    * Oracle
    * PostgreSQL
    * SQLite
    * Subversion
    * Zope Object Database (ZODB)

Currently supported caching backends are:

    * Filesystem-based
    * Firebird
    * memcached
    * Memory (thread-safe or non-thread-sa
    * Microsoft SQL Server
    * MySQL
    * Oracle
    * PostgreSQL
    * SQLite

The simplest use case for shove is:

from shove import Shove

store = Shove()

creating an in-memory store and cache.

To use a different storage or caching backend, a backend-specific URI
or an existing store or cache instance must be passed to the Shove
class using the format:

<STORENAME> = Shove(<STORE>, <CACHE>)

Each backend-specific URI format is documented in its module source
code. The URI format follows the URI format used by SQLAlchemy:

http://www.sqlalchemy.org/docs/dbengine.myt#dbengine_establishing

shove is available for download from its CheeseShop page:

http://cheeseshop.python.org/pypi/shove

or it can be installed by using setuptools:

easy_install shove

shove has been tested and confirmed to work on Python 2.4 and Python
2.5.

shove has an extension, multishove, with the same features but with
added support for storing objects to multiple storage backends
simultaneously. shove itself can only store objects to one backend at a
time.

To use multiple backends with multishove, multiple backend-specific
URIs or store instances must be passed to the MultiShove class
following the format:

from multishove import MultiShove

<STORENAME> = MultiShove(<STORE1>, <STORE2> ..., cache=<CACHE>)

multishove is available for download from its CheeseShop page:

http://cheeseshop.python.org/pypi/multishove

or it can be installed by using setuptools:

easy_install multishove

multishove has been tested and confirmed to work on Python 2.4 and
Python 2.5.



More information about the Python-announce-list mailing list