generated from FOSS/Bot-Template
style(config): reformat Settings for readability
This commit is contained in:
+40
-14
@@ -21,18 +21,34 @@ class Settings(BaseSettings):
|
||||
populate_by_name=True,
|
||||
)
|
||||
|
||||
bot_token: str = Field(default="", validation_alias=AliasChoices("BOT_TOKEN", "bot_token"))
|
||||
admin_ids: List[int] = Field(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")
|
||||
bot_token: str = Field(
|
||||
default="", validation_alias=AliasChoices("BOT_TOKEN", "bot_token")
|
||||
)
|
||||
admin_ids: List[int] = Field(
|
||||
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")
|
||||
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")
|
||||
user_cache_ttl: int = Field(default=300, ge=0, validation_alias="BOT_USER_CACHE_TTL")
|
||||
throttle_rate: float = Field(default=0.5, ge=0, validation_alias="BOT_THROTTLE_RATE")
|
||||
user_cache_ttl: int = Field(
|
||||
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
|
||||
def _strip_string(cls, value: object) -> str:
|
||||
return str(value or "").strip()
|
||||
@@ -46,11 +62,15 @@ class Settings(BaseSettings):
|
||||
if isinstance(value, int):
|
||||
values = [value]
|
||||
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)):
|
||||
values = list(value)
|
||||
else:
|
||||
raise ValueError("BOT_ADMIN_IDS должен быть числом или списком чисел через запятую")
|
||||
raise ValueError(
|
||||
"BOT_ADMIN_IDS должен быть числом или списком чисел через запятую"
|
||||
)
|
||||
|
||||
admin_ids = []
|
||||
|
||||
@@ -58,10 +78,14 @@ class Settings(BaseSettings):
|
||||
try:
|
||||
parsed_id = int(admin_id)
|
||||
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:
|
||||
raise ValueError("BOT_ADMIN_IDS должен содержать Telegram ID больше нуля")
|
||||
raise ValueError(
|
||||
"BOT_ADMIN_IDS должен содержать Telegram ID больше нуля"
|
||||
)
|
||||
|
||||
admin_ids.append(parsed_id)
|
||||
|
||||
@@ -73,7 +97,9 @@ class Settings(BaseSettings):
|
||||
try:
|
||||
timezone(value)
|
||||
except UnknownTimeZoneError as error:
|
||||
raise ValueError("BOT_TIMEZONE должен быть корректной временной зоной, например Europe/Moscow") from error
|
||||
raise ValueError(
|
||||
"BOT_TIMEZONE должен быть корректной временной зоной, например Europe/Moscow"
|
||||
) from error
|
||||
|
||||
return value
|
||||
|
||||
|
||||
Reference in New Issue
Block a user