import toml class DiscordConfig: def __init__(self, discord_config) -> None: self.token: str = discord_config["token"] self.timeout: int = discord_config["timeout"] class YoutubeConfig: def __init__(self, youtube_config) -> None: self.language: str = youtube_config["language"] self.region: str = youtube_config["region"] class SpotifyConfig: def __init__(self, spotify_config) -> None: self.clientId: str = spotify_config["clientId"] self.clientSecret: str = spotify_config["clientSecret"] self.region: str = spotify_config["region"] class LoggingConfig: def __init__(self, logging_config) -> None: self.level: str = logging_config["level"] class RedisConfig: def __init__(self, redis_config) -> None: self.host: str = redis_config["host"] self.port: int = redis_config["port"] self.password: str = redis_config["password"] class Config: def __init__(self, config_path: str) -> None: self._config = toml.load(config_path) self.appName: str = self._config["appName"] self.downloadDirectory: str = self._config["downloadDirectory"] self.discord = DiscordConfig(self._config["discord"]) self.youtube = YoutubeConfig(self._config["youtube"]) self.spotify = SpotifyConfig(self._config["spotify"]) self.logging = LoggingConfig(self._config["logging"]) self.redis = RedisConfig(self._config["redis"]) def __str__(self) -> str: return str(self._config)