Source code for fito.data_store.dict_ds
from fito import Spec
from fito.data_store.base import BaseDataStore
from fito.specs import base
[docs]class DictDataStore(BaseDataStore):
def __init__(self, *args, **kwargs):
super(DictDataStore, self).__init__(*args, **kwargs)
self.data = {}
[docs] def iteritems(self):
return self.data.iteritems()
[docs] def save(self, spec, object):
self.data[spec] = object
def _get(self, spec):
if isinstance(spec, dict):
# assume that if spec is a dictionary, then must be loadable
spec = Spec.dict2spec(spec)
if spec not in self.data: raise KeyError("Spec not found: {}".format(spec))
return self.data.get(spec)
[docs] def iterkeys(self, raw=False):
for key in self.data.iterkeys():
if raw:
yield key, key.to_dict()
else:
yield key
[docs] def clean(self):
self.data = {}
[docs] def get_id(self, spec):
if spec not in self: raise KeyError(spec)
return spec
def _remove(self, spec):
self.data.pop(spec)