123456789101112131415161718192021222324252627282930313233 |
- from json import load, dump
- from os.path import exists
- from pycs.observable import ObservableDict
- class ApplicationStatus(ObservableDict):
- def __init__(self, path_to_settings_json=None, settings=None):
- # load settings if file exists
- self.__path_to_settings_json = path_to_settings_json
- if settings is not None:
- settings = settings
- elif path_to_settings_json is not None and exists(path_to_settings_json):
- with open(path_to_settings_json, 'r') as settings_json:
- settings = load(settings_json)
- else:
- settings = {}
- # initialize data structure
- super().__init__({
- 'settings': settings,
- 'models': {},
- 'labels': {},
- 'projects': {}
- })
- # subscribe to settings change to write it to file
- self['settings'].subscribe(self.__write_settings_to_file)
- def __write_settings_to_file(self, settings, keys):
- with open(self.__path_to_settings_json, 'w') as settings_json:
- dump(settings, settings_json, indent=4)
|