👍️[Update] Config : config.jsonの保存タイミングをfire and forgetに変更

This commit is contained in:
misyaguziya
2024-10-27 15:12:04 +09:00
parent bd0431f79c
commit 2dd4419bb1

View File

@@ -3,7 +3,7 @@ import inspect
from os import path as os_path, makedirs as os_makedirs from os import path as os_path, makedirs as os_makedirs
from json import load as json_load from json import load as json_load
from json import dump as json_dump from json import dump as json_dump
from asyncio import new_event_loop
from device_manager import device_manager from device_manager import device_manager
from models.transcription.transcription_languages import transcription_lang from models.transcription.transcription_languages import transcription_lang
from utils import generatePercentageStringsList, isUniqueStrings from utils import generatePercentageStringsList, isUniqueStrings
@@ -15,12 +15,14 @@ def json_serializable(var_name):
return func return func
return decorator return decorator
def saveJson(path, key, value): config_data = {}
with open(path, "r", encoding="utf-8") as fp: def saveJsonData(path, key, value):
json_data = json_load(fp) config_data[key] = value
json_data[key] = value
with open(path, "w", encoding="utf-8") as fp: with open(path, "w", encoding="utf-8") as fp:
json_dump(json_data, fp, indent=4, ensure_ascii=False) json_dump(config_data, fp, indent=4, ensure_ascii=False)
def saveJson(path, key, value):
new_event_loop().run_in_executor(None, saveJsonData, path, key, value)
class Config: class Config:
_instance = None _instance = None
@@ -1163,21 +1165,16 @@ class Config:
def load_config(self): def load_config(self):
if os_path.isfile(self.PATH_CONFIG) is not False: if os_path.isfile(self.PATH_CONFIG) is not False:
with open(self.PATH_CONFIG, 'r', encoding="utf-8") as fp: with open(self.PATH_CONFIG, 'r', encoding="utf-8") as fp:
config = json_load(fp) if fp.readable() and fp.seek(0, 2) > 0:
fp.seek(0)
config_data = json_load(fp)
old_message_format = None for key, value in config_data.items():
for key in config.keys(): setattr(self, key, value)
if key == "MESSAGE_FORMAT":
old_message_format = config[key]
setattr(self, key, config[key])
if old_message_format is not None:
setattr(self, "SEND_MESSAGE_FORMAT_WITH_T", old_message_format)
with open(self.PATH_CONFIG, 'w', encoding="utf-8") as fp: with open(self.PATH_CONFIG, 'w', encoding="utf-8") as fp:
config = {}
for var_name, var_func in json_serializable_vars.items(): for var_name, var_func in json_serializable_vars.items():
config[var_name] = var_func(self) config_data[var_name] = var_func(self)
json_dump(config, fp, indent=4, ensure_ascii=False) json_dump(config_data, fp, indent=4, ensure_ascii=False)
config = Config() config = Config()