Когда-то это была всего лишь библиотека для валидации данных.
Сегодня — полноценная система загрузки и обработки настроек, которая умеет:
— читать .env (и несколько подряд),
— забирать значения из переменных окружения,
— парсить JSON/TOML/YAML,
— работать с секретами из Docker/AWS/GCP/Azure/Unix-файлов,
— и даже разбирать CLI-аргументы.
По сути, теперь одним классом Pydantic вы можете заменить dotenv/environs, argparse/click/typer, загрузку yaml/json/toml и большую часть валидации.
Пример:
class Settings(BaseSettings):
service_url: HttpUrl
api_token: SecretStr
log_level: Literal['DEBUG','INFO','WARNING','ERROR'] = 'INFO'
port: conint(ge=1024, le=65535) = 8080
model_config = ConfigDict(
env_file=("/etc/.env", ".env"),
cli_parse_args=True
)
Каскад загрузки работает так:
1. dotenv
2. переменные окружения
3. CLI
4. параметры, переданные вручную
И всё это автоматически валидируется, приводится к нужным типам, секреты скрываются, вложенные структуры корректно обрабатываются.
Пример запуска:
export API_TOKEN="yeah_no"
python app.py --service_url https://bitecode.dev
Результат:
Service URL: https://bitecode.dev/
API Token: **********
Log Level: WARNING
Port: 8080
CLI-режим поддерживает множество удобств: подкоманды, kebab-case, списки/JSON в аргументах, отрицательные флаги, алиасы, mutually-exclusive groups и даже интеграцию с argparse.
Если нужно — легко подключить собственные источники настроек и секретов (включая Hashicorp Vault).
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека питониста
#буст