Skip to content

Commit 2ff665c

Browse files
chore(deps): bump the elt-common-dependencies group across 1 directory with 11 updates (#315)
Updates the requirements on [dlt[parquet,s3]](https://github.com/dlt-hub/dlt), [pyiceberg[pyiceberg-core]](https://github.com/apache/iceberg-python), [click](https://github.com/pallets/click), [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy), [pydantic-settings](https://github.com/pydantic/pydantic-settings), [authlib](https://github.com/authlib/authlib), [prek](https://github.com/j178/prek), [pytest-httpx](https://github.com/Colin-b/pytest_httpx), [requests](https://github.com/psf/requests), [ruff](https://github.com/astral-sh/ruff) and [setuptools](https://github.com/pypa/setuptools) to permit the latest version. Updates `dlt[parquet,s3]` to 1.26.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dlt-hub/dlt/releases">dlt[parquet,s3]'s releases</a>.</em></p> <blockquote> <h2>1.26.0</h2> <h2>dlt 1.26.0 Release Notes</h2> <h2>Breaking Changes</h2> <ol> <li><strong>Incremental external scheduler now raises instead of silently warning</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3877">#3877</a> <a href="https://github.com/rudolfix"><code>@​rudolfix</code></a>) — Untyped/non-coercible cursor values now raise <code>JoinSchedulerError</code>; missing intervals raise <code>ExternalSchedulerNotAvailable</code>. Resources with <code>allow_external_schedulers=True</code> that previously fell back to dlt state will now fail. This is a bugfix that corrects previously incorrect behavior.</li> </ol> <h2>Highlights</h2> <ul> <li><strong><code>dlt.Relation.join(...)</code></strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3590">#3590</a> <a href="https://github.com/Travior"><code>@​Travior</code></a>) — Adds a <code>join()</code> method on <code>dlt.Relation</code> based on the normalizer and table references, enabling fluent relational composition over datasets.</li> <li><strong>Extended Snowflake query tags</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3759">#3759</a> <a href="https://github.com/Travior"><code>@​Travior</code></a>) — Snowflake query tagging is extended beyond load jobs to broader dlt operations: storage setup, schema/state reads, schema updates, load execution, load completion, and table drops. <code>TJobQueryTags</code> is generalized to <code>TQueryTags</code> with a new <code>operation</code> field (with a compatibility export).</li> <li><strong>Time interval context for incrementals</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3877">#3877</a> <a href="https://github.com/rudolfix"><code>@​rudolfix</code></a>) — New <code>dlt.current.interval()</code> returns the active <code>(start, end)</code> interval or <code>None</code>, backed by an injectable <code>TimeIntervalContext</code> with optional <code>allow_external_schedulers</code> override and auto-detection from env vars / Airflow.</li> </ul> <h2>Core Library</h2> <ul> <li><strong><code>dlt.Relation.join(...)</code></strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3590">#3590</a> <a href="https://github.com/Travior"><code>@​Travior</code></a>) — see Highlights.</li> <li><strong>Extended Snowflake query tags beyond load jobs</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3759">#3759</a> <a href="https://github.com/Travior"><code>@​Travior</code></a>) — see Highlights.</li> <li><strong>Time interval context for incrementals</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3877">#3877</a> <a href="https://github.com/rudolfix"><code>@​rudolfix</code></a>) — see Highlights.</li> <li><strong>Destination-aware incremental SQL filter</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3877">#3877</a> <a href="https://github.com/rudolfix"><code>@​rudolfix</code></a>) — New <code>dlt/extract/incremental/sql.py</code> (<code>to_sqlglot_filter</code>) honors <code>timestamp_precision</code>, <code>supports_tz_aware_datetime_in_cast</code>, and sqlite quirks; works on bound and unbound incrementals.</li> <li><strong><code>start_value</code> persisted in incremental state</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3877">#3877</a> <a href="https://github.com/rudolfix"><code>@​rudolfix</code></a>) — Only written when rows actually arrive, so it is no longer advanced silently on empty runs.</li> <li><strong><code>uuid_to_string</code> PyArrow fast path</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3877">#3877</a> <a href="https://github.com/rudolfix"><code>@​rudolfix</code></a>) — Numpy-vectorized with a pure-Python fallback; pyarrow ≥ 24 <code>arrow.uuid</code> extension arrays are coerced to canonical strings, and UUID columns under pyarrow &lt; 24 also take the fast path.</li> <li><strong>Custom metrics emitted even when a resource produces no data</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3877">#3877</a> <a href="https://github.com/rudolfix"><code>@​rudolfix</code></a>) — <code>dlt.current.resource_metrics()</code> counters are no longer dropped when every item is filtered out.</li> <li><strong>TypedDict validator honors <code>NotRequired[T]</code></strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3877">#3877</a> <a href="https://github.com/rudolfix"><code>@​rudolfix</code></a>) — Via <code>__required_keys__</code>.</li> <li><strong>sqlglot <code>&quot;dremio&quot;</code> dialect literal</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3877">#3877</a> <a href="https://github.com/rudolfix"><code>@​rudolfix</code></a>) — Added to <code>TSqlGlotDialect</code>.</li> <li><strong>Opt-in naming-convention check in <code>Schema.unify_schemas()</code></strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3898">#3898</a> <a href="https://github.com/burnash"><code>@​burnash</code></a>) — The naming-convention check in <code>Schema.unify_schemas()</code> is now opt-in; also drops the max_length tests workaround.</li> <li><strong>Fix(clickhouse): correct metadata sort keys to avoid full scans</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3851">#3851</a> <a href="https://github.com/anuunchin"><code>@​anuunchin</code></a>) — Resolves <a href="https://redirect.github.com/dlt-hub/dlt/issues/3806">#3806</a> by correcting metadata sort keys so ClickHouse no longer performs full scans.</li> <li><strong>Fix(pyarrow): preserve string encoding for UUID columns under pyarrow 24+</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3894">#3894</a> <a href="https://github.com/burnash"><code>@​burnash</code></a>) — Fixes <a href="https://redirect.github.com/dlt-hub/dlt/issues/3893">#3893</a> so UUID columns keep their string encoding under pyarrow 24+.</li> <li><strong>Fix: clearer error from <code>dlt.attach()</code> when pipeline cannot be restored</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3890">#3890</a> <a href="https://github.com/bjoaquinc"><code>@​bjoaquinc</code></a>) — Rewrites <code>CannotRestorePipelineException</code> messages to name required inputs, show a concrete <code>dlt.attach(...)</code> example, and offer <code>dlt.dataset()</code> as a lighter alternative; suppresses a redundant inner exception in tracebacks.</li> <li><strong>Fix: closed-pipe race in <code>iter_std</code></strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3877">#3877</a> <a href="https://github.com/rudolfix"><code>@​rudolfix</code></a>) — Reader threads swallow <code>ValueError</code>/<code>OSError</code> and always close the queue.</li> <li><strong>Fix: active profile shown in <code>ConfigFieldMissingException</code></strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3877">#3877</a> <a href="https://github.com/rudolfix"><code>@​rudolfix</code></a>)</li> </ul> <h2>Docs</h2> <ul> <li><strong>Improved dashboard docs</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3484">#3484</a> <a href="https://github.com/VioletM"><code>@​VioletM</code></a>)</li> <li><strong>Updated documentation for pg_replication</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3900">#3900</a> <a href="https://github.com/dat-a-man"><code>@​dat-a-man</code></a>) — Adds an &quot;Alternative: CDC with Debezium&quot; section linking to the Debezium + dlt demo.</li> <li><strong>Snowflake marketplace listing link</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3888">#3888</a> <a href="https://github.com/kaliole"><code>@​kaliole</code></a>)</li> <li><strong>Quality-checker fixes to <code>pipeline.md</code></strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3885">#3885</a> <a href="https://github.com/ShreyasGS"><code>@​ShreyasGS</code></a>) — Tense, contractions, and grammar cleanups via Harper + Vale Google Developer Docs style.</li> <li><strong>Remove playground page and associated CI</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3883">#3883</a> <a href="https://github.com/zilto"><code>@​zilto</code></a>) — Streamlines the &quot;Getting Started&quot; section; interactive material remains on Google Colab and marimo molab.</li> <li><strong>Pydantic Logfire export example</strong> (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3882">#3882</a> <a href="https://github.com/zilto"><code>@​zilto</code></a>)</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bjoaquinc"><code>@​bjoaquinc</code></a> made their first contribution in <a href="https://redirect.github.com/dlt-hub/dlt/issues/3890">#3890</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/dlt-hub/dlt/commit/b3fc4a9e7c4152a76c6d29d035ddf9879609dc50"><code>b3fc4a9</code></a> Merge pull request <a href="https://redirect.github.com/dlt-hub/dlt/issues/3903">#3903</a> from dlt-hub/devel</li> <li><a href="https://github.com/dlt-hub/dlt/commit/10c633236a51f731b1f3e91d561e89baca02200d"><code>10c6332</code></a> Make the naming-convention check in <code>Schema.unify_schemas()</code> opt-in (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3898">#3898</a>)</li> <li><a href="https://github.com/dlt-hub/dlt/commit/ce8422d4d5a3612c983afb7fa74879532f268923"><code>ce8422d</code></a> (feat) workspace deployment (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3877">#3877</a>)</li> <li><a href="https://github.com/dlt-hub/dlt/commit/c9f11e2bb29eaf60fde84a7b699674c151e9d479"><code>c9f11e2</code></a> Docs/improved dashboard docs (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3484">#3484</a>)</li> <li><a href="https://github.com/dlt-hub/dlt/commit/35baf9f1c56dafa39aa3ca17a9cde54696c7f065"><code>35baf9f</code></a> fix(clickhouse): correct metadata sort keys to avoid full scans (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3851">#3851</a>)</li> <li><a href="https://github.com/dlt-hub/dlt/commit/ae7379a376eb4bd0fdb18579e7aa27c173a4b7c8"><code>ae7379a</code></a> Updated documentation for pg pg_replication (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3900">#3900</a>)</li> <li><a href="https://github.com/dlt-hub/dlt/commit/1f4a059f12308c5e2de6604bcd7172b14b70f5ea"><code>1f4a059</code></a> feat(snowflake): Extend Snowflake query tags beyond load jobs (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3759">#3759</a>)</li> <li><a href="https://github.com/dlt-hub/dlt/commit/5b290680a6e577e8a226d665ebda5a4d36d2486c"><code>5b29068</code></a> fix(pyarrow): preserve string encoding for UUID columns under pyarrow 24+ (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3">#3</a>...</li> <li><a href="https://github.com/dlt-hub/dlt/commit/679e0e26953f4846679e63fb25c4c43d6f889b01"><code>679e0e2</code></a> docs: add the link to the Snowflake marketplace listing (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3888">#3888</a>)</li> <li><a href="https://github.com/dlt-hub/dlt/commit/488bd3946fe912d43185b98e28638bc6d89cab80"><code>488bd39</code></a> fix: clearer error from <code>dlt.attach()</code> when pipeline cannot be restored (<a href="https://redirect.github.com/dlt-hub/dlt/issues/3890">#3890</a>)</li> <li>Additional commits viewable in <a href="https://github.com/dlt-hub/dlt/compare/1.20.0...1.26.0">compare view</a></li> </ul> </details> <br /> Updates `pyiceberg[pyiceberg-core]` to 0.11.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/apache/iceberg-python/releases">pyiceberg[pyiceberg-core]'s releases</a>.</em></p> <blockquote> <h2>pyiceberg-0.11.1</h2> <h2>What's Changed</h2> <ul> <li>fix: Accept all valid http method for IRC's ConfigResponse by <a href="https://github.com/sumanth-manchala"><code>@​sumanth-manchala</code></a> in <a href="https://redirect.github.com/apache/iceberg-python/pull/3010">apache/iceberg-python#3010</a></li> <li>fix: add Field alias for SetPartitionStatisticsUpdate.partition_stati… by <a href="https://github.com/shiwk"><code>@​shiwk</code></a> in <a href="https://redirect.github.com/apache/iceberg-python/pull/3035">apache/iceberg-python#3035</a></li> <li>fix: Extract ADLS account_name from URI hostname in FsspecFileIO by <a href="https://github.com/antonlin1"><code>@​antonlin1</code></a> in <a href="https://redirect.github.com/apache/iceberg-python/pull/3005">apache/iceberg-python#3005</a></li> <li>fix ssl deactivation from catalog properties <a href="https://redirect.github.com/apache/iceberg-python/issues/2985">#2985</a> by <a href="https://github.com/MenelikV"><code>@​MenelikV</code></a> in <a href="https://redirect.github.com/apache/iceberg-python/pull/3012">apache/iceberg-python#3012</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/apache/iceberg-python/compare/pyiceberg-0.11.0...pyiceberg-0.11.1">https://github.com/apache/iceberg-python/compare/pyiceberg-0.11.0...pyiceberg-0.11.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/apache/iceberg-python/commit/8dee48a8e0218353f706133ed035334869a7ee12"><code>8dee48a</code></a> Fix SSL deactivation using catalog properties (<a href="https://redirect.github.com/apache/iceberg-python/issues/3012">#3012</a>)</li> <li><a href="https://github.com/apache/iceberg-python/commit/f718209daffc49dc366ed818a4916873d2e507d2"><code>f718209</code></a> fix: Extract ADLS account_name from URI hostname in FsspecFileIO (<a href="https://redirect.github.com/apache/iceberg-python/issues/3005">#3005</a>)</li> <li><a href="https://github.com/apache/iceberg-python/commit/97f2d4695faf997aae2e6d2b6df129bb50efa62f"><code>97f2d46</code></a> bump to 0.11.1</li> <li><a href="https://github.com/apache/iceberg-python/commit/c1ac2315c138cebec6e8fefcf15475c51a31ab46"><code>c1ac231</code></a> fix: add Field alias for SetPartitionStatisticsUpdate (<a href="https://redirect.github.com/apache/iceberg-python/issues/3035">#3035</a>)</li> <li><a href="https://github.com/apache/iceberg-python/commit/62c909bdeefd2f86f143d611b167ace426489c53"><code>62c909b</code></a> fix: Accept all valid http method for IRC's ConfigResponse (<a href="https://redirect.github.com/apache/iceberg-python/issues/3010">#3010</a>)</li> <li>See full diff in <a href="https://github.com/apache/iceberg-python/compare/pyiceberg-0.11.0...pyiceberg-0.11.1">compare view</a></li> </ul> </details> <br /> Updates `click` from 8.3.1 to 8.3.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pallets/click/releases">click's releases</a>.</em></p> <blockquote> <h2>8.3.3</h2> <p>This is the Click 8.3.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.</p> <p>PyPI: <a href="https://pypi.org/project/click/8.3.3/">https://pypi.org/project/click/8.3.3/</a> Changes: <a href="https://click.palletsprojects.com/page/changes/#version-8-3-3">https://click.palletsprojects.com/page/changes/#version-8-3-3</a> Milestone: <a href="https://github.com/pallets/click/milestone/30">https://github.com/pallets/click/milestone/30</a></p> <ul> <li>Use :func:<code>shlex.split</code> to split pager and editor commands into <code>argv</code> lists for :class:<code>subprocess.Popen</code>, removing <code>shell=True</code>. <a href="https://redirect.github.com/pallets/click/issues/1026">#1026</a> <a href="https://redirect.github.com/pallets/click/issues/1477">#1477</a> <a href="https://redirect.github.com/pallets/click/issues/2775">#2775</a></li> <li>Fix <code>TypeError</code> when rendering help for an option whose default value is an object that doesn't support equality comparison with strings, such as <code>semver.Version</code>. <a href="https://redirect.github.com/pallets/click/issues/3298">#3298</a> <a href="https://redirect.github.com/pallets/click/issues/3299">#3299</a></li> <li>Fix pager test pollution under parallel execution by using pytest's <code>tmp_path</code> fixture instead of a shared temporary file path. <a href="https://redirect.github.com/pallets/click/issues/3238">#3238</a></li> <li>Treat <code>Sentinel.UNSET</code> values in a <code>default_map</code> as absent, so they fall through to the next default source instead of being used as the value. <a href="https://redirect.github.com/pallets/click/issues/3224">#3224</a> <a href="https://redirect.github.com/pallets/click/issues/3240">#3240</a></li> <li>Patch <code>pdb.Pdb</code> in <code>CliRunner</code> isolation so <code>pdb.set_trace()</code>, <code>breakpoint()</code>, and debuggers subclassing <code>pdb.Pdb</code> (ipdb, pdbpp) can interact with the real terminal instead of the captured I/O streams. <a href="https://redirect.github.com/pallets/click/issues/654">#654</a> <a href="https://redirect.github.com/pallets/click/issues/824">#824</a> <a href="https://redirect.github.com/pallets/click/issues/843">#843</a> <a href="https://redirect.github.com/pallets/click/issues/951">#951</a> <a href="https://redirect.github.com/pallets/click/issues/3235">#3235</a></li> <li>Add optional randomized parallel test execution using <code>pytest-randomly</code> and <code>pytest-xdist</code> to detect test pollution and race conditions. <a href="https://redirect.github.com/pallets/click/issues/3151">#3151</a></li> <li>Add contributor documentation for running stress tests, randomized parallel tests, and Flask smoke tests. <a href="https://redirect.github.com/pallets/click/issues/3151">#3151</a> <a href="https://redirect.github.com/pallets/click/issues/3177">#3177</a></li> <li>Show custom <code>show_default</code> string in prompts, matching the existing help text behavior. <a href="https://redirect.github.com/pallets/click/issues/2836">#2836</a> <a href="https://redirect.github.com/pallets/click/issues/2837">#2837</a> <a href="https://redirect.github.com/pallets/click/issues/3165">#3165</a> <a href="https://redirect.github.com/pallets/click/issues/3262">#3262</a> <a href="https://redirect.github.com/pallets/click/issues/3280">#3280</a> <a href="https://redirect.github.com/pallets/click/issues/3328">#3328</a></li> <li>Fix <code>default=True</code> with boolean <code>flag_value</code> always returning the <code>flag_value</code> instead of <code>True</code>. The <code>default=True</code> to <code>flag_value</code> substitution now only applies to non-boolean flags, where <code>True</code> acts as a sentinel meaning &quot;activate this flag by default&quot;. For boolean flags, <code>default=True</code> is returned as a literal value. <a href="https://redirect.github.com/pallets/click/issues/3111">#3111</a> <a href="https://redirect.github.com/pallets/click/issues/3239">#3239</a></li> <li>Mark <code>make_default_short_help</code> as private API. <a href="https://redirect.github.com/pallets/click/issues/3189">#3189</a> <a href="https://redirect.github.com/pallets/click/issues/3250">#3250</a></li> <li><code>CliRunner</code>'s redirected streams now expose the original file descriptor via <code>fileno()</code>, so that <code>faulthandler</code>, <code>subprocess</code>, and other C-level consumers no longer crash with <code>io.UnsupportedOperation</code>. <a href="https://redirect.github.com/pallets/click/issues/2865">#2865</a></li> <li>Change :class:<code>ParameterSource</code> to an :class:<code>~enum.IntEnum</code> and reorder its members from most to least explicit, so values can be compared to check whether a parameter was explicitly provided. <a href="https://redirect.github.com/pallets/click/issues/2879">#2879</a> <a href="https://redirect.github.com/pallets/click/issues/3248">#3248</a></li> </ul> <h2>8.3.2</h2> <p>This is the Click 8.3.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.</p> <p>PyPI: <a href="https://pypi.org/project/click/8.3.2/">https://pypi.org/project/click/8.3.2/</a> Changes: <a href="https://click.palletsprojects.com/page/changes/#version-8-3-2">https://click.palletsprojects.com/page/changes/#version-8-3-2</a> Milestone: <a href="https://github.com/pallets/click/milestone/29">https://github.com/pallets/click/milestone/29</a></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pallets/click/blob/main/CHANGES.rst">click's changelog</a>.</em></p> <blockquote> <h2>Version 8.3.3</h2> <p>Released 2026-04-20</p> <ul> <li>Use :func:<code>shlex.split</code> to split pager and editor commands into <code>argv</code> lists for :class:<code>subprocess.Popen</code>, removing <code>shell=True</code>. :issue:<code>1026</code> :pr:<code>1477</code> :pr:<code>2775</code></li> <li>Fix <code>TypeError</code> when rendering help for an option whose default value is an object that doesn't support equality comparison with strings, such as <code>semver.Version</code>. :issue:<code>3298</code> :pr:<code>3299</code></li> <li>Fix pager test pollution under parallel execution by using pytest's <code>tmp_path</code> fixture instead of a shared temporary file path. :pr:<code>3238</code></li> <li>Treat <code>Sentinel.UNSET</code> values in a <code>default_map</code> as absent, so they fall through to the next default source instead of being used as the value. :issue:<code>3224</code> :pr:<code>3240</code></li> <li>Patch <code>pdb.Pdb</code> in <code>CliRunner</code> isolation so <code>pdb.set_trace()</code>, <code>breakpoint()</code>, and debuggers subclassing <code>pdb.Pdb</code> (ipdb, pdbpp) can interact with the real terminal instead of the captured I/O streams. :issue:<code>654</code> :issue:<code>824</code> :issue:<code>843</code> :pr:<code>951</code> :pr:<code>3235</code></li> <li>Add optional randomized parallel test execution using <code>pytest-randomly</code> and <code>pytest-xdist</code> to detect test pollution and race conditions. :pr:<code>3151</code></li> <li>Add contributor documentation for running stress tests, randomized parallel tests, and Flask smoke tests. :pr:<code>3151</code> :pr:<code>3177</code></li> <li>Show custom <code>show_default</code> string in prompts, matching the existing help text behavior. :issue:<code>2836</code> :pr:<code>2837</code> :pr:<code>3165</code> :pr:<code>3262</code> :pr:<code>3280</code> :pr:<code>3328</code></li> <li>Fix <code>default=True</code> with boolean <code>flag_value</code> always returning the <code>flag_value</code> instead of <code>True</code>. The <code>default=True</code> to <code>flag_value</code> substitution now only applies to non-boolean flags, where <code>True</code> acts as a sentinel meaning &quot;activate this flag by default&quot;. For boolean flags, <code>default=True</code> is returned as a literal value. :issue:<code>3111</code> :pr:<code>3239</code></li> <li>Mark <code>make_default_short_help</code> as private API. :issue:<code>3189</code> :pr:<code>3250</code></li> <li><code>CliRunner</code>'s redirected streams now expose the original file descriptor via <code>fileno()</code>, so that <code>faulthandler</code>, <code>subprocess</code>, and other C-level consumers no longer crash with <code>io.UnsupportedOperation</code>. :issue:<code>2865</code></li> <li>Change :class:<code>ParameterSource</code> to an :class:<code>~enum.IntEnum</code> and reorder its members from most to least explicit, so values can be compared to check whether a parameter was explicitly provided. :issue:<code>2879</code> :pr:<code>3248</code></li> </ul> <h2>Version 8.3.2</h2> <p>Released 2026-04-02</p> <ul> <li>Fix handling of <code>flag_value</code> when <code>is_flag=False</code> to allow such options to be used without an explicit value. :issue:<code>3084</code> :pr:<code>3152</code></li> <li>Hide <code>Sentinel.UNSET</code> values as <code>None</code> when using <code>lookup_default()</code>. :issue:<code>3136</code> :pr:<code>3199</code> :pr:<code>3202</code> :pr:<code>3209</code> :pr:<code>3212</code> :pr:<code>3224</code></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pallets/click/commit/c06d2d0a6aee6bcc50bd8257be2a4a592f4e75d0"><code>c06d2d0</code></a> Release 8.3.3</li> <li><a href="https://github.com/pallets/click/commit/f1f191ecd2c790b161187c78e7c88440e9524e5c"><code>f1f191e</code></a> Apply format guidelines to commits since latest 8.3.2 release (<a href="https://redirect.github.com/pallets/click/issues/3343">#3343</a>)</li> <li><a href="https://github.com/pallets/click/commit/bb59ba0fd279ca085d1113f0499b6a602ca31081"><code>bb59ba0</code></a> Apply format guidelines to commits since latest 8.3.2 release</li> <li><a href="https://github.com/pallets/click/commit/4a352253c9ff013e36d11e4a6820d36d00ff2cd4"><code>4a35225</code></a> Reduce blast-radius of <code>UNSET</code> in <code>default_map</code> (<a href="https://redirect.github.com/pallets/click/issues/3240">#3240</a>)</li> <li><a href="https://github.com/pallets/click/commit/c07bb936de43fd303f9cfbefe248ab23fd2199c8"><code>c07bb93</code></a> Merge branch 'stable' into unset-in-default-map</li> <li><a href="https://github.com/pallets/click/commit/c7e1ba8448cbcb2cdd9c1c7f4a592e863dcc3995"><code>c7e1ba8</code></a> Reorder <code>ParameterSource</code> (<a href="https://redirect.github.com/pallets/click/issues/3248">#3248</a>)</li> <li><a href="https://github.com/pallets/click/commit/76552ff1e8c85837f911fc34037e702ae4327eda"><code>76552ff</code></a> Show default string in prompt (<a href="https://redirect.github.com/pallets/click/issues/3328">#3328</a>)</li> <li><a href="https://github.com/pallets/click/commit/ac5cec5fe54e5a691e7bac17f441ce9498e0744c"><code>ac5cec5</code></a> Reorder ParameterSource from most to least explicit</li> <li><a href="https://github.com/pallets/click/commit/8c452e00e6772931b7071d9316b82b77e5b8f280"><code>8c452e0</code></a> Merge branch 'stable' into show-default-string-in-prompt</li> <li><a href="https://github.com/pallets/click/commit/8c95c73bd5ef89eac638f85f1904a104ba4b1a32"><code>8c95c73</code></a> Reconcile default value passing and default activation (<a href="https://redirect.github.com/pallets/click/issues/3239">#3239</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pallets/click/compare/8.3.1...8.3.3">compare view</a></li> </ul> </details> <br /> Updates `sqlalchemy` from 2.0.48 to 2.0.49 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sqlalchemy/sqlalchemy/releases">sqlalchemy's releases</a>.</em></p> <blockquote> <h1>2.0.49</h1> <p>Released: April 3, 2026</p> <h2>orm</h2> <ul> <li> <p><strong>[orm] [bug]</strong> Fixed issue where <code>_orm.Session.get()</code> would bypass the identity map and emit unnecessary SQL when <code>with_for_update=False</code> was passed, rather than treating it equivalently to the default of <code>None</code>. Pull request courtesy of Joshua Swanson.</p> <p>References: <a href="https://www.sqlalchemy.org/trac/ticket/13176">#13176</a></p> </li> <li> <p><strong>[orm] [bug]</strong> Fixed issue where chained <code>_orm.joinedload()</code> options would not be applied correctly when the final relationship in the chain is declared on a base mapper and accessed through a subclass mapper in a <code>_orm.with_polymorphic()</code> query. The path registry now correctly computes the natural path when a property declared on a base class is accessed through a path containing a subclass mapper, ensuring the loader option can be located during query compilation.</p> <p>References: <a href="https://www.sqlalchemy.org/trac/ticket/13193">#13193</a></p> </li> <li> <p><strong>[orm] [bug] [inheritance]</strong> Fixed issue where using <code>_orm.Load.options()</code> to apply a chained loader option such as <code>_orm.joinedload()</code> or <code>_orm.selectinload()</code> with <code>_orm.PropComparator.of_type()</code> for a polymorphic relationship would not generate the necessary clauses for the polymorphic subclasses. The polymorphic loading strategy is now correctly propagated when using a call such as <code>joinedload(A.b).options(joinedload(B.c.of_type(poly)))</code> to match the behavior of direct chaining e.g. <code>joinedload(A.b).joinedload(B.c.of_type(poly))</code>.</p> <p>References: <a href="https://www.sqlalchemy.org/trac/ticket/13202">#13202</a></p> </li> <li> <p><strong>[orm] [bug] [inheritance]</strong> Fixed issue where using chained loader options such as <code>_orm.selectinload()</code> after <code>_orm.joinedload()</code> with <code>_orm.PropComparator.of_type()</code> for a polymorphic relationship would not properly apply the chained loader option. The loader option is now correctly applied when using a call such as <code>joinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)</code> to eagerly load related objects.</p> <p>References: <a href="https://www.sqlalchemy.org/trac/ticket/13209">#13209</a></p> </li> </ul> <h2>typing</h2> <ul> <li><strong>[typing] [bug]</strong> Fixed a typing issue where the typed members of :data:<code>.func</code> would return the appropriate class of the same name, however this creates an issue for</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/sqlalchemy/sqlalchemy/commits">compare view</a></li> </ul> </details> <br /> Updates `pydantic-settings` from 2.13.1 to 2.14.1 <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.14.1</h2> <h2>What's Changed</h2> <ul> <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/850">pydantic/pydantic-settings#850</a></li> <li>Bump the python-packages group with 5 updates by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/854">pydantic/pydantic-settings#854</a></li> <li>Bump the github-actions group with 3 updates by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/853">pydantic/pydantic-settings#853</a></li> <li>Bump the python-packages group with 2 updates by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/856">pydantic/pydantic-settings#856</a></li> <li>Fix field named <code>cls</code> conflicting with classmethod parameter by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/858">pydantic/pydantic-settings#858</a></li> <li>Prepare release 2.14.1 by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/859">pydantic/pydantic-settings#859</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1">https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1</a></p> <h2>v2.14.0</h2> <h2>What's Changed</h2> <ul> <li>Fix parsing env vars into Optional Strict types by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/792">pydantic/pydantic-settings#792</a></li> <li>Fix RecursionError with mutually recursive models in CLI by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/794">pydantic/pydantic-settings#794</a></li> <li>Fix env_file from model_config ignored in CliApp.run() (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/795">#795</a>) by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/796">pydantic/pydantic-settings#796</a></li> <li>Update dependencies by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/798">pydantic/pydantic-settings#798</a></li> <li>Add Dependabot configuration by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/801">pydantic/pydantic-settings#801</a></li> <li>Bump samuelcolvin/check-python-version from 4.1 to 5 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/802">pydantic/pydantic-settings#802</a></li> <li>Bump actions/upload-artifact from 4 to 7 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/803">pydantic/pydantic-settings#803</a></li> <li>Bump actions/checkout from 4 to 6 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/804">pydantic/pydantic-settings#804</a></li> <li>Bump astral-sh/setup-uv from 5 to 7 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/805">pydantic/pydantic-settings#805</a></li> <li>Bump actions/setup-python from 5 to 6 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/806">pydantic/pydantic-settings#806</a></li> <li>Ignore chardet and group GitHub Actions in Dependabot by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/808">pydantic/pydantic-settings#808</a></li> <li>Bump actions/download-artifact from 4 to 8 in the github-actions group by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/809">pydantic/pydantic-settings#809</a></li> <li>Bump the python-packages group with 2 updates by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/810">pydantic/pydantic-settings#810</a></li> <li>Support reading .env files from FIFOs (e.g. 1Password Environments) by <a href="https://github.com/JacobHayes"><code>@​JacobHayes</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/776">pydantic/pydantic-settings#776</a></li> <li>Fix AliasChoices ignored when changing provider priority by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/813">pydantic/pydantic-settings#813</a></li> <li>fix: resolve KeyError in run_subcommand for underscore field names by <a href="https://github.com/bradykieffer"><code>@​bradykieffer</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/799">pydantic/pydantic-settings#799</a></li> <li>Bump the python-packages group with 3 updates by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/814">pydantic/pydantic-settings#814</a></li> <li>Fix <code>Literal[numeric Enum]</code> coercion for CLI and env vars by <a href="https://github.com/m9810223"><code>@​m9810223</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/811">pydantic/pydantic-settings#811</a></li> <li>Fix nested discriminated unions not discovered by env/CLI providers by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/816">pydantic/pydantic-settings#816</a></li> <li>Bump the python-packages group with 3 updates by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/820">pydantic/pydantic-settings#820</a></li> <li>CLI ensure env nested max split internally. by <a href="https://github.com/kschwab"><code>@​kschwab</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/821">pydantic/pydantic-settings#821</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/824">pydantic/pydantic-settings#824</a></li> <li>Migrate <code>boto3-stubs</code> to <code>types-boto3</code> by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/831">pydantic/pydantic-settings#831</a></li> <li>Fix CLI not recognizing field name with validate_by_name and AliasChoices by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/826">pydantic/pydantic-settings#826</a></li> <li>Allow customisation of the dotevn setting source to filter variables by <a href="https://github.com/CaselIT"><code>@​CaselIT</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/832">pydantic/pydantic-settings#832</a></li> <li>Bump the python-packages group with 3 updates by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/833">pydantic/pydantic-settings#833</a></li> <li>Introduce yamlfmt by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/836">pydantic/pydantic-settings#836</a></li> <li>Bump boto3 from 1.42.82 to 1.42.83 in the python-packages group by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/837">pydantic/pydantic-settings#837</a></li> <li>Introduce zizmor by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/838">pydantic/pydantic-settings#838</a></li> <li>Fix CliPositionalArg[list[CustomType]] crash for custom types by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/839">pydantic/pydantic-settings#839</a></li> <li>Add note about Mypy plugin for <code>BaseSettings.__init__()</code> by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/842">pydantic/pydantic-settings#842</a></li> <li>Fix <code>cli_ignore_unknown_args=True</code> not working on subcommands by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/844">pydantic/pydantic-settings#844</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/847">pydantic/pydantic-settings#847</a></li> <li>Fix CLI descriptions lost under <code>python -OO</code> by falling back to <code>json_schema_extra</code> by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/843">pydantic/pydantic-settings#843</a></li> <li>Prepare release 2.14.0 by <a href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-settings/pull/848">pydantic/pydantic-settings#848</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/e95c30bec8cfaee88ee275138c064aea97a25bdf"><code>e95c30b</code></a> Prepare release 2.14.1 (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/859">#859</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/0c8734581b6cf70a995afad603ac456631d00621"><code>0c87345</code></a> Fix field named <code>cls</code> conflicting with classmethod parameter (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/858">#858</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/7bd0072795a800065b42210b6dca90fc9b83daf7"><code>7bd0072</code></a> Bump the python-packages group with 2 updates (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/856">#856</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/b03e573d017ed48e1c2774a5e0b715db9766c76b"><code>b03e573</code></a> Bump the github-actions group with 3 updates (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/853">#853</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/eaa3b434938411ec8a3717ea646614561e713f51"><code>eaa3b43</code></a> Bump the python-packages group with 5 updates (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/854">#854</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/9f95615c24c6813c1d7d203576581a79cb6d9e8e"><code>9f95615</code></a> Bump the python-packages group with 4 updates (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/850">#850</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/8916beeecc6d0510e3d0532a0ed839937400ddc3"><code>8916bee</code></a> Prepare release 2.14.0 (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/848">#848</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/39e551c0910c85505b608ff85a103b2c9f7396c5"><code>39e551c</code></a> Fix CLI descriptions lost under <code>python -OO</code> by falling back to `json_schema_...</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/9ed7f48ea2c90f436a03b01f721fe6656c869b14"><code>9ed7f48</code></a> Bump the python-packages group with 4 updates (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/847">#847</a>)</li> <li><a href="https://github.com/pydantic/pydantic-settings/commit/617c690fb16c95eb0fb98fc88c0d6d82b9af4fa9"><code>617c690</code></a> Fix <code>cli_ignore_unknown_args=True</code> not working on subcommands (<a href="https://redirect.github.com/pydantic/pydantic-settings/issues/844">#844</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.1">compare view</a></li> </ul> </details> <br /> Updates `authlib` from 1.6.9 to 1.7.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/authlib/authlib/releases">authlib's releases</a>.</em></p> <blockquote> <h2>v1.7.2</h2> <h2>What's Changed</h2> <ul> <li>Fix the readme links by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/886">authlib/authlib#886</a></li> <li>Allow non-recommended algorithms in ClientSecretJWT and PrivateKey by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/887">authlib/authlib#887</a></li> <li>Validate BCP47 language tags with a regex by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/873">authlib/authlib#873</a></li> <li>Fix RFC7523 signing with non RSA keys by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/884">authlib/authlib#884</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/authlib/authlib/compare/v1.7.1...v1.7.2">https://github.com/authlib/authlib/compare/v1.7.1...v1.7.2</a></p> <h2>v1.7.1</h2> <h2>What's Changed</h2> <ul> <li>Fix authlib.jose deprecation warning poping from _joserfc_helpers by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/881">authlib/authlib#881</a></li> <li>Fix redirecting to unvalidated <code>redirect_uri</code> on <code>InvalidScopeError</code> in <code>OpenIDImplicitGrant</code> and <code>OpenIDHybridGrant</code>.</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/authlib/authlib/compare/v1.7.0...v1.7.1">https://github.com/authlib/authlib/compare/v1.7.0...v1.7.1</a></p> <h2>v1.7.0</h2> <h2>What's Changed</h2> <ul> <li>Authorization and token endpoints request empty scope parameter management by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/847">authlib/authlib#847</a></li> <li>Support from Python 3.10 to 3.14 by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/850">authlib/authlib#850</a></li> <li>Allow composition of AuthorizationServerMetadata by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/853">authlib/authlib#853</a></li> <li>Make require_oauth parenthesis optional by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/855">authlib/authlib#855</a></li> <li>Fix <code>expires_at</code> behavior when its value is 0 by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/854">authlib/authlib#854</a></li> <li>Migration to joserfc by <a href="https://github.com/lepture"><code>@​lepture</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/852">authlib/authlib#852</a></li> <li>RP-initiated logout by <a href="https://github.com/frohrlich"><code>@​frohrlich</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/849">authlib/authlib#849</a></li> <li>Fix <code>get_jwt_config</code> by <a href="https://github.com/lepture"><code>@​lepture</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/858">authlib/authlib#858</a></li> <li>chore(ci): Update PyPy version from 3.10 to 3.11 by <a href="https://github.com/cclauss"><code>@​cclauss</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/863">authlib/authlib#863</a></li> <li>fix: remove &quot;none&quot; from default authlib.jose.jwt algorithms by <a href="https://github.com/lepture"><code>@​lepture</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/860">authlib/authlib#860</a></li> <li>fix: normalize resolve_client_public_key method by <a href="https://github.com/lepture"><code>@​lepture</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/861">authlib/authlib#861</a></li> <li>Implement rfc9700 PKCE downgrade countermeasure by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/864">authlib/authlib#864</a></li> <li>Use correct syntax for tox.requires in tox.ini by <a href="https://github.com/alex-ball"><code>@​alex-ball</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/868">authlib/authlib#868</a></li> <li>Set client session User-Agent when fetching server metadata and JWKs by <a href="https://github.com/alex-ball"><code>@​alex-ball</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/867">authlib/authlib#867</a></li> <li>fix: use the real application object for Flask by <a href="https://github.com/nblock"><code>@​nblock</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/869">authlib/authlib#869</a></li> <li>Accept the issuer URL as a valid audience by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/865">authlib/authlib#865</a></li> <li>Don't nest InvalidTokenError extra attribute by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/872">authlib/authlib#872</a></li> <li>Documentation overhaul by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/875">authlib/authlib#875</a></li> <li>Update README.md docs.authlib.org/en/latest =&gt; docs.authlib.org/en/stable by <a href="https://github.com/guillett"><code>@​guillett</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/876">authlib/authlib#876</a></li> <li>Merge release/1.6 branch by <a href="https://github.com/lepture"><code>@​lepture</code></a> in <a href="https://redirect.github.com/authlib/authlib/pull/877">authlib/authlib#877</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/frohrlich"><code>@​frohrlich</code></a> made their first contribution in <a href="https://redirect.github.com/authlib/authlib/pull/849">authlib/authlib#849</a></li> <li><a href="https://github.com/cclauss"><code>@​cclauss</code></a> made their first contribution in <a href="https://redirect.github.com/authlib/authlib/pull/863">authlib/authlib#863</a></li> <li><a href="https://github.com/alex-ball"><code>@​alex-ball</code></a> made their first contribution in <a href="https://redirect.github.com/authlib/authlib/pull/868">authlib/authlib#868</a></li> <li><a href="https://github.com/nblock"><code>@​nblock</code></a> made their first contribution in <a href="https://redirect.github.com/authlib/authlib/pull/869">authlib/authlib#869</a></li> <li><a href="https://github.com/guillett"><code>@​guillett</code></a> made their first contribution in <a href="https://redirect.github.com/authlib/authlib/pull/876">authlib/authlib#876</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/authlib/authlib/compare/v1.6.10...v1.7.0">https://github.com/authlib/authlib/compare/v1.6.10...v1.7.0</a></p> <h2>v1.6.12</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/authlib/authlib/commit/a0b76fac3fa114d7759af2010546bfc332364b63"><code>a0b76fa</code></a> chore: bump to 1.7.2</li> <li><a href="https://github.com/authlib/authlib/commit/c85c7f2b02faf2667f62b27aa60df042dbc9b4ab"><code>c85c7f2</code></a> Merge pull request <a href="https://redirect.github.com/authlib/authlib/issues/884">#884</a> from azmeuk/852-rfc7523-key-import</li> <li><a href="https://github.com/authlib/authlib/commit/a3b2adda43b4452ba9f384d224f95848974b4eb4"><code>a3b2add</code></a> Merge pull request <a href="https://redirect.github.com/authlib/authlib/issues/873">#873</a> from azmeuk/bcp47</li> <li><a href="https://github.com/authlib/authlib/commit/f2578eaa198aedbaaaf3bb00eccc451e15e45e3a"><code>f2578ea</code></a> fix: Import RSAKey in auth.py for additional key support</li> <li><a href="https://github.com/authlib/authlib/commit/b57182cf46a53da19623208dd852270ddec8ebcc"><code>b57182c</code></a> fix: fallback support RSAKey when client_secret is text</li> <li><a href="https://github.com/authlib/authlib/commit/4e7590292ca9f948a0766640b27025618750e6c1"><code>4e75902</code></a> Merge branch 'main' into 852-rfc7523-key-import</li> <li><a href="https://github.com/authlib/authlib/commit/5eb4a860600ea2f3acc1a2a9c3e621a430da9d0f"><code>5eb4a86</code></a> Merge pull request <a href="https://redirect.github.com/authlib/authlib/issues/887">#887</a> from azmeuk/883-alg</li> <li><a href="https://github.com/authlib/authlib/commit/5633f37c47bd8352b962f982cb916bc8b95bb5d5"><code>5633f37</code></a> fix: allow non-recommended algorithms in ClientSecretJWT and PrivateKeyJWT</li> <li><a href="https://github.com/authlib/authlib/commit/4c8e7b381aaef68f60e2323a25ba96cdb346f82f"><code>4c8e7b3</code></a> Merge pull request <a href="https://redirect.github.com/authlib/authlib/issues/886">#886</a> from azmeuk/885-readme</li> <li><a href="https://github.com/authlib/authlib/commit/23b333e48a17ebf9f032a0e0f9eb3f990a06f97b"><code>23b333e</code></a> docs: fix the readme links</li> <li>Additional commits viewable in <a href="https://github.com/authlib/authlib/compare/v1.6.9...v1.7.2">compare view</a></li> </ul> </details> <br /> Updates `prek` from 0.3.8 to 0.3.13 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/j178/prek/releases">prek's releases</a>.</em></p> <blockquote> <h2>0.3.13</h2> <h2>Release Notes</h2> <p>Released on 2026-05-06.</p> <h3>Bug fixes</h3> <ul> <li>Respect hook filters for message files (<a href="https://redirect.github.com/j178/prek/pull/2049">#2049</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add Godot Engine to users in README (<a href="https://redirect.github.com/j178/prek/pull/2047">#2047</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/j178"><code>@​j178</code></a></li> <li><a href="https://github.com/Calinou"><code>@​Calinou</code></a></li> </ul> <h2>Install prek 0.3.13</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.3.13/prek-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c &quot;irm https://github.com/j178/prek/releases/download/v0.3.13/prek-installer.ps1 | iex&quot; </code></pre> <h3>Install prebuilt binaries via Homebrew</h3> <pre lang="sh"><code>brew install prek </code></pre> <h2>Download prek 0.3.13</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-apple-darwin.tar.gz">prek-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-x86_64-apple-darwin.tar.gz">prek-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-pc-windows-msvc.zip">prek-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-i686-pc-windows-msvc.zip">prek-i686-pc-windows-msvc.zip</a></td> <td>x86 Windows</td> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-i686-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-x86_64-pc-windows-msvc.zip">prek-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-unknown-linux-gnu.tar.gz">prek-aarch64-unknown-linux-gnu.tar.gz</a></td> <td>ARM64 Linux</td> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-i686-unknown-linux-gnu.tar.gz">prek-i686-unknown-linux-gnu.tar.gz</a></td> <td>x86 Linux</td> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-riscv64gc-unknown-linux-gnu.tar.gz">prek-riscv64gc-unknown-linux-gnu.tar.gz</a></td> <td>RISCV Linux</td> <td><a href="https://github.com/j178/prek/releases/download/v0.3.13/prek-riscv64gc-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> </tbody> </table> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/j178/prek/blob/master/CHANGELOG.md">prek's changelog</a>.</em></p> <blockquote> <h2>0.3.13</h2> <p>Released on 2026-05-06.</p> <h3>Bug fixes</h3> <ul> <li>Respect hook filters for message files (<a href="https://redirect.github.com/j178/prek/pull/2049">#2049</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add Godot Engine to users in README (<a href="https://redirect.github.com/j178/prek/pull/2047">#2047</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/j178"><code>@​j178</code></a></li> <li><a href="https://github.com/Calinou"><code>@​Calinou</code></a></li> </ul> <h2>0.3.12</h2> <p>Released on 2026-05-05.</p> <h3>Highlights</h3> <p><code>auto_update.cooldown_days</code> is now available in both the user-level global config (<code>~/.config/prek/prek.toml</code> on Linux and macOS, or <code>$XDG_CONFIG_HOME/prek/prek.toml</code> when set; <code>%APPDATA%\prek\prek.toml</code> on Windows) and project config. Set a user default for <code>prek auto-update</code>, then override it per project when a repository needs a different update cadence.</p> <pre lang="toml"><code>[auto_update] cooldown_days = 7 </code></pre> <h3>Enhancements</h3> <ul> <li>Add global auto-update cooldown config (<a href="https://redirect.github.com/j178/prek/pull/2041">#2041</a>)</li> <li>Add project auto-update cooldown config (<a href="https://redirect.github.com/j178/prek/pull/2044">#2044</a>)</li> <li>Support <code>language: dart</code> (<a href="https://redirect.github.com/j178/prek/pull/1146">#1146</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Pass commit message file to workspace hooks (<a href="https://redirect.github.com/j178/prek/pull/2043">#2043</a>)</li> <li>Preserve non-UTF8 filenames from git (<a href="https://redirect.github.com/j178/prek/pull/2023">#2023</a>)</li> <li>ruby: put resolved Ruby's bin dir on <code>$PATH</code> for <code>gem</code> invocations (<a href="https://redirect.github.com/j178/prek/pull/2021">#2021</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Update docs with the new logo and icon (<a href="https://redirect.github.com/j178/prek/pull/2025">#2025</a>)</li> <li>Point schema docs to SchemaStore (<a href="https://redirect.github.com/j178/prek/pull/2039">#2039</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/j178/prek/commit/81b290ef0630d1e130dc37ae1916da0e51b8a002"><code>81b290e</code></a> Bump version to 0.3.13 (<a href="https://redirect.github.com/j178/prek/issues/2050">#2050</a>)</li> <li><a href="https://github.com/j178/prek/commit/3f5e5c6e54bdd9b1640228cdd69a449e18ddf9f8"><code>3f5e5c6</code></a> Respect hook filters for message files (<a href="https://redirect.github.com/j178/prek/issues/2049">#2049</a>)</li> <li><a href="https://github.com/j178/prek/commit/1fab88775affde4fd0c75b2f9102a5df88195efc"><code>1fab887</code></a> Add Godot Engine to users in README (<a href="https://redirect.github.com/j178/prek/issues/2047">#2047</a>)</li> <li><a href="https://github.com/j178/prek/commit/93a71e0b730d30d2fa56f9e47f2a293beb007988"><code>93a71e0</code></a> Remove deleted <code>dist/post/index.cjs</code> from publish prek version workflow (<a href="https://redirect.github.com/j178/prek/issues/2046">#2046</a>)</li> <li><a href="https://github.com/j178/prek/commit/56d6d0c13ef36a4ab6a705621fba41448f2b503d"><code>56d6d0c</code></a> Bump version to 0.3.12 (<a href="https://redirect.github.com/j178/prek/issues/2045">#2045</a>)</li> <li><a href="https://github.com/j178/prek/commit/5f94f6f8ea8e5df0fb6604b4b8ec63072e1dc8f3"><code>5f94f6f</code></a> Add project auto-update cooldown config (<a href="https://redirect.github.com/j178/prek/issues/2044">#2044</a>)</li> <li><a href="https://github.com/j178/prek/commit/c52833e9991584d03bcd7e2b6fc01fa43e1f0d09"><code>c52833e</code></a> Add global auto-update cooldown</li> <li><a href="https://github.com/j178/prek/commit/8af3054dc690fd06fe91b2b0c0ca4fe8e4418051"><code>8af3054</code></a> Pass commit message file to workspace hooks (<a href="https://redirect.github.com/j178/prek/issues/2043">#2043</a>)</li> <li><a href="https://github.com/j178/prek/commit/1bf54f5fa9638ad66a7d0b160170da75de1eec81"><code>1bf54f5</code></a> Update Rust crate serde-saphyr to 0.0.25 (<a href="https://redirect.github.com/j178/prek/issues/2036">#2036</a>)</li> <li><a href="https://github.com/j178/prek/commit/8c9761a523bcb180ff35fcfcd8e85184f87eaceb"><code>8c9761a</code></a> Bump rand to 0.9.4 (<a href="https://redirect.github.com/j178/prek/issues/2040">#2040</a>)</li> <li>Additional commits viewable in <a href="https://github.com/j178/prek/compare/v0.3.8...v0.3.13">compare view</a></li> </ul> </details> <br /> Updates `pytest-httpx` from 0.36.0 to 0.36.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Colin-b/pytest_httpx/releases">pytest-httpx's releases</a>.</em></p> <blockquote> <h2>0.36.2 (2026-04-09)</h2> <h3>Fixed</h3> <ul> <li>Document how to ignore query parameters while matching on URL.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Colin-b/pytest_httpx/blob/develop/CHANGELOG.md">pytest-httpx's changelog</a>.</em></p> <blockquote> <h2>[0.36.2] - 2026-04-09</h2> <h3>Fixed</h3> <ul> <li>Document how to ignore query parameters while matching on URL.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/Colin-b/pytest_httpx/commit/812116610f7006d33abb7136e01544751d3bc050"><code>8121166</code></a> Re-release as 0.36.2</li> <li><a href="https://github.com/Colin-b/pytest_httpx/commit/d5e42837cfbd3661f3d809a66d989211f3ae3c75"><code>d5e4283</code></a> Bump version</li> <li><a href="https://github.com/Colin-b/pytest_httpx/commit/66eeeb08706ca7b95a40edd0f6f10c1f97bf9a8a"><code>66eeeb0</code></a> Release version 0.36.1</li> <li><a href="https://github.com/Colin-b/pytest_httpx/commit/1be4693f114c4c5b1edea383ae7698c81c0ba22d"><code>1be4693</code></a> Merge branch 'master' into develop</li> <li><a href="https://github.com/Colin-b/pytest_httpx/commit/5acf97f71953a88af0ca2a86d66d376014f05c74"><code>5acf97f</code></a> Release 0.36.1</li> <li><a href="https://github.com/Colin-b/pytest_httpx/commit/71b9dd4c1ec052b8a2e97badc172988975796595"><code>71b9dd4</code></a> Release 0.36.1</li> <li><a href="https://github.com/Colin-b/pytest_httpx/commit/9714e5553ebdb9750df75f777dd9e8020493ac4d"><code>9714e55</code></a> Cleanup project management</li> <li><a href="https://github.com/Colin-b/pytest_httpx/commit/47e7e0228f9a933e9a2eabaa73c64942845e0749"><code>47e7e02</code></a> Use commit sha as version</li> <li><a href="https://github.com/Colin-b/pytest_httpx/commit/ede6a6d8f4e4406222b38b95ad2bb6957aac3f5a"><code>ede6a6d</code></a> Update black to latest version</li> <li><a href="https://github.com/Colin-b/pytest_httpx/commit/7d8291ee3b34cc8339beef674529f66152197c1e"><code>7d8291e</code></a> Use trusted publisher to publish to pypi</li> <li>Additional commits viewable in <a href="https://github.com/Colin-b/pytest_httpx/compare/v0.36.0...0.36.2">compare view</a></li> </ul> </details> <br /> Updates `requests` from 2.33.0 to 2.34.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/releases">requests's releases</a>.</em></p> <…
1 parent fc10d20 commit 2ff665c

2 files changed

Lines changed: 132 additions & 119 deletions

File tree

elt-common/pyproject.toml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[build-system]
2-
requires = ["setuptools>=61.0.0", "wheel"]
2+
requires = ["setuptools>=82.0.1", "wheel"]
33
build-backend = "setuptools.build_meta"
44

55
[project]
@@ -9,21 +9,21 @@ description = "A set of common utility routines for data pipelines."
99
readme = "README.md"
1010
requires-python = ">=3.13"
1111
dependencies = [
12-
"dlt[parquet,s3]>=1.20,<2",
12+
"dlt[parquet,s3]>=1.26.0,<2",
1313
"pyarrow==23.0.1", # See https://github.com/ISISNeutronMuon/analytics-data-platform/issues/183
14-
"pyiceberg[pyiceberg-core]>=0.11",
14+
"pyiceberg[pyiceberg-core]>=0.11.1",
1515
"s3fs<2026.3.0", # See https://github.com/ISISNeutronMuon/analytics-data-platform/issues/237
1616
]
1717

1818

1919
[project.optional-dependencies]
2020
iceberg-maintenance = [
21-
"click>=8.2.1",
22-
"sqlalchemy>=2.0.43",
21+
"click>=8.3.3",
22+
"sqlalchemy>=2.0.49",
2323
"trino>=0.336.0",
24-
"pydantic_settings>=2.12.0",
24+
"pydantic_settings>=2.14.1",
2525
]
26-
m365 = ["authlib>=1.6.1", "httpx>=0.28.1", "tenacity>=9.1.2"]
26+
m365 = ["authlib>=1.7.2", "httpx>=0.28.1", "tenacity>=9.1.2"]
2727

2828
[project.entry-points.pytest11]
2929
elt_common = "elt_common.testing.fixtures"
@@ -34,14 +34,14 @@ iceberg-maintenance = "elt_common.iceberg.maintenance:cli"
3434
[dependency-groups]
3535
dev = [
3636
"minio>=7.2.20",
37-
"prek>=0.2.27",
38-
"pydantic-settings>=2.10.1",
37+
"prek>=0.3.13",
38+
"pydantic-settings>=2.14.1",
3939
"pytest>=9.0.3",
40-
"pytest-httpx>=0.36.0",
40+
"pytest-httpx>=0.36.2",
4141
"pytest-mock>=3.15.1",
42-
"requests>=2.32.5",
42+
"requests>=2.34.0",
4343
"requests-mock>=1.12.1",
44-
"ruff>=0.14.10",
44+
"ruff>=0.15.12",
4545
]
4646

4747

0 commit comments

Comments
 (0)