Vue d'ensemble

Pydantic Settings 2.0, publié le 15 juillet 2023, est désormais un package indépendant de Pydantic. Il apporte le support natif des fichiers .env et la lecture de configuration TOML.

Fonctionnalités principales

Support natif .env

La classe BaseSettings charge automatiquement les variables depuis un fichier .env. La validation Pydantic v2 s’applique à chaque champ.

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)

Source TOML

Un nouveau provider permet de lire la configuration depuis un fichier TOML, idéal pour les projets utilisant 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