diff options
Diffstat (limited to 'src/home/database/simple_state.py')
-rw-r--r-- | src/home/database/simple_state.py | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/src/home/database/simple_state.py b/src/home/database/simple_state.py deleted file mode 100644 index cada9c8..0000000 --- a/src/home/database/simple_state.py +++ /dev/null @@ -1,46 +0,0 @@ -import os -import json -import atexit - - -class SimpleState: - def __init__(self, - file: str, - default: dict = None, - **kwargs): - if default is None: - default = {} - elif type(default) is not dict: - raise TypeError('default must be dictionary') - - if not os.path.exists(file): - self._data = default - else: - with open(file, 'r') as f: - self._data = json.loads(f.read()) - - self._file = file - 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] |