import os from dotenv import load_dotenv load_dotenv() class Config: REDMINE_URL = os.getenv("REDMINE_URL", "").strip().rstrip("/") REDMINE_USER = os.getenv("REDMINE_USER") REDMINE_PASSWORD = os.getenv("REDMINE_PASSWORD") REDMINE_AUTHOR = os.getenv("REDMINE_AUTHOR") DEFAULT_FROM_DATE = os.getenv("DEFAULT_FROM_DATE") DEFAULT_TO_DATE = os.getenv("DEFAULT_TO_DATE") @classmethod def get_author(cls, cli_author: str = "") -> str: """Возвращает автора: из CLI если задан, иначе из .env, иначе — заглушку.""" if cli_author: return cli_author if cls.REDMINE_AUTHOR: return cls.REDMINE_AUTHOR return "" @classmethod def get_default_date_range(cls) -> str: if cls.DEFAULT_FROM_DATE and cls.DEFAULT_TO_DATE: return f"{cls.DEFAULT_FROM_DATE}--{cls.DEFAULT_TO_DATE}" # fallback hardcoded return "2025-12-19--2026-01-31" @classmethod def validate(cls) -> None: if not cls.REDMINE_URL: raise ValueError("REDMINE_URL is required (set via env or .env)") if not cls.REDMINE_USER: raise ValueError("REDMINE_USER is required") if not cls.REDMINE_PASSWORD: raise ValueError("REDMINE_PASSWORD is required")