Overview
Pydantic Settings 2.0, released on July 15, 2023, is now a standalone package. It brings native .env file support and TOML configuration reading.
Main Features
Native .env support
The BaseSettings class automatically loads variables from a .env file. Pydantic v2 validation applies to every field.
python
from pydantic_settings import BaseSettings
class Config(BaseSettings):
db_host: str = 'localhost'
db_port: int = 5432
debug: bool = False
model_config = {'env_file': '.env'}
cfg = Config()
print(cfg.db_host, cfg.db_port)
TOML source
A new provider reads configuration from a TOML file, ideal for projects using pyproject.toml.
python
from pydantic_settings import BaseSettings
from pydantic_settings import TomlConfigSettingsSource
class Config(BaseSettings):
app_name: str
workers: int = 4
@classmethod
def settings_customise_sources(cls, settings_cls, **kw):
return (TomlConfigSettingsSource(settings_cls, 'config.toml'),)
