BUH_bot/config.py
Игорь Надеин 5b6ab02e53 Initial commit: Core bot application
- Add main bot file with Telegram handlers
- Add configuration module
- Add Python dependencies
- Add modules: excel_generator, moysklad_client, xml_generator, user_manager
- Add .gitignore for Python, Docker, user data
2025-11-03 14:19:48 +03:00

63 lines
2.0 KiB
Python

"""
Конфигурация приложения
Загрузка настроек из переменных окружения
"""
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