PersistentDict#

class fourinsight.engineroom.utils.PersistentDict(handler=None)[source]#

Persistent :func:dict.

Push/pull a :func:dict stored persistently in a “remote” location as JSON. This class is usefull when loading configurations or keeping persistent state.

The class behaves exactly like a dict but only accepts values that are JSON encodable.

Parameters:

handler (object) – Handler extended from BaseHandler. Default handler is NullHandler, which does not provide any push or pull functionality.

clear() None.  Remove all items from D.#
get(k[, d]) D[k] if k in D, else d.  d defaults to None.#
items() a set-like object providing a view on D's items#
keys() a set-like object providing a view on D's keys#
pop(k[, d]) v, remove specified key and return the corresponding value.#

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem() (k, v), remove and return some (key, value) pair#

as a 2-tuple; but raise KeyError if D is empty.

pull(raise_on_missing=True)[source]#

Pull content from source. Remote source overwrites existing values.

Parameters:

raise_on_missing (bool) – Raise exception if content can not be pulled from source.

push()[source]#

Push content to source.

setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D#
update([E, ]**F) None.  Update D from mapping/iterable E and F.#

If E present and has a .keys() method, does: for k in E.keys(): D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values() an object providing a view on D's values#