Files
ronis_0505 5662d8877a
Some checks failed
continuous-integration/drone Build is failing
MVP
2025-07-27 22:17:28 +03:00

66 lines
1.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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')
)
)