shove /

Filename Size Date modified Message
shove
113 B
47 B
1.8 KB
3.7 KB

Common object storage frontend that supports dictionary-style access, object serialization and compression, and multiple storage and caching backends.

Currently supported storage backends are:

  • Amazon S3 Web Service
  • Berkeley Source Database
  • Apache Cassandra
  • Memory
  • Filesystem
  • Firebird
  • FTP
  • DBM
  • Durus
  • Microsoft SQL Server
  • MySQL
  • Oracle
  • PostgreSQL
  • Redis
  • SQLite
  • Subversion
  • Zope Object Database (ZODB)

Currently supported caching backends are:

  • Memory
  • Filesystem
  • Firebird
  • memcache
  • Microsoft SQL Server
  • MySQL
  • Oracle
  • PostgreSQL
  • SQLite

The simplest shove use case is:

from shove import Shove

store = Shove()

which creates an in-memory store and cache.

The use of other backends for storage and caching involves passing an module URI or existing store or cache instance to shove following the form:

from shove import Shove

<storename> = Shove(<store_uri>, <cache_uri>)

The module-specific URI form is documented in its module. The URI form follows the URI form used by SQLAlchemy:

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

shove fully implements the Python dictionary/mapping API:

http://docs.python.org/lib/typesmapping.html

Differences between 0.1 and 0.1.1

  • updated to work with SQLAlchemy 0.4.x

Differences between 0.1.1 and 0.1.2

  • updated to work with boto 1.x

Differences between 0.1.2 and 0.1.3

  • better clean up of file handlers for filesystem based storage and caching (per Larry Meyn)

What's new with 0.2.1

  • Cleanup
  • Bunch of suggestions from Kevin Dangoor

What's new with 0.2.2

  • remove hardcoded dependencies of dusty antiquity
  • allow override of pickle protocol (per Ling Li)

What's new with 0.3.0

  • Redis support for store
  • Apache Cassandra support for store (deletion is eventually consistent)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.