Skip to main content

MongoDB-backed Python dict-like interface

Project description

So you are storing some key-values in a dict but your data became huge than your memory or you want to persist it on the disk? Then mongodict is for you!

As it uses MongoDB to store the data, you get all cool MongoDB things, like shardings and replicas.

mongodict is supported under Python 2.7 and Python 3.2.

Installation

As simple as:

pip install mongodict

Usage

As it uses collections.MutableMapping as its base, you just need to change the line which creates your dict. For instace, just replace:

>>> my_dict = {}

with:

>>> from mongodict import MongoDict
>>> my_dict = MongoDict(host='localhost', port=27017, database='my_dict',
                        collection='store')

and then use it like a normal dict:

>>> my_dict['python'] = 'rules'
>>> print my_dict['python']
rules
>>> del my_dict['python']
>>> print my_dict['python']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "mongodict.py", line 23, in __getitem__
    raise KeyError
KeyError
>>> my_dict['spam'] = 'eggs'
>>> my_dict['ham'] = 'damn'
>>> for key, value in my_dict.items():
...    print '{} = {}'.format(key, value)
...
spam = eggs
ham = damn

Enjoy! :-)

Why not Redis?

Redis is “remote directory server” - it’s a great piece of software and can do the job if all your data fit on memory. By other side, MongoDB already have mature sharding and replica set features. So, if you need to store lots of key-value pairs that don’t fit on memory, mongodict can solve your problem.

Contributing

You can run the tests either with or without tox.

Without tox

This is the simplest approach: you’ll test only for one Python version. To do it, just execute:

mkvirtualenv --no-site-packages mongodict-without-tox
pip install -r requirements/develop.txt
make test

With tox

With tox you can test for more than one Python version (currently for 2.7 and 3.2). You just need to create a virtualenv, install and run it:

mkvirtualenv --no-site-packages tox-for-mongodict
pip install tox
tox

tox will create one virtualenv for each Python version, install requirements and then run the tests for each of them.

Author

This software was written and is maintained by Álvaro Justen (aka Turicas). Please contact me at alvarojusten at gmail dot com.

License

It’s licensed under GPL version 3.

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

mongodict-0.2.0.tar.gz (15.4 kB view details)

Uploaded Source

File details

Details for the file mongodict-0.2.0.tar.gz.

File metadata

  • Download URL: mongodict-0.2.0.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for mongodict-0.2.0.tar.gz
Algorithm Hash digest
SHA256 fbb283def8fe11696dac0815221420919226e49c4043812252c78f8c25b97087
MD5 71b29c6cf74dfaa77b053b3662fe5bcb
BLAKE2b-256 b7cf5549d722536f005e645dfb4e5154d59978ac8904f56058c46830572fa111

See more details on using hashes here.

Supported by

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