style(config): reformat Settings for readability

This commit is contained in:
2026-07-30 16:12:54 +05:00
parent ff539ccaa2
commit 063c9bdbdd
+40 -14
View File
@@ -21,18 +21,34 @@ class Settings(BaseSettings):
populate_by_name=True, populate_by_name=True,
) )
bot_token: str = Field(default="", validation_alias=AliasChoices("BOT_TOKEN", "bot_token")) bot_token: str = Field(
admin_ids: List[int] = Field(default_factory=list, validation_alias=AliasChoices("BOT_ADMIN_IDS", "admin_id")) default="", validation_alias=AliasChoices("BOT_TOKEN", "bot_token")
database_export: bool = Field(default=False, )
validation_alias=AliasChoices("BOT_DATABASE_EXPORT", "allow_database_export")) admin_ids: List[int] = Field(
status_notification: bool = Field(default=True, validation_alias="BOT_STATUS_NOTIFICATION") default_factory=list, validation_alias=AliasChoices("BOT_ADMIN_IDS", "admin_id")
)
database_export: bool = Field(
default=False,
validation_alias=AliasChoices("BOT_DATABASE_EXPORT", "allow_database_export"),
)
status_notification: bool = Field(
default=True, validation_alias="BOT_STATUS_NOTIFICATION"
)
timezone: str = Field(default="Europe/Moscow", validation_alias="BOT_TIMEZONE") timezone: str = Field(default="Europe/Moscow", validation_alias="BOT_TIMEZONE")
database_path: str = Field(default="tgbot/data/database.db", validation_alias="PATH_DATABASE") database_path: str = Field(
default="tgbot/data/database.db", validation_alias="PATH_DATABASE"
)
logs_path: str = Field(default="tgbot/data/logs.log", validation_alias="PATH_LOGS") logs_path: str = Field(default="tgbot/data/logs.log", validation_alias="PATH_LOGS")
user_cache_ttl: int = Field(default=300, ge=0, validation_alias="BOT_USER_CACHE_TTL") user_cache_ttl: int = Field(
throttle_rate: float = Field(default=0.5, ge=0, validation_alias="BOT_THROTTLE_RATE") default=300, ge=0, validation_alias="BOT_USER_CACHE_TTL"
)
throttle_rate: float = Field(
default=0.5, ge=0, validation_alias="BOT_THROTTLE_RATE"
)
@field_validator("bot_token", "timezone", "database_path", "logs_path", mode="before") @field_validator(
"bot_token", "timezone", "database_path", "logs_path", mode="before"
)
@classmethod @classmethod
def _strip_string(cls, value: object) -> str: def _strip_string(cls, value: object) -> str:
return str(value or "").strip() return str(value or "").strip()
@@ -46,11 +62,15 @@ class Settings(BaseSettings):
if isinstance(value, int): if isinstance(value, int):
values = [value] values = [value]
elif isinstance(value, str): elif isinstance(value, str):
values = [admin_id for admin_id in value.replace(" ", "").split(",") if admin_id] values = [
admin_id for admin_id in value.replace(" ", "").split(",") if admin_id
]
elif isinstance(value, (list, tuple, set)): elif isinstance(value, (list, tuple, set)):
values = list(value) values = list(value)
else: else:
raise ValueError("BOT_ADMIN_IDS должен быть числом или списком чисел через запятую") raise ValueError(
"BOT_ADMIN_IDS должен быть числом или списком чисел через запятую"
)
admin_ids = [] admin_ids = []
@@ -58,10 +78,14 @@ class Settings(BaseSettings):
try: try:
parsed_id = int(admin_id) parsed_id = int(admin_id)
except (TypeError, ValueError) as error: except (TypeError, ValueError) as error:
raise ValueError("BOT_ADMIN_IDS должен содержать только Telegram ID через запятую") from error raise ValueError(
"BOT_ADMIN_IDS должен содержать только Telegram ID через запятую"
) from error
if parsed_id <= 0: if parsed_id <= 0:
raise ValueError("BOT_ADMIN_IDS должен содержать Telegram ID больше нуля") raise ValueError(
"BOT_ADMIN_IDS должен содержать Telegram ID больше нуля"
)
admin_ids.append(parsed_id) admin_ids.append(parsed_id)
@@ -73,7 +97,9 @@ class Settings(BaseSettings):
try: try:
timezone(value) timezone(value)
except UnknownTimeZoneError as error: except UnknownTimeZoneError as error:
raise ValueError("BOT_TIMEZONE должен быть корректной временной зоной, например Europe/Moscow") from error raise ValueError(
"BOT_TIMEZONE должен быть корректной временной зоной, например Europe/Moscow"
) from error
return value return value