File size: 1,049 Bytes
f1f433f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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)