🚧 Add up, down and config

This commit is contained in:
2023-06-01 17:36:25 +02:00
parent 0cca0b05ed
commit 25314fde08
4 changed files with 110 additions and 9 deletions

49
src/entity/config.py Normal file
View File

@@ -0,0 +1,49 @@
import json
import os
from pathlib import Path
from configparser import *
import typing
class Config(object):
_CONFIG_FILE: typing.Optional[str] = None
_CONFIG: typing.Optional[dict] = None
def __init__(self, config_file=None):
if config_file is None:
config_file = "config.json"
# Check that specified config file exists
if not os.path.exists(config_file):
Path(config_file).touch()
with open(config_file, 'w') as configfile:
json.dump({"session": []}, configfile)
Config._CONFIG_FILE = config_file
with open(config_file, 'r') as f:
Config._CONFIG = json.load(f)
@staticmethod
def save():
with open(Config._CONFIG_FILE, 'w') as configfile:
json.dump(Config._CONFIG, configfile)
@staticmethod
def get_config_file() -> str:
return Config._CONFIG_FILE
@staticmethod
def get_required_env_var(env_var: str) -> str:
if env_var not in os.environ:
raise Exception(f"Please set the {env_var} environment variable")
return os.environ[env_var]
@staticmethod
def get_required_config_var(config_var: str) -> str:
assert Config._CONFIG
if config_var not in Config._CONFIG:
raise Exception(f"Please set the {config_var} variable in the config file {Config._CONFIG_FILE}")
return Config._CONFIG[config_var]