From 03a559309b8790f6bc3ad3d92300a4c172910abb Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 20 Jul 2019 15:58:49 +0300 Subject: Change: refer to resource by name, not id --- ick2/persistent.py | 82 +++++++++++++++++------------------------------------- 1 file changed, 25 insertions(+), 57 deletions(-) (limited to 'ick2/persistent.py') diff --git a/ick2/persistent.py b/ick2/persistent.py index d323db7..e225b88 100644 --- a/ick2/persistent.py +++ b/ick2/persistent.py @@ -27,28 +27,28 @@ import ick2 class PersistentStateInterface: # pragma: no cover - def get_resource_ids(self, token, kind): + def get_resource_names(self, token, kind): raise NotImplementedError() - def has_resource(self, token, kind, rid): + def has_resource(self, token, kind, name): raise NotImplementedError() - def get_resource(self, token, kind, rid): + def get_resource(self, token, kind, name): raise NotImplementedError() def get_resources(self, token, kind): return [ - self.get_resource(token, kind, rid) - for rid in self.get_resource_ids(token, kind) + self.get_resource(token, kind, name) + for name in self.get_resource_names(token, kind) ] - def write_resource(self, token, kind, rid, resource): + def write_resource(self, token, kind, name, resource): raise NotImplementedError() - def update_resource(self, token, kind, rid, resource): + def update_resource(self, token, kind, name, resource): raise NotImplementedError() - def remove_resource(self, token, kind, rid): + def remove_resource(self, token, kind, name): raise NotImplementedError() @@ -57,71 +57,39 @@ class MemoryPersistentState(PersistentStateInterface): def __init__(self): self._res = {} - def get_resource_ids(self, token, kind): + def get_resource_names(self, token, kind): if kind not in self._res: return [] return list(self._res[kind].keys()) - def has_resource(self, token, kind, rid): - return kind in self._res and rid in self._res[kind] + def has_resource(self, token, kind, name): + return kind in self._res and name in self._res[kind] - def get_resource(self, token, 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 get_resource(self, token, kind, name): + if kind not in self._res or name not in self._res[kind]: + raise ick2.NotFound(kind=kind, name=name) + return self._res[kind][name] - def write_resource(self, token, kind, rid, resource): + def write_resource(self, token, kind, name, resource): if kind not in self._res: self._res[kind] = {} - self._res[kind][rid] = resource + self._res[kind][name] = resource - def update_resource(self, token, kind, rid, resource): - self.write_resource(token, kind, rid, resource) + def update_resource(self, token, kind, name, resource): + self.write_resource(token, kind, name, resource) - def remove_resource(self, token, 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 MuckPersistentState(PersistentStateInterface): - - def __init__(self): - self._res = {} - - def get_resource_ids(self, token, kind): - if kind not in self._res: - return [] - return list(self._res[kind].keys()) - - def has_resource(self, token, kind, rid): - return kind in self._res and rid in self._res[kind] - - def get_resource(self, token, 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, token, kind, rid, resource): - if kind not in self._res: - self._res[kind] = {} - self._res[kind][rid] = resource - - def update_resource(self, token, kind, rid, resource): - self.write_resource(token, kind, rid, resource) - - def remove_resource(self, token, 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] + def remove_resource(self, token, kind, name): + if kind not in self._res or name not in self._res[kind]: + raise ick2.NotFound(kind=kind, name=name) + del self._res[kind][name] class NotFound(Exception): - def __init__(self, kind, rid): + def __init__(self, kind, name): super().__init__( 'Resource {}:{} not found'.format( - kind or "unknown", rid or "unknown")) + kind or "unknown", name or "unknown")) class Resource: # pragma: no cover -- cgit v1.2.1