This commit is contained in:
EstrellaXD
2023-05-06 15:01:25 +08:00
parent eec7bfbdc9
commit bf5ac1b657

View File

@@ -16,21 +16,6 @@ except ImportError:
class Setting(Config):
def __init__(self):
if VERSION != "DEV_VERSION":
CONFIG_PATH = "config/config.json"
else:
CONFIG_PATH = "config/config_dev.json"
if os.path.isfile(CONFIG_PATH):
config = load_config_from_file(CONFIG_PATH)
else:
logger.info(f"Can't find config file, use env instead")
load_dotenv()
config = env_to_config()
super().__init__(config)
save_config_to_file(self, CONFIG_PATH)
self.reload()
@staticmethod
def reload():
load_config_from_file(CONFIG_PATH)
@@ -49,7 +34,7 @@ def save_config_to_file(config: Config, path: str):
def load_config_from_file(path: str) -> Config:
with open(path, "r", encoding="utf-8") as f:
config = json.load(f)
return config
return Setting(**config)
def _val_from_env(env: str, attr: tuple):
@@ -72,8 +57,26 @@ def env_to_config() -> Setting:
else:
attr_name = attr[0] if isinstance(attr, tuple) else attr
_settings[key][attr_name] = _val_from_env(env, attr)
return _settings
return Setting(**_settings)
if os.path.isdir("config") and VERSION == "DEV_VERSION":
CONFIG_PATH = "config/config_dev.json"
if os.path.isfile(CONFIG_PATH):
settings = load_config_from_file(CONFIG_PATH)
else:
load_dotenv(".env")
settings = env_to_config()
save_config_to_file(settings, CONFIG_PATH)
elif os.path.isdir("config") and VERSION != "DEV_VERSION":
CONFIG_PATH = "config/config.json"
if os.path.isfile(CONFIG_PATH):
settings = load_config_from_file(CONFIG_PATH)
else:
settings = env_to_config()
save_config_to_file(settings, CONFIG_PATH)
else:
settings = Setting()