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)