Repository navigation
Update dependency pydantic-settings to v2.16.2 - #144
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
June 5, 2024 16:45
ce54c0d to
41c1fe0
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
June 11, 2024 16:38
41c1fe0 to
e456efb
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
June 13, 2024 11:22
e456efb to
8641d20
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
June 24, 2024 18:45
8641d20 to
5099dc2
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
July 30, 2024 12:14
5099dc2 to
c759be5
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
September 10, 2024 15:46
c759be5 to
d9641d1
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
September 11, 2024 08:20
d9641d1 to
4eee4ff
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
September 11, 2024 11:17
4eee4ff to
2e823e2
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
October 17, 2024 11:07
2e823e2 to
56bdc54
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
November 1, 2024 14:18
56bdc54 to
994eadd
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
December 13, 2024 10:53
994eadd to
06af8af
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
December 31, 2024 12:37
06af8af to
d33d2f1
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
2 times, most recently
from
February 27, 2025 10:38
a543a38 to
0efad72
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
April 18, 2025 11:40
0efad72 to
3a9a8fb
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
April 18, 2025 19:04
3a9a8fb to
bbeff38
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
June 21, 2025 16:26
bbeff38 to
3d2ccf4
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
June 24, 2025 17:08
3d2ccf4 to
ffef779
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
September 24, 2025 14:48
ffef779 to
a258b0b
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
November 10, 2025 23:41
a258b0b to
e219a1d
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
February 15, 2026 13:02
e219a1d to
41a6cb2
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
February 19, 2026 13:58
41a6cb2 to
b4a0d26
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
April 20, 2026 15:18
b4a0d26 to
158eda2
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
May 8, 2026 18:03
158eda2 to
431f02b
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
June 19, 2026 14:51
431f02b to
6d9bd27
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
August 7, 2026 10:29
6d9bd27 to
191c1a6
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
October 14, 2026 14:51
191c1a6 to
a3f4432
Compare
Contributor
Author
|
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
October 20, 2026 12:44
a3f4432 to
60d8fc6
Compare
renovate
Bot
force-pushed
the
renovate/pydantic-settings-2.x
branch
from
October 28, 2026 13:26
60d8fc6 to
a78c5c4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
2.2.1→2.16.2Release Notes
pydantic/pydantic-settings (pydantic-settings)
v2.16.2Compare Source
Highlights
This patch release fixes env decoding of nested dictionary values,
CliApphandling ofAliasPath, nested secrets directory precedence and discriminated union defaults withnested_model_default_partial_update.Behavior changes
secrets_dironNestedSecretsSettingsSourcenow takes precedence (#1093). Previously it was ignored when the wrappedSecretsSettingsSourceinherited a directory from model config, and an explicit empty list was masked too. The order is now: the wrapper'ssecrets_dirargument, then the wrapped source's directory, then model config. If you pass bothSettings(_secrets_dir=...)andNestedSecretsSettingsSource(..., secrets_dir=...), the wrapper's argument now wins.Bug fixes
Env and dotenv sources
dict[str, list[str] | str]ordict[str, list[str] | None], now JSON-decode values set throughenv_nested_delimiter(#1089, #1097). Only JSON arrays and objects are decoded, so plain values like123,trueor"quoted"are kept as strings. Decoding followsenable_decodingand theNoDecode/ForceDecodeof the field that holds the dict, and type aliases andAnnotatedvalue types are resolved.dict[str, list[dict[str, str]]]are decoded at the right level again (#1109), soAPP_VALUES__X='[{"k":"v"}]'no longer reaches validation as a string.CLI
CliApp.runnow rebuildsAliasPathinputs forBaseModeland pydantic dataclass commands (#1096). A supplied path used to be reduced to the field name, which failed validation.AliasChoicespriority is respected and unsupplied path defaults are left to the model.Discriminated union defaults
nested_model_default_partial_update=True, inner discriminated unions written asAnnotated[..., Field(discriminator='...')]are now detected (#1076). When the incoming tag selects another member, the default's fields are no longer merged into it.NameErrorwhen another field of the dataclass has a string annotation naming a local class (#1077). Only the discriminator's own annotation is resolved now.All changes (including dependency bumps and internal maintenance)
What's Changed
New Contributors
Full Changelog: pydantic/pydantic-settings@v2.16.1...v2.16.2
v2.16.1Compare Source
Highlights
This patch release fixes two CLI regressions introduced in 2.16.0.
Bug fixes
CLI
CliPositionalArg[tuple[int, int]]andNamedTuples are single-valued again (#1069). Since 2.16.0 they were treated as variadic, so a CLI either refused to start with aSettingsErroror put the wrong argument into the tuple. Variable-length tuples (tuple[int, ...]and bareTuple) are still variadic.type ListOfDict = list[dict[str, int]], accepts a JSON list again (#1049). Since 2.16.0,--xx '[{"a":1},{"b":2}]'was merged into the single dict{"a": 1, "b": 2}and failed validation.All changes (including dependency bumps and internal maintenance)
What's Changed
Full Changelog: pydantic/pydantic-settings@v2.16.0...v2.16.1
v2.16.0Compare Source
Highlights
Breaking changes and behavior changes
tomlifallback is gone in favor of stdlibtomllib; thetomlextra is kept as an empty extra sopip install pydantic-settings[toml]keeps working.python-dotenv>=1.2.2is now required (#971) to pick up the fix for CVE-2026-28684.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 raisingextra_forbidden, and the CLI exposes--applerather than--pomo.validation_aliastakes precedence overalias(#1038). When the two differ, values from JSON/YAML/TOML files and the CLI were silently ignored; they now load. CLI help lists thevalidation_aliasflag first, andCliApp.serializeemits it.case_sensitive=False, args after--and those captured byCliUnknownArgskeep their case (-Xmx4Gno longer becomes-xmx4g). Unrecognized options are now reported as typed (--NOPEinstead of--nope).json_file_encoding/yaml_file_encodingstill override it.nested_model_default_partial_update=True: the default is only dropped when the incoming value selects a different union member.New features
CliApp.runandvalidate_by_alias=Falsehandling; both are fixed.Settings.settings_cached()andSettings.settings_clear_cache()(#952). These give you a process-local singleton per settings class without hand-rollinglru_cachewrappers. Calling the class directly still builds a fresh instance.AWSSystemsManagerSettingsSource(#941). It recursively reads every parameter under anssm_path, with/mapping onto nested models. Install it with the newaws-systems-managerextra.env_file_depth(#940) lets a relativeenv_filebe found in parent directories, mirroringpyproject_toml_depth. This is useful when scripts run from a subdirectory of a monorepo. It defaults to0, which keeps the current behavior.CliVariadicArgfor named variadic options (#949, #958). It accepts--param a b cin addition to repeated--param a --param b. Required fields need at least one value.Bug fixes
CLI
CliApp.serializeoutput now round-trips throughCliApp.runfor enums, tuples, dates andDecimals (#988), explicitNonevalues (#981), empty containers (#1008),CliVariadicArgvalues (#976) and populatedCliUnknownArgsfields, which previously raisedIndexError(#992).--items []) now give an empty list instead of[''](#994).frozenset,MutableSequenceand other collection subtypes are now treated as repeatable/variadic options (#972), and so are named collection type aliases such asTypeAliasType('Addrs', list[IPvAnyAddress])(#1032).cli_exit_on_error=Falseis now honored inCliSubCommandparsers, which raiseSettingsErrorinstead of exiting (#977).CliSubCommandaliases keep their case withcase_sensitive=False(#989).CliUnknownArgsfield now receives only its own subcommand's leftover args (#1004).CliApp.format_helpno longer crashes whencli_prefixis set inmodel_config(#945).Type aliases and parsing
TypeAliasType('V', list[int] | str)) now decode like their inline equivalents in env and dotenv sources, including underOptional,Annotatedand custom validation aliases (#1006, #1030, #1041).Annotatedtype alias no longer mutates sharedFieldInfometadata, which made validators run twice on subclasses or aftermodel_rebuild()(#979).AliasPath('SOME_KEY')no longer tries to JSON-decode plain string values (#980).collections.abc.Set/MutableSet/typing.AbstractSetfields now JSON-decode env values (#973).typing.Dictfield withenv_nested_delimiterno longer raisesIndexError, which was a regression in 2.13.0 (#1009).Dotenv, secrets and config files
extra='allow', a non-lowercaseenv_prefixis now stripped from dotenv extras (#959, #968).secrets_case_sensitive=Trueis now honored on Windows (#1001).~paths are now expanded when checking that the file exists (#1034), and an explicittoml_table_header=()now overrides the model config to read the file root (#1027).Cloud sources
env_parse_none_str(#1019, #1040).dash_to_underscore=Truenow works for nested model fields (#1025).NestedSecretsSettingsSourcenow validates its specific constructor arguments (#975).DotenvFilteringis exported frompydantic_settings.sources.types(#944).Documentation
strict,extra,context) passed tomodel_validate()are not applied toBaseSettings, and give a workaround (#1017).extra='forbid'doesn't reject misspelled top-level env vars (#986).populate_by_name(#933), and add a nested model example forenv_prefix_target(#953).All changes (including dependency bumps and internal maintenance)
What's Changed
NestedSecretsSettingsSourcespecific arguments by @makukhttps://github.com/pydantic/pydantic-settings/pull/975ll/975CliApp.serializeoutput parseable for enum and non-JSON values by @SulimanAbdulrazzhttps://github.com/pydantic/pydantic-settings/pull/988ll/988CliApp.serializefor models withCliUnknownArgsfields by @truecallerabrehhttps://github.com/pydantic/pydantic-settings/pull/992ll/992secrets_case_sensitiveon Windows by overriding_load_env_varsby @hramezahttps://github.com/pydantic/pydantic-settings/pull/1001l/1001samuelcolvin/check-python-versionaction to v5.1 by @Viichttps://github.com/pydantic/pydantic-settings/pull/1014l/1014validate_by_alias=Falseon pydantic 2.14 by @maharanayhttps://github.com/pydantic/pydantic-settings/pull/1022l/1022validate_by_alias=Falseby @hramezahttps://github.com/pydantic/pydantic-settings/pull/1033l/1033New Contributors
Full Changelog: pydantic/pydantic-settings@v2.15.0...v2.16.0
v2.15.0Compare Source
Highlights
Behavior changes
case_sensitivenow applies to init kwargs and config-file sources (#900).InitSettingsSourceand the JSON/TOML/YAML config sources previously ignoredcase_sensitive. Since it defaults toFalse, case-insensitive matching is now the default for these sources — e.g.Settings(TeSt=...)now populates atestfield where it previously did not. Nested keys are still matched case-sensitively.IncompleteFieldDefinitionWarningtelling you to callmodel_rebuild(). If you havefilterwarnings = errorconfigured, this may surface as a new failure.ValidationError(#926) instead of a less specific error.New features
cli_show_env_vars=True(#860), so generated--helpoutput doubles as configuration documentation.PYDANTIC_SETTINGS_DEBUGfor debugging settings resolution (#906, #913). Set it to a truthy value withDEBUGlogging enabled to see each source's contribution in priority order, which source won for each value, and whichenv_file/secret files were probed, loaded, or skipped — the long-standing "why isn't my.envbeing picked up?" question.toml_table_headerfor regular TOML files (#882, #886, #887), letting you root settings at a nested table in any TOML file, not justpyproject.toml.Traversablesupport for JSON/TOML/YAML file sources (#902), so you can load config packaged inside a distribution — including files inside a zip or wheel — viaimportlib.resources.files(...)without casting toPath.project_idcan come from an earlier settings source (#878), rather than only from the constructor orGOOGLE_CLOUD_PROJECT.Bug fixes
case_sensitive=True(#894). Windows upper-casesos.environkeys, so fields raisedField requiredinstead of picking up their values.AliasPathon nested model fields not JSON-decoding env values (#898).dbx_tokenbeing swallowed by adb: dictfield.nested_model_default_partial_update=Truecorrupting discriminated unions (#876).Secretsubclasses crashing when loaded from the environment (#920).Optional[Annotated[MyEnum, ...]]withenv_parse_enums=True(#910).yaml_config_sectionnow falls back to defaults instead of raisingAttributeError: 'NoneType' object has no attribute 'keys'(#914).NestedSecretsSettingsSourceno longer follows symlinks pointing outsidesecrets_dir(#889).list_secretscall whencase_sensitive=True(#862), lowering the required IAM permissions to justroles/secretmanager.secretAccessor.types-boto3[secretsmanager]is no longer required at runtime (#880).Documentation
All changes (including dependency bumps and internal maintenance)
What's Changed
Configuration
📅 Schedule: (UTC)
🚦 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.
This PR was generated by Mend Renovate. View the repository job log.