bluesky.utils.PersistentDict

class bluesky.utils.PersistentDict(directory)[source]

A MutableMapping which syncs it contents to disk.

The contents are stored as msgpack-serialized files, with one file per item in the mapping.

Note that when an item is mutated it is not immediately synced:

>>> d['sample'] = {"color": "red"}  # immediately synced
>>> d['sample']['shape'] = 'bar'  # not immediately synced

but that the full contents are synced to disk when the PersistentDict instance is garbage collected.

__init__(directory)[source]

Methods

__init__(directory)

clear()

flush()

Force a write of the current state to disk

get(k[,d])

items()

keys()

pop(k[,d])

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

popitem()

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

reload()

Force a reload from disk, overwriting current cache

setdefault(k[,d])

update([E, ]**F)

If E present and has a .keys() method, does: for k in E: 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()

Attributes

directory