voicevox / voicevox_engine /setting /SettingLoader.py
GaenKoki's picture
Duplicate from 2ndelement/voicevox
5cda731
from pathlib import Path
import yaml
from ..utility import engine_root, get_save_dir
from .Setting import Setting
DEFAULT_SETTING_PATH: Path = engine_root() / "default_setting.yml"
USER_SETTING_PATH: Path = get_save_dir() / "setting.yml"
class SettingLoader:
def __init__(self, setting_file_path: Path) -> None:
self.setting_file_path = setting_file_path
def load_setting_file(self) -> Setting:
if not self.setting_file_path.is_file():
setting = yaml.safe_load(DEFAULT_SETTING_PATH.read_text(encoding="utf-8"))
else:
setting = yaml.safe_load(self.setting_file_path.read_text(encoding="utf-8"))
setting = Setting(
cors_policy_mode=setting["cors_policy_mode"],
allow_origin=setting["allow_origin"],
)
return setting
def dump_setting_file(self, settings: Setting) -> None:
settings_dict = settings.dict()
with open(self.setting_file_path, mode="w", encoding="utf-8") as f:
yaml.safe_dump(settings_dict, f)