mirror of
https://github.com/evroon/bracket.git
synced 2026-10-04 19:46:11 -04:00
Bumps [pydantic-settings](https://github.com/pydantic/pydantic-settings) from 2.14.2 to 2.15.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pydantic/pydantic-settings/releases">pydantic-settings's releases</a>.</em></p> <blockquote> <h2>v2.15.0</h2> <h2>Highlights</h2> <h3>Behavior changes</h3> <ul> <li><strong><code>case_sensitive</code> now applies to init kwargs and config-file sources</strong> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/900">#900</a>). <code>InitSettingsSource</code> and the JSON/TOML/YAML config sources previously ignored <code>case_sensitive</code>. Since it defaults to <code>False</code>, <strong>case-insensitive matching is now the default</strong> for these sources — e.g. <code>Settings(TeSt=...)</code> now populates a <code>test</code> field where it previously did not. Nested keys are still matched case-sensitively.</li> <li><strong>Fields with unresolved forward references now emit a warning</strong> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/901">#901</a>). Settings sources can silently fail to resolve such fields; they now raise <code>IncompleteFieldDefinitionWarning</code> telling you to call <code>model_rebuild()</code>. If you have <code>filterwarnings = error</code> configured, this may surface as a new failure.</li> <li><strong>Non-JSON env values for strict fields now raise <code>ValidationError</code></strong> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/926">#926</a>) instead of a less specific error.</li> </ul> <h3>New features</h3> <ul> <li><strong>Show environment variable names in CLI help</strong> via <code>cli_show_env_vars=True</code> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/860">#860</a>), so generated <code>--help</code> output doubles as configuration documentation.</li> <li><strong><code>PYDANTIC_SETTINGS_DEBUG</code> for debugging settings resolution</strong> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/906">#906</a>, <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/913">#913</a>). Set it to a truthy value with <code>DEBUG</code> logging enabled to see each source's contribution in priority order, which source won for each value, and which <code>env_file</code>/secret files were probed, loaded, or skipped — the long-standing "why isn't my <code>.env</code> being picked up?" question.</li> <li><strong><code>toml_table_header</code> for regular TOML files</strong> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/882">#882</a>, <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/886">#886</a>, <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/887">#887</a>), letting you root settings at a nested table in any TOML file, not just <code>pyproject.toml</code>.</li> <li><strong><code>Traversable</code> support for JSON/TOML/YAML file sources</strong> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/902">#902</a>), so you can load config packaged inside a distribution — including files inside a zip or wheel — via <code>importlib.resources.files(...)</code> without casting to <code>Path</code>.</li> <li><strong>GCP: <code>project_id</code> can come from an earlier settings source</strong> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/878">#878</a>), rather than only from the constructor or <code>GOOGLE_CLOUD_PROJECT</code>.</li> </ul> <h3>Bug fixes</h3> <ul> <li>Fix env vars not loading on Windows with <code>case_sensitive=True</code> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/894">#894</a>). Windows upper-cases <code>os.environ</code> keys, so fields raised <code>Field required</code> instead of picking up their values.</li> <li>Read secret files as UTF-8 instead of the platform locale encoding (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/917">#917</a>). On Windows code pages such as cp1252 this silently corrupted non-ASCII secrets.</li> <li>Fix <code>AliasPath</code> on nested model fields not JSON-decoding env values (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/898">#898</a>).</li> <li>Fix case-insensitive matching for <strong>optional</strong> nested models (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/905">#905</a>).</li> <li>Fix dotenv extras being wrongly claimed by a complex field sharing a name prefix (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/912">#912</a>) — e.g. <code>dbx_token</code> being swallowed by a <code>db: dict</code> field.</li> <li>Fix <code>nested_model_default_partial_update=True</code> corrupting discriminated unions (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/876">#876</a>).</li> <li>Fix <code>Secret</code> subclasses crashing when loaded from the environment (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/920">#920</a>).</li> <li>Fix enum names not parsing through nested annotations such as <code>Optional[Annotated[MyEnum, ...]]</code> with <code>env_parse_enums=True</code> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/910">#910</a>).</li> <li>An empty <code>yaml_config_section</code> now falls back to defaults instead of raising <code>AttributeError: 'NoneType' object has no attribute 'keys'</code> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/914">#914</a>).</li> <li><code>NestedSecretsSettingsSource</code> no longer follows symlinks pointing outside <code>secrets_dir</code> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/889">#889</a>).</li> <li>GCP: skip the <code>list_secrets</code> call when <code>case_sensitive=True</code> (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/862">#862</a>), lowering the required IAM permissions to just <code>roles/secretmanager.secretAccessor</code>.</li> <li>AWS: <code>types-boto3[secretsmanager]</code> is no longer required at runtime (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/880">#880</a>).</li> </ul> <h3>Documentation</h3> <ul> <li>Document JSON parsing of complex env values, plus a comma-separated-values recipe (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/919">#919</a>).</li> <li>Recommend an async settings loading pattern (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/908">#908</a>).</li> <li>Clarify behavior when an unprefixed value is present in a dotenv file (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/895">#895</a>).</li> <li>Clarify environment variable helper descriptions (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/867">#867</a>) and fix assorted typos (<a href="https://redirect.github.com/pydantic/pydantic-settings/pull/904">#904</a>).</li> </ul> <!-- raw HTML omitted --> <h2>What's Changed</h2> <ul> <li>Update documentation link for Pydantic settings by <a href="https://github.com/hramezani"><code>@hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/863">pydantic/pydantic-settings#863</a></li> <li>Bump the python-packages group with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/865">pydantic/pydantic-settings#865</a></li> <li>docs: clarify environment variable helper descriptions by <a href="https://github.com/vip892766gma"><code>@vip892766gma</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/867">pydantic/pydantic-settings#867</a></li> <li>Bump the python-packages group with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/870">pydantic/pydantic-settings#870</a></li> <li>Bump the python-packages group with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/875">pydantic/pydantic-settings#875</a></li> <li>Skip list_secrets call when case_sensitive=True by <a href="https://github.com/ecerulm"><code>@ecerulm</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/862">pydantic/pydantic-settings#862</a></li> <li>GoogleSecretManagerSettingsSource: read project_id from previous sources by <a href="https://github.com/ecerulm"><code>@ecerulm</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/878">pydantic/pydantic-settings#878</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pydantic/pydantic-settings/commit/f725ca187bee4212e9ef799eefa3cb25be788462"><code>f725ca1</code></a> Prepare release 2.15.0 (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/930">#930</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/28f35c25fac5d61210d532c31a300d49c0b684a4"><code>28f35c2</code></a> Bump the python-packages group with 4 updates (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/929">#929</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/9056db049560897229f2603493753bae27b6479f"><code>9056db0</code></a> test: move function-local imports to the top of test modules (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/927">#927</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/f077e3ab3d9492838c7ef9275a88c95134688095"><code>f077e3a</code></a> fix: raise ValidationError for non-JSON env values on strict fields (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/926">#926</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/ae25d703c458b57f5a9a425f6ec9a28ad868f980"><code>ae25d70</code></a> fix: treat Secret subclasses as non-complex fields (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/716">#716</a>) (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/920">#920</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/798dcea2a23b08a3e9b37994014e036224f6dd18"><code>798dcea</code></a> Bump the python-packages group with 4 updates (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/924">#924</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/a190041d353bda2d432ea1908de4c499ae89ee0a"><code>a190041</code></a> Bump the github-actions group with 4 updates (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/925">#925</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/5d9333282b5c85d65a457c45e4476369b9949726"><code>5d93332</code></a> Bump the python-packages group with 4 updates (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/921">#921</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/d2fdeda91157140d2ff0c05404f32a9b1218115a"><code>d2fdeda</code></a> fix: read secret files as UTF-8 instead of the locale encoding (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/917">#917</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/2256a4e60f83f2da81e7654252562fc4841aa5d4"><code>2256a4e</code></a> Bump the python-packages group with 3 updates (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/915">#915</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pydantic/pydantic-settings/compare/v2.14.2...v2.15.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>