From 471b9d6209dc51890c7724b7b57b9121ba30af7d Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 14 Jul 2019 15:47:24 +0300 Subject: Add: placeholder for MuckPersistentState --- ick2/persistent.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'ick2/persistent.py') diff --git a/ick2/persistent.py b/ick2/persistent.py index bb0aeb6..31473ba 100644 --- a/ick2/persistent.py +++ b/ick2/persistent.py @@ -78,6 +78,35 @@ class MemoryPersistentState(PersistentStateInterface): del self._res[kind][rid] +class MuckPersistentState(PersistentStateInterface): + + def __init__(self): + self._res = {} + + def get_resource_ids(self, kind): + if kind not in self._res: + return [] + return list(self._res[kind].keys()) + + def has_resource(self, kind, rid): + return kind in self._res and rid in self._res[kind] + + def get_resource(self, kind, rid): + if kind not in self._res or rid not in self._res[kind]: + raise ick2.NotFound(kind=kind, rid=rid) + return self._res[kind][rid] + + def write_resource(self, kind, rid, resource): + if kind not in self._res: + self._res[kind] = {} + self._res[kind][rid] = resource + + def remove_resource(self, kind, rid): + if kind not in self._res or rid not in self._res[kind]: + raise ick2.NotFound(kind=kind, rid=rid) + del self._res[kind][rid] + + class NotFound(Exception): def __init__(self, kind, rid): -- cgit v1.2.1