BUH_bot/config.py
2026-06-19 13:51:59 +03:00

75 lines
2.3 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(default='', env='MOYSKLAD_LOGIN')
moysklad_password: str = Field(default='', 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(default='', env='TELEGRAM_BOT_TOKEN')
# Настройки приложения
log_level: str = Field(default='INFO', env='LOG_LEVEL')
debug: bool = Field(default=False, env='DEBUG')
include_accounting_accounts: bool = Field(
default=True,
env='INCLUDE_ACCOUNTING_ACCOUNTS'
)
# Пути
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(debug=False)
# Создание необходимых директорий
settings.output_dir.mkdir(parents=True, exist_ok=True)
if settings.templates_dir != BASE_DIR / 'templates':
settings.templates_dir.mkdir(parents=True, exist_ok=True)
except Exception as e:
# Для GUI приложения создаем настройки по умолчанию
import logging
logger = logging.getLogger(__name__)
logger.warning(f"⚠️ Настройки из .env не загружены: {e}")
logger.info("Используются настройки по умолчанию")
settings = Settings(debug=False)
settings.output_dir.mkdir(parents=True, exist_ok=True)