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'),)

Sources