Skip to content

fix(deps): update dependency pydantic-settings to >=2.16.0,<2.17.0 - #369

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/pydantic-settings-2.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/pydantic-settings-2.x

Conversation

@renovate

@renovate renovate Bot commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
pydantic-settings (changelog) >=2.15.0,<2.16.0 → >=2.16.0,<2.17.0 age confidence

Release Notes

pydantic/pydantic-settings (pydantic-settings)

v2.16.0

Compare Source

Highlights
Breaking changes and behavior changes
  • Python 3.10 is no longer supported (#​1003). pydantic-settings now requires Python 3.11+, since 3.10 reaches end of life this month. The tomli fallback is gone in favor of stdlib tomllib; the toml extra is kept as an empty extra so pip install pydantic-settings[toml] keeps working.
  • python-dotenv>=1.2.2 is now required (#​971) to pick up the fix for CVE-2026-28684.
  • Aliases are ignored in every source when validate_by_alias=False (#​1033). Env vars, secrets, CLI flags and defaults now use only field names, matching pydantic. An env var named after the alias is now ignored instead of raising extra_forbidden, and the CLI exposes --apple rather than --pomo.
  • validation_alias takes precedence over alias (#​1038). When the two differ, values from JSON/YAML/TOML files and the CLI were silently ignored; they now load. CLI help lists the validation_alias flag first, and CliApp.serialize emits it.
  • CLI case-insensitivity only lowercases registered options (#​1036). With case_sensitive=False, args after -- and those captured by CliUnknownArgs keep their case (-Xmx4G no longer becomes -xmx4g). Unrecognized options are now reported as typed (--NOPE instead of --nope).
  • JSON and YAML config files are read as UTF-8 by default (#​955) instead of the locale encoding, completing the secrets-file fix from 2.15.0. json_file_encoding/yaml_file_encoding still override it.
  • Discriminated union defaults are partially updated again (#​997). This reverts the 2.15.0 regression with nested_model_default_partial_update=True: the default is only dropped when the incoming value selects a different union member.
New features
  • Python 3.15 and pydantic 2.14 support (#​1026, #​1029, #​1022). pydantic 2.14 broke CliApp.run and validate_by_alias=False handling; both are fixed.
  • Cached settings instances via Settings.settings_cached() and Settings.settings_clear_cache() (#​952). These give you a process-local singleton per settings class without hand-rolling lru_cache wrappers. Calling the class directly still builds a fresh instance.
  • AWS Systems Manager Parameter Store source — AWSSystemsManagerSettingsSource (#​941). It recursively reads every parameter under an ssm_path, with / mapping onto nested models. Install it with the new aws-systems-manager extra.
  • env_file_depth (#​940) lets a relative env_file be found in parent directories, mirroring pyproject_toml_depth. This is useful when scripts run from a subdirectory of a monorepo. It defaults to 0, which keeps the current behavior.
  • CliVariadicArg for named variadic options (#​949, #​958). It accepts --param a b c in addition to repeated --param a --param b. Required fields need at least one value.
Bug fixes

CLI

  • CliApp.serialize output now round-trips through CliApp.run for enums, tuples, dates and Decimals (#​988), explicit None values (#​981), empty containers (#​1008), CliVariadicArg values (#​976) and populated CliUnknownArgs fields, which previously raised IndexError (#​992).
  • Empty JSON arrays (--items []) now give an empty list instead of [''] (#​994).
  • Tuples, frozenset, MutableSequence and other collection subtypes are now treated as repeatable/variadic options (#​972), and so are named collection type aliases such as TypeAliasType('Addrs', list[IPvAnyAddress]) (#​1032).
  • cli_exit_on_error=False is now honored in CliSubCommand parsers, which raise SettingsError instead of exiting (#​977).
  • CliSubCommand aliases keep their case with case_sensitive=False (#​989).
  • Each CliUnknownArgs field now receives only its own subcommand's leftover args (#​1004).
  • CliApp.format_help no longer crashes when cli_prefix is set in model_config (#​945).

Type aliases and parsing

  • Named union type aliases (TypeAliasType('V', list[int] | str)) now decode like their inline equivalents in env and dotenv sources, including under Optional, Annotated and custom validation aliases (#​1006, #​1030, #​1041).
  • Resolving a named Annotated type alias no longer mutates shared FieldInfo metadata, which made validators run twice on subclasses or after model_rebuild() (#​979).
  • A bare single-segment AliasPath('SOME_KEY') no longer tries to JSON-decode plain string values (#​980).
  • collections.abc.Set/MutableSet/typing.AbstractSet fields now JSON-decode env values (#​973).
  • A bare typing.Dict field with env_nested_delimiter no longer raises IndexError, which was a regression in 2.13.0 (#​1009).
  • Case-insensitive matching now works for nested pydantic dataclasses (#​1010).

Dotenv, secrets and config files

  • With extra='allow', a non-lowercase env_prefix is now stripped from dotenv extras (#​959, #​968).
  • secrets_case_sensitive=True is now honored on Windows (#​1001).
  • An empty JSON config file is treated as an empty mapping instead of crashing (#​947), matching YAML and TOML.
  • TOML table headers: ~ paths are now expanded when checking that the file exists (#​1034), and an explicit toml_table_header=() now overrides the model config to read the file root (#​1027).

Cloud sources

  • Azure Key Vault and GCP Secret Manager now honor env_parse_none_str (#​1019, #​1040).
  • Azure Key Vault: dash_to_underscore=True now works for nested model fields (#​1025).
  • NestedSecretsSettingsSource now validates its specific constructor arguments (#​975).
  • DotenvFiltering is exported from pydantic_settings.sources.types (#​944).
Documentation
  • Document that runtime validation arguments (strict, extra, context) passed to model_validate() are not applied to BaseSettings, and give a workaround (#​1017).
  • Explain why extra='forbid' doesn't reject misspelled top-level env vars (#​986).
  • Clarify alias plus nested model env lookup with populate_by_name (#​933), and add a nested model example for env_prefix_target (#​953).
  • Fix assorted typos (#​942, #​964).
All changes (including dependency bumps and internal maintenance)
What's Changed
New Contributors

Full Changelog: pydantic/pydantic-settings@v2.15.0...v2.16.0


Configuration

📅 Schedule: (in timezone Europe/Paris)

  • Branch creation
    • At 12:00 AM through 04:59 AM and 10:00 PM through 11:59 PM, Monday through Friday (* 0-4,22-23 * * 1-5)
    • Only on Sunday and Saturday (* * * * 0,6)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copilot AI balanced review requested due to automatic review settings October 22, 2026 20:56
@renovate renovate Bot added dependencies Pull requests that update a dependency file. filigran team Item from the Filigran team. labels Oct 22, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No blocking compatibility issues were identified with the supported Python baseline or existing settings usage; installation and tests were not run.

No open issues 🎉

What changed in this PR

Updates the Python client’s pydantic-settings dependency to the 2.16 release series.

Changes:

  • Raises the dependency range from >=2.15.0,<2.16.0 to >=2.16.0,<2.17.0.
File Description
pyproject.toml Updates the allowed pydantic-settings version range.

Review effort: Balanced

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file. filigran team Item from the Filigran team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants