diff options
Diffstat (limited to 'src/home/database/simple_state.py')
-rw-r--r-- | src/home/database/simple_state.py | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/src/home/database/simple_state.py b/src/home/database/simple_state.py deleted file mode 100644 index 2b8ebe7..0000000 --- a/src/home/database/simple_state.py +++ /dev/null @@ -1,48 +0,0 @@ -import os -import json -import atexit - -from ._base import get_data_root_directory - - -class SimpleState: - def __init__(self, - name: str, - default: dict = None): - if default is None: - default = {} - elif type(default) is not dict: - raise TypeError('default must be dictionary') - - path = os.path.join(get_data_root_directory(), name) - if not os.path.exists(path): - self._data = default - else: - with open(path, 'r') as f: - self._data = json.loads(f.read()) - - self._file = path - atexit.register(self.__cleanup) - - def __cleanup(self): - if hasattr(self, '_file'): - with open(self._file, 'w') as f: - f.write(json.dumps(self._data)) - atexit.unregister(self.__cleanup) - - def __del__(self): - if 'open' in __builtins__: - self.__cleanup() - - def __getitem__(self, key): - return self._data[key] - - def __setitem__(self, key, value): - self._data[key] = value - - def __contains__(self, key): - return key in self._data - - def __delitem__(self, key): - if key in self._data: - del self._data[key] |