Skip to main content

Easily dump python objects to files, and then load them back.

Project description

Pickle Warehouse makes it easy to save Python objects to files with meaningful identifiers.

How to use

Pickle Warehouse provides a dictionary-like object that is associated with a particular directory on your computer.

from pickle_warehouse import Warehouse
warehouse = Warehouse('/tmp/a-directory')

The keys correspond to files, and the values get pickled to the files.

warehouse['filename'] = range(100)

import pickle
range(100) == pickle.load(open('/tmp/a-directory/filename', 'rb'))

You can also read and delete things.

# Read
range(100) == warehouse['filename']

# Delete
del(warehouse['filename'])

The coolest part is that the key gets interpreted in a fancy way. Aside from strings and string-like objects, you can use iterables of strings; all of these indices refer to the file /tmp/a-directory/foo/bar/baz:

warehouse[('foo','bar','baz')]
warehouse[['foo','bar','baz']]

If you pass a relative path to a file, it will be broken up as you’d expect; that is, strings get split on slashes and backslashes.

warehouse['foo/bar/baz']
warehouse['foo\\bar\\baz']

Note well: Specifying an absolute path won’t save things outside the warehouse directory.

warehouse['/foo/bar/baz'] # -> foo, bar, baz
warehouse['C:\\foo\\bar\\baz'] # -> c, foo, bar, baz
                               # (lowercase "c")

If you pass a URL, it will also get broken up in a reasonable way.

# /tmp/a-directory/http/thomaslevine.com/!/?foo=bar#baz
warehouse['http://thomaslevine.com/!/?foo=bar#baz']

# /tmp/a-directory/thomaslevine.com/!?foo=bar#baz
warehouse['thomaslevine.com/!?foo=bar#baz']

Dates and datetimes get converted to YYYY-MM-DD format.

import datetime

# /tmp/a-directory/2014-02-26
warehouse[datetime.date(2014,2,26)]
warehouse[datetime.datetime(2014,2,26,13,6,42)]

And you can mix these formats!

# /tmp/a-directory/http/thomaslevine.com/open-data/2014-02-26
warehouse[('http://thomaslevine.com/open-data', datetime.date(2014,2,26))]

It also has typical dictionary methods like keys, values, items, and update.

When to use

pickle-warehouse is for when you want a persistant store of Python objects. If you want an in-memory pickle store, look at _pickleDB: https://pythonhosted.org/pickleDB/.

Project details


Download files

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

Source Distribution

pickle-warehouse-0.0.7.tar.gz (3.1 kB view details)

Uploaded Source

File details

Details for the file pickle-warehouse-0.0.7.tar.gz.

File metadata

File hashes

Hashes for pickle-warehouse-0.0.7.tar.gz
Algorithm Hash digest
SHA256 da8d39213f967b62ba239dd14603f83b8be91fe17f1251e0b0aaa9cdf39f35e3
MD5 beeb00dbf11ae50a9b80d21f0c285c9f
BLAKE2b-256 d96c048030797e6d6180660651d182d0bfff77159f78e87fdf62cdb469189a56

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page