28 lines
639 B
Python
28 lines
639 B
Python
import os, json
|
|
|
|
from functions import _get_vars
|
|
|
|
|
|
class State:
|
|
def __init__(self, default=None, **kwargs):
|
|
file, = _get_vars([
|
|
('file', 'STATE_FILE')
|
|
], kwargs)
|
|
|
|
if default is None:
|
|
default = {}
|
|
|
|
self.file = file
|
|
self.default = default
|
|
|
|
def read(self) -> dict:
|
|
if not os.path.exists(self.file):
|
|
self.write(self.default)
|
|
return self.default
|
|
|
|
with open(self.file, 'r') as f:
|
|
return json.loads(f.read())
|
|
|
|
def write(self, state: dict):
|
|
with open(self.file, 'w') as f:
|
|
f.write(json.dumps(state)) |