From 5822e79a9355970a1190194e351a4761e9db6859 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Fri, 18 Oct 2019 10:49:24 +0300 Subject: Revert "Change: move exceptions to exceptions.py, rename persitent.py" This reverts commit 066664763f16318076e34d702cce746b2fd4afca. --- ick2/persistent.py | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 ick2/persistent.py (limited to 'ick2/persistent.py') diff --git a/ick2/persistent.py b/ick2/persistent.py new file mode 100644 index 0000000..33903fe --- /dev/null +++ b/ick2/persistent.py @@ -0,0 +1,66 @@ +# Copyright (C) 2018-2019 Lars Wirzenius +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +import copy +import os +import urllib.parse + + +import yaml + + +import ick2 + + +class NotFound(Exception): # pragma: no cover + + def __init__(self, kind, name): + super().__init__( + 'Resource {}:{} not found'.format( + kind or "unknown", name or "unknown")) + + +class Resource: # pragma: no cover + + def __init__(self, as_dict=None): + self._dict = copy.deepcopy(as_dict or {}) + + def as_dict(self): + return copy.deepcopy(self._dict) + + def __getitem__(self, key): + return self._dict[key] + + def __setitem__(self, key, value): + self._dict[key] = value + + def __contains__(self, key): + return key in self._dict + + def __len__(self): + return len(self._dict) + + def get(self, key, default=None): + return self._dict.get(key, default) + + def from_dict(self, as_dict): + self._dict.clear() + for key in as_dict: + self[key] = as_dict[key] + + +def resource_from_dict(as_dict): # pragma: no cover + return Resource(as_dict) -- cgit v1.2.1