Comments 7
bot_token: str
Подумайте о безопастности. Поменяйте на специальные типы данных для секретов.
Спасибо за статью. Не понравился тип возвращаемых данных для метода load. Думаю, уместнее будет указать тип Self или TypeVar из модуля typing (или typing_extensions, в зависимости от вашей версии питона).
Что мне в итоге не понравилось в Pydantic, это отсутствие нормальной композиции настроек и подсказок. Всё выглядит отличным.
class Config(BaseSettings):
telegram: TelegramConfig = Field(default_factory=TelegramConfig)
db: DatabaseConfig = Field(default_factory=DatabaseConfig)
Данный код читает переменные в три этапа. Есть если у вас не хватает переменных, то понадобиться три итерации, чтобы это поправить.
Я хочу чтобы когда я запускаю код с --help, то мне написали, все необходимые переменные и описание к ним. Для описания в сеттингах даже поля нет. До перехода на Pydantic работал с click. Там тоже композиции нет, зато help хороший.
Делаем управление конфигами удобным при помощи pydantic_settings