Skip to content

soofaloofa-zz/datastoredict

Repository files navigation

datastoredict

Provides a durabledict implementation for Google AppEngine -- an in-memory dictionary backed by the AppEngine Datastore.

Usage

DatastoreDict requires an ndb model to store values. By default, the model contains a property called value.

from datastoredict import DatastoreDict

class MyModel(ndb.Model):
    """
    A datastore model for storing durabledict data.
    """
    value = ndb.PickleProperty()

DatastoreDict(model=MyModel)

You can provide a different property to store the value by instantiating DatastoreDict with the value_col argument.

from datastoredict import DatastoreDict

class MyModel(ndb.Model):
    """
    A datastore model for storing durabledict data.
    """
    custom_value = ndb.JsonProperty()

DatastoreDict(model=MyModel, value_col='custom_value')

Once you have a DatastoreDict instance, use it like a regular dictionary.

from datastoredict import DatastoreDict

class SettingsModel(ndb.Model):
    """
    A datastore model for storing durabledict data.
    """
    value = ndb.PickleProperty()

settings = DatastoreDict(model=SettingsModel)

# Assign and retrieve a value from the dict
settings['foo'] = 'bar'
settings['foo']
>>> 'bar'

# Assign and retrieve another value
settings['buzz'] = 'foogle'
settings['buzz']
>>> 'foogle'

# Delete a value and access receives a KeyError
del settings['foo']
settings['foo']
>>> KeyError

Development

Using virtualenv is recommended for development.

virtualenv .
source ./bin/activate

Development Dependencies

We use flake8 for checking both PEP-8 and common Python errors and invoke for continuous integration.

pip install -U flake8
pip install -U invoke

You can list available build tasks with inv -l.

Due to a limitation with Google Appengine, dependencies must be installed locally before running tests. The fetch_deps make command will install dependencies to the vendor directory.

inv fetch_deps

Publishing to PyPI

You need pip, setuptools and wheel to publish to PyPI.

inv publish

About

An App Engine implementation of durabledict.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages