Skip to content

Upgrading pydantic-settings 1 to 2

Breaking1.99 → 2.16.2Breaking11Security4Platform7Deprecated1New81Changed61Fixed191Other125

BreakingUpgrade verdict

11 breaking changes and 7 platform requirement changes and 2 security fixes.

  • Config files are now always read as UTF-8 unless you set an explicit encoding, so results no longer depend on your system locale.
  • Settings passed directly to the constructor or read from JSON, TOML, or YAML files now ignore letter case in key names by default, so `TeSt` fills a `test` field.
  • Removes parsing of command line arguments from CliSettingsSource.__init__.
  • TOML files are now read with a different library, and the setting that controlled their encoding is gone.
Top 5 of 21 that need code or config changes

Python requirement changed in 2.16.0: >=3.7 → >=3.11.

Adds typing-extensions >=4.0.0, typing-inspection >=0.4.0.

Installs 6 packages in all (was 5).

Breaking11
JSON and YAML config files are read as UTF-8 by default instead of the locale encoding.
json_file_encodingyaml_file_encoding
case_sensitive now applies to init kwargs and config-file sources, making case-insensitive matching the default for them.
case_sensitiveInitSettingsSource
Removes parsing of command line arguments from CliSettingsSource.__init__.
CliSettingsSource.__init__
Replaces tomlkit with tomli and removes the toml_file_encoding config option.
toml_file_encodingtomlkittomli
Aliases are ignored in every source when validate_by_alias=False; only field names are used.
validate_by_aliasextra_forbidden
validation_alias now takes precedence over alias, so file and CLI values that were silently ignored now load.
validation_aliasaliasCliApp.serialize
With case_sensitive=False, CLI case-insensitivity only lowercases registered options; args after -- and CliUnknownArgs keep their case.
case_sensitiveCliUnknownArgs
Fields with unresolved forward references now emit IncompleteFieldDefinitionWarning instead of failing silently.
IncompleteFieldDefinitionWarningmodel_rebuild()
Non-JSON env values for strict fields now raise ValidationError instead of a less specific error.
ValidationError
Reverts respecting 'cli_parse_args' from model_config with settings_customise_sources.
cli_parse_argssettings_customise_sources
Adopts pydantic-settings with Pydantic V2.
Security2
Requires python-dotenv>=1.2.2 to pick up the fix for CVE-2026-28684.
python-dotenv
Fixes GHSA-4xgf-cpjx-pc3j: with secrets_nested_subdir=True, symlinks inside secrets_dir could read out-of-tree files and bypass secrets_dir_max_size.
NestedSecretsSettingsSourcesecrets_nested_subdirsecrets_dirsecrets_dir_max_sizeModerate · CVSS 5.3
Platform7
Drops Python 3.10 support; pydantic-settings now requires Python 3.11+, and the tomli fallback is replaced by stdlib tomllib.
tomlitomllibtoml
Drops support for Python 3.10.
Adds support for Python 3.15.
Drops support for Python 3.8.
Adds Python 3.13 support.
Confirms Python 3.12 support.
Drops Python 3.7 support.
Deprecated1
Deprecates read_env_file and moves it to DotEnvSettingsSource.
read_env_fileDotEnvSettingsSource

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • added: export AWSSecretsManagerSettingsSource
  • added: export AWSSystemsManagerSettingsSource
  • added: export AzureKeyVaultSettingsSource
  • added: export CLI_SUPPRESS
  • added: export CliApp
  • added: export CliDualFlag
  • added: export CliExplicitFlag
  • added: export CliImplicitFlag
  • added: export CliMutuallyExclusiveGroup
  • added: export CliPositionalArg
  • added: export CliSettingsSource
  • added: export CliSubCommand
  • added: export CliSuppress
  • added: export CliToggleFlag
  • added: export CliUnknownArgs
  • added: export CliVariadicArg
  • added: export ForceDecode
  • added: export GoogleSecretManagerSettingsSource
  • added: export IncompleteFieldDefinitionWarning
  • added: export JsonConfigSettingsSource
  • added: export NestedSecretsSettingsSource
  • added: export NoDecode
  • added: export PyprojectTomlConfigSettingsSource
  • added: export SettingsConfigDict
  • added: export SettingsError
  • added: export TomlConfigSettingsSource
  • added: export YamlConfigSettingsSource
  • added: export get_subcommand
  • added: class IncompleteFieldDefinitionWarning(UserWarning)
  • added: class SettingsError(ValueError)
  • removed: variable env_file_sentinel: DotenvType
  • changed: constructor BaseSettings(_env_file: Optional[DotenvType]=…, _env_file_encoding: Optional[str]=…, _env_nested_delimiter: Optional[str]=…, _secrets_dir: Optional[Union[str, Path]]=…, **values: Any) -> None → constructor BaseSettings(_case_sensitive: bool | None=…, _nested_model_default_partial_update: bool | None=…, _env_prefix: str | None=…, _env_prefix_target: EnvPrefixTarget | None=…, _env_file: DotenvType | None=…, _env_file_encoding: str | None=…, _env_file_depth: int | None=…, _env_ignore_empty: bool | None=…, _env_nested_delimiter: str | None=…, _env_nested_max_split: int | None=…, _env_parse_…
  • changed: field BaseSettings.model_config → field BaseSettings.model_config: ClassVar[SettingsConfigDict]
  • changed: field SettingsConfigDict.env_file: Optional[DotenvType] → field SettingsConfigDict.env_file: DotenvType | None
  • changed: field SettingsConfigDict.env_file_encoding: Optional[str] → field SettingsConfigDict.env_file_encoding: str | None
  • changed: field SettingsConfigDict.env_nested_delimiter: Optional[str] → field SettingsConfigDict.env_nested_delimiter: str | None
  • changed: field SettingsConfigDict.secrets_dir: Optional[Union[str, Path]] → field SettingsConfigDict.secrets_dir: PathType | None
  • changed: static method BaseSettings.settings_customise_sources(settings_cls: Type[BaseSettings], init_settings: PydanticBaseSettingsSource, env_settings: PydanticBaseSettingsSource, dotenv_settings: PydanticBaseSettingsSource, file_secret_settings: PydanticBaseSettingsSource) -> Tuple[PydanticBaseSettingsSource, ...] → static method BaseSettings.settings_customise_sources(settings_cls: type[BaseSettings], init_settings: PydanticBaseSettingsSource, env_settings: PydanticBaseSettingsSource, dotenv_settings: PydanticBaseSettingsSource, file_secret_settings: PydanticBaseSettingsSource) -> tuple[PydanticBaseSettingsSource, ...]
  • added: class CliApp
  • added: field SettingsConfigDict.cli_avoid_json: bool
  • added: field SettingsConfigDict.cli_enforce_required: bool
  • added: field SettingsConfigDict.cli_exit_on_error: bool
  • added: field SettingsConfigDict.cli_flag_prefix_char: str
  • added: field SettingsConfigDict.cli_hide_none_type: bool
  • added: field SettingsConfigDict.cli_ignore_unknown_args: bool | None
  • added: field SettingsConfigDict.cli_implicit_flags: bool | Literal['dual', 'toggle'] | None
  • added: field SettingsConfigDict.cli_kebab_case: bool | Literal['all', 'no_enums'] | None
  • added: field SettingsConfigDict.cli_parse_args: bool | list[str] | tuple[str, ...] | None
  • added: field SettingsConfigDict.cli_parse_none_str: str | None
  • added: field SettingsConfigDict.cli_prefix: str
  • added: field SettingsConfigDict.cli_prog_name: str | None
  • added: field SettingsConfigDict.cli_shortcuts: Mapping[str, str | list[str]] | None
  • added: field SettingsConfigDict.cli_show_env_vars: bool
  • added: field SettingsConfigDict.cli_use_class_docs_for_groups: bool
  • added: field SettingsConfigDict.dotenv_filtering: DotenvFiltering | None
  • added: field SettingsConfigDict.enable_decoding: bool
  • added: field SettingsConfigDict.env_file_depth: int
  • added: field SettingsConfigDict.env_ignore_empty: bool
  • added: field SettingsConfigDict.env_nested_max_split: int | None
  • added: field SettingsConfigDict.env_parse_enums: bool | None
  • added: field SettingsConfigDict.env_parse_none_str: str | None
  • added: field SettingsConfigDict.env_prefix_target: EnvPrefixTarget
  • added: field SettingsConfigDict.json_file: ConfigFileSourceType | None
  • added: field SettingsConfigDict.json_file_encoding: str | None
  • added: field SettingsConfigDict.nested_model_default_partial_update: bool | None
  • added: field SettingsConfigDict.pyproject_toml_depth: int
  • added: field SettingsConfigDict.pyproject_toml_table_header: tuple[str, ...]
  • added: field SettingsConfigDict.secrets_case_sensitive: bool | None
  • added: field SettingsConfigDict.secrets_dir_max_size: int | None
  • added: field SettingsConfigDict.secrets_dir_missing: Literal['ok', 'warn', 'error'] | None
  • added: field SettingsConfigDict.secrets_nested_delimiter: str | None
  • added: field SettingsConfigDict.secrets_nested_subdir: bool | None
  • added: field SettingsConfigDict.secrets_prefix: str | None
  • added: field SettingsConfigDict.toml_file: ConfigFileSourceType | None
  • added: field SettingsConfigDict.toml_table_header: tuple[str, ...]
  • added: field SettingsConfigDict.yaml_config_section: str | None
  • added: field SettingsConfigDict.yaml_file: ConfigFileSourceType | None
  • added: field SettingsConfigDict.yaml_file_encoding: str | None
  • added: static method BaseSettings.settings_cached() -> Self
  • added: static method BaseSettings.settings_clear_cache() -> None
  • added: static method CliApp.format_help(model: PydanticModel | type[T], cli_settings_source: CliSettingsSource[Any] | None=…, strip_ansi_color: bool=…) -> str
  • added: static method CliApp.print_help(model: PydanticModel | type[T], cli_settings_source: CliSettingsSource[Any] | None=…, file: TextIO | None=…, strip_ansi_color: bool=…) -> None
  • added: static method CliApp.run(model_cls: type[T], cli_args: list[str] | Namespace | SimpleNamespace | dict[str, Any] | None=…, cli_settings_source: CliSettingsSource[Any] | None=…, cli_exit_on_error: bool | None=…, cli_show_env_vars: bool | None=…, cli_cmd_method_name: str=…, **model_init_data: Any) -> T
  • added: static method CliApp.run_subcommand(model: PydanticModel, cli_exit_on_error: bool | None=…, cli_show_env_vars: bool | None=…, cli_cmd_method_name: str=…) -> PydanticModel
  • added: static method CliApp.serialize(model: PydanticModel, list_style: Literal['json', 'argparse', 'lazy']=…, dict_style: Literal['json', 'env']=…, positionals_first: bool=…) -> list[str]
  • added: variable T
  • removed: class DotEnvSettingsSource(EnvSettingsSource)
  • removed: class EnvSettingsSource(PydanticBaseEnvSettingsSource)
  • removed: class InitSettingsSource(PydanticBaseSettingsSource)
  • removed: class PydanticBaseEnvSettingsSource(PydanticBaseSettingsSource)
  • removed: class PydanticBaseSettingsSource(ABC)
  • removed: class SecretsSettingsSource(PydanticBaseEnvSettingsSource)
  • removed: class SettingsError(ValueError)
  • removed: constructor DotEnvSettingsSource(settings_cls: Type[BaseSettings], env_file: Optional[DotenvType], env_file_encoding: Optional[str], env_nested_delimiter: Optional[str]=…, env_prefix_len: int=…)
  • removed: constructor EnvSettingsSource(settings_cls: Type[BaseSettings], env_nested_delimiter: Optional[str]=…, env_prefix_len: int=…)
  • removed: constructor InitSettingsSource(settings_cls: Type[BaseSettings], init_kwargs: Dict[str, Any])
  • removed: constructor PydanticBaseSettingsSource(settings_cls: Type[BaseSettings])
  • removed: constructor SecretsSettingsSource(settings_cls: Type[BaseSettings], secrets_dir: Optional[Union[str, Path]])
  • removed: function find_case_path(dir_path: Path, file_name: str, case_sensitive: bool) -> Optional[Path]
  • removed: function read_env_file(file_path: Path, *, encoding: str=…, case_sensitive: bool=…) -> Dict[str, Optional[str]]
  • removed: method EnvSettingsSource.explode_env_vars(field_name: str, field: FieldInfo, env_vars: Mapping[str, Optional[str]]) -> Dict[str, Any]
  • removed: method EnvSettingsSource.get_field_value(field: FieldInfo, field_name: str) -> Tuple[Any, str, bool]
  • removed: method EnvSettingsSource.prepare_field_value(field_name: str, field: FieldInfo, value: Any, value_is_complex: bool) -> Any
  • removed: method InitSettingsSource.get_field_value(field: FieldInfo, field_name: str) -> Tuple[Any, str, bool]
  • removed: method PydanticBaseSettingsSource.field_is_complex(field: FieldInfo) -> bool
  • removed: method PydanticBaseSettingsSource.get_field_value(field: FieldInfo, field_name: str) -> Tuple[Any, str, bool]
  • removed: method PydanticBaseSettingsSource.prepare_field_value(field_name: str, field: FieldInfo, value: Any, value_is_complex: bool) -> Any
  • removed: method SecretsSettingsSource.get_field_value(field: FieldInfo, field_name: str) -> Tuple[Any, str, bool]
  • removed: static method SecretsSettingsSource.find_case_path(dir_path: Path, file_name: str, case_sensitive: bool) -> Optional[Path]
  • removed: variable DotenvType
  • added: export AWSSecretsManagerSettingsSource
  • added: export AWSSystemsManagerSettingsSource
  • added: export AzureKeyVaultSettingsSource
  • added: export CLI_SUPPRESS
  • added: export CliDualFlag
  • added: export CliExplicitFlag
  • added: export CliImplicitFlag
  • added: export CliMutuallyExclusiveGroup
  • added: export CliPositionalArg
  • added: export CliSettingsSource
  • added: export CliSubCommand
  • added: export CliSuppress
  • added: export CliToggleFlag
  • added: export CliUnknownArgs
  • added: export CliVariadicArg
  • added: export ConfigFileSourceMixin
  • added: export ConfigFileSourceType
  • added: export DEFAULT_PATH
  • added: export DefaultSettingsSource
  • added: export DotEnvSettingsSource
  • added: export DotenvFiltering
  • added: export DotenvType
  • added: export ENV_FILE_SENTINEL
  • added: export EnvPrefixTarget
  • added: export EnvSettingsSource
  • added: export ForceDecode
  • added: export GoogleSecretManagerSettingsSource
  • added: export InitSettingsSource
  • added: export JsonConfigSettingsSource
  • added: export NestedSecretsSettingsSource
  • added: export NoDecode
  • added: export PathType
  • added: export PydanticBaseEnvSettingsSource
  • added: export PydanticBaseSettingsSource
  • added: export PydanticModel
  • added: export PyprojectTomlConfigSettingsSource
  • added: export SecretsSettingsSource
  • added: export TomlConfigSettingsSource
  • added: export YamlConfigSettingsSource
  • added: export get_subcommand
  • added: export read_env_file
  • added: class ConfigFileSourceMixin(ABC)
  • added: class DefaultSettingsSource(PydanticBaseSettingsSource)
  • added: class InitSettingsSource(PydanticBaseSettingsSource)
  • added: class PydanticBaseEnvSettingsSource(PydanticBaseSettingsSource)
  • added: class PydanticBaseSettingsSource(ABC)
  • added: constructor DefaultSettingsSource(settings_cls: type[BaseSettings], nested_model_default_partial_update: bool | None=…, _init_state: InitState | None=…)
  • added: constructor InitSettingsSource(settings_cls: type[BaseSettings], init_kwargs: dict[str, Any], nested_model_default_partial_update: bool | None=…, _init_state: InitState | None=…)
  • added: constructor PydanticBaseEnvSettingsSource(settings_cls: type[BaseSettings], case_sensitive: bool | None=…, env_prefix: str | None=…, env_prefix_target: EnvPrefixTarget | None=…, env_ignore_empty: bool | None=…, env_parse_none_str: str | None=…, env_parse_enums: bool | None=…, _init_state: InitState | None=…) -> None
  • added: constructor PydanticBaseSettingsSource(settings_cls: type[BaseSettings], _init_state: InitState | None=…)
  • added: export SettingsError
  • added: method DefaultSettingsSource.get_field_value(field: FieldInfo, field_name: str) -> tuple[Any, str, bool]
  • added: method InitSettingsSource.get_field_value(field: FieldInfo, field_name: str) -> tuple[Any, str, bool]
  • added: method PydanticBaseSettingsSource.decode_complex_value(field_name: str, field: FieldInfo, value: Any) -> Any
  • added: method PydanticBaseSettingsSource.field_is_complex(field: FieldInfo) -> bool
  • added: method PydanticBaseSettingsSource.get_field_value(field: FieldInfo, field_name: str) -> tuple[Any, str, bool]
  • added: method PydanticBaseSettingsSource.prepare_field_value(field_name: str, field: FieldInfo, value: Any, value_is_complex: bool) -> Any
  • added: property PydanticBaseSettingsSource.current_state -> dict[str, Any]
  • added: property PydanticBaseSettingsSource.settings_sources_data -> dict[str, dict[str, Any]]
  • added: export AWSSecretsManagerSettingsSource
  • added: export AWSSystemsManagerSettingsSource
  • added: export AzureKeyVaultSettingsSource
  • added: export CliDualFlag
  • added: export CliExplicitFlag
  • added: export CliImplicitFlag
  • added: export CliMutuallyExclusiveGroup
  • added: export CliPositionalArg
  • added: export CliSettingsSource
  • added: export CliSubCommand
  • added: export CliSuppress
  • added: export CliToggleFlag
  • added: export CliVariadicArg
  • added: export DotEnvSettingsSource
  • added: export EnvSettingsSource
  • added: export GoogleSecretManagerSettingsSource
  • added: export JsonConfigSettingsSource
  • added: export PyprojectTomlConfigSettingsSource
  • added: export SecretsSettingsSource
  • added: export TomlConfigSettingsSource
  • added: export YamlConfigSettingsSource
  • added: class AWSSecretsManagerSettingsSource(EnvSettingsSource)
  • added: class AWSSystemsManagerSettingsSource(EnvSettingsSource)
  • added: constructor AWSSecretsManagerSettingsSource(settings_cls: type[BaseSettings], secret_id: str, region_name: str | None=…, endpoint_url: str | None=…, case_sensitive: bool | None=…, env_prefix: str | None=…, env_nested_delimiter: str | None=…, env_parse_none_str: str | None=…, env_parse_enums: bool | None=…, version_id: str | None=…, _init_state: InitState | None=…) -> None
  • added: constructor AWSSystemsManagerSettingsSource(settings_cls: type[BaseSettings], ssm_path: str=…, region_name: str | None=…, endpoint_url: str | None=…, case_sensitive: bool | None=…, env_prefix: str | None=…, env_nested_delimiter: str | None=…, env_parse_none_str: str | None=…, env_parse_enums: bool | None=…, _init_state: InitState | None=…) -> None
  • added: class AzureKeyVaultMapping(Mapping[str, str | None])
  • added: class AzureKeyVaultSettingsSource(EnvSettingsSource)
  • added: constructor AzureKeyVaultMapping(secret_client: SecretClient, case_sensitive: bool, snake_case_conversion: bool, env_prefix: str | None, env_parse_none_str: str | None=…) -> None
  • added: constructor AzureKeyVaultSettingsSource(settings_cls: type[BaseSettings], url: str, credential: TokenCredential, dash_to_underscore: bool=…, case_sensitive: bool | None=…, snake_case_conversion: bool=…, env_prefix: str | None=…, env_parse_none_str: str | None=…, env_parse_enums: bool | None=…, _init_state: InitState | None=…) -> None
  • added: method AzureKeyVaultSettingsSource.explode_env_vars(field_name: str, field: FieldInfo, env_vars: Mapping[str, str | None]) -> dict[str, Any]
  • added: class CliMutuallyExclusiveGroup(BaseModel)
  • added: class CliSettingsSource(EnvSettingsSource, Generic[T])
  • added: constructor CliSettingsSource(settings_cls: type[BaseSettings], cli_prog_name: str | None=…, cli_parse_args: bool | list[str] | tuple[str, ...] | None=…, cli_parse_none_str: str | None=…, cli_hide_none_type: bool | None=…, cli_avoid_json: bool | None=…, cli_enforce_required: bool | None=…, cli_use_class_docs_for_groups: bool | None=…, cli_show_env_vars: bool | None=…, cli_exit_on_error: bool | No…
  • added: property CliSettingsSource.env_var_names -> Mapping[str, tuple[str, ...]]
  • added: property CliSettingsSource.root_parser -> T
  • added: variable CLI_SUPPRESS
  • added: variable CliDualFlag
  • added: variable CliExplicitFlag
  • added: variable CliImplicitFlag
  • added: variable CliPositionalArg
  • added: variable CliSubCommand
  • added: variable CliSuppress
  • added: variable CliToggleFlag
  • added: variable CliUnknownArgs
  • added: variable CliVariadicArg
  • added: variable T
  • added: class DotEnvSettingsSource(EnvSettingsSource)
  • added: constructor DotEnvSettingsSource(settings_cls: type[BaseSettings], env_file: DotenvType | None=…, env_file_encoding: str | None=…, dotenv_filtering: DotenvFiltering | None=…, case_sensitive: bool | None=…, env_prefix: str | None=…, env_prefix_target: EnvPrefixTarget | None=…, env_nested_delimiter: str | None=…, env_nested_max_split: int | None=…, env_ignore_empty: bool | None=…, env_parse_none_st…
  • added: function read_env_file(file_path: Path, *, encoding: str | None=…, case_sensitive: bool=…, ignore_empty: bool=…, parse_none_str: str | None=…) -> Mapping[str, str | None]
  • added: class EnvSettingsSource(PydanticBaseEnvSettingsSource)
  • added: constructor EnvSettingsSource(settings_cls: type[BaseSettings], case_sensitive: bool | None=…, env_prefix: str | None=…, env_prefix_target: EnvPrefixTarget | None=…, env_nested_delimiter: str | None=…, env_nested_max_split: int | None=…, env_ignore_empty: bool | None=…, env_parse_none_str: str | None=…, env_parse_enums: bool | None=…, _init_state: InitState | None=…) -> None
  • added: method EnvSettingsSource.explode_env_vars(field_name: str, field: FieldInfo, env_vars: Mapping[str, str | None]) -> dict[str, Any]
  • added: method EnvSettingsSource.get_field_value(field: FieldInfo, field_name: str) -> tuple[Any, str, bool]
  • added: method EnvSettingsSource.next_field(field: FieldInfo | Any | None, key: str, case_sensitive: bool | None=…) -> FieldInfo | None
  • added: method EnvSettingsSource.prepare_field_value(field_name: str, field: FieldInfo, value: Any, value_is_complex: bool) -> Any
  • added: class GoogleSecretManagerMapping(Mapping[str, str | None])
  • added: class GoogleSecretManagerSettingsSource(EnvSettingsSource)
  • added: constructor GoogleSecretManagerMapping(secret_client: SecretManagerServiceClient, project_id: str, case_sensitive: bool, env_parse_none_str: str | None=…) -> None
  • added: constructor GoogleSecretManagerSettingsSource(settings_cls: type[BaseSettings], credentials: Credentials | None=…, project_id: str | None=…, env_prefix: str | None=…, env_parse_none_str: str | None=…, env_parse_enums: bool | None=…, secret_client: SecretManagerServiceClient | None=…, case_sensitive: bool | None=…, project_id_field: str=…, _init_state: InitState | None=…) -> None
  • added: method GoogleSecretManagerSettingsSource.get_field_value(field: FieldInfo, field_name: str) -> tuple[Any, str, bool]
  • added: class JsonConfigSettingsSource(InitSettingsSource, ConfigFileSourceMixin)
  • added: constructor JsonConfigSettingsSource(settings_cls: type[BaseSettings], json_file: ConfigFileSourceType | None=…, json_file_encoding: str | None=…, deep_merge: bool=…, _init_state: InitState | None=…)
  • added: class NestedSecretsSettingsSource(EnvSettingsSource)
  • added: constructor NestedSecretsSettingsSource(file_secret_settings: PydanticBaseSettingsSource | SecretsSettingsSource, secrets_dir: Optional[PathType]=…, secrets_dir_missing: Literal['ok', 'warn', 'error'] | None=…, secrets_dir_max_size: int | None=…, secrets_case_sensitive: bool | None=…, secrets_prefix: str | None=…, secrets_nested_delimiter: str | None=…, secrets_nested_subdir: bool | None=…, case_…
  • added: function first_not_none(*objs: Any) -> Any
  • added: method NestedSecretsSettingsSource.validate_secrets_path(path: Path) -> None
  • added: static method NestedSecretsSettingsSource.load_secrets(path: Path) -> dict[str, str]
  • added: variable SECRETS_DIR_MAX_SIZE
  • added: class PyprojectTomlConfigSettingsSource(TomlConfigSettingsSource)
  • added: constructor PyprojectTomlConfigSettingsSource(settings_cls: type[BaseSettings], toml_file: Path | None=…, _init_state: InitState | None=…) -> None
  • added: class SecretsSettingsSource(PydanticBaseEnvSettingsSource)
  • added: constructor SecretsSettingsSource(settings_cls: type[BaseSettings], secrets_dir: PathType | None=…, case_sensitive: bool | None=…, env_prefix: str | None=…, env_prefix_target: EnvPrefixTarget | None=…, env_ignore_empty: bool | None=…, env_parse_none_str: str | None=…, env_parse_enums: bool | None=…, _init_state: InitState | None=…) -> None
  • added: method SecretsSettingsSource.get_field_value(field: FieldInfo, field_name: str) -> tuple[Any, str, bool]
  • added: static method SecretsSettingsSource.find_case_path(dir_path: Path, file_name: str, case_sensitive: bool) -> Path | None
  • added: class TomlConfigSettingsSource(InitSettingsSource, ConfigFileSourceMixin)
  • added: constructor TomlConfigSettingsSource(settings_cls: type[BaseSettings], toml_file: ConfigFileSourceType | None=…, toml_table_header: tuple[str, ...] | None=…, deep_merge: bool=…, _init_state: InitState | None=…)
  • added: function import_toml() -> None
  • added: variable tomllib
  • added: class YamlConfigSettingsSource(InitSettingsSource, ConfigFileSourceMixin)
  • added: constructor YamlConfigSettingsSource(settings_cls: type[BaseSettings], yaml_file: ConfigFileSourceType | None=…, yaml_file_encoding: str | None=…, yaml_config_section: str | None=…, deep_merge: bool=…, _init_state: InitState | None=…)
  • added: class EnvNoneType(str)
  • added: class ForceDecode
  • added: class NoDecode
  • added: class SecretVersion
  • added: class _CliDualFlag(_CliImplicitFlag)
  • added: class _CliExplicitFlag
  • added: class _CliImplicitFlag
  • added: class _CliPositionalArg
  • added: class _CliSubCommand
  • added: class _CliToggleFlag(_CliImplicitFlag)
  • added: class _CliUnknownArgs
  • added: class _CliVariadicArg
  • added: constructor SecretVersion(version: str) -> None
  • added: variable ConfigFileSourceType
  • added: variable DEFAULT_PATH: PathType
  • added: variable DotenvFiltering
  • added: variable DotenvType
  • added: variable ENV_FILE_SENTINEL: DotenvType
  • added: variable EnvPrefixTarget
  • added: variable PathType
  • added: variable PydanticModel
  • added: class InitState(TypedDict)
  • added: field InitState.field_info_ids: set[int]
  • added: function _annotation_contains_types(annotation: Any, types: tuple[Any, ...], is_include_origin: bool=…, is_strip_annotated: bool=…, is_instance: bool=…, collect: set[Any] | None=…, is_subtype: bool=…, _seen_aliases: tuple[Any, ...]=…) -> bool
  • added: function _annotation_enum_name_to_val(annotation: Any, name: Any) -> Any
  • added: function _annotation_enum_val_to_name(annotation: Any, value: Any) -> str | None
  • added: function _annotation_is_complex(annotation: Any, metadata: list[Any], init_state: InitState | None=…) -> bool
  • added: function _annotation_is_complex_inner(annotation: type[Any] | None) -> bool
  • added: function _get_alias_names(field_name: str, field_info: FieldInfo, alias_path_args: dict[str, int | None] | None=…, case_sensitive: bool=…, populate_by_name: bool=…, validate_by_alias: bool=…) -> tuple[tuple[str, ...], bool]
  • added: function _get_env_var_key(key: str, case_sensitive: bool=…) -> str
  • added: function _get_model_fields(model_cls: type[Any]) -> dict[str, FieldInfo]
  • added: function _get_union_members(annotation: Any) -> tuple[Any, ...]
  • added: function _is_function(obj: Any) -> bool
  • added: function _literal_has_numeric_enum(annotation: type[Any] | None) -> bool
  • added: function _parse_env_none_str(value: str | None, parse_none_str: str | None=…) -> str | EnvNoneType | None
  • added: function _resolve_config_file(file: str | os.PathLike[str], depth: int=…, *, allow_fifo: bool=…) -> Path | None
  • added: function _resolve_type_alias(annotation: Any) -> Any
  • added: function _strip_annotated(annotation: Any) -> Any
  • added: function _union_has_strict_types(annotation: type[Any] | None) -> bool
  • added: function _union_is_complex(annotation: type[Any] | None, metadata: list[Any], init_state: InitState | None=…, _seen: tuple[Any, ...]=…) -> bool
  • added: function _warn_if_field_info_incomplete(field_info: FieldInfo, field_name: str, init_state: InitState) -> None
  • added: function parse_env_vars(env_vars: Mapping[str, str | None], case_sensitive: bool=…, ignore_empty: bool=…, parse_none_str: str | None=…) -> Mapping[str, str | None]
  • removed: variable path_type_labels
  • added: variable logger