PYTHONPython

config

real world projects / discord bot / bot

PYTHON
config.py🐍
"""
Bot configuration using environment variables.
"""

import os
from dataclasses import dataclass
from dotenv import load_dotenv

# Load .env file
load_dotenv()


@dataclass
class Settings:
    """Bot configuration settings."""
    
    # Required
    DISCORD_TOKEN: str = os.getenv("DISCORD_TOKEN", "")
    
    # Bot settings
    BOT_PREFIX: str = os.getenv("BOT_PREFIX", "!")
    BOT_DESCRIPTION: str = os.getenv("BOT_DESCRIPTION", "A helpful Discord bot")
    
    # Database
    DATABASE_PATH: str = os.getenv("DATABASE_PATH", "bot.db")
    
    # Logging
    LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO")
    
    def validate(self) -> None:
        """Validate required settings."""
        if not self.DISCORD_TOKEN:
            raise ValueError("DISCORD_TOKEN environment variable is required")


settings = Settings()
PreviousNext