diff options
author | Lars Wirzenius <liw@liw.fi> | 2019-07-20 16:53:25 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2019-08-03 21:06:50 +0300 |
commit | 066664763f16318076e34d702cce746b2fd4afca (patch) | |
tree | e5096414582fdb9c10af6153cc6e4c0a8f697468 /ick2/resource.py | |
parent | 8344a860d226d8a5172bcb2e9de5946717a950ca (diff) | |
download | ick2-066664763f16318076e34d702cce746b2fd4afca.tar.gz |
Change: move exceptions to exceptions.py, rename persitent.py
Diffstat (limited to 'ick2/resource.py')
-rw-r--r-- | ick2/resource.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/ick2/resource.py b/ick2/resource.py new file mode 100644 index 0000000..ca02d30 --- /dev/null +++ b/ick2/resource.py @@ -0,0 +1,58 @@ +# 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 <http://www.gnu.org/licenses/>. + + +import copy +import os +import urllib.parse + + +import yaml + + +import ick2 + + +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) |