fastsdcpu / app_settings.py
rupeshs's picture
added files
6bcacf9
raw
history blame
1.51 kB
import yaml
from os import path, makedirs
from models.settings import Settings
from paths import FastStableDiffusionPaths
class AppSettings:
def __init__(self):
self.config_path = FastStableDiffusionPaths().get_app_settings_path()
@property
def settings(self):
return self._config
def load(self):
if not path.exists(self.config_path):
base_dir = path.dirname(self.config_path)
if not path.exists(base_dir):
makedirs(base_dir)
try:
print("Settings not found creating default settings")
with open(self.config_path, "w") as file:
yaml.dump(
self._load_default(),
file,
)
except Exception as ex:
print(f"Error in creating settings : {ex}")
exit()
try:
with open(self.config_path) as file:
settings_dict = yaml.safe_load(file)
self._config = Settings.parse_obj(settings_dict)
except Exception as ex:
print(f"Error in loading settings : {ex}")
def save(self):
try:
with open(self.config_path, "w") as file:
yaml.dump(self._config.dict(), file)
except Exception as ex:
print(f"Error in saving settings : {ex}")
def _load_default(self) -> dict:
defult_config = Settings()
return defult_config.dict()