Files

66 lines
1.4 KiB
Python
Raw Permalink Normal View History

2025-07-27 22:17:28 +03:00
from dataclasses import dataclass
from environs import Env
@dataclass
class DatabaseConfig:
database: str
host: str
user: str
password: str
@dataclass
class TgBot:
token: str
admin_ids: list[int]
superadmin: int
@dataclass
class TableSchemas:
main_table: str
main_table_cols: str
@dataclass
class ChatBot:
url: str
api_key: str
bot_model: str
@dataclass
class Config:
tg_bot: TgBot
db: DatabaseConfig
table: TableSchemas
chat_bot: ChatBot
def config_loader(path: str | None = None) -> Config:
env: Env = Env()
env.read_env(path)
# Загружаем конфигурацию из .env файла и возвращаем его экземпляром Config dataclass'а'
return Config(
tg_bot=TgBot(
token=env('BOT_TOKEN'),
admin_ids=list(map(int, env.list('ADMIN_IDS'))),
superadmin=env('superadmin')
),
db=DatabaseConfig(
database=env('DATABASE'),
host=env('DB_HOST'),
user=env('DB_USER'),
password=env('DB_PASSWORD')
),
table=TableSchemas(
main_table=env('MAIN_TABLE'),
main_table_cols=env('MAIN_TABLE_COLS'),
),
chat_bot=ChatBot(
url=env('CHAT_BOT_URL'),
api_key=env('CHAT_BOT_API_KEY'),
bot_model=env('BOT_MODEL')
)
)