diff options
author | Lars Wirzenius <liw@liw.fi> | 2019-07-20 15:58:49 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2019-08-03 21:06:50 +0300 |
commit | 03a559309b8790f6bc3ad3d92300a4c172910abb (patch) | |
tree | 13483c544b15f7f537a502a9bf722a05f72bb878 /ick2/persistent.py | |
parent | 076d144f0f5883a5c7c7c88f8b177f22d57c078a (diff) | |
download | ick2-03a559309b8790f6bc3ad3d92300a4c172910abb.tar.gz |
Change: refer to resource by name, not id
Diffstat (limited to 'ick2/persistent.py')
-rw-r--r-- | ick2/persistent.py | 82 |
1 files changed, 25 insertions, 57 deletions
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 |