""" Конфигурация приложения Загрузка настроек из переменных окружения """ import os from pathlib import Path from dotenv import load_dotenv from pydantic_settings import BaseSettings from pydantic import Field # Загрузка .env файла load_dotenv() # Базовая директория проекта BASE_DIR = Path(__file__).parent class Settings(BaseSettings): """Настройки приложения""" # МойСклад API moysklad_login: str = Field(..., env='MOYSKLAD_LOGIN') moysklad_password: str = Field(..., env='MOYSKLAD_PASSWORD') moysklad_api_url: str = Field( default='https://api.moysklad.ru/api/remap/1.2', env='MOYSKLAD_API_URL' ) # Telegram Bot telegram_bot_token: str = Field(..., env='TELEGRAM_BOT_TOKEN') # Настройки приложения log_level: str = Field(default='INFO', env='LOG_LEVEL') debug: bool = Field(default=False, env='DEBUG') # Пути output_dir: Path = Field(default=BASE_DIR / 'output', env='OUTPUT_DIR') templates_dir: Path = Field(default=BASE_DIR / 'templates', env='TEMPLATES_DIR') # Форматы документов xml_version: str = '5.03' encoding: str = 'UTF-8' class Config: env_file = '.env' env_file_encoding = 'utf-8' case_sensitive = False # Создание экземпляра настроек try: settings = Settings() # Создание необходимых директорий settings.output_dir.mkdir(parents=True, exist_ok=True) settings.templates_dir.mkdir(parents=True, exist_ok=True) except Exception as e: print(f"⚠️ Ошибка загрузки настроек: {e}") print("Убедитесь, что файл .env существует и содержит все необходимые параметры") print("Скопируйте .env.example в .env и заполните значения") raise