26 lines
760 B
Python
26 lines
760 B
Python
import json
|
|
from pathlib import Path
|
|
from dataclasses import dataclass
|
|
|
|
@dataclass
|
|
class Config(object):
|
|
discord_token: str | None = None
|
|
discord_guild_id: int | None = None
|
|
git_branch: str | None = None
|
|
|
|
def config_decoder(obj):
|
|
if '__type__' in obj and obj['__type__'] == "Config":
|
|
return Config(
|
|
discord_token=obj['discord_token'],
|
|
discord_guild_id=obj['discord_guild_id'],
|
|
git_branch=obj['git_branch']
|
|
)
|
|
|
|
def save(config: dict):
|
|
with Path("config.json").open("w+", encoding="utf-8") as fp:
|
|
json.dump(config, fp, indent=4)
|
|
|
|
def load():
|
|
with Path("config.json").open("r", encoding="utf-8") as fp:
|
|
config = json.load(fp, object_hook=config_decoder)
|
|
return config
|